| *os_dos.txt* For Vim version 7.4. Last change: 2006 Mar 30 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| |
| |
| *dos* *DOS* |
| This file documents the common particularities of the MS-DOS and Win32 |
| versions of Vim. Also see |os_win32.txt| and |os_msdos.txt|. |
| |
| 1. File locations |dos-locations| |
| 2. Using backslashes |dos-backslash| |
| 3. Standard mappings |dos-standard-mappings| |
| 4. Screen output and colors |dos-colors| |
| 5. File formats |dos-file-formats| |
| 6. :cd command |dos-:cd| |
| 7. Interrupting |dos-CTRL-Break| |
| 8. Temp files |dos-temp-files| |
| 9. Shell option default |dos-shell| |
| |
| ============================================================================== |
| 1. File locations *dos-locations* |
| |
| If you keep the Vim executable in the directory that contains the help and |
| syntax subdirectories, there is no need to do anything special for Vim to |
| work. No registry entries or environment variables need to be set. Just make |
| sure that the directory is in your search path, or use a shortcut on the |
| desktop. |
| |
| Your vimrc files ("_vimrc" and "_gvimrc") are normally located one directory |
| up from the runtime files. If you want to put them somewhere else, set the |
| environment variable $VIM to the directory where you keep them. Example: > |
| set VIM=C:\user\piet |
| Will find "c:\user\piet\_vimrc". |
| Note: This would only be needed when the computer is used by several people. |
| Otherwise it's simpler to keep your _vimrc file in the default place. |
| |
| If you move the executable to another location, you also need to set the $VIM |
| environment variable. The runtime files will be found in "$VIM/vim{version}". |
| Example: > |
| set VIM=E:\vim |
| Will find the version 5.4 runtime files in "e:\vim\vim54". |
| Note: This is _not_ recommended. The preferred way is to keep the executable |
| in the runtime directory. |
| |
| If you move your executable AND want to put your "_vimrc" and "_gvimrc" files |
| somewhere else, you must set $VIM to where you vimrc files are, and set |
| $VIMRUNTIME to the runtime files. Example: > |
| set VIM=C:\usr\piet |
| set VIMRUNTIME=E:\vim\vim54 |
| Will find "c:\user\piet\_vimrc" and the runtime files in "e:\vim\vim54". |
| |
| See |$VIM| and |$VIMRUNTIME| for more information. |
| |
| Under Windows 95, you can set $VIM in your C:\autoexec.bat file. For |
| example: > |
| set VIM=D:\vim |
| Under Windows NT, you can set environment variables for each user separately |
| under "Start/Settings/Control Panel->System", or through the properties in the |
| menu of "My Computer", under the Environment Tab. |
| |
| ============================================================================== |
| 2. Using backslashes *dos-backslash* |
| |
| Using backslashes in file names can be a problem. Vi halves the number of |
| backslashes for some commands. Vim is a bit more tolerant and does not remove |
| backslashes from a file name, so ":e c:\foo\bar" works as expected. But when |
| a backslash occurs before a special character (space, comma, backslash, etc.), |
| Vim removes the backslash. Use slashes to avoid problems: ":e c:/foo/bar" |
| works fine. Vim replaces the slashes with backslashes internally to avoid |
| problems with some MS-DOS programs and Win32 programs. |
| |
| When you prefer to use forward slashes, set the 'shellslash' option. Vim will |
| then replace backslashes with forward slashes when expanding file names. This |
| is especially useful when using a Unix-like 'shell'. |
| |
| ============================================================================== |
| 3. Standard mappings *dos-standard-mappings* |
| |
| The mappings for CTRL-PageUp and CTRL-PageDown have been removed, they now |
| jump to the next or previous tab page |<C-PageUp>| |<C-PageDown>| |
| |
| If you want them to move to the first and last screen line you can use these |
| mappings: |
| |
| key key code Normal/Visual mode Insert mode ~ |
| CTRL-PageUp <M-N><M-C-D> H <C-O>H |
| CTRL-PageDown <M-N>v L$ <C-O>L<C-O>$ |
| |
| Additionally, these keys are available for copy/cut/paste. In the Win32 |
| and DJGPP versions, they also use the clipboard. |
| |
| Shift-Insert paste text (from clipboard) *<S-Insert>* |
| CTRL-Insert copy Visual text (to clipboard) *<C-Insert>* |
| CTRL-Del cut Visual text (to clipboard) *<C-Del>* |
| Shift-Del cut Visual text (to clipboard) *<S-Del>* |
| |
| These mappings accomplish this (Win32 and DJGPP versions of Vim): |
| |
| key key code Normal Visual Insert ~ |
| Shift-Insert <M-N><M-T> "*P "-d"*P <C-R><C-O>* |
| CTRL-Insert <M-N><M-U> "*y |
| Shift-Del <M-N><M-W> "*d |
| CTRL-Del <M-N><M-X> "*d |
| |
| Or these mappings (non-Win32 version of Vim): |
| |
| key key code Normal Visual Insert ~ |
| Shift-Insert <M-N><M-T> P "-dP <C-R><C-O>" |
| CTRL-Insert <M-N><M-U> y |
| Shift-Del <M-N><M-W> d |
| CTRL-Del <M-N><M-X> d |
| |
| When the clipboard is supported, the "* register is used. |
| |
| ============================================================================== |
| 4. Screen output and colors *dos-colors* |
| |
| The default output method for the screen is to use bios calls. This works |
| right away on most systems. You do not need ansi.sys. You can use ":mode" to |
| set the current screen mode. See |:mode|. |
| |
| To change the screen colors that Vim uses, you can use the |:highlight| |
| command. The Normal highlight group specifies the colors Vim uses for normal |
| text. For example, to get grey text on a blue background: > |
| :hi Normal ctermbg=Blue ctermfg=grey |
| See |highlight-groups| for other groups that are available. |
| |
| A DOS console does not support attributes like bold and underlining. You can |
| set the color used in five modes with nine terminal options. Note that this |
| is not necessary since you can set the color directly with the ":highlight" |
| command; these options are for backward compatibility with older Vim versions. |
| The |'highlight'| option specifies which of the five modes is used for which |
| action. > |
| |
| :set t_mr=^V^[\|xxm start of invert mode |
| :set t_md=^V^[\|xxm start of bold mode |
| :set t_me=^V^[\|xxm back to normal text |
| |
| :set t_so=^V^[\|xxm start of standout mode |
| :set t_se=^V^[\|xxm back to normal text |
| |
| :set t_us=^V^[\|xxm start of underline mode |
| :set t_ue=^V^[\|xxm back to normal text |
| |
| :set t_ZH=^V^[\|xxm start of italics mode |
| :set t_ZR=^V^[\|xxm back to normal text |
| |
| ^V is CTRL-V |
| ^[ is <Esc> |
| You must replace xx with a decimal code, which is the foreground color number |
| and background color number added together: |
| |
| COLOR FOREGROUND BACKGROUND ~ |
| Black 0 0 |
| DarkBlue 1 16 |
| DarkGreen 2 32 |
| DarkCyan 3 48 |
| DarkRed 4 64 |
| DarkMagenta 5 80 |
| Brown, DarkYellow 6 96 |
| LightGray 7 112 |
| DarkGray 8 128 * |
| Blue, LightBlue 9 144 * |
| Green, LightGreen 10 160 * |
| Cyan, LightCyan 11 176 * |
| Red, LightRed 12 192 * |
| Magenta, LightMagenta 13 208 * |
| Yellow, LightYellow 14 224 * |
| White 15 240 * |
| |
| * Depending on the display mode, the color codes above 128 may not be |
| available, and code 128 will make the text blink. |
| |
| When you use 0, the color is reset to the one used when you started Vim |
| (usually 7, lightgray on black, but you can override this. If you have |
| overridden the default colors in a command prompt, you may need to adjust |
| some of the highlight colors in your vimrc---see below). |
| This is the default for t_me. |
| |
| The defaults for the various highlight modes are: |
| t_mr 112 reverse mode: Black text (0) on LightGray (112) |
| t_md 15 bold mode: White text (15) on Black (0) |
| t_me 0 normal mode (revert to default) |
| |
| t_so 31 standout mode: White (15) text on DarkBlue (16) |
| t_se 0 standout mode end (revert to default) |
| |
| t_czh 225 italic mode: DarkBlue text (1) on Yellow (224) |
| t_czr 0 italic mode end (revert to default) |
| |
| t_us 67 underline mode: DarkCyan text (3) on DarkRed (64) |
| t_ue 0 underline mode end (revert to default) |
| |
| These colors were chosen because they also look good when using an inverted |
| display, but you can change them to your liking. |
| |
| Example: > |
| :set t_mr=^V^[\|97m " start of invert mode: DarkBlue (1) on Brown (96) |
| :set t_md=^V^[\|67m " start of bold mode: DarkCyan (3) on DarkRed (64) |
| :set t_me=^V^[\|112m " back to normal mode: Black (0) on LightGray (112) |
| |
| :set t_so=^V^[\|37m " start of standout mode: DarkMagenta (5) on DarkGreen |
| (32) |
| :set t_se=^V^[\|112m " back to normal mode: Black (0) on LightGray (112) |
| |
| ============================================================================== |
| 5. File formats *dos-file-formats* |
| |
| If the 'fileformat' option is set to "dos" (which is the default), Vim accepts |
| a single <NL> or a <CR><NL> pair for end-of-line (<EOL>). When writing a |
| file, Vim uses <CR><NL>. Thus, if you edit a file and write it, Vim replaces |
| <NL> with <CR><NL>. |
| |
| If the 'fileformat' option is set to "unix", Vim uses a single <NL> for <EOL> |
| and shows <CR> as ^M. |
| |
| You can use Vim to replace <NL> with <CR><NL> by reading in any mode and |
| writing in Dos mode (":se ff=dos"). |
| You can use Vim to replace <CR><NL> with <NL> by reading in Dos mode and |
| writing in Unix mode (":se ff=unix"). |
| |
| Vim sets 'fileformat' automatically when 'fileformats' is not empty (which is |
| the default), so you don't really have to worry about what you are doing. |
| |'fileformat'| |'fileformats'| |
| |
| If you want to edit a script file or a binary file, you should set the |
| 'binary' option before loading the file. Script files and binary files may |
| contain single <NL> characters which Vim would replace with <CR><NL>. You can |
| set 'binary' automatically by starting Vim with the "-b" (binary) option. |
| |
| ============================================================================== |
| 6. :cd command *dos-:cd* |
| |
| The ":cd" command recognizes the drive specifier and changes the current |
| drive. Use ":cd c:" to make drive C the active drive. Use ":cd d:\foo" to go |
| to the directory "foo" in the root of drive D. Vim also recognizes UNC names |
| if the system supports them; e.g., ":cd \\server\share\dir". |:cd| |
| |
| ============================================================================== |
| 7. Interrupting *dos-CTRL-Break* |
| |
| Use CTRL-Break instead of CTRL-C to interrupt searches. Vim does not detect |
| the CTRL-C until it tries to read a key. |
| |
| ============================================================================== |
| 8. Temp files *dos-temp-files* |
| |
| Only for the 16 bit and 32 bit DOS version: |
| Vim puts temporary files (for filtering) in the first of these directories |
| that exists and in which Vim can create a file: |
| $TMP |
| $TEMP |
| C:\TMP |
| C:\TEMP |
| current directory |
| |
| For the Win32 version (both console and GUI): |
| Vim uses standard Windows functions to obtain a temporary file name (for |
| filtering). The first of these directories that exists and in which Vim can |
| create a file is used: |
| $TMP |
| $TEMP |
| current directory |
| |
| ============================================================================== |
| 9. Shell option default *dos-shell* |
| |
| The default for the 'sh' ('shell') option is "command.com" on Windows 95 and |
| "cmd.exe" on Windows NT. If SHELL is defined, Vim uses SHELL instead, and if |
| SHELL is not defined but COMSPEC is, Vim uses COMSPEC. Vim starts external |
| commands with "<shell> /c <command_name>". Typing CTRL-Z starts a new command |
| subshell. Return to Vim with "exit". |'shell'| |CTRL-Z| |
| |
| If you are running a third-party shell, you may need to set the |
| |'shellcmdflag'| ('shcf') and |'shellquote'| ('shq') or |'shellxquote'| |
| ('sxq') options. Unfortunately, this also depends on the version of Vim used. |
| For example, with the MKS Korn shell or with bash, the values of the options |
| should be: |
| |
| DOS 16 bit DOS 32 bit Win32 ~ |
| 'shellcmdflag' -c -c -c |
| 'shellquote' " |
| 'shellxquote' " |
| |
| For Dos 16 bit this starts the shell as: |
| <shell> -c "command name" >file |
| For Win32 as: |
| <shell> -c "command name >file" |
| For DOS 32 bit, DJGPP does this internally somehow. |
| |
| When starting up, Vim checks for the presence of "sh" anywhere in the 'shell' |
| option. If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or |
| 'shellxquote' options will be set as described above. |
| |
| vim:tw=78:ts=8:ft=help:norl: |