| 
									
										
										
										
											2008-08-09 17:55:22 +00:00
										 |  |  | *os_msdos.txt*  For Vim version 7.2.  Last change: 2005 Mar 29 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		  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 | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | time.  The limit depends on the setting of FILES in your CONFIG.SYS.  This | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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, | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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'| | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | 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". | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | ============================================================================== | 
					
						
							|  |  |  | 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: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | 1) To get VIM to run in a window, instead of full screen, press alt+enter. | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |    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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | 3) Put the text you want to paste on the windows clipboard. | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |    this with alt+spacebar. | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | 5) On the resulting dropdown menu choose "Edit". | 
					
						
							|  |  |  | 6) On the child dropdown menu choose "Paste". | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | To copy something from the Vim window to the clipboard, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |    to extend the selection. | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |    include anything in the VIM window: the output of a :!dir, for | 
					
						
							|  |  |  |    example. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  vim:tw=78:ts=8:ft=help:norl: |