mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			277 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			277 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
*os_msdos.txt*  For Vim version 7.1a.  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:
 |