Skip to content

Commit d50fa60

Browse files
author
mingcheng
committed
updated vim7.3 chinese document
1 parent 7962432 commit d50fa60

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+16066
-2172
lines changed

vimfiles/doc/arabic.cnx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*arabic.txt* For Vim version 7.2. 最近更新: 2006年2月
1+
*arabic.txt* For Vim version 7.3. 最近更新: 2006年2月
22

33

44
VIM 参考手册 by Nadim Shaikli

vimfiles/doc/autocmd.cnx

+23-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*autocmd.txt* For Vim version 7.2. 最近更新: 2008年7月
1+
*autocmd.txt* For Vim version 7.3. 最近更新: 2010年7月
22

33

44
VIM 参考手册 by Bram Moolenaar
@@ -53,14 +53,15 @@
5353
*:au* *:autocmd*
5454
:au[tocmd] [group] {event} {pat} [nested] {cmd}
5555
{cmd} 加到 Vim 在匹配 {pat} 模式的文件执行 {event}
56-
事件时自动执行的命令列表。Vim 把 {cmd} 加到已有的自动
57-
命令之后,从而使自动命令的执行顺序与其定义的顺序相同。
56+
事件时自动执行的命令列表。见 |autocmd-patterns|
57+
Vim 总把 {cmd} 加到已有的自动命令之后,这样保证自动命
58+
令的执行顺序与其定义的顺序相同。
5859
关于 [nested],参见 |autocmd-nested|
5960

6061
特殊模式 <buffer> 或 <buffer=N> 定义局部于缓冲区的自动命令。见
6162
|autocmd-buflocal|
6263

