1702
|
1 *os_dos.txt* For Vim version 7.2. Last change: 2006 Mar 30
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Bram Moolenaar
|
|
5
|
|
6
|
|
7 *dos* *DOS*
|
|
8 This file documents the common particularities of the MS-DOS and Win32
|
|
9 versions of Vim. Also see |os_win32.txt| and |os_msdos.txt|.
|
|
10
|
|
11 1. File locations |dos-locations|
|
|
12 2. Using backslashes |dos-backslash|
|
|
13 3. Standard mappings |dos-standard-mappings|
|
|
14 4. Screen output and colors |dos-colors|
|
|
15 5. File formats |dos-file-formats|
|
|
16 6. :cd command |dos-:cd|
|
|
17 7. Interrupting |dos-CTRL-Break|
|
|
18 8. Temp files |dos-temp-files|
|
|
19 9. Shell option default |dos-shell|
|
|
20
|
|
21 ==============================================================================
|
|
22 1. File locations *dos-locations*
|
|
23
|
|
24 If you keep the Vim executable in the directory that contains the help and
|
|
25 syntax subdirectories, there is no need to do anything special for Vim to
|
|
26 work. No registry entries or environment variables need to be set. Just make
|
|
27 sure that the directory is in your search path, or use a shortcut on the
|
|
28 desktop.
|
|
29
|
|
30 Your vimrc files ("_vimrc" and "_gvimrc") are normally located one directory
|
|
31 up from the runtime files. If you want to put them somewhere else, set the
|
|
32 environment variable $VIM to the directory where you keep them. Example: >
|
|
33 set VIM=C:\user\piet
|
|
34 Will find "c:\user\piet\_vimrc".
|
|
35 Note: This would only be needed when the computer is used by several people.
|
|
36 Otherwise it's simpler to keep your _vimrc file in the default place.
|
|
37
|
|
38 If you move the executable to another location, you also need to set the $VIM
|
|
39 environment variable. The runtime files will be found in "$VIM/vim{version}".
|
|
40 Example: >
|
|
41 set VIM=E:\vim
|
|
42 Will find the version 5.4 runtime files in "e:\vim\vim54".
|
|
43 Note: This is _not_ recommended. The preferred way is to keep the executable
|
|
44 in the runtime directory.
|
|
45
|
|
46 If you move your executable AND want to put your "_vimrc" and "_gvimrc" files
|
|
47 somewhere else, you must set $VIM to where you vimrc files are, and set
|
|
48 $VIMRUNTIME to the runtime files. Example: >
|
|
49 set VIM=C:\usr\piet
|
|
50 set VIMRUNTIME=E:\vim\vim54
|
|
51 Will find "c:\user\piet\_vimrc" and the runtime files in "e:\vim\vim54".
|
|
52
|
|
53 See |$VIM| and |$VIMRUNTIME| for more information.
|
|
54
|
|
55 Under Windows 95, you can set $VIM in your C:\autoexec.bat file. For
|
|
56 example: >
|
|
57 set VIM=D:\vim
|
|
58 Under Windows NT, you can set environment variables for each user separately
|
|
59 under "Start/Settings/Control Panel->System", or through the properties in the
|
|
60 menu of "My Computer", under the Environment Tab.
|
|
61
|
|
62 ==============================================================================
|
|
63 2. Using backslashes *dos-backslash*
|
|
64
|
|
65 Using backslashes in file names can be a problem. Vi halves the number of
|
|
66 backslashes for some commands. Vim is a bit more tolerant and does not remove
|
|
67 backslashes from a file name, so ":e c:\foo\bar" works as expected. But when
|
|
68 a backslash occurs before a special character (space, comma, backslash, etc.),
|
|
69 Vim removes the backslash. Use slashes to avoid problems: ":e c:/foo/bar"
|
|
70 works fine. Vim replaces the slashes with backslashes internally to avoid
|
|
71 problems with some MS-DOS programs and Win32 programs.
|
|
72
|
|
73 When you prefer to use forward slashes, set the 'shellslash' option. Vim will
|
|
74 then replace backslashes with forward slashes when expanding file names. This
|
|
75 is especially useful when using a Unix-like 'shell'.
|
|
76
|
|
77 ==============================================================================
|
|
78 3. Standard mappings *dos-standard-mappings*
|
|
79
|
819
|
80 The mappings for CTRL-PageUp and CTRL-PageDown have been removed, they now
|
|
81 jump to the next or previous tab page |<C-PageUp>| |<C-PageDown>|
|
7
|
82
|
819
|
83 If you want them to move to the first and last screen line you can use these
|
|
84 mappings:
|
7
|
85
|
|
86 key key code Normal/Visual mode Insert mode ~
|
|
87 CTRL-PageUp <M-N><M-C-D> H <C-O>H
|
|
88 CTRL-PageDown <M-N>v L$ <C-O>L<C-O>$
|
|
89
|
|
90 Additionally, these keys are available for copy/cut/paste. In the Win32
|
|
91 and DJGPP versions, they also use the clipboard.
|
|
92
|
|
93 Shift-Insert paste text (from clipboard) *<S-Insert>*
|
|
94 CTRL-Insert copy Visual text (to clipboard) *<C-Insert>*
|
|
95 CTRL-Del cut Visual text (to clipboard) *<C-Del>*
|
|
96 Shift-Del cut Visual text (to clipboard) *<S-Del>*
|
|
97
|
|
98 These mappings accomplish this (Win32 and DJGPP versions of Vim):
|
|
99
|
|
100 key key code Normal Visual Insert ~
|
|
101 Shift-Insert <M-N><M-T> "*P "-d"*P <C-R><C-O>*
|
|
102 CTRL-Insert <M-N><M-U> "*y
|
|
103 Shift-Del <M-N><M-W> "*d
|
|
104 CTRL-Del <M-N><M-X> "*d
|
|
105
|
|
106 Or these mappings (non-Win32 version of Vim):
|
|
107
|
|
108 key key code Normal Visual Insert ~
|
|
109 Shift-Insert <M-N><M-T> P "-dP <C-R><C-O>"
|
|
110 CTRL-Insert <M-N><M-U> y
|
|
111 Shift-Del <M-N><M-W> d
|
|
112 CTRL-Del <M-N><M-X> d
|
|
113
|
|
114 When the clipboard is supported, the "* register is used.
|
|
115
|
|
116 ==============================================================================
|
|
117 4. Screen output and colors *dos-colors*
|
|
118
|
|
119 The default output method for the screen is to use bios calls. This works
|
|
120 right away on most systems. You do not need ansi.sys. You can use ":mode" to
|
|
121 set the current screen mode. See |:mode|.
|
|
122
|
|
123 To change the screen colors that Vim uses, you can use the |:highlight|
|
|
124 command. The Normal highlight group specifies the colors Vim uses for normal
|
|
125 text. For example, to get grey text on a blue background: >
|
|
126 :hi Normal ctermbg=Blue ctermfg=grey
|
|
127 See |highlight-groups| for other groups that are available.
|
|
128
|
|
129 A DOS console does not support attributes like bold and underlining. You can
|
667
|
130 set the color used in five modes with nine terminal options. Note that this
|
|
131 is not necessary since you can set the color directly with the ":highlight"
|
7
|
132 command; these options are for backward compatibility with older Vim versions.
|
|
133 The |'highlight'| option specifies which of the five modes is used for which
|
|
134 action. >
|
|
135
|
|
136 :set t_mr=^V^[\|xxm start of invert mode
|
|
137 :set t_md=^V^[\|xxm start of bold mode
|
|
138 :set t_me=^V^[\|xxm back to normal text
|
|
139
|
|
140 :set t_so=^V^[\|xxm start of standout mode
|
|
141 :set t_se=^V^[\|xxm back to normal text
|
|
142
|
|
143 :set t_us=^V^[\|xxm start of underline mode
|
|
144 :set t_ue=^V^[\|xxm back to normal text
|
|
145
|
|
146 :set t_ZH=^V^[\|xxm start of italics mode
|
|
147 :set t_ZR=^V^[\|xxm back to normal text
|
|
148
|
|
149 ^V is CTRL-V
|
|
150 ^[ is <Esc>
|
|
151 You must replace xx with a decimal code, which is the foreground color number
|
|
152 and background color number added together:
|
|
153
|
|
154 COLOR FOREGROUND BACKGROUND ~
|
|
155 Black 0 0
|
|
156 DarkBlue 1 16
|
|
157 DarkGreen 2 32
|
|
158 DarkCyan 3 48
|
|
159 DarkRed 4 64
|
|
160 DarkMagenta 5 80
|
|
161 Brown, DarkYellow 6 96
|
|
162 LightGray 7 112
|
|
163 DarkGray 8 128 *
|
|
164 Blue, LightBlue 9 144 *
|
|
165 Green, LightGreen 10 160 *
|
|
166 Cyan, LightCyan 11 176 *
|
|
167 Red, LightRed 12 192 *
|
|
168 Magenta, LightMagenta 13 208 *
|
|
169 Yellow, LightYellow 14 224 *
|
|
170 White 15 240 *
|
|
171
|
|
172 * Depending on the display mode, the color codes above 128 may not be
|
|
173 available, and code 128 will make the text blink.
|
|
174
|
|
175 When you use 0, the color is reset to the one used when you started Vim
|
|
176 (usually 7, lightgray on black, but you can override this. If you have
|
|
177 overridden the default colors in a command prompt, you may need to adjust
|
|
178 some of the highlight colors in your vimrc---see below).
|
|
179 This is the default for t_me.
|
|
180
|
|
181 The defaults for the various highlight modes are:
|
|
182 t_mr 112 reverse mode: Black text (0) on LightGray (112)
|
|
183 t_md 15 bold mode: White text (15) on Black (0)
|
|
184 t_me 0 normal mode (revert to default)
|
|
185
|
|
186 t_so 31 standout mode: White (15) text on DarkBlue (16)
|
|
187 t_se 0 standout mode end (revert to default)
|
|
188
|
|
189 t_czh 225 italic mode: DarkBlue text (1) on Yellow (224)
|
|
190 t_czr 0 italic mode end (revert to default)
|
|
191
|
|
192 t_us 67 underline mode: DarkCyan text (3) on DarkRed (64)
|
|
193 t_ue 0 underline mode end (revert to default)
|
|
194
|
|
195 These colors were chosen because they also look good when using an inverted
|
|
196 display, but you can change them to your liking.
|
|
197
|
|
198 Example: >
|
|
199 :set t_mr=^V^[\|97m " start of invert mode: DarkBlue (1) on Brown (96)
|
|
200 :set t_md=^V^[\|67m " start of bold mode: DarkCyan (3) on DarkRed (64)
|
|
201 :set t_me=^V^[\|112m " back to normal mode: Black (0) on LightGray (112)
|
|
202
|
|
203 :set t_so=^V^[\|37m " start of standout mode: DarkMagenta (5) on DarkGreen
|
|
204 (32)
|
|
205 :set t_se=^V^[\|112m " back to normal mode: Black (0) on LightGray (112)
|
|
206
|
|
207 ==============================================================================
|
|
208 5. File formats *dos-file-formats*
|
|
209
|
|
210 If the 'fileformat' option is set to "dos" (which is the default), Vim accepts
|
|
211 a single <NL> or a <CR><NL> pair for end-of-line (<EOL>). When writing a
|
|
212 file, Vim uses <CR><NL>. Thus, if you edit a file and write it, Vim replaces
|
|
213 <NL> with <CR><NL>.
|
|
214
|
|
215 If the 'fileformat' option is set to "unix", Vim uses a single <NL> for <EOL>
|
|
216 and shows <CR> as ^M.
|
|
217
|
|
218 You can use Vim to replace <NL> with <CR><NL> by reading in any mode and
|
|
219 writing in Dos mode (":se ff=dos").
|
|
220 You can use Vim to replace <CR><NL> with <NL> by reading in Dos mode and
|
|
221 writing in Unix mode (":se ff=unix").
|
|
222
|
|
223 Vim sets 'fileformat' automatically when 'fileformats' is not empty (which is
|
|
224 the default), so you don't really have to worry about what you are doing.
|
|
225 |'fileformat'| |'fileformats'|
|
|
226
|
|
227 If you want to edit a script file or a binary file, you should set the
|
|
228 'binary' option before loading the file. Script files and binary files may
|
|
229 contain single <NL> characters which Vim would replace with <CR><NL>. You can
|
|
230 set 'binary' automatically by starting Vim with the "-b" (binary) option.
|
|
231
|
|
232 ==============================================================================
|
|
233 6. :cd command *dos-:cd*
|
|
234
|
|
235 The ":cd" command recognizes the drive specifier and changes the current
|
|
236 drive. Use ":cd c:" to make drive C the active drive. Use ":cd d:\foo" to go
|
|
237 to the directory "foo" in the root of drive D. Vim also recognizes UNC names
|
|
238 if the system supports them; e.g., ":cd \\server\share\dir". |:cd|
|
|
239
|
|
240 ==============================================================================
|
|
241 7. Interrupting *dos-CTRL-Break*
|
|
242
|
|
243 Use CTRL-Break instead of CTRL-C to interrupt searches. Vim does not detect
|
|
244 the CTRL-C until it tries to read a key.
|
|
245
|
|
246 ==============================================================================
|
|
247 8. Temp files *dos-temp-files*
|
|
248
|
|
249 Only for the 16 bit and 32 bit DOS version:
|
|
250 Vim puts temporary files (for filtering) in the first of these directories
|
|
251 that exists and in which Vim can create a file:
|
|
252 $TMP
|
|
253 $TEMP
|
|
254 C:\TMP
|
|
255 C:\TEMP
|
|
256 current directory
|
|
257
|
|
258 For the Win32 version (both console and GUI):
|
|
259 Vim uses standard Windows functions to obtain a temporary file name (for
|
|
260 filtering). The first of these directories that exists and in which Vim can
|
|
261 create a file is used:
|
|
262 $TMP
|
|
263 $TEMP
|
|
264 current directory
|
|
265
|
|
266 ==============================================================================
|
|
267 9. Shell option default *dos-shell*
|
|
268
|
|
269 The default for the 'sh' ('shell') option is "command.com" on Windows 95 and
|
|
270 "cmd.exe" on Windows NT. If SHELL is defined, Vim uses SHELL instead, and if
|
|
271 SHELL is not defined but COMSPEC is, Vim uses COMSPEC. Vim starts external
|
|
272 commands with "<shell> /c <command_name>". Typing CTRL-Z starts a new command
|
|
273 subshell. Return to Vim with "exit". |'shell'| |CTRL-Z|
|
|
274
|
|
275 If you are running a third-party shell, you may need to set the
|
|
276 |'shellcmdflag'| ('shcf') and |'shellquote'| ('shq') or |'shellxquote'|
|
|
277 ('sxq') options. Unfortunately, this also depends on the version of Vim used.
|
|
278 For example, with the MKS Korn shell or with bash, the values of the options
|
|
279 should be:
|
|
280
|
|
281 DOS 16 bit DOS 32 bit Win32 ~
|
|
282 'shellcmdflag' -c -c -c
|
|
283 'shellquote' "
|
|
284 'shellxquote' "
|
|
285
|
|
286 For Dos 16 bit this starts the shell as:
|
|
287 <shell> -c "command name" >file
|
|
288 For Win32 as:
|
|
289 <shell> -c "command name >file"
|
|
290 For DOS 32 bit, DJGPP does this internally somehow.
|
|
291
|
|
292 When starting up, Vim checks for the presence of "sh" anywhere in the 'shell'
|
|
293 option. If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or
|
|
294 'shellxquote' options will be set as described above.
|
|
295
|
|
296 vim:tw=78:ts=8:ft=help:norl:
|