Bram Moolenaar | 3b1db36 | 2013-08-10 15:00:24 +0200 | [diff] [blame] | 1 | *os_msdos.txt* For Vim version 7.4. Last change: 2005 Mar 29 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 2 | |
| 3 | |
| 4 | VIM REFERENCE MANUAL by Bram Moolenaar |
| 5 | |
| 6 | |
| 7 | *msdos* *ms-dos* *MSDOS* *MS-DOS* |
| 8 | This file contains the particularities for the MS-DOS version of Vim. |
| 9 | |
| 10 | 1. Two versions for MS-DOS |msdos-versions| |
| 11 | 2. Known problems |msdos-problems| |
| 12 | 3. Long file names |msdos-longfname| |
| 13 | 4. Termcap codes |msdos-termcap| |
| 14 | 5. Shifted arrow keys |msdos-arrows| |
| 15 | 6. Filename extensions |msdos-fname-extensions| |
| 16 | 7. Memory usage and limitations |msdos-limitations| |
| 17 | 8. Symbolically linked files |msdos-linked-files| |
| 18 | 9. Copy/paste in a dos box |msdos-copy-paste| |
| 19 | |
| 20 | Additionally, there are a number of common Win32 and DOS items: |
| 21 | File locations |dos-locations| |
| 22 | Using backslashes |dos-backslash| |
| 23 | Standard mappings |dos-standard-mappings| |
| 24 | Screen output and colors |dos-colors| |
| 25 | File formats |dos-file-formats| |
| 26 | :cd command |dos-:cd| |
| 27 | Interrupting |dos-CTRL-Break| |
| 28 | Temp files |dos-temp-files| |
| 29 | Shell option default |dos-shell| |
| 30 | |
| 31 | For compiling Vim see src/INSTALL.pc. *msdos-compiling* |
| 32 | |
| 33 | ============================================================================== |
| 34 | 1. Two versions for MS-DOS *msdos-versions* |
| 35 | |
| 36 | There are two versions of Vim that can be used with MS-DOS machines: |
| 37 | |
| 38 | *dos16* |
| 39 | Dos16 version Can be used on any MS-DOS system, only uses up to 640 Kbyte of |
| 40 | memory. Also runs on OS/2, Windows 95, and NT. Excludes some |
| 41 | Vim-specific features (autocommands, syntax highlighting, |
| 42 | etc.). Recommended for use on pre-386 machines. |
| 43 | *dos32* |
| 44 | Dos32 version Requires 386 processor and a |DPMI| driver, uses all |
| 45 | available memory. Supports long file names and the Windows |
| 46 | clipboard, but NOT on Windows NT. Recommended for MS-DOS, |
| 47 | Windows 3.1 and Windows 95. |
| 48 | |
| 49 | There are also two versions that run under Windows: |
| 50 | Win32 version Requires Windows 95 or Windows NT, uses all available |
| 51 | memory, supports long file names, etc. Has some problems on |
| 52 | Windows 95. Recommended for Windows NT. See |os_win32.txt| |
| 53 | Win32 GUI Requirements like the Win32 version, but runs in its own |
| 54 | window, instead of a console. Has scrollbars, menu, etc. |
| 55 | Recommended for Windows 95 and Windows NT. See |gui-w32|. |
| 56 | |
| 57 | It is recommended to use the Dos32 or Win32 version. Although the Dos16 |
| 58 | version is able to edit very big files, it quickly runs out of memory when |
| 59 | making big changes. Disabling undo helps: ":set ul=-1". The screen updating |
| 60 | of the Dos16 version is the fastest of the three on DOS or Windows 95; on |
| 61 | Windows NT, the Win32 version is just as fast. |
| 62 | |
| 63 | *DPMI* |
| 64 | For the Dos32 version, you may need a DPMI driver when running in MS-DOS. If |
| 65 | you are running Windows or installed a clever memory manager, it will probably |
| 66 | work already. If you get the message "No DPMI", you need to install a DPMI |
| 67 | driver. Such a driver is included with the executable in CSDPMI4B.ZIP. Run |
| 68 | "cwsdpmi" just before starting Vim each time. Or you might want to include |
| 69 | "cwsdpmi -p" in your autoexec.bat to make it resident. The latest version of |
| 70 | "CSDPMI*.ZIP" can be obtained from: "ftp.neosoft.com:pub/users/s/sandmann". |
| 71 | |
| 72 | *minimal-features* |
| 73 | The 16 bit DOS version has been compiled with minimal features. Check the |
| 74 | |+feature-list| which ones are included (marked with a "T"). |
| 75 | You can include more features by editing feature.h and recompiling. |
| 76 | |
| 77 | ============================================================================== |
| 78 | 2. Known problems *msdos-problems* |
| 79 | |
| 80 | When using smartdrive (MS-DOS 6.x) with write-behind caching, it is possible |
| 81 | that Vim will try to create a swap file on a read-only file system (e.g. |
| 82 | write protected floppy). You will then be given the message > |
| 83 | A serious disk error has occurred .., Retry (r)? |
| 84 | There is nothing you can do but unprotect the floppy or switch off the |
| 85 | computer. Even CTRL-ALT-DEL will not get you out of this. This is really a |
| 86 | problem of smartdrive, not Vim. Smartdrive works fine otherwise. If this |
| 87 | bothers you, don't use the write-behind caching. |
| 88 | |
| 89 | Vim can't read swap files that have been opened already, unless the "share" |
| 90 | command has been used. If you see stray warnings for existing swap files, |
| 91 | include the "share" command in your config.sys or autoexec.bat (see your MSDOS |
| 92 | documentation). |
| 93 | |
| 94 | The Dos16 version can only have about 10 files open (in a window or hidden) at |
| 95 | one time. With more files you will get error messages when trying to read or |
| 96 | write a file, and for filter commands. Or Vim runs out of memory, and random |
| 97 | problems may result. |
| 98 | |
| 99 | The Dos32 version cannot have an unlimited number of files open at any one |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 100 | time. The limit depends on the setting of FILES in your CONFIG.SYS. This |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 101 | defaults to 15; if you need to edit a lot of files, you should increase this. |
| 102 | If you do not set FILES high enough, you can get strange errors, and shell |
| 103 | commands may cause a crash! |
| 104 | |
| 105 | The Dos32 version can work with long file names. When doing file name |
| 106 | completion, matches for the short file name will also be found. But this will |
| 107 | result in the corresponding long file name. For example, if you have the long |
| 108 | file name "this_is_a_test" with the short file name "this_i~1", the command |
| 109 | ":e *1" will start editing "this_is_a_test". |
| 110 | |
| 111 | When using the Dos32 version and you run into problems with DPMI support, |
| 112 | check if there is a program in your config.sys that eats resources. One |
| 113 | program known to cause this problem is "netx", which says "NetWare v. 3.26 |
| 114 | Workstation shell". Replace it with version 3.32 to fix the problem. |
| 115 | |
| 116 | The Dos32 version will parse its arguments to handle quotation. This is good |
| 117 | to edit a file with spaces in its name, for example: > |
| 118 | vim "program files\accessories\ppp.scp" |
| 119 | A side effect is that single quotes are removed. Insert a backslash to avoid |
| 120 | that. For example, to edit the file "fi'le.txt": > |
| 121 | vim fi\'le.txt |
| 122 | |
| 123 | ============================================================================== |
| 124 | 3. Long file names *msdos-longfname* |
| 125 | |
| 126 | If the Dos32 version is run on Windows 95, it can use long file names. It |
| 127 | will work by default. If you want to disable this, use this setting: |
| 128 | set LFN=N |
| 129 | You can put this in your autoexec.bat file. |
| 130 | |
| 131 | Note: If you have installed DJGPP on your machine, you probably have a |
| 132 | "djgpp.env" file, which contains "LFN=n". You need to use "LFN=Y" to switch |
| 133 | on using long file names then. |
| 134 | |
| 135 | ============================================================================== |
| 136 | 4. Termcap codes *msdos-termcap* |
| 137 | |
| 138 | If you want to use another output method (e.g., when using a terminal on a COM |
| 139 | port), set the terminal name to "pcansi". You can change the termcap options |
| 140 | when needed (see |terminal-options|). Note that the |
| 141 | normal IBM ansi.sys does not support all the codes of the builtin pcansi |
| 142 | terminal. If you use ansi.sys, you will need to delete the termcap entries |
| 143 | t_al and t_dl with > |
| 144 | :set t_al= t_dl= |
| 145 | Otherwise, the screen will not be updated correctly. It is better to use |
| 146 | nansi.sys, nnansi.sys, or the like instead of ansi.sys. |
| 147 | |
| 148 | If you want to use Vim on a terminal connected to a COM: port, reset the |
| 149 | 'bioskey' option. Otherwise the commands will be read from the PC keyboard. |
| 150 | CTRL-C and CTRL-P may not work correctly with 'bioskey' reset. |
| 151 | |
| 152 | ============================================================================== |
| 153 | 5. Shifted arrow keys *msdos-arrows* |
| 154 | |
| 155 | Use CTRL-arrow-left and CTRL-arrow-right instead of SHIFT-arrow-left and |
| 156 | SHIFT-arrow-right. The arrow-up and arrow-down cannot be used with SHIFT or |
| 157 | CTRL. |
| 158 | |
| 159 | ============================================================================== |
| 160 | 6. Filename extensions *msdos-fname-extensions* |
| 161 | |
| 162 | MS-DOS allows for only one file name extension. Therefore, when appending an |
| 163 | extension, the '.' in the original file name is replaced with a '_', the name |
| 164 | is truncated to 8 characters, and the new extension (e.g., ".swp") is |
| 165 | appended. Two examples: "test.c" becomes "test_c.bak", "thisisat.est" |
| 166 | becomes "thisisat.bak". To reduce these problems, the default for |
| 167 | 'backupext' is "~" instead of ".bak". The backup file for "thisisat.est" |
| 168 | then becomes "thisisat.es~". The 'shortname' option is not available, |
| 169 | because it would always be set. |
| 170 | |
| 171 | ============================================================================== |
| 172 | 7. Memory usage and limitations *msdos-limitations* |
| 173 | |
| 174 | A swap file is used to store most of the text. You should be able to edit |
| 175 | very large files. However, memory is used for undo and other things. If you |
| 176 | delete a lot of text, you can still run out of memory in the Dos16 version. |
| 177 | |
| 178 | If Vim gives an "Out of memory" warning, you should stop editing. The result |
| 179 | of further editing actions is unpredictable. Setting 'undolevels' to 0 saves |
| 180 | some memory. Running the maze macros on a big maze is guaranteed to run out |
| 181 | of memory, because each change is remembered for undo. In this case set |
| 182 | 'undolevels' to a negative number. This will switch off undo completely. |
| 183 | |
| 184 | *msdos-clipboard-limits* |
| 185 | In the Dos32 version, extended memory is used to avoid these problems. |
| 186 | However, if you are using the clipboard, you can still run into memory |
| 187 | limitations because the Windows clipboard can only communicate with Vim using |
| 188 | Dos memory. This means that the largest amount of text that can be sent to |
| 189 | or received from the Windows clipboard is limited by how much free Dos memory |
| 190 | is available on your system. |
| 191 | |
| 192 | You can usually maximize the amount of available Dos memory by adding the |
| 193 | following lines to Dos's "config.sys" file: > |
| 194 | |
| 195 | DOS=HIGH,UMB |
| 196 | DEVICE=C:\WINDOWS\himem.sys |
| 197 | DEVICE=C:\WINDOWS\emm386.exe RAM |
| 198 | |
| 199 | Modifying config.sys in this way will also help to make more memory available |
| 200 | for the Dos16 version, if you are using that. |
| 201 | |
| 202 | In the Dos16 version the line length is limited to about 32000 characters. |
| 203 | When reading a file the lines are automatically split. But editing a line |
| 204 | in such a way that it becomes too long may give unexpected results. |
| 205 | |
| 206 | ============================================================================== |
| 207 | 8. Symbolically linked files *msdos-linked-files* |
| 208 | |
| 209 | When using Vim to edit a symbolically linked file on a unix NFS file server, |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 210 | you may run into problems. When writing the file, Vim does not "write |
| 211 | through" the symlink. Instead, it deletes the symbolic link and creates a new |
| 212 | file in its place. |
| 213 | |
| 214 | On Unix, Vim is prepared for links (symbolic or hard). A backup copy of the |
| 215 | original file is made and then the original file is overwritten. This assures |
| 216 | that all properties of the file remain the same. On non-Unix systems, the |
| 217 | original file is renamed and a new file is written. Only the protection bits |
| 218 | are set like the original file. However, this doesn't work properly when |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 219 | working on an NFS-mounted file system where links and other things exist. The |
| 220 | only way to fix this in the current version is not making a backup file, by |
| 221 | ":set nobackup nowritebackup" |'writebackup'| |
| 222 | |
Bram Moolenaar | d4755bb | 2004-09-02 19:12:26 +0000 | [diff] [blame] | 223 | A similar problem occurs when mounting a Unix filesystem through Samba or a |
| 224 | similar system. When Vim creates a new file it will get the default user ID |
| 225 | for the mounted file system. This may be different from the original user ID. |
| 226 | To avoid this set the 'backupcopy' option to "yes". |
| 227 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 228 | ============================================================================== |
| 229 | 9. Copy/paste in a dos box *msdos-copy-paste* |
| 230 | |
| 231 | *E450* *E451* *E452* *E453* *E454* |
| 232 | The 32 bit version can copy/paste from/to the Windows clipboard directly. Use |
| 233 | the "* register. Large amounts of text can be copied this way, but it must be |
| 234 | possible to allocate memory for it, see |msdos-clipboard-limits|. When moving |
| 235 | text from one Vim to another, the type of the selection |
| 236 | (characterwise/linewise/blockwise) is passed on. |
| 237 | |
| 238 | In other versions, the following can be used. |
| 239 | |
| 240 | (posted to comp.editors by John Velman <velman@igate1.hac.com>) |
| 241 | |
| 242 | How to copy/paste text from/to vim in a dos box: |
| 243 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 244 | 1) To get VIM to run in a window, instead of full screen, press alt+enter. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 245 | This toggles back and forth between full screen and a dos window. |
| 246 | NOTE: In Windows 95 you must have the property "Fast Pasting" unchecked! |
| 247 | In the properties dialog box for the MS-DOS window, go to "MS-DOS |
| 248 | Prompt/Misc/Fast pasting" and make sure that it is NOT checked. |
| 249 | To make this permanent, change the properties for |
| 250 | "\windows\system\conagent.exe" (from Philip Nelson, unverified). |
| 251 | |
| 252 | 2) To paste something _into_ Vim, put Vim in insert mode. |
| 253 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 254 | 3) Put the text you want to paste on the windows clipboard. |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 255 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 256 | 4) Click the control box in the upper left of the Vim window. (This looks |
| 257 | like a big minus sign.) If you don't want to use the mouse, you can get |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 258 | this with alt+spacebar. |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 259 | 5) On the resulting dropdown menu choose "Edit". |
| 260 | 6) On the child dropdown menu choose "Paste". |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 261 | |
| 262 | To copy something from the Vim window to the clipboard, |
| 263 | |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 264 | 1) Select the control box to get the control drop down menu. |
| 265 | 2) Select "Edit". |
| 266 | 3) Select "Mark". |
| 267 | 4) Using either the keys or the mouse, select the part of the Vim window that |
| 268 | you want to copy. To use the keys, use the arrow keys, and hold down shift |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 269 | to extend the selection. |
Bram Moolenaar | 402d2fe | 2005-04-15 21:00:38 +0000 | [diff] [blame] | 270 | 5) When you've completed your selection, press 'enter'. The selection |
| 271 | is now in the windows clipboard. By the way, this can be any |
| 272 | rectangular selection, for example columns 4-25 in rows 7-10. It can |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 273 | include anything in the VIM window: the output of a :!dir, for |
| 274 | example. |
| 275 | |
| 276 | vim:tw=78:ts=8:ft=help:norl: |