63-
注意 ":autocmd" 的参数里的特殊字符 (例如,"%", "<cword>") 在定义时不会被扩展,
64+
注意 ":autocmd" 的参数里的特殊字符 (例如,"%""<cword>") 在定义时不会被扩展,
6465
而是在事件发生并执行 {cmd} 的时候才进行。唯一的例外是 "<sfile>" 在定义时扩展。
6566
例如:
6667
>
@@ -308,6 +309,7 @@ BufDelete 缓冲区列表删除缓冲区前。可能先调用 BufUnload
308309
也在缓冲区列表的某个缓冲区换名之前发生。
309310
注意: 执行此自动命令时,当前缓冲区 "%" 可能会
310311
和被删除的缓冲区 "<afile>" 及 "<afile>" 不同。
312+
此处不可切换到其它缓冲区,否则会引起问题。
311313
*BufEnter*
312314
BufEnter 进入缓冲区后。可用来设定有关文件类型的选项。也
313315
在开始编辑缓冲区时执行,它发生在 BufReadPost
@@ -352,6 +354,8 @@ BufUnload 缓冲区卸载前。此时,缓冲区里的文本将要被释放
352354
即将退出时,每个载入的缓冲区也会收到该事件。
353355
注意: 执行此自动命令时,当前缓冲区 "%" 可能会
354356
和被卸载的缓冲区 "<afile>" 不同。
357+
此处不可切换到其它缓冲区,否则会引起问题。
358+
退出时如果 v:dying 至少为 2,不触发此事件。
355359
*BufWinEnter*
356360
BufWinEnter 窗口显示缓冲区后。可以是新缓冲区载入 (处理完模
357361
式行之后) 或者隐藏缓冲区在窗口开始显示 (从而不
@@ -367,14 +371,16 @@ BufWinLeave 窗口删除缓冲区前。除非它在别的窗口仍然可见。
367371
之前激活。
368372
注意: 当此自动命令被执行时,当前缓冲区 "%" 可
369373
能会和被卸载的缓冲区 "<afile>" 不同。
374+
退出时如果 v:dying 至少为 2,不触发此事件。
370375
*BufWipeout*
371376
BufWipeout 完全删除缓冲区前。可能先调用 BufUnload 和
372377
BufDelete 事件 (如果缓冲区已经载入并且在缓冲区
373378
列表之中的话)。
374379
也在不在缓冲区列表的某个缓冲区换名之前发生。
375380
注意: 执行此自动命令时,当前缓冲区 "%" 可能会
376381
和被删除的缓冲区 "<afile>" 不同。
377-
*BufWrite* *BufWritePre*
382+
此处不可切换到其它缓冲区,否则会引起问题。
383+
*BufWrite* *BufWritePre*
378384
BufWrite 或 BufWritePre 把整个缓冲区写回到文件前。
379385
*BufWriteCmd*
380386
BufWriteCmd 把整个缓冲区写回到文件前。应执行把文件写回的操
@@ -465,7 +471,8 @@ FileChangedShell Vim 注意到文件的修改时间不同于编辑开始的时
465471
注意: 当此自动命令执行时,当前缓冲区 "%" 可能
466472
和被改变的缓冲区 "<afile>" 不同。
467473
注意: 执行的命令必须不能修改当前缓冲区,跳转到
468-
别的缓冲区,或者删除任何一个缓冲区。 *E246*
474+
别的缓冲区,或者删除任何一个缓冲区。
475+
*E246* *E811*
469476
注意: 该事件不会嵌套而引起无限循环。这意味着,
470477
FileChangedShell 事件所执行的命令不会引起别的
471478
FileChangedShell 事件。
@@ -561,9 +568,9 @@ MenuPopup 刚要显示弹出菜单前 (鼠标右键下)。用于根据光标
561568
QuickFixCmdPre 开始执行 quickfix 命令前 (|:make||:lmake|
562569
|:grep||:lgrep||:grepadd||:lgrepadd|
563570
|:vimgrep||:lvimgrep||:vimgrepadd|
564-
|:lvimgrepadd|)。对应的模式匹配执行的命令。如
565-
果使用 |:grep|'grepprg' 设为 "internal",
566-
仍然匹配 "grep"。
571+
|:lvimgrepadd||:cscope|)。对应的模式匹配执行
572+
的命令。如果使用 |:grep|'grepprg' 设为
573+
"internal",仍然匹配 "grep"。
567574
该命令不能用于设置 'makeprg''grepprg'
568575
量。
569576
如果该命令出错,不执行 quickfix 命令。
@@ -621,7 +628,9 @@ SwapExists 开始编辑文件时检测到交换文件已存在。只有此时
621628
'a' 中止,就像按了 CTRL-C 一样
622629
如果设为空串,则询问用户,就像没有 SwapExists
623630
自动命令那样。
624-
注意: 不要试图改变缓冲区,否则结果无法预测。
631+
*E812*
632+
此处不允许切换到其它缓冲区、为缓冲区换名或者更
633+
改目录。
625634
*Syntax*
626635
Syntax 设置 'syntax' 选项时。模式匹配的是语法名。
627636
<afile> 可以用来取得设置该选项的文件名,而
@@ -654,12 +663,14 @@ VimEnter 做完所有启动任务后,包括载入 .vimrc 文件,执行
654663
VimLeave 退出 Vim 前,刚写入 .viminfo 文件之后。和
655664
VimLeavePre 一样,只执行一次。
656665
要检测非正常的退出,使用 |v:dying|
666+
退出时如果 v:dying 至少为 2,不触发此事件。
657667
*VimLeavePre*
658668
VimLeavePre 退出 Vim 时刚写入 .viminfo 文件之前。如果匹配
659669
退出时当前缓冲区的名字匹配才会激活。只执行一
660670
次。通常指定 "*" 模式。 >
661671
:autocmd VimLeavePre * call CleanupStuff()
662672
< 要检测非正常的退出,使用 |v:dying|
673+
退出时如果 v:dying 至少为 2,不触发此事件。
663674
*VimResized*
664675
VimResized 在 Vim 窗口的大小改变后,因而 'lines' 和/或
665676
'columns' 也已随之改变。不过,启动时不用。
@@ -861,7 +872,7 @@ Vim 也可以非自动地执行自动命令。如果你修改了自动命令或
861872
*:doautoa* *:doautoall*
862873
:doautoa[ll] [group] {event} [fname]
863874
类似于 ":doautocmd",但对每个已载入的缓冲区应用自动命
864-
令。注意 {fname} 用于选择自动命令,而不是其应用的缓冲
875+
令。注意 [fname] 用于选择自动命令,而不是其应用的缓冲
865876
区。
866877
要小心: 不要用这个命令执行删除缓冲区、切换到别的缓冲区
867878
或者修改缓冲区内容的自动命令;否则结果不可预测。该命令
@@ -1041,7 +1052,7 @@ Vim 根据你定义的顺序执行所有匹配的自动命令。建议第一个
10411052
写文件的命令里应该用到这些参数。用 "!" 后缀时,|v:cmdbang| 参数为 1,不然其为
10421053
0。
10431054

