os_dos.txt - html version
os_dos.txt - html version
*os_dos.txt* For Vim version 5.3. Last modification: 1998 Aug 30
VIM REFERENCE MANUAL by Bram Moolenaar
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:
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
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:
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 *<C-PageUp>*
CTRL-PageDown cursor to last screen line, last character *<C-PageDown>*
This is accomplished with 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 used for copy/cut/paste. Only in the Win32
version they 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>*
This is accomplished with these mappings (Win32 version of Vim):
key key code Normal Visual Insert
Shift-Insert <M-N><M-T> "*P "-d"*P <C-O>"*P
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 d"0P <C-O>P
CTRL-Insert <M-N><M-U> y
Shift-Del <M-N><M-W> d
CTRL-Del <M-N><M-X> 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'|
":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>
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.
: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
: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 <NL> or a <CR><NL> pair for end-of-line (<EOL>). When writing
a file, Vim will use <CR><NL>. Thus, if you edit a file and write it, <NL> is
replaced with <CR><NL>.
If the 'fileformat' option is set to "unix", a single <NL> will be used for
<EOL>. A <CR> will be shown 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").
'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.
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 would be replaced 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. 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:
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 "<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
DOS 16 bit DOS 32 bit Win32
'shellcmdflag' -c -c -c
For Dos 16 bit this will start 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 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
top - back to help