OS_DOS

*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-PageUpCTRL-PageDown 的原有映射已经被取消了,现在它们的功能是跳转到下
一个或者前一个标签页 |<C-PageUp>| |<C-PageDown>|

如果你想要让它们移动到屏幕行的首行和末行,这样映射:

键		键码		正常/可视模式       插入模式 
CTRL-PageUp	<M-N><M-C-D>	    H		    <C-O>H
CTRL-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>		"*d
CTRL-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>		d
CTRL-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