1044-
示例参见 $VIMRUNTIME/plugin/netrw.vim。
1055+
示例参见 $VIMRUNTIME/plugin/netrwPlugin.vim。
10451056

10461057
==============================================================================
10471058
11. 屏蔽自动命令 *autocmd-disable*

vimfiles/doc/change.cnx

+42-19
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*change.txt* For Vim version 7.2. 最近更新: 2008年8月
1+
*change.txt* For Vim version 7.3. 最近更新: 2010年8月
22

33

44
VIM 参考手册 by Bram Moolenaar
@@ -260,7 +260,7 @@ LC_CTYPE 的值。
260260
g~{motion} 切换 {motion} 跨越的文本的大小写。{Vi 无此功能}
261261

262262
g~g~ *g~g~* *g~~*
263-
g~~ 切换当前行的大写。{Vi 无此功能}
263+
g~~ 切换当前行的大小写。{Vi 无此功能}
264264

265265
*v_~*
266266
{Visual}~ 切换高亮文本的大小写 (关于 {Visual}
@@ -436,8 +436,8 @@ CTRL-A 命令在宏命令里很有用。例如: 使用以下的步骤构造一
436436
{range} 指定的行用外部程序 {filter} 过滤。Vim 把可
437437
选的感叹号替换成最后一次使用的命令,并附加上可选的参数
438438
[arg]。Vim 把过滤命令的输出保存到临时文件,并把文
439-
件内容读到一个缓冲区里。Vim 使用 'shellredir' 选项把过
440-
滤程序的结果重定向到临时文件
439+
件内容读到一个缓冲区里 |tempfile|。Vim 使用
440+
'shellredir' 选项把过滤程序的结果重定向到临时文件
441441
不过,如果关闭了 'shelltemp' 选项且可以的话,使用管道
442442
机制 (Unix 上)。
443443
如果 'cpoptions' 包含 'R' 标志位,过滤行里的位置标记被
@@ -450,7 +450,8 @@ CTRL-A 命令在宏命令里很有用。例如: 使用以下的步骤构造一
450450
={motion}{motion} 跨越的行用 'equalprg' 选项指定的外部程序过
451451
滤。如果 'equalprg' 选项为空 (缺省),使用内部的排版机
452452
|C-indenting|。但如果 'indentexpr' 非空,则使用之。
453-
|indent-expression|
453+
|indent-expression|。如果 Vim 编译时不包含内部排版机
454+
制,作为最后的手段,使用外部的 "indent" 程序。
454455

455456
*==*
456457
== 和 ={motion} 类似,过滤 [count] 行。
@@ -459,6 +460,18 @@ CTRL-A 命令在宏命令里很有用。例如: 使用以下的步骤构造一
459460
{Visual}= 和 ={motion} 类似,过滤高亮行。{Vi 无此功能}
460461

461462

463+
*tempfile* *setuid*
464+
Vim 使用临时文件来处理过滤、执行比较和用于 tempname()。Unix 上,该文件会放在一
465+
个私人的目录里 (只能被当前用户访问),以防堵安全上的漏洞 (例如,符号链接攻击或
466+
文件被其他用户读取等)。Vim 退出时,自动删除该目录及之下的所有文件。如果 Vim 本
467+
身设置了 setuid 位,这样或许会有问题。临时文件由 setuid 用户拥有,但过滤程序以
468+
原来用户的权限执行。
469+
MS-DOS 和 OS/2 上,使用以下目录中首个可用者: $TMP、$TEMP、c:\TMP、c:\TEMP。
470+
Unix 上,使用的目录依次为: $TMPDIR、/tmp、当前目录、$HOME。
471+
MS-Windows 上,使用 GetTempFileName() 系统函数。
472+
其它系统上使用 tmpnam() 库函数。
473+
474+
462475
4.2 替代 *:substitute*
463476
*:s* *:su*
464477
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
@@ -488,9 +501,9 @@ CTRL-A 命令在宏命令里很有用。例如: 使用以下的步骤构造一
488501
关于 [flags],参见 |:s_flags|
489502

490503
*&*
491-
& 等价于 ":s//~/" (重复上次的 substitute)。注意 这里不记
492-
住标志位,所以实际工作方式可能不尽相同。你可以用 ":&&"
493-
来保持相同的标志位
504+
& 等价于 ":s" (重复上次的 substitute)。注意 这里不记住标
505+
志位,所以实际工作方式可能不尽相同。你可以用 ":&&"
506+
保持相同的标志位
494507

495508
*g&*
496509
g& 等价于 ":%s//~/&" (在所有行上重复上次的 substitute,并
@@ -746,7 +759,9 @@ magic nomagic 动作 ~
746759
寄存器) ({.%#:} 只能用于放置命令)。
747760

748761
*:reg* *:registers*
749-
:reg[isters] 显示所有编号和命名寄存器的内容。{Vi 无此功能}
762+
:reg[isters] 显示所有编号和命名寄存器的内容。但不列出用于 |:redir|
763+
目的地的寄存器。
764+
{Vi 无此功能}
750765

751766
:reg[isters] {arg} 显示 {arg} 里提到的编号和命名寄存器的内容。例如: >
752767
:dis 1a
@@ -808,8 +823,9 @@ magic nomagic 动作 ~
808823
["x]gp 如同 "p",但光标停留在新文本之后。{Vi 无此功能}
809824

810825
*gP*
811-
["x]gP 如同 "P",但光标停留在新文本之后。{Vi 无此功能} *:pu* *:put*
826+
["x]gP 如同 "P",但光标停留在新文本之后。{Vi 无此功能}
812827

828+
*:pu* *:put*
813829
:[line]pu[t] [x] 放置文本 [从寄存器 x] 在行号 [line] (缺省为当前行) 之
814830
后。它总是 |linewise| 行动作,因而这个命令可以用来把抽
815831
出的块放置在新行上。
@@ -851,8 +867,11 @@ Vim 总是把文本放在下一行。你可以用命令序列 "xp" 来交换两
851867
*put-Visual-mode* *v_p* *v_P*
852868
在可视模式下使用如 |p| 或者 |P| 之类的放置命令时,Vim 试图把选择的文本替换成寄
853869
存器的内容。是否工作如你所愿决定于选择的类型和寄存器里文本的类型。对于列块选择
854-
而言,它也决定于列块的大小,和头尾是否包含存在的字符。(实现细节: 实际上,它先
855-
把寄存器的内容放到选择区之后,再删除选择区。)
870+
而言,它也决定于列块的大小,和头尾是否在已存在的字符上。(实现细节: 实际上,它
871+
先把寄存器的内容放到选择区之后,再删除选择区的内容。)
872+
前次选择的文本被放在无名寄存器中。如果希望把相同的文本重复放入可视选择区多次,
873+
请选用其它寄存器。例如,先抽出要复制的文本,再可视化选择要替换的文本,然后使用
874+
"0p。重复任意多次均可,而每次无名寄存器都会被改变。
856875

857876
*blockwise-register*
858877
如果你使用面向列块的可视模式命令把文本存到寄存器里,文本列块会被插入在当前和其
@@ -883,8 +902,8 @@ Vim 总是把文本放在下一行。你可以用命令序列 "xp" 来交换两
883902
1. 无名寄存器 "" *quote_quote* *quotequote*
884903
用 "d"、"c"、"s"、"x" 等命令删除或者用 "y" 等抽出命令复制的文本都被 Vim 用来填
885904
充该寄存器,不管是否用到别的专门寄存器 (例如 "xdd)。这就好像无名寄存器是指向最
886-
近使用的那个寄存器的指针一样。'_' 寄存器是一个特例。"_dd 不把删除的文本存在任
887-
何寄存器里
905+
近使用的那个寄存器的指针一样。使用大写寄存器进行添加时,无名寄存器包含和命名寄
906+
存器相同的文本。'_' 寄存器是一个特例。"_dd 不把删除的文本存在任何寄存器里
888907
不指定寄存器的放置命令 (p 或 P) 使用无名寄存器的内容。你也可以用 '"' 作为名字
889908
来访问该寄存器。这意味着要输入两个连续的双引号。写入 "" 寄存器将实际写到寄存器
890909
"0 上。{Vi: 寄存器内容在更换文件时丢失,没有 '"'}
@@ -905,7 +924,7 @@ Vim 把抽出和删除命令的文本保存在这些寄存器里。
905924
该寄存器保存删除不到一行内容的命令的文本,除非该命令用 ["x] 指定了寄存器。
906925
{Vi 无此功能}
907926

908-
4. 命令寄存器 "a 到 "z 或者 "A 到 "Z *quote_alpha* *quotea*
927+
4. 命名寄存器 "a 到 "z 或者 "A 到 "Z *quote_alpha* *quotea*
909928
Vim 只有在你指定的时候才使用这些寄存器。指定为小写字母时替换原来的内容,指定为
910929
大写字母时附加到原来的内容。如果 'cpoptions' 里有 '>' 标志位,在附加文本前插入
911930
一个换行符。
@@ -935,9 +954,13 @@ Vim 只有在你指定的时候才使用这些寄存器。指定为小写字母
935954
到命令行上,这时你可以输入任何的表达式 (见 |expression|)。所有普通的命令行编辑
936955
命令都可以使用,还有一个表达式专门的历史表。当你按回车结束命令行时,Vim 计算表
937956
达式的结果。如果你用 <Esc> 结束,Vim 终止表达式。如果你不输入表达式,Vim 使用
938-
最近的表达式 (和 "/" 命令的处理相似)。表达式的计算结果必须是一个字符串。如果结
939-
果为数值,它被转化为字符串。列表、字典、函数引用类型的结果则产生错误信息 (通过
940-
string() 转化)。
957+
最近的表达式 (和 "/" 命令的处理相似)。
958+
959+
表达式的计算结果必须是一个字符串。数值结果会自动转化为字符串。对 "p" 和 ":put"
960+
命令而言,浮点数结果也会被转化为字符串。如果结果为列表,每个成员被转成字符串,
961+
然后被单独放在一行上。字典、函数引用类型的结果则产生错误信息 (通过 string() 转
962+
化)。
963+
941964
如果 "= 寄存器被 "p" 命令使用,该字符串会在 <NL> 字符处断开。如果该字符串以
942965
<NL> 结尾,则它被视为一个面向行的寄存器。{Vi 无此功能}
943966

@@ -1027,7 +1050,7 @@ gq{motion} 对 {motion} 动作跨越的行进行排版。
10271050
:nnoremap Q gq
10281051
10291052
gqgq *gqgq* *gqq*
1030-
gqq 排版当前行。{Vi 无此功能}
1053+
gqq 排版当前行。如带计数排版相应多行。{Vi 无此功能}
10311054

10321055
*v_gq*
10331056
{Visual}gq 排版高亮文本 ({Visual} 的部分参见 |Visual-mode|)。

0 commit comments

Comments
 (0)