*os_dos.txt* For Vim version 7.1. 最后更新: 2006年3月23日 VIM 参 考 手 册 作者:Bram Moolenaar 译者: Dasn http://vimcdoc.sf.net *dos* *DOS* 本文描述 MS-DOS 和 Win32 版本共有的特性。你还可以参考 |os_win32.txt| 和 |os_msdos.txt|。 1. 文件位置 |dos-locations| 2. 使用反斜杠 |dos-backslash| 3. 标准映射 |dos-standard-mappings| 4. 屏幕的输出与颜色 |dos-colors| 5. 文件格式 |dos-file-formats| 6. :cd 命令 |dos-:cd| 7. 中止键 |dos-CTRL-Break| 8. 临时文件 |dos-temp-files| 9. 默认的 Shell 选项 |dos-shell|
1. 文件位置 *dos-locations* 只要你把 Vim 的可执行文件 (vim.exe)、帮助文件的目录 (doc) 以及语法文件的目录 (syntax) 放到同一个目录下,Vim 就可以工作了,不需要额外的配置,也不需要修改注 册表或添加环境变量,只要保证 Vim 目录包含在路径中,或者在桌面上做一个快捷方式 也可以。 通常 Vim 资源文件 ("_vimrc" 和 "_gvimrc") 放在 Vim 运行目录的上一级目录。如果 你想把它放在别的地方,可以设置环境变量指向资源文件所在的目录,例如:set VIM=C:\user\piet
Vim 会在 "c:\user\piet\" 下寻找资源文件。 备注: 多用户计算机需要这种功能,否则还是把 _vimrc 放在原来的地方简单些。 如果你改变了 vim.exe 的位置,就需要设置一下 $VIM 变量,这样相应的运行目录 (runtime directory) 就是 "$VIM/vim{version}
"。例如:set VIM=E:\vim
Vim 会在 "e:\vim\vim54" 寻找 5.4 版本运行时需要的文件。 备注: 强烈建议不要这样做。最好把可执行文件和运行时需要的文件放到同一个目录里。 如果你把可执行文件和资源文件都移动了,那么你必须用 $VIM 和 $VIMRUNTIME 两个环 境变量来分别指定资源文件 ("_vimrc" 和 "_gvimrc") 和运行目录的位置。例如:set VIM=C:\usr\piet
set VIMRUNTIME=E:\vim\vim54
这样,Vim 可以在 "c:\user\piet\" 目录下找到资源文件,在 "E:\vim\vim54" 目录下 找到运行时所需的文件。 要想了解更多内容,见 |$VIM| 和 |$VIMRUNTIME|。 在 Windows 95 上,你可以在 C:\autoexec.bat 里设置 $VIM。例如:set VIM=D:\vim
在 Windows NT 上,你可以在 "控制面板-系统" 或者右键单击 "我的电脑"-"属性", "环境变量" 选项卡里为每一个用户设置环境变量。
2.使用反斜杠 *dos-backslash* 在文件名 (这里是指带路径的文件名 译者) 里使用反斜杠 (\) 可能会出问题。在某些命 令里,VI 要用两个反斜杠表示反斜杠。Vim 在这一问题上宽容一些,它不会从文件名中 删除反斜杠,所以直接用 ":e c:\foo\bar" 就可以工作。但是当反斜杠出现在一些特殊 字符 (空格、逗号、反斜杠,等等) 前面时,Vim 就会删除反斜杠。用斜杠来避免问题: ":e c:/foo/bar",同样可以。Vim 会自动把斜杠替换成反斜杠以避免一些 MS-DOS 或 Win32 程序产生问题。 如果你喜欢用斜杠,就设置 'shellslash' 选项。Vim 就会在自动补全文件名的时候,用 斜杠代替反斜杠。这在你使用 UNIX 风格的 'shell' 时,特别有用。
3. 标准映射 *dos-standard-mappings*CTRL-PageUp
和CTRL-PageDown
的原有映射已经被取消了,现在它们的功能是跳转到下 一个或者前一个标签页 |<C-PageUp>| |<C-PageDown>| 如果你想要让它们移动到屏幕行的首行和末行,这样映射:键 键码 正常/可视模式 插入模式
CTRL-PageUp
<M-N>
<M-C-D>
H<C-O>
HCTRL-PageDown
<M-N>
v L$<C-O>
L<C-O>
$ 此外,下面这些键用于复制/剪切/粘贴。Win32 版本和 DJGPP 版本使用剪贴板。 Shift-Insert 粘贴文本 (从剪贴板) *<S-Insert>*CTRL-Insert
复制选择的文本 (到剪贴板) *<C-Insert>*CTRL-Del
剪切选择的文本 (到剪贴板) *<C-Del>* Shift-Del 剪切选择的文本 (到剪贴板) *<S-Del>* 这些键是这样映射的 (Win32 和 DJGPP 版本):键 键码 正常 可视 插入
Shift-Insert<M-N>
<M-T>
"*P "-d"*P<C-R>
<C-O>
*CTRL-Insert
<M-N>
<M-U>
"*y Shift-Del<M-N>
<M-W>
"*dCTRL-Del
<M-N>
<M-X>
"*d 或这样映射 (非 Win32 版本):键 键码 正常 可视 插入
Shift-Insert<M-N>
<M-T>
P "-dP<C-R>
<C-O>
"CTRL-Insert
<M-N>
<M-U>
y Shift-Del<M-N>
<M-W>
dCTRL-Del
<M-N>
<M-X>
d 如果系统支持剪贴板,Vim 就会使用 "* 寄存器。
4. 屏幕的输出与颜色 *dos-colors* 默认的写屏操作是直接调用 bios 完成的,这在大多数系统上可以工作。你不需要用 ansi.sys。你可以使用 ":mode" 命令设置当前屏幕模式。见 |:mode|。 要想改变 Vim 的颜色,可以使用 |:highlight| 命令。Normal 高亮组 (highlight group) 决定了 Vim 用什么颜色显示普通的文本。例如,要设置灰色字体和蓝色背景::hi Normal ctermbg=Blue ctermfg=grey
要了解其它可用的高亮组,参见 |highlight-groups|。 DOS 控制台不支持 "粗体"、"下划线" 之类的属性。你可以用九个终端选项来设置五种属 性值的颜色。备注: 因为你可以用 ":highlight" 命令直接设置颜色,这些选项并没有必 要。它们是为了兼容老版本的 Vim 而保留的。|'highlight'| 选项指定每种行为使用五 种模式中的哪一种。九个终端选项如下::set t_mr=^V^[\|xxm 反转模式开始
:set t_md=^V^[\|xxm 粗体模式开始
:set t_me=^V^[\|xxm 返回正常文本
:set t_so=^V^[\|xxm 突出模式开始
:set t_se=^V^[\|xxm 返回正常文本
:set t_us=^V^[\|xxm 下划线模式开始
:set t_ue=^V^[\|xxm 返回正常文本
:set t_ZH=^V^[\|xxm 斜体模式开始
:set t_ZR=^V^[\|xxm 返回正常文本
^V 代表
CTRL-V
^[ 代表<Esc>
(在输入上面的命令时,按下CTRL-V
Vim 只会显示 ^,这时不要输入 V,直接输入<Esc>
即可。译者) 你必须把上面命令里的 xx 换成相应的十进制数,这个数是前景色与背景色相加的和:颜色 前景色 背景色
黑色 0 0 暗蓝色 1 16 暗绿色 2 32 灰绿色 3 48 暗红色 4 64 暗紫红色 5 80 棕色,暗黄色 6 96 亮灰色 7 112 暗灰色 8 128 * 蓝色,天蓝色 9 144 * 绿色,浅绿色 10 160 * 青绿色,兰绿色 11 176 * 红色,亮红色 12 192 * 紫红色,亮紫红色 13 208 * 黄色,浅黄色 14 224 * 白色 15 240 * * 在某些显示模式下,大于 128 的颜色代码可能不起作用,并且代码 128 会使字体闪 烁。 代码 0 表示颜色恢复到起始状态 (起始状态的值通常是 7,亮灰色文字,黑色背景,但 你可以修改。如果你在命令行提示上修改了缺省的颜色,你可能需要在 vimrc 文件里调 整一些高亮的颜色--见下面)。 这就是 't_me' 的初始值。 下面是 Vim 默认高亮模式: t_mr 112 反转模式:黑色文字 (0),亮灰色背景 (112) t_md 15 粗体模式:白色文字 (15),黑色背景 (0) t_me 0 正常模式:正常模式 (返回默认状态) t_so 31 突出模式:白色文字 (15),暗蓝色背景 (16) t_se 0 突出模式结束 (返回默认状态) t_czh 225 斜体模式:暗蓝色文字 (1),黄色背景 (224) t_czr 0 斜体模式结束 (返回默认状态) t_us 67 下划线模式:灰绿色文字 (3),暗红色背景 (64) t_ue 0 下划线模式结束 (返回默认状态) 之所以选择这些颜色,是因为它们在使用反转显示的时候看起来比较舒服,但是你可以改 成你喜欢的颜色。 例如::set t_mr=^V^[\|97m " 启动反转模式:暗蓝色文字 (1) 棕色背景 (96)
:set t_md=^V^[\|67m " 启动粗体模式:灰绿色文字 (3) 暗红色背景 (64)
:set t_me=^V^[\|112m " 返回正常模式:黑色文字 (0) 亮灰色背景 (112)
:set t_so=^V^[\|37m " 启动突出模式:暗紫红色文字 (5) 暗绿色背景 (32)
:set t_se=^V^[\|112m " 返回正常模式:黑色文字 (0) 亮灰色背景 (112)
5. 文件格式 *dos-file-formats* 如果 'fileformat' 设置为 "dos" (这是默认设置),Vim 把<NL>
或<CR>
<NL>
当作行 尾符 (<EOL>
)。写入文件的时候,Vim 使用<CR>
<NL>
。这样,如果你编辑一个文件并且 保存了,那么 Vim 会把所有的<NL>
替换成<CR>
<NL>
。 如果 'fileformat' 设置为 "unix",Vim 则使用一个<NL>
作为<EOL>
,并且把<CR>
显示为 ^M。 你可以用 Vim 把<NL>
替换成<CR>
<NL>
: 在任何模式下读,保存成 Dos 格式 (":set ff=dos")。 你可以用 Vim 把<CR>
<NL>
替换成<NL>
: 在 Dos 模式下读,保存成 Unix 格式 (":set ff=unix")。 如果 'fileformats' 非空 (这是默认值),Vim 会自动设置 'fileformat' 的值,因此你 没有必要担心自己究竟在做什么。 |'fileformat'| |'fileformats'| 如果你要编辑一个脚本文件或者一个二进制文件,那么你应该在装载这个文件之前预先设 定 'binary' 选项。脚本和二进制文件可能包含<NL>
,Vim 要把它替换成<CR>
<NL>
。你 可以在启动时加上 "-b" 参数,这样可以自动置位 'binary' 选项。
6. :cd 命令 *dos-:cd* ":cd" 命令能识别驱动器符号,并且可以改变当前的驱动器。命令 ":cd c:" 使驱动器 C 成为当前驱动器。命令 ":cd d:\foo",切换当前目录到 "D 盘的 foo 目录下"。Vim 也 能识别 UNC 路径。例如:":cd \\server\share\dir"。 |:cd|
7. 中止键 *dos-CTRL-Break* 用CTRL-Break
来代替CTRL-C
中止查找操作。Vim 只有在接受输入时才能检测到CTRL-C
。
8. 临时文件 *dos-temp-files* 对于 16 位和 32 位的 DOS 版本: Vim 把临时文件 (用于过滤) 存放于下列目录中 (按顺序查找下列目录,一旦发现该目录 存在并且可以创建文件,就用它存放临时文件): $TMP $TEMP C:\TMP C:\TEMP 当前目录 对于 Win32 版本 (控制台和 GUI): Vim 用标准的 Windows API 函数来获取临时文件名 (用于过滤)。按顺序查找下列目录, 一旦发现该目录存在并且可以创建文件,就用它存放临时文件: $TMP $TEMP 当前目录
9. 默认的 Shell 选项 *dos-shell* 在 Windows 95 上,默认的 'sh' ( 'shell' ) 选项是 "command.com",而在 Windows NT 上是 "cmd.exe"。如果设置了环境变量 SHELL,Vim 就使用 SHELL 指定的程序,如果 没有设置 SHELL,而设置了环境变量 COMSPEC,Vim 就使用 COMSPEC。Vim 用 "<shell>
/c<command_name>
" 执行外部命令。输入CTRL-Z
调用一个子 Shell。要返回 Vim 输入 "exit"。 |'shell'| |CTRL-Z| 如果你运行一个第三方的 shell,你可能需要自己设置一下 |'shellcmdflag'| ('shcf') 和 |'shellquote'| ('shq') 或者 |'shellxquote'| ('sxq') 选项。不幸的是,这些选 项依赖于你所使用的 Vim 的版本。例如,要用 MKS Korn shell 或 bash,这些属性的值 应该设置成:DOS 16 位 DOS 32 位 Win32
'shellcmdflag' -c -c -c 'shellquote' " 'shellxquote' " 16 位的 Dos 版本这样启动 shell:<shell>
-c "命令" >file Win32 版本:<shell>
-c "命令 >file" 32 位 DOS 版本,DJGPP 在内部执行。 Vim 启动的时候检查 'shell' 选项的值是否能匹配 "sh" 子串 (在任何位置)。如果是, Vim 就按照上面的描述设置 'shellcmdflag' 和 'shellquote' 或 'shellxquote' 选 项。 vim:tw=78:ts=8:ft=help:norl:
Generated by vim2html on 2008年 03月 27日 星期四 17:04:45 CST