| *os_msdos.txt* For Vim version 7.4. Last change: 2005 Mar 29 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| |
| |
| *msdos* *ms-dos* *MSDOS* *MS-DOS* |
| This file contains the particularities for the MS-DOS version of Vim. |
| |
| 1. Two versions for MS-DOS |msdos-versions| |
| 2. Known problems |msdos-problems| |
| 3. Long file names |msdos-longfname| |
| 4. Termcap codes |msdos-termcap| |
| 5. Shifted arrow keys |msdos-arrows| |
| 6. Filename extensions |msdos-fname-extensions| |
| 7. Memory usage and limitations |msdos-limitations| |
| 8. Symbolically linked files |msdos-linked-files| |
| 9. Copy/paste in a dos box |msdos-copy-paste| |
| |
| Additionally, there are a number of common Win32 and DOS items: |
| File locations |dos-locations| |
| Using backslashes |dos-backslash| |
| Standard mappings |dos-standard-mappings| |
| Screen output and colors |dos-colors| |
| File formats |dos-file-formats| |
| :cd command |dos-:cd| |
| Interrupting |dos-CTRL-Break| |
| Temp files |dos-temp-files| |
| Shell option default |dos-shell| |
| |
| For compiling Vim see src/INSTALL.pc. *msdos-compiling* |
| |
| ============================================================================== |
| 1. Two versions for MS-DOS *msdos-versions* |
| |
| There are two versions of Vim that can be used with MS-DOS machines: |
| |
| *dos16* |
| Dos16 version Can be used on any MS-DOS system, only uses up to 640 Kbyte of |
| memory. Also runs on OS/2, Windows 95, and NT. Excludes some |
| Vim-specific features (autocommands, syntax highlighting, |
| etc.). Recommended for use on pre-386 machines. |
| *dos32* |
| Dos32 version Requires 386 processor and a |DPMI| driver, uses all |
| available memory. Supports long file names and the Windows |
| clipboard, but NOT on Windows NT. Recommended for MS-DOS, |
| Windows 3.1 and Windows 95. |
| |
| There are also two versions that run under Windows: |
| Win32 version Requires Windows 95 or Windows NT, uses all available |
| memory, supports long file names, etc. Has some problems on |
| Windows 95. Recommended for Windows NT. See |os_win32.txt| |
| Win32 GUI Requirements like the Win32 version, but runs in its own |
| window, instead of a console. Has scrollbars, menu, etc. |
| Recommended for Windows 95 and Windows NT. See |gui-w32|. |
| |
| It is recommended to use the Dos32 or Win32 version. Although the Dos16 |
| version is able to edit very big files, it quickly runs out of memory when |
| making big changes. Disabling undo helps: ":set ul=-1". The screen updating |
| of the Dos16 version is the fastest of the three on DOS or Windows 95; on |
| Windows NT, the Win32 version is just as fast. |
| |
| *DPMI* |
| For the Dos32 version, you may need a DPMI driver when running in MS-DOS. If |
| you are running Windows or installed a clever memory manager, it will probably |
| work already. If you get the message "No DPMI", you need to install a DPMI |
| driver. Such a driver is included with the executable in CSDPMI4B.ZIP. Run |
| "cwsdpmi" just before starting Vim each time. Or you might want to include |
| "cwsdpmi -p" in your autoexec.bat to make it resident. The latest version of |
| "CSDPMI*.ZIP" can be obtained from: "ftp.neosoft.com:pub/users/s/sandmann". |
| |
| *minimal-features* |
| The 16 bit DOS version has been compiled with minimal features. Check the |
| |+feature-list| which ones are included (marked with a "T"). |
| You can include more features by editing feature.h and recompiling. |
| |
| ============================================================================== |
| 2. Known problems *msdos-problems* |
| |
| When using smartdrive (MS-DOS 6.x) with write-behind caching, it is possible |
| that Vim will try to create a swap file on a read-only file system (e.g. |
| write protected floppy). You will then be given the message > |
| A serious disk error has occurred .., Retry (r)? |
| There is nothing you can do but unprotect the floppy or switch off the |
| computer. Even CTRL-ALT-DEL will not get you out of this. This is really a |
| problem of smartdrive, not Vim. Smartdrive works fine otherwise. If this |
| bothers you, don't use the write-behind caching. |
| |
| Vim can't read swap files that have been opened already, unless the "share" |
| command has been used. If you see stray warnings for existing swap files, |
| include the "share" command in your config.sys or autoexec.bat (see your MSDOS |
| documentation). |
| |
| The Dos16 version can only have about 10 files open (in a window or hidden) at |
| one time. With more files you will get error messages when trying to read or |
| write a file, and for filter commands. Or Vim runs out of memory, and random |
| problems may result. |
| |
| The Dos32 version cannot have an unlimited number of files open at any one |
| time. The limit depends on the setting of FILES in your CONFIG.SYS. This |
| defaults to 15; if you need to edit a lot of files, you should increase this. |
| If you do not set FILES high enough, you can get strange errors, and shell |
| commands may cause a crash! |
| |
| The Dos32 version can work with long file names. When doing file name |
| completion, matches for the short file name will also be found. But this will |
| result in the corresponding long file name. For example, if you have the long |
| file name "this_is_a_test" with the short file name "this_i~1", the command |
| ":e *1" will start editing "this_is_a_test". |
| |
| When using the Dos32 version and you run into problems with DPMI support, |
| check if there is a program in your config.sys that eats resources. One |
| program known to cause this problem is "netx", which says "NetWare v. 3.26 |
| Workstation shell". Replace it with version 3.32 to fix the problem. |
| |
| The Dos32 version will parse its arguments to handle quotation. This is good |
| to edit a file with spaces in its name, for example: > |
| vim "program files\accessories\ppp.scp" |
| A side effect is that single quotes are removed. Insert a backslash to avoid |
| that. For example, to edit the file "fi'le.txt": > |
| vim fi\'le.txt |
| |
| ============================================================================== |
| 3. Long file names *msdos-longfname* |
| |
| If the Dos32 version is run on Windows 95, it can use long file names. It |
| will work by default. If you want to disable this, use this setting: |
| set LFN=N |
| You can put this in your autoexec.bat file. |
| |
| Note: If you have installed DJGPP on your machine, you probably have a |
| "djgpp.env" file, which contains "LFN=n". You need to use "LFN=Y" to switch |
| on using long file names then. |
| |
| ============================================================================== |
| 4. Termcap codes *msdos-termcap* |
| |
| If you want to use another output method (e.g., when using a terminal on a COM |
| port), set the terminal name to "pcansi". You can change the termcap options |
| when needed (see |terminal-options|). Note that the |
| normal IBM ansi.sys does not support all the codes of the builtin pcansi |
| terminal. If you use ansi.sys, you will need to delete the termcap entries |
| t_al and t_dl with > |
| :set t_al= t_dl= |
| Otherwise, the screen will not be updated correctly. It is better to use |
| nansi.sys, nnansi.sys, or the like instead of ansi.sys. |
| |
| If you want to use Vim on a terminal connected to a COM: port, reset the |
| 'bioskey' option. Otherwise the commands will be read from the PC keyboard. |
| CTRL-C and CTRL-P may not work correctly with 'bioskey' reset. |
| |
| ============================================================================== |
| 5. Shifted arrow keys *msdos-arrows* |
| |
| Use CTRL-arrow-left and CTRL-arrow-right instead of SHIFT-arrow-left and |
| SHIFT-arrow-right. The arrow-up and arrow-down cannot be used with SHIFT or |
| CTRL. |
| |
| ============================================================================== |
| 6. Filename extensions *msdos-fname-extensions* |
| |
| MS-DOS allows for only one file name extension. Therefore, when appending an |
| extension, the '.' in the original file name is replaced with a '_', the name |
| is truncated to 8 characters, and the new extension (e.g., ".swp") is |
| appended. Two examples: "test.c" becomes "test_c.bak", "thisisat.est" |
| becomes "thisisat.bak". To reduce these problems, the default for |
| 'backupext' is "~" instead of ".bak". The backup file for "thisisat.est" |
| then becomes "thisisat.es~". The 'shortname' option is not available, |
| because it would always be set. |
| |
| ============================================================================== |
| 7. Memory usage and limitations *msdos-limitations* |
| |
| A swap file is used to store most of the text. You should be able to edit |
| very large files. However, memory is used for undo and other things. If you |
| delete a lot of text, you can still run out of memory in the Dos16 version. |
| |
| If Vim gives an "Out of memory" warning, you should stop editing. The result |
| of further editing actions is unpredictable. Setting 'undolevels' to 0 saves |
| some memory. Running the maze macros on a big maze is guaranteed to run out |
| of memory, because each change is remembered for undo. In this case set |
| 'undolevels' to a negative number. This will switch off undo completely. |
| |
| *msdos-clipboard-limits* |
| In the Dos32 version, extended memory is used to avoid these problems. |
| However, if you are using the clipboard, you can still run into memory |
| limitations because the Windows clipboard can only communicate with Vim using |
| Dos memory. This means that the largest amount of text that can be sent to |
| or received from the Windows clipboard is limited by how much free Dos memory |
| is available on your system. |
| |
| You can usually maximize the amount of available Dos memory by adding the |
| following lines to Dos's "config.sys" file: > |
| |
| DOS=HIGH,UMB |
| DEVICE=C:\WINDOWS\himem.sys |
| DEVICE=C:\WINDOWS\emm386.exe RAM |
| |
| Modifying config.sys in this way will also help to make more memory available |
| for the Dos16 version, if you are using that. |
| |
| In the Dos16 version the line length is limited to about 32000 characters. |
| When reading a file the lines are automatically split. But editing a line |
| in such a way that it becomes too long may give unexpected results. |
| |
| ============================================================================== |
| 8. Symbolically linked files *msdos-linked-files* |
| |
| When using Vim to edit a symbolically linked file on a unix NFS file server, |
| you may run into problems. When writing the file, Vim does not "write |
| through" the symlink. Instead, it deletes the symbolic link and creates a new |
| file in its place. |
| |
| On Unix, Vim is prepared for links (symbolic or hard). A backup copy of the |
| original file is made and then the original file is overwritten. This assures |
| that all properties of the file remain the same. On non-Unix systems, the |
| original file is renamed and a new file is written. Only the protection bits |
| are set like the original file. However, this doesn't work properly when |
| working on an NFS-mounted file system where links and other things exist. The |
| only way to fix this in the current version is not making a backup file, by |
| ":set nobackup nowritebackup" |'writebackup'| |
| |
| A similar problem occurs when mounting a Unix filesystem through Samba or a |
| similar system. When Vim creates a new file it will get the default user ID |
| for the mounted file system. This may be different from the original user ID. |
| To avoid this set the 'backupcopy' option to "yes". |
| |
| ============================================================================== |
| 9. Copy/paste in a dos box *msdos-copy-paste* |
| |
| *E450* *E451* *E452* *E453* *E454* |
| The 32 bit version can copy/paste from/to the Windows clipboard directly. Use |
| the "* register. Large amounts of text can be copied this way, but it must be |
| possible to allocate memory for it, see |msdos-clipboard-limits|. When moving |
| text from one Vim to another, the type of the selection |
| (characterwise/linewise/blockwise) is passed on. |
| |
| In other versions, the following can be used. |
| |
| (posted to comp.editors by John Velman <velman@igate1.hac.com>) |
| |
| How to copy/paste text from/to vim in a dos box: |
| |
| 1) To get VIM to run in a window, instead of full screen, press alt+enter. |
| This toggles back and forth between full screen and a dos window. |
| NOTE: In Windows 95 you must have the property "Fast Pasting" unchecked! |
| In the properties dialog box for the MS-DOS window, go to "MS-DOS |
| Prompt/Misc/Fast pasting" and make sure that it is NOT checked. |
| To make this permanent, change the properties for |
| "\windows\system\conagent.exe" (from Philip Nelson, unverified). |
| |
| 2) To paste something _into_ Vim, put Vim in insert mode. |
| |
| 3) Put the text you want to paste on the windows clipboard. |
| |
| 4) Click the control box in the upper left of the Vim window. (This looks |
| like a big minus sign.) If you don't want to use the mouse, you can get |
| this with alt+spacebar. |
| 5) On the resulting dropdown menu choose "Edit". |
| 6) On the child dropdown menu choose "Paste". |
| |
| To copy something from the Vim window to the clipboard, |
| |
| 1) Select the control box to get the control drop down menu. |
| 2) Select "Edit". |
| 3) Select "Mark". |
| 4) Using either the keys or the mouse, select the part of the Vim window that |
| you want to copy. To use the keys, use the arrow keys, and hold down shift |
| to extend the selection. |
| 5) When you've completed your selection, press 'enter'. The selection |
| is now in the windows clipboard. By the way, this can be any |
| rectangular selection, for example columns 4-25 in rows 7-10. It can |
| include anything in the VIM window: the output of a :!dir, for |
| example. |
| |
| vim:tw=78:ts=8:ft=help:norl: |