*os_dos.txt* For Vim version 5.3. Last modification: 1998 Aug 30 VIM REFERENCE MANUAL by Bram Moolenaar *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 same directory as the help and syntax files, 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. If the executable is in a different directory than the support files, you should set the environment variable $VIM to the directory where the Vim documentation files are. If $VIM is used but not defined, $HOME is tried too. Under Windows 95, $VIM can be set 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 get the properties from the menu of "My Computer", in the Environment Tab. If the $HOME environment variable is not set, the value "C:/" is used as a default. If no $VIM or $HOME environment variables are set, then vim (gvim) will find the _vimrc file in the same directory as the vim (gvim) executable. Likewise, the documentation will be found in the doc subdirectory of that place, and the $VIM internal variable will be set to the exe place. This means you will be able to edit the _vimrc file by doing: > :e $VIM/_vimrc The default help file name is "$VIM\doc\help.txt". If the environment variable $VIM is not defined or the file is not found, the DOS or Win32 search path is used to search for the file "help.txt". If you do not want to put "help.txt" in your search path, use the command ":set helpfile=pathname" to tell Vim where the help file is. Also see |$VIM| and |'helpfile'|. Vim will look for initializations in eight places. The first that is found is used and the others are ignored. The order is: - The environment variable $VIMINIT - The file "$VIM/_vimrc" - The file "$HOME/_vimrc" - The file "$VIM/.vimrc" - The file "$HOME/.vimrc" - The environment variable $EXINIT - The file "$VIM/_exrc" - The file "$HOME/_exrc" ============================================================================== 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 backslashes are not removed from a file name, so ":e c:\foo\bar" works as expected. But when a backslash is used before a special character (space, comma, backslash, etc.), it is removed. Use slashes to avoid problems: ":e c:/foo/bar" works fine. Vim will replace the slashes with backslashes internally, to avoid problems with some MS-DOS programs and Win32 programs. ============================================================================== 3. Standard mappings *dos-standard-mappings* CTRL-PageUp cursor to first screen line ** CTRL-PageDown cursor to last screen line, last character ** This is accomplished with these mappings: key key code Normal/Visual mode Insert mode ~ CTRL-PageUp H H CTRL-PageDown v L$ L$ Additionally, these keys are used for copy/cut/paste. Only in the Win32 version they use the clipboard. Shift-Insert paste text (from clipboard) ** CTRL-Insert copy Visual text (to clipboard) ** CTRL-Del cut Visual text (to clipboard) ** Shift-Del cut Visual text (to clipboard) ** This is accomplished with these mappings (Win32 version of Vim): key key code Normal Visual Insert ~ Shift-Insert "*P "-d"*P "*P CTRL-Insert "*y Shift-Del "*d CTRL-Del "*d Or these mappings (non-Win32 version of Vim): key key code Normal Visual Insert ~ Shift-Insert P d"0P P CTRL-Insert y Shift-Del d CTRL-Del d ============================================================================== 4. Screen output and colors *dos-colors* The default output method for the screen is to use bios calls. This will work 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, the |:highlight| command can be used. The Normal highlight group has the colors to be used 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 can be used. A DOS console does not support attributes like bold and underlining. You can set the color used in five modes with nine termcap options. Note that this is not really needed, since you can set the color directly with the ":highlight" command. This is for backwards compatibility with older Vim versions. Which of the five modes is used for which action depends on the |'highlight'| option. ":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 xx must be replaced 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 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 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 will accept a single or a pair for end-of-line (). When writing a file, Vim will use . Thus, if you edit a file and write it, is replaced with . If the 'fileformat' option is set to "unix", a single will be used for . A will be shown as ^M. You can use Vim to replace with by reading in any mode and writing in Dos mode (":se ff=dos"). You can use Vim to replace with by reading in Dos mode and writing in Unix mode (":se ff=unix"). 'fileformat' is set 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 characters which would be replaced with . 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. UNC names are also recognized (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. The CTRL-C is not detected until a key is read. ============================================================================== 8. Temp files *dos-temp-files* Temporary files (for filtering) are put in the first directory in the next list that exists and where a file can be created: $TMP $TEMP C:\TMP C:\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, it is used instead, and if SHELL is not defined but COMSPEC is, COMPSPEC is used. External commands are started with " /c ". 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 will start the shell as: -c "command name" >file For Win32 as: -c "command name >file" For DOS 32 bit, DJGPP does this internally somehow. When starting up, Vim will check for the presence of "sh" anywhere in the 'shell' option. If it is present, the 'shellcmdflag' and 'shellquote' or 'shellxquote' options will be set as mentioned above vim:ts=8:sw=8:tw=78: