*quickref.txt* For Vim version 7.1. 最近更新: 2007年5月
VIM REFERENCE MANUAL by Bram Moolenaar
译者: lang2 http://vimcdoc.sf.net
快速参考指南
*quickref* *Contents*
标签 主题 标签 主题 ~
|Q_ct| 帮助文件清单 |Q_re| 重复命令
|Q_lr| 动作: 左右 |Q_km| 键盘映射
|Q_ud| 动作: 上下 |Q_ab| 缩写
|Q_tm| 动作: 文本对象 |Q_op| 选项
|Q_pa| 动作: 模式查找 |Q_ur| 撤销/重做命令
|Q_ma| 动作: 位置标记 |Q_et| 外部命令
|Q_vm| 动作: 其他 |Q_qf| Quickfix 命令
|Q_ta| 动作: 使用标签 |Q_vc| 其他命令
|Q_sc| 屏幕滚动 |Q_ce| Ex: 命令行编辑
|Q_in| 插入: 插入文本 |Q_ra| Ex: 范围
|Q_ai| 插入: 普通键 |Q_ex| Ex: 特殊字符
|Q_ss| 插入: 特殊键 |Q_st| 启动 VIM
|Q_di| 插入: 二合字母 |Q_ed| 文件编辑
|Q_si| 插入: 特殊插入 |Q_fl| 使用参数列表
|Q_de| 改动: 删除文本 |Q_wq| 写入与退出
|Q_cm| 改动: 复制与移动 |Q_ac| 自动命令
|Q_ch| 改动: 修改文本 |Q_wi| 多窗口命令
|Q_co| 改动: 复杂 |Q_bu| 缓冲区列表命令
|Q_vi| 可视模式 |Q_sy| 语法高亮
|Q_to| 文本对象 |Q_gu| GUI 命令
|Q_fo| 折叠
------------------------------------------------------------------------------
N 用来 (可选) 置于命令之前表示该命令执行的计数。
------------------------------------------------------------------------------
*Q_lr* 左右动作
|h| N h 左 (亦: CTRL-H、<BS> 或 <Left> 键)
|l| N l 右 (亦: <Space> 或 <Right> 键)
|0| 0 至本行第一个字符 (亦: <Home> 键)
|^| ^ 至本行第一个非空白字符
|$| N $ 至本行 (加上 N - 1 后续行) 最后一个字符 (亦: <End> 键)
|g0| N g0 至屏幕行第一个字符 (当行回绕时和 "0" 不同)
|g^| N g^ 至屏幕行第一个非空白字符 (当行回绕时和 "^" 不同)
|g$| N g$ 至屏幕行最后一个字符 (当行回绕时和 "$" 不同)
|gm| N gm 至屏幕行中点
|bar| N | 至第 N 列 (缺省: 1)
|f| N f{char} 至右边第 N 次出现 {char} 之处 (find)
|F| N F{char} 至左边第 N 次出现 {char} 之处 (Find)
|t| N t{char} 至右边第 N 次出现 {char} 之前 (till)
|T| N T{char} 至左边第 N 次出现 {char} 之前 (Till)
|;| N ; 重复上次 "f"、"F"、"t" 或 "T" 命令 N 次
|,| N , 以相反方向重复上次 "f"、"F"、"t" 或 "T" 命令 N 次
------------------------------------------------------------------------------
*Q_ud* 上下动作
|k| N k 上移 N 行 (亦: CTRL-P 和 <Up>)
|j| N j 下移 N 行 (亦: CTRL-J、CTRL-N、<NL> 和 <Down>)
|-| N - 上移 N 行,至第一个非空白字符
|+| N + 下移 N 行,至第一个非空白字符 (亦: CTRL-M 和 <CR>)
|_| N _ 下移 N - 1 行,至第一个非空白字符
|G| N G 至第 N 行 (缺省: 末行) 第一个非空白字符
|gg| N gg 至第 N 行 (缺省: 首行) 第一个非空白字符
|N%| N % 至全文件行数百分之 N 处。必须给出 N,否则是 |%| 命令。
|gk| N gk 上移 N 屏幕行 (回绕行时不同于 "k")
|gj| N gj 下移 N 屏幕行 (回绕行时不同于 "j")
------------------------------------------------------------------------------
*Q_tm* 文本对象动作
|w| N w 向前 (正向,下同) N 个单词 (word)
|W| N W 向前 N 个空白隔开的字串 |WORD| (WORD)
|e| N e 向前至第 N 个单词词尾 (end)
|E| N E 向前至第 N 个空白隔开的字串 |WORD| 的词尾 (End)
|b| N b 向后 (反向,下同) N 个单词 (backward)
|B| N B 向后至第 N 个空白隔开的字串 |WORD| 的词尾 (Backward)
|ge| N ge 向后至第 N 个单词词尾
|gE| N gE 向后至第 N 个空白隔开的字串 |WORD| 的词尾
|)| N ) 向前 N 个句子
|(| N ( 向后 N 个句子
|}| N } 向前 N 个段落
|{| N { 向后 N 个段落
|]]| N ]] 向前 N 个小节,置于小节的开始
|[[| N [[ 向后 N 个小节,置于小节的开始
|][| N ][ 向前 N 个小节,置于小节的末尾
|[]| N [] 向后 N 个小节,置于小节的末尾
|[(| N [( 向后至第 N 个未闭合的 '('
|[{| N [{ 向后至第 N 个未闭合的 '{'
|[m| N [m 向后至第 N 个方法 (method) 的开始 (用于 Java)
|[M| N [M 向后至第 N 个方法的结束 (Method) (用于 Java)
|])| N ]) 向前至第 N 个未闭合的 ')'
|]}| N ]} 向前至第 N 个未闭合的 '}'
|]m| N ]m 向前至第 N 个方法 (method) 的开始 (用于 Java)
|]M| N ]M 向前至第 N 个方法的结束 (Method) (用于 Java)
|[#| N [# 向后至第 N 个未闭合的 "#if" 或 "#else"
|]#| N ]# 向前至第 N 个未闭合的 "#else" 或 "#endif"
|[star| N [* 向后至第 N 个注释的开始 "/*"
|]star| N ]* 向前至第 N 个注释的结束 "*/"
------------------------------------------------------------------------------
*Q_pa* 模式查找
|/| N /{pattern}[/[offset]]<CR>
向前查找第 N 次出现 {pattern} 的地方
|?| N ?{pattern}[?[offset]]<CR>
向后查找第 N 次出现 {pattern} 的地方
|/<CR>| N /<CR> 向前重复上次查找
|?<CR>| N ?<CR> 向后重复上次查找
|n| N n 重复上次查找
|N| N N 相反方向重复上次查找
|star| N * 向前查找光标下的标识符
|#| N # 向后查找光标下的标识符
|gstar| N g* 同 "*",但也查找部分匹配
|g#| N g# 同 "*",但也查找部分匹配
|gd| gd 至光标下标识符的局部声明 (goto declaration)
|gD| gD 至光标下标识符的全局声明 (goto Declaration)
|pattern| 查找模式中的特殊字符
含义 magic nomagic ~
匹配任意单个字符 . \.
匹配行首 ^ ^
匹配 <EOL> $ $
匹配单词开始 \< \<
匹配单词结束 \> \>
匹配单个标定范围中的字符 [a-z] \[a-z]
匹配单个不在标定范围中的字符 [^a-z] \[^a-z]
匹配一个标识符字符 \i \i
同上但不包括数字 \I \I
匹配一个关键字字符 \k \k
同上但不包括数字 \K \K
匹配一个文件名字符 \f \f
同上但不包括数字 \F \F
匹配一个可显示的字符 \p \p
同上但不包括数字 \P \P
匹配一个空白字符 \s \s
匹配一个非空白字符 \S \S
匹配 <Esc> \e \e
匹配 <Tab> \t \t
匹配 <CR> \r \r
匹配 <BS> \b \b
匹配 0 或多个前面的匹配原 * \*
匹配 1 或多个前面的匹配原 \+ \+
匹配 0 或 1 个前面的匹配原 \= \=
匹配 2 至 5 个前面的匹配原 \{2,5} \{2,5}
隔开两种可替换的匹配 \| \|
组合模式为单个匹配原 \(\) \(\)
|search-offset| 查找命令后可用的偏移量
[num] 向下 [num] 行,位于第一列
+[num] 向下 [num] 行,位于第一列
-[num] 向上 [num] 行,位于第一列
e[+num] 匹配结尾 (end) 右方 [num] 个字符处
e[-num] 匹配结尾 (end) 左方 [num] 个字符处
s[+num] 匹配启始 (start) 右方 [num] 个字符处
s[-num] 匹配启始 (start) 左方 [num] 个字符处
b[+num] 同上 s[+num] (助记: begin)
b[-num] 同上 s[-num] (助记: begin)
;{search-command} 接着执行 {search-command} 查找命令
------------------------------------------------------------------------------
*Q_ma* 位置标记和相关动作
|m| m{a-zA-Z} 用标记 {a-zA-Z} 记录当前位置
|`a| `{a-z} 至当前文件中的标记 {a-z}
|`A| `{A-Z} 至任何文件中的标记 {A-Z}
|`0| `{0-9} 至 Vim 上次退出的位置
|``| `` 至上次跳转之前的位置
|`quote| `" 至上次编辑此文件的位置
|`[| `[ 至上次被操作或放置的文本的开始
|`]| `] 至上次被操作或放置的文本的结尾
|`<| `< 至 (前次) 可视区域的开始
|`>| `> 至 (前次) 可视区域的结尾
|`.| `. 至当前文件最后被改动的位置
|'| '{a-zA-Z0-9[]'"<>.}
同 `,但同时移动至该行的第一个非空白字符
|:marks| :marks 列出活动的标记
|CTRL-O| N CTRL-O 跳转到跳转表中第 N 个较早的位置
|CTRL-I| N CTRL-I 跳转到跳转表中第 N 个较晚的位置
|:ju| :ju[mps] 列出跳转表
------------------------------------------------------------------------------
*Q_vm* 其他动作
|%| % 找到本行中下一个括号、方括号、注释或
"#if"/"#else"/"#endif" 并移动至与其对称的位置
|H| N H 至窗口的第 N 行的第一个非空白字符处 (Home)
|M| M 至窗口的中间行的第一个非空白字符处 (Middle)
|L| N L 至窗口的第 N 行 (从下方算) 的第一个非空白字符处 (Last)
|go| N go 至缓冲区的第 N 个字节
|:go| :[range]go[to] [off] 至缓冲区的第 [off] 个字节
------------------------------------------------------------------------------
*Q_ta* 使用标签
|:ta| :ta[g][!] {tag} 跳转到标签 {tag}
|:ta| :[count]ta[g][!] 跳转到标签列表里第 [count] 个较新的标签
|CTRL-]| CTRL-] 跳转到光标下的标签,除非文件被改动
|:ts| :ts[elect][!] [tag] 列出匹配的标签并选择其中一个跳转
|:tjump| :tj[ump][!] [tag] 跳转到标签 [tag],当有多个匹配时从列表中选择
|:ltag| :lt[ag][!] [tag] 跳转到标签 [tag] 并把匹配的标签加到位置列表。
|:tags| :tags 显示标签列表
|CTRL-T| N CTRL-T 跳转到标签列表中第 N 个较早的标签
|:po| :[count]po[p][!] 跳转到标签列表中第 [count] 个较早的标签
|:tnext| :[count]tn[ext][!] 跳转到向下第 [count] 个匹配的标签
|:tp| :[count]tp[revious][!] 跳转到向上第 [count] 个匹配的标签
|:tr| :[count]tr[ewind][!] 跳转到第 [count] 个匹配的标签
|:tl| :tl[ast][!] 跳转到上次匹配的标签
|:ptag| :pt[ag] {tag} 打开一个显示 {tag} 标签的预览窗口
|CTRL-W_}| CTRL-W } 同 CTRL-] 但在预览窗口显示标签
|:pts| :pts[elect] 同 ":tselect" 但在预览窗口显示标签
|:ptjump| :ptj[ump] 同 ":tjump" 但在预览窗口显示标签
|:pclose| :pc[lose] 关闭标签预览窗口
|CTRL-W_z| CTRL-W z 关闭标签预览窗口
------------------------------------------------------------------------------
*Q_sc* 屏幕滚动
|CTRL-E| N CTRL-E 窗口下滚 N 行 (缺省: 1) (Extra)
|CTRL-D| N CTRL-D 窗口下滚 N 行 (缺省: 1/2 窗口) (Downwards)
|CTRL-F| N CTRL-F 窗口下滚 N 页 (Forwards)
|CTRL-Y| N CTRL-Y 窗口上滚 N 行 (缺省: 1)
|CTRL-U| N CTRL-U 窗口上滚 N 行 (缺省: 1/2 窗口) (Upwards)
|CTRL-B| N CTRL-B 窗口上滚 N 页 (Backwards)
|z<CR>| z<CR> 或 zt 重画,当前行置窗口顶端
|z.| z. 或 zz 重画,当前行置窗口正中
|z-| z- 或 zb 重画,当前行置窗口底端
以下仅当 'wrap' 选项关闭时生效:
|zh| N zh 屏幕右滚 N 个字符
|zl| N zl 屏幕左滚 N 个字符
|zH| N zH 屏幕右滚半个屏宽
|zL| N zL 屏幕左滚半个屏宽
------------------------------------------------------------------------------
*Q_in* 插入文本
|a| N a 在光标后添加文本 (N 次)
|A| N A 在行末添加文本 (N 次)
|i| N i 在光标前插入文本 (N 次) (亦: <Insert>)
|I| N I 在当前行的第一个非空白字符前插入文本 (N 次)
|gI| N gI 在第一栏中插入文本 (N 次)
|o| N o 在当前行下方开始新行,添加文本 (N 次)
|O| N O 在当前行上方开始新行,添加文本 (N 次)
|:startinsert| :star[tinsert][!] 开始插入模式,当使用 [!] 时添加文本
|:startreplace| :startr[eplace][!] 开始替换模式,当使用 [!] 时从行末开始
在可视列块模式下:
|v_b_I| I 在所有选中的行之前插入相同的文本
|v_b_A| A 在所有选中的行之后添加相同的文本
------------------------------------------------------------------------------
*Q_ai* 插入模式键
|insert-index| 插入模式命令的索引,以字母顺序排列
离开插入模式:
|i_<Esc>| <Esc> 结束插入模式,回到普通模式
|i_CTRL-C| CTRL-C 同 <Esc>,但不使用缩写
|i_CTRL-O| CTRL-O {command} 执行命令 {command} 并回到插入模式
移动:
|i_<Up>| 光标键 左/右/上/下 移动光标
|i_<S-Left>| shift-left/right 左/右 移动一个单词
|i_<S-Up>| shift-up/down 后/前 移动一个满屏
|i_<End>| <End> 光标至本行的末字符之后
|i_<Home>| <Home> 光标至本行的首字符之上
------------------------------------------------------------------------------
*Q_ss* 插入模式特殊键
|i_CTRL-V| CTRL-V {char}.. 按本义插入字符,或插入十进制数的字节值
|i_<NL>| <NL> 或 <CR> 或 CTRL-M 或 CTRL-J
开始新行
|i_CTRL-E| CTRL-E 插入光标下方的字符
|i_CTRL-Y| CTRL-Y 插入光标上方的字符
|i_CTRL-A| CTRL-A 插入上次插入的文本
|i_CTRL-@| CTRL-@ 插入上次插入的文本并结束
插入模式
|i_CTRL-R| CTRL-R {0-9a-z%#:.-="} 插入寄存器的内容
|i_CTRL-N| CTRL-N 将下一个匹配的标识符插入光标前
|i_CTRL-P| CTRL-P 将上一个匹配的标识符插入光标前
|i_CTRL-X| CTRL-X ... 以各种方式补全光标前的单词
|i_<BS>| <BS> 或 CTRL-H 删除光标前的一个字符
|i_<Del>| <Del> 删除光标下的一个字符
|i_CTRL-W| CTRL-W 删除光标前的一个单词
|i_CTRL-U| CTRL-U 删除当前行的所有字符
|i_CTRL-T| CTRL-T 在当前行首插入一个移位宽度的缩进
|i_CTRL-D| CTRL-D 从当前行首删除一个移位宽度的缩进
|i_0_CTRL-D| 0 CTRL-D 删除当前行的所有缩进
|i_^_CTRL-D| ^ CTRL-D 删除当前行的所有缩进,恢复下一行的缩进
------------------------------------------------------------------------------
*Q_di* 二合字母
|:dig| :dig[raphs] 显示当前二合字母列表
|:dig| :dig[raphs] {char1}{char2} {number} ...
加入一个或多个二合字母到上述列表中
在插入或命令行方式下:
|i_CTRL-K| CTRL-K {char1} {char2}
键入二合字母
|i_digraph| {char1} <BS> {char2}
若 'digraph' 选项被置位则键入二合字母
------------------------------------------------------------------------------
*Q_si* 特殊插入
|:r| :r [file] 将文件 [file] 的内容插入到光标之下
|:r!| :r! {command} 将命令 {command} 的标准输出插入到光标之下
------------------------------------------------------------------------------
*Q_de* 删除文本
|x| N x 删除光标之下及之后的 N 个字符
|<Del>| N <Del> 删除光标之下及之后的 N 个字符
|X| N X 删除光标之前的 N 个字符
|d| N d{motion} 删除动作 {motion} 覆盖的文本
|v_d| {visual}d 删除高亮的文本
|dd| N dd 删除 N 行
|D| N D 删除至行尾 (及 N - 1 后续行)
|J| N J 连接 N - 1 行 (删除 <EOL>)
|v_J| {visual}J 连接高亮的行
|gJ| N gJ 同 "J",但不插入空格
|v_gJ| {visual}gJ 同 "{visual}J",但不插入空格
|:d| :[range]d [x] 删除范围 [range] 覆盖的行 [存入寄存器 x]
------------------------------------------------------------------------------
*Q_cm* 复制与移动文本
|quote| "{char} 在接下来的删除、抽出或放置命令中使用寄存器 {char}
|:reg| :reg 显示所有寄存器的内容
|:reg| :reg {arg} 显示寄存器 {arg} 的内容
|y| N y{motion} 将动作 {motion} 覆盖的文本抽出至一个寄存器
|v_y| {visual}y 将高亮的文本抽出至一个寄存器
|yy| N yy 抽出 N 行至寄存器
|Y| N Y 抽出 N 行至寄存器
|p| N p 将一个寄存器的内容放置在光标位置后 (N 次)
|P| N P 将一个寄存器的内容放置在光标位置前 (N 次)
|]p| N ]p 同 p,但调整当前行的缩进
|[p| N [p 同 P,但调整当前行的缩进
|gp| N gp 同 p,但将光标留在新文本之后
|gP| N gP 同 P,但将光标留在新文本之后
------------------------------------------------------------------------------
*Q_ch* 改变文本
|r| N r{char} 以 {char} 替换 N 个字符
|gr| N gr{char} 替换 N 个字符并不影响布局
|R| N R 进入替换模式 (重复键入的文本 N 次)
|gR| N gR 进入虚拟替换模式: 同替换模式,但不影响布局
|v_b_r| {visual}r{char}
在可视列块模式下: 以 {char} 替换选中文本的每个字符
(修改 = 删除文本并进入插入模式)
|c| N c{motion} 修改动作 {motion} 覆盖的文本
|v_c| {visual}c 修改高亮的文本
|cc| N cc 修改 N 行
|S| N S 修改 N 行
|C| N C 修改至行尾 (及 N - 1 后续行)
|s| N s 修改 N 个字符
|v_b_c| {visual}c 在可视列块模式下: 用键入的文本修改选中文本的每一行
|v_b_C| {visual}C 在可视列块模式下: 用键入的文本修改选中各行直至行末
|~| N ~ 翻转 N 个字符的大小写并前进光标
|v_~| {visual}~ 翻转高亮文本的大小写
|v_u| {visual}u 改高亮的文本为小写
|v_U| {visual}U 改高亮的文本为大写
|g~| g~{motion} 将动作 {motion} 覆盖的文本翻转大小写
|gu| gu{motion} 将动作 {motion} 覆盖的文本改为小写
|gU| gU{motion} 将动作 {motion} 覆盖的文本改为大写
|v_g?| {visual}g? 对高亮的文本做 rot13 编码
|g?| g?{motion} 对动作 {motion} 覆盖的文本做 rot13 编码
|CTRL-A| N CTRL-A 将光标之上或之后的数值增加 N
|CTRL-X| N CTRL-X 将光标之上或之后的数值减少 N
|<| N <{motion} 将动作 {motion} 覆盖的所有行向左移动一个移位宽度
|<<| N << 将 N 行向左移动一个移位宽度
|>| N >{motion} 将动作 {motion} 覆盖的所有行向右移动一个移位宽度
|>>| N >> 将 N 行向右移动一个移位宽度
|gq| N gq{motion} 将动作 {motion} 覆盖的所有行进行排版到 'textwidth' 宽
|:ce| :[range]ce[nter] [width]
将范围 [range] 包括的行居中对齐
|:le| :[range]le[ft] [indent]
将范围 [range] 中的行靠左对齐 (使用 [indent])
|:ri| :[range]ri[ght] [width]
将范围 [range] 中的行靠右对齐
------------------------------------------------------------------------------
*Q_co* 复杂改动
|!| N !{motion}{command}<CR>
将动作覆盖的行用命令 {command} 过滤
|!!| N !!{command}<CR>
将 N 行用命令 {command} 过滤
|v_!| {visual}!{command}<CR>
将高亮的行用命令 {command} 过滤
|:range!| :[range]! {command}<CR>
将范围 [range] 包括的行用命令 {command} 过滤
|=| N ={motion}
将动作覆盖的行用 'equalprg' 过滤
|==| N == 将 N 行用 'equalprg' 过滤
|v_=| {visual}=
将高亮的行用 'equalprg' 过滤
|:s| :[range]s[ubstitute]/{pattern}/{string}/[g][c]
以 {string} 替代范围 [range] 包括的行中的 {pattern};
与 [g] 共用,替代所有的出现的 {pattern};
与 [c] 共用,确认每一次替代
|:s| :[range]s[ubstitute] [g][c]
以新的范围和选项重复上一次的 ":s" 命令
|&| & 不带选项在当前行上重复上一次的 ":s" 命令
|:ret| :[range]ret[ab][!] [tabstop]
置 'tabstop' 为新值并依据此值调整空白字符
------------------------------------------------------------------------------
*Q_vi* 可视模式
|visual-index| 可视模式命令列表。
|v| v 以字符方式开始高亮 } 移动光标或使用
|V| V 以行方式开始高亮 } 操作符来作用于
|CTRL-V| CTRL-V 以列块方式开始高亮 } 高亮的文本
|v_o| o 交换高亮区域的开始处和光标位置
|gv| gv 使用上一次的可视区域开始高亮
|v_v| v 以字符方式开始高亮或停止高亮
|v_V| V 以行方式开始高亮或停止高亮
|v_CTRL-V| CTRL-V 以列块方式开始高亮或停止高亮
------------------------------------------------------------------------------
*Q_to* 文本对象 (仅适用于可视模式或在操作符后)
|v_aw| N aw 选择 "一个单词" (a word)
|v_iw| N iw 选择 "内含单词" (inner word)
|v_aW| N aW 选择 "一个字串" (WORD)
|v_iW| N iW 选择 "内含字串"
|v_as| N as 选择 "一个句子" (sentence)
|v_is| N is 选择 "内含句子"
|v_ap| N ap 选择 "一个段落" (paragraph)
|v_ip| N ip 选择 "内含段落"
|v_ab| N ab 选择 "一个块" (从 "[(" 至 "])") (block)
|v_ib| N ib 选择 "内含块" (从 "[(" 到 "])")
|v_aB| N aB 选择 "一个大块" (从 "[{" 到 "]}") (Block)
|v_iB| N iB 选择 "内含大块" (从 "[{" 到 "]}")
------------------------------------------------------------------------------
*Q_re* 重复命令
|.| N . 重复最近一次改动 (将计数改为 N)
|q| q{a-z} 记录键入的字符,存入寄存器 {a-z}
|q| q{A-Z} 记录键入的字符,添加进寄存器 {a-z}
|q| q 终止记录
|@| N @{a-z} 执行寄存器 {a-z} 的内容 (N 次)
|@@| N @@ 重复上次的 @{a-z} 操作 (N 次)
|:@| :@{a-z} 将寄存器 {a-z} 的内容当作 Ex 命令来执行
|:@@| :@@ 重复上次的 :@{a-z} 操作
|:g| :[range]g[lobal]/{pattern}/[cmd]
对 [range] 内所有匹配 {pattern} 的行执行
Ex 命令 [cmd] (缺省: ":p")。
|:g| :[range]g[lobal]!/{pattern}/[cmd]
对 [range] 内所有_不_匹配 {pattern} 的行执行
Ex 命令 [cmd] (缺省: ":p")。
|:so| :so[urce] {file}
从文件 {file} 读入 Ex 命令。
|:so| :so[urce]! {file}
从文件 {file} 读入 Vim 命令。
|:sl| :sl[eep] [sec]
在 [sec] 秒钟内任何事也不做
|gs| N gs 睡 N 秒 (goto sleep)
------------------------------------------------------------------------------
*Q_km* 键盘映射
|:map| :ma[p] {lhs} {rhs} 在普通及可视模式下将 {rhs} 映射为 {lhs}。
|:map!| :ma[p]! {lhs} {rhs} 在插入及命令行模式下将 {rhs} 映射为 {lhs}。
|:noremap| :no[remap][!] {lhs} {rhs}
同 ":map",但不对 {rhs} 重新映射。
|:unmap| :unm[ap] {lhs} 清除普通及可视模式下 {lhs} 的映射。
|:unmap!| :unm[ap]! {lhs} 清除插入及命令行模式下 {lhs} 的映射。
|:map_l| :ma[p] [lhs] 列出普通及可视模式下以 [lhs] 开始的映射。
|:map_l!| :ma[p]! [lhs] 列出插入及命令行模式下以 [lhs] 开始的映射。
|:cmap| :cmap/:cunmap/:cnoremap
同 ":map!"/":unmap!"/":noremap!",
但仅作用于命令行模式 (Command-line)
|:imap| :imap/:iunmap/:inoremap
同 ":map!"/":unmap!"/":noremap!",
但仅作用于插入模式 (Insert)
|:nmap| :nmap/:nunmap/:nnoremap
同 ":map"/":unmap"/":noremap",
但仅作用于普通模式 (Normal)
|:vmap| :vmap/:vunmap/:vnoremap
同 ":map"/":unmap"/":noremap",
但仅作用于可视模式 (Visual)
|:omap| :omap/:ounmap/:onoremap
同 ":map"/":unmap"/":noremap"
但仅作用于操作符等待模式
(Operator-pending)
|:mapc| :mapc[lear] 清除普通及可视模式下的映射
|:mapc| :mapc[lear]! 清除插入及命令行模式下的映射
|:imapc| :imapc[lear] 清除插入模式下的映射
|:vmapc| :vmapc[lear] 清除可视模式下的映射
|:omapc| :omapc[lear] 清除操作符等待模式下的映射
|:nmapc| :nmapc[lear] 清除普通模式下的映射
|:cmapc| :cmapc[lear] 清除命令行模式下的映射
|:mkexrc| :mk[exrc][!] [file] 将当前的键盘映射、缩写及设置写入文件
[file] (缺省: ".exrc";使用 ! 覆盖文件)
|:mkvimrc| :mkv[imrc][!] [file]
同 ":mkexrc",但缺省为 ".vimrc"
|:mksession| :mks[ession][!] [file]
同 ":mkvimrc",但同时存储当前文件、窗口等信
息,使得用户将来可以继续当前对话。
------------------------------------------------------------------------------
*Q_ab* 缩写
|:abbreviate| :ab[breviate] {lhs} {rhs} 为 {rhs} 加入缩写 {lhs}
|:abbreviate| :ab[breviate] {lhs} 显示以 {lhs} 开始的缩写
|:abbreviate| :ab[breviate] 显示所有缩写
|:unabbreviate| :una[bbreviate] {lhs} 删除 {lhs} 对应的缩写
|:noreabbrev| :norea[bbrev] [lhs] [rhs] 同 ":ab",但不对 [rhs] 重映射
|:iabbrev| :iab/:iunab/:inoreab 同 ":ab",但仅适用于插入模式
|:cabbrev| :cab/:cunab/:cnoreab 同 ":ab",但仅适用于命令行模式
|:abclear| :abc[lear] 清除所有缩写
|:cabclear| :cabc[lear] 清除所有命令行模式缩写
|:iabclear| :iabc[lear] 清除所有插入模式缩写
------------------------------------------------------------------------------
*Q_op* 选项
|:set| :se[t] 显示所有被改动的选项。
|:set| :se[t] all 显示所有非 termcap 选项。
|:set| :se[t] termcap 显示所有 termcap 选项。
|:set| :se[t] {option} 置位布尔选项 (开启),
显示字符串或数值选项。
|:set| :se[t] no{option} 复位布尔选项 (关闭)。
|:set| :se[t] inv{option} 逆转布尔选项的值。
|:set| :se[t] {option}={value} 设置字符串/数值选项的值为 {value}。
|:set| :se[t] {option}+={value} 将 {value} 附加到字符串选项里,将
{value} 加到数值选项上
|:set| :se[t] {option}-={value} 从 {value} 从字符串选项里删除,从
数值选项里减去 {value}
|:set| :se[t] {option}? 显示 {option} 的值。
|:set| :se[t] {option}& 重置 {option} 为其缺省值。
|:setlocal| :setl[ocal] 同 ":set",但对局部选项只设定局部值
|:setglobal| :setg[lobal] 同 ":set",但对局部选项设定其全局值
|:fix| :fix[del] 根据 't_kb' 的值设置 't_kD'。
|:options| :opt[ions] 打开一个新窗口,用来参看并设置选项。
选项们以功能分组。有单行的解释,
并有指向帮助的链接。
各选项的简短说明: *option-list*
'aleph' 'al' Aleph 字母 (希伯来语) 的 ASCII 代码
'allowrevins' 'ari' 允许插入和命令行模式的 CTRL-_
'altkeymap' 'akm' 缺省的第二语言 (波斯语/希伯来语)
'ambiwidth' 'ambw' 如何处理有多种宽度的 Unicode 字符
'antialias' 'anti' Mac OS X: 用平滑反锯齿的字体
'autochdir' 'acd' 根据当前窗口的文件切换目录
'arabic' 'arab' 使用阿拉伯语为缺省的第二语言
'arabicshape' 'arshape' 阿拉伯语的字型重整
'autoindent' 'ai' 根据上一行决定新行的缩进
'autoread' 'ar' 有 Vim 之外的改动时自动重读文件
'autowrite' 'aw' 有改动时自动写回文件
'autowriteall' 'awa' 类似于 'autowrite',但适用于更多命令
'background' 'bg' "dark" 或 "light",用于色彩的高亮
'backspace' 'bs' 在一行开头按退格键如何处理
'backup' 'bk' 覆盖文件时保留备份文件
'backupcopy' 'bkc' 文件备份使用复制而不是换名
'backupdir' 'bdir' 备份文件使用的目录列表
'backupext' 'bex' 备份文件使用的扩展名
'backupskip' 'bsk' 匹配这些模式的文件不予备份
'balloondelay' 'bdlay' 弹出气泡之前的延迟 (以毫秒计)
'ballooneval' 'beval' 打开气泡表达式求值功能
'balloonexpr' 'bexpr' 计算气泡显示内容的表达式
'binary' 'bin' 二进制方式读/写/编辑文件
'bioskey' 'biosk' MS-DOS: 用 bios 调用取得字符输入
'bomb' 文件头附加字节顺序标记 (Byte Order Mark)
'breakat' 'brk' 可以在此断行的字符
'browsedir' 'bsdir' 开始浏览文件的目录
'bufhidden' 'bh' 缓冲区不再在窗口显示时的行为
'buflisted' 'bl' 缓冲区是否显示在缓冲区列表中
'buftype' 'bt' 缓冲区的特殊类型
'casemap' 'cmp' 指定字母大小写如何改变
'cdpath' 'cd' ":cd" 搜索的目录列表
'cedit' 打开命令行窗口的键
'charconvert' 'ccv' 完成字符编码转换的表达式
'cindent' 'cin' 实现 C 程序的缩进
'cinkeys' 'cink' 设置 'cindent' 时启动缩进的键
'cinoptions' 'cino' 设置 'cindent' 时如何缩进
'cinwords' 'cinw' 'si' 和 'cin' 在这些词后加入额外的缩进
'clipboard' 'cb' 使用剪贴板作为无名的寄存器
'cmdheight' 'ch' 命令行使用的行数
'cmdwinheight' 'cwh' 命令行窗口的高度
'columns' 'co' 显示屏幕的列数
'comments' 'com' 可以开始注释行的模式
'commentstring' 'cms' 注释的样板;用于折叠的标志
'compatible' 'cp' 尽可能做到与 Vi 兼容
'complete' 'cpt' 指定插入模式的自动补全如何工作
'completefunc' 'cfu' 插入模式补全使用的函数
'completeopt' 'cot' 插入模式补全使用的选项
'confirm' 'cf' 询问如何处理未保存/只读的文件
'conskey' 'consk' 直接从控制台读入键击 (只限于 MS-DOS)
'copyindent' 'ci' 使得 'autoindent' 使用已有的缩进结构
'cpoptions' 'cpo' 设定 Vi-兼容的行为
'cscopepathcomp' 'cspc' 显示路径多少部分
'cscopeprg' 'csprg' 执行 cscope 的命令
'cscopequickfix' 'csqf' 用 quickfix 窗口得到 cscope 的结果
'cscopetag' 'cst' 用 cscope 处理标签命令
'cscopetagorder' 'csto' 决定 ":cstag" 的搜索顺序
'cscopeverbose' 'csverb' 增加 cscope 数据库时给出消息
'cursorcolumn' 'cuc' 高亮光标所在屏幕列
'cursorline' 'cul' 高亮光标所在屏幕行
'debug' 设为 "msg" 可以看到所有的错误消息
'define' 'def' 查找宏定义所使用的模式
'delcombine' 'deco' 在单独使用时删除组合用字符
'dictionary' 'dict' 关键字自动补全所用的文件名
'diff' 当前窗口使用 diff 模式
'diffexpr' 'dex' 得到 diff 文件所用的表达式
'diffopt' 'dip' 使用 diff 模式的选项
'digraph' 'dg' 允许插入模式时输入二合字母
'directory' 'dir' 交换文件所用的目录名列表
'display' 'dy' 如何显示文本的标志位列表
'eadirection' 'ead' 'equalalways' 工作的方向
'edcompatible' 'ed' 切换 ":substitute" 命令的标志位
'encoding' 'enc' 内部使用的编码方式
'endofline' 'eol' 文件最后一行写入换行符 <EOL>
'equalalways' 'ea' 自动使所有窗口大小相同
'equalprg' 'ep' "=" 命令使用的外部命令
'errorbells' 'eb' 有错误信息时响铃
'errorfile' 'ef' QuickFix 模式的错误文件名
'errorformat' 'efm' 错误文件行格式的描述
'esckeys' 'ek' 插入模式下识别功能键
'eventignore' 'ei' 忽略的自动命令事件
'expandtab' 'et' 键入 <Tab> 时使用空格
'exrc' 'ex' 在当前目录里读入 .vimrc 和 .exrc
'fileencoding' 'fenc' 多字节文本的文件编码
'fileencodings' 'fencs' 参与自动检测的字符编码
'fileformat' 'ff' 文件输入输出使用的格式
'fileformats' 'ffs' 参与自动检测的 'fileformat' 的格式
'filetype' 'ft' 自动命令使用的文件类型
'fillchars' 'fcs' 显示特殊项目所使用的字符
'fkmap' 'fk' 波斯键盘映射
'foldclose' 'fcl' 当光标离开时关闭折叠
'foldcolumn' 'fdc' 设定指示折叠的列宽度
'foldenable' 'fen' 设置为显示所用打开的折叠
'foldexpr' 'fde' 当 'foldmethod' 为 "expr" 时使用的表达式
'foldignore' 'fdi' 当 'foldmethod' 为 "indent" 时忽略的行
'foldlevel' 'fdl' 当折叠级别高于此值时关闭折叠
'foldlevelstart' 'fdls' 开始编辑文件的 'foldlevel'
'foldmarker' 'fmr' 当 'foldmethod' 为 "marker" 时的标志
'foldmethod' 'fdm' 折叠的类型
'foldminlines' 'fml' 折叠关闭所需的最少行数
'foldnestmax' 'fdn' 最大折叠深度
'foldopen' 'fdo' 打开折叠所使用的命令
'foldtext' 'fdt' 显示关闭的折叠所用的表达式
'formatlistpat' 'flp' 识别列表头部的模式
'formatoptions' 'fo' 自动排版完成的方式
'formatprg' 'fp' "gq" 命令使用的外部程序
'formatexpr' 'fex' "gq" 命令使用的表达式
'fsync' 'fs' 文件写回后是否激活 fsync()
'gdefault' 'gd' 缺省打开 ":substitute" 的 'g' 标志
'grepformat' 'gfm' 'grepprg' 的输出格式
'grepprg' 'gp' ":grep" 使用的程序
'guicursor' 'gcr' GUI: 光标形状和闪烁的设置
'guifont' 'gfn' GUI: 使用的字体名
'guifontset' 'gfs' GUI: 使用的多字节字体名
'guifontwide' 'gfw' 双倍宽度字符的字体名列表
'guiheadroom' 'ghr' GUI: 用于窗口装饰的像素空间
'guioptions' 'go' GUI: 使用的部件和选项
'guipty' GUI: ":!" 命令尝试仿终端
'guitablabel' 'gtl' GUI: 标签页定制的标签
'guitabtooltip' 'gtt' GUI: 标签页定制的工具提示
'helpfile' 'hf' 主帮助文件的完整路径名
'helpheight' 'hh' 新帮助窗口的最小高度
'helplang' 'hlg' 首选帮助语言
'hidden' 'hid' 当缓冲区被放弃 (|abandon|) 时不卸载之
'highlight' 'hl' 设置若干场合下的高亮模式
'hlsearch' 'hls' 高亮最近的匹配搜索模式
'history' 'hi' 记住的命令行的行数
'hkmap' 'hk' 希伯来语的键盘映射
'hkmapp' 'hkp' 希伯来语的音节 (phonetic) 键盘映射
'icon' 让 Vim 设定窗口图标的文本
'iconstring' Vim 图标文本所用的字符串
'ignorecase' 'ic' 搜索模式时忽略大小写
'imactivatekey' 'imak' 激活 X 输入方法 (X input method) 的键击
'imcmdline' 'imc' 开始编辑命令行时使用 IM
'imdisable' 'imd' 任何模式下不使用 IM
'iminsert' 'imi' 插入模式下使用 :lmap 或 IM
'imsearch' 'ims' 输入搜索模式时使用 :lmap 或 IM
'include' 'inc' 查找包含文件所使用的模式
'includeexpr' 'inex' 处理包含文件行所使用的表达式
'incsearch' 'is' 输入搜索模式时同时高亮部分的匹配
'indentexpr' 'inde' 得到一行的缩进位置的表达式
'indentkeys' 'indk' 使用 'indentexpr' 时启动缩进的键
'infercase' 'inf' 关键字自动补全的匹配调整大小写
'insertmode' 'im' 开始编辑文件时进入插入模式
'isfname' 'isf' 文件和路径名可用的字符
'isident' 'isi' 标识符可用的字符
'iskeyword' 'isk' 关键字可用的字符
'isprint' 'isp' 可显示的字符
'joinspaces' 'js' 连接命令在句号之后加两个空格
'key' 加密密钥
'keymap' 'kmp' 键盘映射名
'keymodel' 'km' 允许用键击开始/停止选择
'keywordprg' 'kp' "K" 命令所使用的程序
'langmap' 'lmap' 其他语言模式用的字母表字符
'langmenu' 'lm' 菜单使用的语言
'laststatus' 'ls' 当最近的窗口有状态行时提示
'lazyredraw' 'lz' 执行宏时不重画
'linebreak' 'lbr' 在空白处回绕长行
'lines' 显示屏幕的行数
'linespace' 'lsp' 字符之间的像素行数
'lisp' 自动 lisp 缩进
'lispwords' 'lw' 改变 lisp 缩进方式的单词
'list' 显示 <Tab> 和 <EOL>
'listchars' 'lcs' list 模式下显示用的字符
'loadplugins' 'lpl' 启动时调入插件脚本
'macatsui' Mac GUI: 使用 ATSUI 文本绘制
'magic' 改变搜索模式所用的特殊字符
'makeef' 'mef' ":make" 所用的错误文件名
'makeprg' 'mp' ":make" 命令所用的程序
'matchpairs' 'mps' "%" 能匹配的字符对
'matchtime' 'mat' 显示匹配括号的时间 (以十分之一秒计)
'maxcombine' 'mco' 显示的最大组合用字符数
'maxfuncdepth' 'mfd' 用户函数的最大递归深度
'maxmapdepth' 'mmd' 映射的最大递归深度
'maxmem' 'mm' 单个缓冲区可用的最大内存 (以千字节计)
'maxmempattern' 'mmp' 模式匹配使用的最大内存 (以千字节计)
'maxmemtot' 'mmt' 所有缓冲区可用的最大内存 (以千字节计)
'menuitems' 'mis' 菜单可用的最大项目数
'mkspellmem' 'msm' 在 |:mkspell| 压缩树前可用的内存
'modeline' 'ml' 在文件开头或结尾识别模式行
'modelines' 'mls' 模式行的检查行数
'modifiable' 'ma' 可否修改文本
'modified' 'mod' 缓冲区已被修改
'more' 全屏显示时暂停列表
'mouse' 允许使用鼠标点击
'mousefocus' 'mousef' 键盘焦点追随鼠标点击
'mousehide' 'mh' 输入时隐藏鼠标指针
'mousemodel' 'mousem' 改变鼠标按钮的含义
'mouseshape' 'mouses' 不同模式下改变鼠标指针的形状
'mousetime' 'mouset' 鼠标双击之间的最大时间
'mzquantum' 'mzq' MzScheme 线程的轮询间隔
'nrformats' 'nf' CTRL-A 命令识别的数字格式
'number' 'nu' 行前显示行号
'numberwidth' 'nuw' 行号使用的列数
'omnifunc' 'ofu' 文件类型特定补全使用的函数
'opendevice' 'odev' MS-Windows 上允许读/写设备
'operatorfunc' 'opfunc' |g@| 操作符调用的函数
'osfiletype' 'oft' 操作系统特定的文件格式信息
'paragraphs' 'para' 分隔段落的 nroff 宏
'paste' 允许粘贴文本
'pastetoggle' 'pt' 切换 'paste' 的键盘代码
'patchexpr' 'pex' 用于给文件打补丁的表达式
'patchmode' 'pm' 保留文件最老的版本
'path' 'pa' "gf" 等命令搜索用的目录列表
'preserveindent' 'pi' 重排时保持原有的缩进结构
'previewheight' 'pvh' 预览窗口的高度
'previewwindow' 'pvw' 标识预览窗口
'printdevice' 'pdev' 用于 :hardcopy 的打印机名
'printencoding' 'penc' 用于打印的编码方式
'printexpr' 'pexpr' 用于 :hardcopy 打印 PostScript 的表达式
'printfont' 'pfn' 用于 :hardcopy 的字体名
'printheader' 'pheader' 用于 :hardcopy 的页眉格式
'printmbcharset' 'pmbcs' 用于 :hardcopy 的 CJK 字符集
'printmbfont' 'pmbfn' 用于 :hardcopy 的 CJK 输出的字体名
'printoptions' 'popt' 控制 :hardcopy 输出格式
'pumheight' 'ph' 弹出窗口的最大高度
'quoteescape' 'qe' 字符串里使用的转义字符
'readonly' 'ro' 禁止写入缓冲区
'remap' 允许映射可以递归调用
'report' 报告行改变的行数下限
'restorescreen' 'rs' Win32: 退出时恢复屏幕
'revins' 'ri' 字符插入会反向进行
'rightleft' 'rl' 窗口为从右到左模式
'rightleftcmd' 'rlc' 从右到左模式工作的编辑命令
'ruler' 'ru' 标尺,在状态行里显示光标的行号和列号
'rulerformat' 'ruf' 定制标尺格式
'runtimepath' 'rtp' 用于运行时文件的目录列表
'scroll' 'scr' 用 CTRL-U 和 CTRL-O 滚动的行数
'scrollbind' 'scb' 其他窗口滚动时滚动当前窗口
'scrolljump' 'sj' 滚动所需的最少行数
'scrolloff' 'so' 光标上下的最少行数
'scrollopt' 'sbo' 'scrollbind' 的行为方式
'sections' 'sect' 分隔小节的 nroff 宏
'secure' 在当前目录下以安全模式读入 .vimrc
'selection' 'sel' 使用何种选择方式
'selectmode' 'slm' 何时使用选择模式而不是可视模式
'sessionoptions' 'ssop' :mksession 的选项
'shell' 'sh' 使用外部命令的 shell 程序名字
'shellcmdflag' 'shcf' 执行命令所使用的 shell 的参数
'shellpipe' 'sp' 把 ":make" 结果输出到错误文件的字符串
'shellquote' 'shq' 括起 shell 命令的字符
'shellredir' 'srr' 把过滤命令的输出存到暂时文件的字符串
'shellslash' 'ssl' shell 文件名使用正斜杠
'shelltemp' 'stmp' shell 命令是否使用临时文件
'shelltype' 'st' Amiga: 影响如何使用 shell
'shellxquote' 'sxq' 类似于 'shellquote',但包括重定向
'shiftround' 'sr' 缩进列数对齐到 shiftwidth 的整数倍
'shiftwidth' 'sw' (自动) 缩进使用的步进单位,以空白数目计
'shortmess' 'shm' 缩短消息长度的标志位列表
'shortname' 'sn' 非 MS-DOS: 文件名假定为 8.3 字符
'showbreak' 'sbr' 用于提示回绕行开始的字符串
'showcmd' 'sc' 在状态行里显示 (部分) 命令
'showfulltag' 'sft' 自动补全标签时显示完整的标签匹配模式
'showmatch' 'sm' 插入括号时短暂跳转到匹配的括号
'showmode' 'smd' 在状态行上显示当前模式的消息
'showtabline' 'stal' 是否显示标签页行
'sidescroll' 'ss' 横向滚动的最少列数
'sidescrolloff' 'siso' 在光标左右最少出现的列数
'smartcase' 'scs' 模式中有大写字母时不忽略大小写
'smartindent' 'si' C 程序智能自动缩进
'smarttab' 'sta' 插入 <Tab> 时使用 'shiftwidth'
'softtabstop' 'sts' 编辑时 <Tab> 使用的空格数
'spell' 打开拼写检查
'spellcapcheck' 'spc' 定位句子尾部的模式
'spellfile' 'spf' |zg| 和 |zw| 保存单词的文件
'spelllang' 'spl' 拼写检查使用的语言
'spellsuggest' 'sps' 提供拼写校正建议的方法
'splitbelow' 'sb' 分割窗口时新窗口在当前窗口之下
'splitright' 'spr' 新窗口在当前窗口之右
'startofline' 'sol' 命令移动光标到行的第一个空白 (译者注: 应为非空白)
'statusline' 'stl' 状态行的定制格式
'suffixes' 'su' 多个匹配所忽略的后缀
'suffixesadd' 'sua' 搜索文件时附加的后缀
'swapfile' 'swf' 缓冲区是否使用交换文件
'swapsync' 'sws' 和交换文件同步的方式
'switchbuf' 'swb' 设置切换到别的缓冲区时的行为
'synmaxcol' 'smc' 寻找语法项目的最大列数
'syntax' 'syn' 读入当前缓冲区的语法
'tabstop' 'ts' <Tab> 在文件里使用的空格数
'tabline' 'tal' 终端标签页行的定制格式
'tabpagemax' 'tpm' |-p| 和 "tab all" 的最大标签页数
'tagbsearch' 'tbs' 标签文件里用二分法查找
'taglength' 'tl' 标签里的有效字符数
'tagrelative' 'tr' 标签文件里的文件名是相对路径
'tags' 'tag' 标签命令使用的文件名列表
'tagstack' 'tgst' 把标签推入标签栈
'term' 终端名
'termbidi' 'tbidi' 终端支持双向文本
'termencoding' 'tenc' 终端使用的编码方式
'terse' 简化部分消息
'textauto' 'ta' 已废止,用 'fileformats'
'textmode' 'tx' 已废止,用 'fileformat'
'textwidth' 'tw' 插入文本的最大宽度
'thesaurus' 'tsr' 关键字自动补全所用的同义词字典
'tildeop' 'top' 波浪命令 "~" 以操作符方式工作
'timeout' 'to' 映射和键盘代码等待超时
'timeoutlen' 'tm' 超时时间 (以毫秒计)
'title' 让 Vim 设置窗口标题
'titlelen' 用于窗口标题的 'columns' 比例
'titleold' 旧的标题,用于退出时恢复
'titlestring' 用于 Vim 窗口标题的字符串
'toolbar' 'tb' GUI: 工具栏显示何种项目
'toolbariconsize' 'tbis' 工具栏图标的大小 (只适用于 GTK 2)
'ttimeout' 映射等待超时
'ttimeoutlen' 'ttm' 键盘代码超时时间 (以毫秒计)
'ttybuiltin' 'tbi' 在外部 termcap 之前先用内建的 termcap
'ttyfast' 'tf' 指示一个快速的终端连接
'ttymouse' 'ttym' 鼠标产生代码的类型
'ttyscroll' 'tsl' 滚动的最大行数
'ttytype' 'tty' 'term' 的别名
'undolevels' 'ul' 最多可以撤销的改变个数
'updatecount' 'uc' 刷新交换文件所需的字符数
'updatetime' 'ut' 刷新交换文件所需的毫秒数
'verbose' 'vbs' 给出详细信息
'verbosefile' 'vfile' 消息写入的文件
'viewdir' 'vdir' :mkview 存储文件的所在目录
'viewoptions' 'vop' 指定 :mkview 保存的内容
'viminfo' 'vi' 启动和退出时使用 .viminfo 文件
'virtualedit' 've' 何时使用虚拟编辑
'visualbell' 'vb' 使用可视铃声而不是响铃
'warn' 当缓冲区改变时,对 shell 命令给出警告
'weirdinvert' 'wi' 用于有特殊反转方法的终端
'whichwrap' 'ww' 允许指定键跨越行边界
'wildchar' 'wc' 用于通配符扩展的命令行字符
'wildcharm' 'wcm' 同 'wildchar',但对映射情况也适用
'wildignore' 'wig' 匹配这些模式的文件不会参与自动补全
'wildmenu' 'wmnu' 命令行自动补全所使用的菜单
'wildmode' 'wim' 'wildchar' 命令行扩展所用的模式
'wildoptions' 'wop' 指定如何完成命令行补全。
'winaltkeys' 'wak' 何时窗口系统处理 ALT 键
'winheight' 'wh' 当前窗口的最少行数
'winfixheight' 'wfh' 打开/关闭窗口时保持窗口高度
'winfixwidth' 'wfw' 打开/关闭窗口时保持窗口宽度
'winminheight' 'wmh' 任何窗口的最少行数
'winminwidth' 'wmw' 任何窗口的最少列数
'winwidth' 'wiw' 当前窗口的最少列数
'wrap' 长行回绕并在下一行继续
'wrapmargin' 'wm' 使 (硬) 回绕开始的从右侧起算的字符数
'wrapscan' 'ws' 搜索在文件尾折回文件头
'write' 允许写入文件
'writeany' 'wa' 写入文件不需 "!" 强制
'writebackup' 'wb' 覆盖文件时建立备份
'writedelay' 'wd' 每个字符延迟 (以毫秒计) (用于调试)
------------------------------------------------------------------------------
*Q_ur* 撤销/重做命令
|u| N u 撤销最近的 N 此改动
|CTRL-R| N CTRL-R 重做最近的 N 个被撤销的改动
|U| U 恢复最近被改动的行
------------------------------------------------------------------------------
*Q_et* 外部命令
|:shell| :sh[ell] 开启一个 shell
|:!| :!{command} 通过一个 shell 执行命令 {command}
|K| K 用 'keywordprg' 程序 (缺省: "man") 查光标下的
关键字
------------------------------------------------------------------------------
*Q_qf* Quickfix 命令
|:cc| :cc [nr] 显示第 [nr] 个错误 (缺省为同一错误)
|:cnext| :cn 显示下一个错误
|:cprevious| :cp 显示上一个错误
|:clist| :cl 列出所有错误
|:cfile| :cf 从文件 'errorfile' 读入错误
|:cgetbuffer| :cgetb 类似于 :cbuffer 但不跳转到第一个错误
|:cgetfile| :cg 类似于 :cfile 但不跳转到第一个错误
|:cgetexpr| :cgete 类似于 :cexpr 但不跳转到第一个错误
|:caddfile| :caddf 从错误文件加入错误到当前 quickfix 列表
|:caddexpr| :cad 从表达式计算结果加入错误到当前 quickfix 列表
|:cbuffer| :cb 从缓冲区文本读入错误
|:cexpr| :cex 从表达式计算结果读入错误
|:cquit| :cq 退出不保存并返回错误代码 (至编译器)
|:make| :make [args] 启动 make,读入错误,并跳转到第一个错误
|:grep| :gr[ep] [args] 执行 'grepprg' 程序以找出匹配并跳转到首个匹配
------------------------------------------------------------------------------
*Q_vc* 其他移动
|CTRL-L| CTRL-L 清除并重画屏幕
|CTRL-G| CTRL-G 显示当前文件名 (包括路径) 和光标位置
|ga| ga 以十进制、十六进制和八进制显示当前光标下的字符
的 ASCII 值
|g8| g8 对 utf-8 编码: 显示光标所在字符的十六进制字节
序列。
|g_CTRL-G| g CTRL-G 显示当前光标的列、行、以及字符位置
|CTRL-C| CTRL-C 在查找中: 中断查找
|dos-CTRL-Break| CTRL-Break MS-DOS: 在查找中: 中断查找
|<Del>| <Del> 当输入一个计数时: 删除前一个输入字符
|:version| :ve[rsion] 显示版本信息
|:mode| :mode N MS-DOS: 置屏幕模式为 N (数值、C80、C4350 等)
|:normal| :norm[al][!] {commands}
执行普通模式命令
|Q| Q 切换至 "Ex" 模式
|:redir| :redir >{file} 重定向消息至文件 {file}
|:silent| :silent[!] {command} 安静地执行 {command} 命令
|:confirm| :confirm {command} 退出、写入等有未保存的改动或文件只读时
询问。
|:browse| :browse {command} 使用文件选择对话框打开/读入/写入文件
------------------------------------------------------------------------------
*Q_ce* 命令行编辑
|c_<Esc>| <Esc> 放弃命令行 (如果 'wildchar' 通配符是
<Esc>,键入两次)
|c_CTRL-V| CTRL-V {char} 按字面插入 {char}
|c_CTRL-V| CTRL-V {number} 输入十进制数表示的字符 (可达 3 个数位)
|c_CTRL-K| CTRL-K {char1} {char2}
键入二合字母 (参见 |Q_di|)
|c_CTRL-R| CTRL-R {0-9a-z"%#:-=}
插入指定寄存器的内容
|c_<Left>| <Left>/<Right> 光标左移/右移
|c_<S-Left>| <S-Left>/<S-Right> 光标左移/右移一个单词
|c_CTRL-B| CTRL-B/CTRL-E 光标移动至命令行行首/行尾
|c_<BS>| <BS> 删除光标前的字符
|c_<Del>| <Del> 删除光标下的字符
|c_CTRL-W| CTRL-W 删除光标前的单词
|c_CTRL-U| CTRL-U 删除所有字符
|c_<Up>| <Up>/<Down> 搜索以当前命令行开始的较早/较晚的命令
|c_<S-Up>| <S-Up>/<S-Down> 从命令行历史中回忆较早/较晚的命令
|:history| :his[tory] 显示命令行历史
上下文关联的命令行补全:
|c_wildchar| 'wildchar' (缺省: <Tab>)
根据光标前的命令行补全。如果有多个匹配,响铃并
显示第一个;继续 'wildchar' 将显示下一个匹配。
|c_CTRL-D| CTRL-D 列出匹配光标前的模式的可能的匹配
|c_CTRL-A| CTRL-A 插入匹配光标前的模式的所有的匹配
|c_CTRL-L| CTRL-L 插入所有匹配当前模式的名字的最长的共同部分
|c_CTRL-N| CTRL-N 在 'wildchar' 之后存在多个匹配时:至下一匹配
|c_CTRL-P| CTRL-P 在 'wildchar' 之后存在多个匹配时:至上一匹配
------------------------------------------------------------------------------
*Q_ra* Ex 范围
|:range| , 分隔两个行号
|:range| ; 同上,但在解释第二个行号之前先移动光标至第一个
行号代表的行
|:range| {number} 绝对行号
|:range| . 当前行
|:range| $ 文件的最后一行
|:range| % 等同于 1,$ (整个文件)
|:range| * 等同于 '<,'> (可视区域)
|:range| 't 位置标记 t 的位置
|:range| /{pattern}[/] 下一个匹配 {pattern} 的行
|:range| ?{pattern}[?] 前一个匹配 {pattern} 的行
|:range| +[num] 在前面的行号上加 [num] (缺省: 1)
|:range| -[num] 从前面的行号里减 [num] (缺省: 1)
------------------------------------------------------------------------------
*Q_ex* 特殊 Ex 字符
|:bar| | 分离两个命令 (不适用于 ":global" 及 ":!")
|:quote| " 开始注释
|:_%| % 当前文件名 (仅当期望文件名时)
|:_#| #[num] 第 [num] 个轮换文件名 (仅当期望文件名时)
注: 以下四项 (译者注: 原文如此) 以字面意思键入;并非特殊键!
|:<cword>| <cword> 光标下的单词 (仅当期望文件名时)
|:<cWORD>| <cWORD> 光标下的字串 (仅当期望文件名时)
|:<cfile>| <cfile> 光标下的文件名 (仅当期望文件名时)
|:<afile>| <afile> 供自动命令使用的文件名 (仅当期望文件名时)
|:<sfile>| <sfile> ":source" 的文件里该文件的文件名 (仅当期望文件名时)
在 "%"、"#"、"<cfile>"、"<sfile>" 或 "<afile>" 之后
|::p| :p 完整路径
|::h| :h 头部 (除去文件名)
|::t| :t 尾部 (仅使用文件名)
|::r| :r 根部 (除去扩展名)
|::e| :e 扩展名
|::s| :s/{pat}/{repl}/ 以 {repl} 替换 {pat}
------------------------------------------------------------------------------
*Q_st* 启动 VIM
|-vim| vim [options] 启动 vim 并开启一个空白缓冲区
|-file| vim [options] {file} .. 启动并编辑一个或多个文件
|--| vim [options] - 从标准输入读入文件
|-tag| vim [options] -t {tag} 编辑与标签 {tag} 关联的文件
|-qf| vim [options] -q [fname] 以 QuickFix 模式开始编辑并显示首个错误
最有用的 Vim 参数 (完整列表见 |startup-options|)
|-gui| -g 启动 GUI (同时允许其他选项)
|-+| +[num] 置光标于第 [num] 行 (缺省: 末行)
|-+c| +{command} 载入文件后执行命令 {command}
|-+/| +/{pat} {file} .. 置光标于第一次出现 {pat} 的地方
|-v| -v Vi 模式,以普通模式启动 ex
|-e| -e Ex 模式,以 Ex 模式启动 vim
|-R| -R 只读模式,隐含 -n
|-m| -m 禁止修改 (复位 'write' 选项)
|-d| -d diff 模式 |diff|
|-b| -b 二进制模式
|-l| -l lisp 模式
|-A| -A 阿拉伯模式 (置位 'arabic')
|-F| -F 波斯模式 (置位 'fkmap' 和 'rightleft')
|-H| -H 希伯来模式 (置位 'hkmap' 和 'rightleft')
|-V| -V 详细,给出更多信息
|-C| -C 兼容,置位 'compatible' 选项
|-N| -N 不兼容,复位 'compatible' 选项
|-r| -r 给出交换文件列表
|-r| -r {file} .. 恢复中断的编辑
|-n| -n 不创建交换文件
|-o| -o [num] 打开 [num] 个窗口 (缺省: 每个文件一个窗口)
|-f| -f GUI: 前台进程,不调用 fork
Amiga: 不打开新窗口启动 VIM (比如,用于 mail)
|-s| -s {scriptin} 先从文件 {scriptin} 读入命令
|-w| -w {scriptout} 把键入的字符写进文件 {scriptout} (添加)
|-W| -W {scriptout} 把键入的字符写进文件 {scriptout} (覆盖)
|-T| -T {terminal} 设置终端名
|-d| -d {device} Amiga: 打开 {device} 作为控制台使用
|-u| -u {vimrc} 从文件 {vimrc} 而非其它文件读入初始化命令
|-U| -U {gvimrc} 同上,但用于启动 GUI 时
|-i| -i {viminfo} 从文件 {viminfo} 而不是其它文件读入信息
|---| -- 结束选项,其余的参数都将是文件名
|--help| --help 显示参数列表并退出
|--version| --version 显示版本信息并退出
|--| - 从标准输入读入文件
------------------------------------------------------------------------------
*Q_ed* 文件编辑
无 !: 若当前缓冲区已被改动则失败
有 !: 放弃任何对当前缓冲区的改动
|:edit_f| :e[dit][!] {file} 编辑 {file}。
|:edit| :e[dit][!] 重新载入当前文件。
|:enew| :ene[w][!] 编辑一个无名的新缓冲区。
|:find| :fin[d][!] {file} 在 'path' 当中查找文件 {file} 并编辑之。
|CTRL-^| N CTRL-^ 编辑第 N 个轮换文件名 (同 ":e #N")。
|gf| gf 或 ]f 编辑光标下的文件名对应的文件 (goto file)
|:pwd| :pwd 显示当前目录名。
|:cd| :cd [path] 切换当前目录到 [path]。
|:cd-| :cd - 回到上一次当前目录。
|:file| :f[ile] 显示当前文件名及光标位置。
|:file| :f[ile] {name} 置当前文件名为 {name}。
|:files| :files 显示所有的轮换文件名。
------------------------------------------------------------------------------
*Q_fl* 使用参数列表 |argument-list|
|:args| :ar[gs] 显示参数列表,当前文件显示在 "[]" 中。
|:all| :all 或 :sall 为参数列表中的每个文件打开一个窗口。
|:wn| :wn[ext][!] 写入当前文件并编辑下一个文件。
|:wn| :wn[ext][!] {file} 写到 {file} 并编辑下一个文件,除非文件 {file}
已经存在。使用 !,覆盖已存在的文件。
|:wN| :wN[ext][!] [file] 写入当前文件并编辑前一个文件。
在当前窗口 新建窗口 ~
|:argument| :argu[ment] N :sar[gument] N 编辑第 N 个文件
|:next| :n[ext] :sn[ext] 编辑下一个文件
|:next_f| :n[ext] {arglist} :sn[ext] {arglist} 定义新的文件列表并编辑
其中的第一个
|:Next| :N[ext] :sN[ext] 编辑前一个文件
|:first| :fir[st] :sfir[st] 编辑第一个文件
|:last| :la[st] :sla[st] 编辑最后一个文件
------------------------------------------------------------------------------
*Q_wq* 写入和退出
|:w| :[range]w[rite][!] 写入当前文件。
|:w_f| :[range]w[rite] {file} 写入至文件 {file},除非其已经存在。
|:w_f| :[range]w[rite]! {file} 写入至文件 {file}。覆盖已存在的文件。
|:w_a| :[range]w[rite][!] >> 添加至当前文件。
|:w_a| :[range]w[rite][!] >> {file} 添加至文件 {file}。
|:w_c| :[range]w[rite] !{cmd} 执行命令 {cmd},以 [range] 限定的行作
为标准输入。
|:up| :[range]up[date][!] 如果当前文件被改动则写入
|:wall| :wa[ll][!] 写入所有被改动的缓冲区
|:q| :q[uit] 退出当前缓冲区,除非已经做了改动。如果没有其它
非帮助的缓冲区,退出 Vim
|:q| :q[uit]! 强制退出当前缓冲区,放弃所有的改动。如果没有其
它非帮助的缓冲区,退出 Vim
|:qa| :qa[ll] 退出 Vim,除非作了改动。
|:qa| :qa[ll]! 退出 Vim,放弃所有改动。
|:cq| :cq 退出,不写入文件并返回错误代码。
|:wq| :wq[!] 写入当前文件并退出。
|:wq| :wq[!] {file} 写入文件 {file} 并退出。
|:xit| :x[it][!] [file] 同 ":wq" 但是仅当有改动时写入
|ZZ| ZZ 同 ":x"。
|ZQ| ZQ 同 ":q!"。
|:xall| :xa[ll][!] 或 :wqall[!]
写入所有改动的缓冲区并退出
|:stop| :st[op][!] 挂起 VIM 或开始一个新 shell。如果置位了 'aw'
选项并没有给出 [!] 则写入缓冲区。
|CTRL-Z| CTRL-Z 同 ":stop"
------------------------------------------------------------------------------
*Q_ac* 自动命令
|viminfo-file| 启动时读入寄存器、标记、历史记录,退出时存储这些信息。
|:rviminfo| :rv[iminfo] [file] 从文件 [file] 读入 viminfo 信息
|:rviminfo| :rv[iminfo]! [file] 同上,但覆盖已存在的信息
|:wviminfo| :wv[iminfo] [file] 向文件 [file] 中加入 viminfo 信息
|:wviminfo| :wv[iminfo]! [file] 向文件 [file] 中写入 viminfo 信息
|modeline| 当编辑一个文件时自动设定的选项
|modeline| vim:{set-arg}: .. 置于文件的前面或后面数行 (参见 'ml' 选
项),{set-arg} 为传递给 ":set" 命令
的参数
|autocommand| 特定事件发生时自动执行命令。
|:autocmd| :au 列出所有自动命令
|:autocmd| :au {event} 列出针对事件 {event} 的所有自动命令
|:autocmd| :au {event} {pat} 列出针对事件 {event} 并匹配 {pat} 的所
有自动命令
|:autocmd| :au {event} {pat} {cmd} 加入针对事件 {event} 及匹配 {pat} 的新
自动命令
|:autocmd| :au! 清除所有自动命令
|:autocmd| :au! {event} 清除所有针对事件 {event} 的自动命令
|:autocmd| :au! * {pat} 清除所有匹配 {pat} 的自动命令
|:autocmd| :au! {event} {pat} 清除所有针对事件 {event} 及匹配 {pat}
的自动命令
|:autocmd| :au! {event} {pat} {cmd} 清除所有针对事件 {event} 及匹配
{pat} 的自动命令并输入新的
------------------------------------------------------------------------------
*Q_wi* 多窗口命令
|CTRL-W_s| CTRL-W s 或 :split 将窗口分割成两部分 (split)
|:split_f| :split {file} 分隔窗口并在其中一个编辑 {file}
|:vsplit| :vsplit {file} 同上,但垂直分割
|:vertical| :vertical {cmd} 使命令 {cmd} 垂直分割
|:sfind| :sf[ind] {file} 分割窗口,从 {path} 中找到文件
{file} 并编辑之。
|CTRL-W_]| CTRL-W ] 分割窗口并跳转到光标下的标签
|CTRL-W_f| CTRL-W f 分割窗口并编辑光标下的文件名 (file)
|CTRL-W_^| CTRL-W ^ 分割窗口并编辑轮换文件
|CTRL-W_n| CTRL-W n 或 :new 创建新空白窗口 (new)
|CTRL-W_q| CTRL-W q 或 :q[uit] 退出编辑并关闭窗口 (quit)
|CTRL-W_c| CTRL-W c 或 :cl[ose] 隐藏当前缓冲区并关闭窗口 (close)
|CTRL-W_o| CTRL-W o 或 :on[ly] 使当前窗口成为唯一窗口 (only)
|CTRL-W_j| CTRL-W j 跳转到下方窗口
|CTRL-W_k| CTRL-W k 跳转到上方窗口
|CTRL-W_CTRL-W| CTRL-W CTRL-W 移动光标至下方窗口 (折转) (Wrap)
|CTRL-W_W| CTRL-W W 移动光标至上方窗口 (折转) (wrap)
|CTRL-W_t| CTRL-W t 跳转到顶端窗口 (top)
|CTRL-W_b| CTRL-W b 跳转到底端窗口 (bottom)
|CTRL-W_p| CTRL-W p 跳转到上一次激活的窗口 (previous)
|CTRL-W_r| CTRL-W r 向下旋转窗口 (rotate)
|CTRL-W_R| CTRL-W R 向上旋转窗口 (Rotate)
|CTRL-W_x| CTRL-W x 将当前窗口与下一个窗口对调 (eXchange)
|CTRL-W_=| CTRL-W = 使所有窗口等高
|CTRL-W_-| CTRL-W - 减少当前窗口高度
|CTRL-W_+| CTRL-W + 增加当前窗口高度
|CTRL-W__| CTRL-W _ 设置当前窗口高度 (缺省: 很高)
------------------------------------------------------------------------------
*Q_bu* 缓冲区列表命令
|:buffers| :buffers 或 :files 列出所有已知的缓冲区和文件名
|:ball| :ball 或 :sball 编辑所有的参数/缓冲区
|:unhide| :unhide 或 :sunhide 编辑所有载入的缓冲区
|:badd| :badd {fname} 加入文件名 {fname} 到列表中
|:bunload| :bunload[!] [N] 从内存中卸载缓冲区 [N]
|:bdelete| :bdelete[!] [N] 从内存中卸载缓冲区 [N] 并从列表中删除
当前窗口内 新窗口内 ~
|:buffer| :[N]buffer [N] :[N]sbuffer [N] 至参数/缓冲区 N
|:bnext| :[N]bnext [N] :[N]sbnext [N] 至往后第 N 个参数/缓冲区
|:bNext| :[N]bNext [N] :[N]sbNext [N] 至往前第 N 个参数/缓冲区
|:bprevious| :[N]bprevious [N] :[N]sbprevious [N] 至往前第 N 个参数/缓冲区
|:bfirst| :bfirst :sbfirst 至第一个参数/缓冲区
|:blast| :blast :sblast 至最后一个参数/缓冲区
|:bmodified| :[N]bmod [N] :[N]sbmod [N] 至第 N 个改动过的缓冲区
------------------------------------------------------------------------------
*Q_sy* 语法高亮
|:syn-on| :syntax on 开始使用语法高亮
|:syn-off| :syntax off 停止使用语法高亮
|:syn-keyword| :syntax keyword {group-name} {keyword} ..
添加语法关键字项目
|:syn-match| :syntax match {group-name} {pattern} ...
加入语法匹配项目
|:syn-region| :syntax region {group-name} {pattern} ...
添加语法区域项目
|:syn-sync| :syntax sync [ccomment | lines {N} | ...]
设置语法高亮的同步方式
|:syntax| :syntax [list] 列出当前语法项目
|:syn-clear| :syntax clear 清除所有语法信息
|:highlight| :highlight clear 清除所有高亮信息
|:highlight| :highlight {group-name} {key}={arg} ..
为语法组 {group-name} 设置高亮
|:filetype| :filetype on 开启文件类型检测,不启用语法高亮
|:filetype| :filetype plugin indent on
开启文件类型检测,包括自动缩进及设置
------------------------------------------------------------------------------
*Q_gu* GUI 命令
|:gui| :gui UNIX: 启动 GUI
|:gui| :gui {fname} .. 同上,并编辑 {fname} ..
|:menu| :menu 列出所有菜单
|:menu| :menu {mpath} 列出 {mpath} 下的所有菜单
|:menu| :menu {mpath} {rhs} 把 {rhs} 加入菜单 {mpath}
|:menu| :menu {pri} {mpath} {rhs}
同上,并带有优先权 {pri}
|:menu| :menu ToolBar.{name} {rhs}
把 {rhs} 加入工具栏
|:tmenu| :tmenu {mpath} {text} 为菜单 {mpath} 加入工具提示
|:unmenu| :unmenu {mpath} 删除菜单 {mpath}
------------------------------------------------------------------------------
*Q_fo* 折叠
|'foldmethod'| set foldmethod=manual 手动折叠
set foldmethod=indent 按照缩进折叠
set foldmethod=expr 按照表达式 'foldexpr' 折叠
set foldmethod=syntax 按照语法区域折叠
set foldmethod=marker 按照标志 'foldmarkers' 折叠
|zf| zf{motion} 操作符: 手动定义一个折叠 (fold)
|:fold| :{range}fold 将范围 {range} 包括的行定义为一个折叠
|zd| zd 删除光标下的一个折叠 (delete)
|zD| zD 删除光标下的所有折叠 (Delete)
|zo| zo 打开光标下的折叠 (open)
|zO| zO 打开光标下的所有折叠 (Open)
|zc| zc 关闭光标下的一个折叠 (close)
|zC| zC 关闭光标下的所有折叠 (Close)
|zm| zm 折起更多: 减少 'foldlevel' (more)
|zM| zM 关闭所有折叠: 置 'foldlevel' 为 0
|zr| zr 减少折叠: 增加 'foldlevel' (reduce)
|zR| zR 打开所有折叠: 置 'foldlevel' 为最大
|zn| zn 不折叠: 复位 'foldenable' (none)
|zN| zN 正常折叠: 置位 'foldenable' (Normal)
|zi| zi 反转 'foldenable' (invert)
vim:tw=78:ts=8:ft=help:norl:
posted on 2007-11-23 11:37
Dr.Magic 阅读(915)
评论(0) 编辑 收藏 引用