51db5b9267
Signed-off-by: shenwenjie <shenwenjie@sensetime.com>
276 lines
13 KiB
Text
276 lines
13 KiB
Text
*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:
|