*quickref* *Contents* tag subject tag subject ~ |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_ed| 文件编辑 |Q_di| 插入: 二合字母 |Q_fl| 使用参数列表 |Q_si| 插入: 特殊插入 |Q_wq| 写入与退出 |Q_de| 改动: 删除文本 |Q_st| 启动 VIM |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}的地方 |F| N F{char} 移动至左边第 N 次出现{char}的地方 |t| N t{char} 移动至右边第 N 次出现{char}之前 |T| N T{char} 移动至左边第 N 次出现{char}之前 |;| 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 行, 并至第一个非空白字符 (亦: CTRL-M 和 <CR>) |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 个单词 |W| N W 向前 N 个空白隔开的单词 |WORD| |e| N e 向前至第 N 个单词词尾 |E| N E 向前至第 N 个以空白隔开的单词 |WORD| 的词尾 |b| N b 向后 N 个单词 |B| N B 向后至第 N 个以空白隔开的单词 |WORD| 的词尾 |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 个方法的开始 (用于 Java) |[M| N [M 向后至第 N 个方法的结束 (用于 Java) |])| N ]) 向前至第 N 个未结束的 ')' |]}| N ]} 向前至第 N 个未结束的 '}' |]m| N ]m 向前至第 N 个方法的开始 (用于 Java) |]M| N ]M 向前至第 N 个方法的结束 (用于 Java) |[#| N [# 向后至第 N 个未结束的 "#if" 或 "#else" |]#| N ]# 向前至第 N 个未结束的 "#else" or "#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 移动至光标下表示符的局布声明 |gD| gD 移动至光标下表示符的全局声明
|pattern| 查找模式中的特殊字符
meaning 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 或多个前面的匹配原子 * /* 匹配 0 或多个前面的匹配原子 /+ /+ 匹配 0 或多个前面的匹配原子 /= /= 匹配 2 至 5 个前面的匹配原子 /{2,5} /{2,5} 隔开两种可能的匹配 /| /| 将一个模式组成一个匹配原子 /(/) /(/)
|search-offset| 查找命令后可用的偏移量
[num] [num] 行向下, 位于第一栏 +[num] [num] 行向下, 位于第一栏 -[num] [num] 行向上, 位于第一栏 e[+num] 匹配结尾右方 [num] 个字符处 e[-num] 匹配结尾左方 [num] 个字符处 s[+num] 匹配启始右方 [num] 个字符处 s[-num] 匹配启始左方 [num] 个字符处 b[+num] 匹配启始右方 [num] 个字符处 b[-num] 匹配启始左方 [num] 个字符处 ;{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 行的第一个非空白字符处 |M| M 移动至窗口的中间行的第一个非空白字符处 |L| N L 移动至窗口的第 N 行(从下方算)的第一个非空白字符处
|go| N go 移动至缓冲的第 N 个字节 |:go| :[range]go[to] [off] 移动至缓冲的第 [off] 个字节 ------------------------------------------------------------------------------ *Q_ta* 使用标签
|:ta| :ta[g][!] {tag} 跳转至标签 {tag} |:ta| :[count]ta[g][!] Jump to [count]'th newer tag in tag list |CTRL-]| CTRL-] 跳转至光标下的标签,除非文件被改动 |:ts| :ts[elect][!] [tag] 列出匹配的标签并选择一个跳转 |:tjump| :tj[ump][!] [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) |CTRL-D| N CTRL-D 窗口下卷 N 行 (缺省: 1/2 窗口) |CTRL-F| N CTRL-F 窗口前卷 N 页 (向下) |CTRL-Y| N CTRL-Y 窗口上卷 N 行 (缺省: 1) |CTRL-U| N CTRL-U 窗口上卷 N 行 (缺省: 1/2 窗口) |CTRL-B| N CTRL-B 窗口后卷 N 页 (向下) (向上) |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][!] 开始插入模式,当使用 [!] 时添加文本
在可视块模式下: |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> or 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 times) |P| N P 将一个寄存器的内容放置在光标位置前 (N times) |]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> 用命令 {command} 过滤 N 行 |v_!| {visual}!{command}<CR> 将加亮的行用命令 {command} 过滤 |:range!| :[range]! {command}<CR> 将范围 [range] 包括的行用命令 {command} 过滤 |=| N ={motion} 将动作覆盖的行用 'equalprg' 过滤 |==| N == 用 'equalprg' 过滤 N 行 |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 选择 "一个单词" |v_iw| N iw 选择 "内单词" |v_aW| N aW 选择 "一个 |WORD|" |v_iW| N iW 选择 "内 |WORD|" |v_as| N as 选择 "一个句子" |v_is| N is 选择 "内句子" |v_ap| N ap 选择 "选择一个段落" |v_ip| N ip 选择 "内段落" |v_ab| N ab 选择 "一个块" (从 "[(" 至 "])") |v_ib| N ib 选择 "内块" (从 "[(" 到 "])") |v_aB| N aB 选择 "一个 Block" (从 "[{" 到 "]}") |v_iB| N iB 选择 "内 Block" (从 "[{" 到 "]}") ------------------------------------------------------------------------------ *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 秒 ------------------------------------------------------------------------------ *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!" 但仅作用于 命令行模式 |:imap| :imap/:iunmap/:inoremap 如 ":map!"/":unmap!"/":noremap!" 但仅作用于 插入行模式 |:nmap| :nmap/:nunmap/:nnoremap 如 ":map!"/":unmap!"/":noremap!" 但仅作用于 普通行模式 |:vmap| :vmap/:vunmap/:vnoremap 如 ":map!"/":unmap!"/":noremap!" 但仅作用于 可视模式 |:omap| :omap/:ounmap/:onoremap 如 ":map!"/":unmap!"/":noremap!" 但仅作用于 Operator-pending 模式 |:mapc| :mapc[lear] 清除通及可视模式下的映射 |:mapc| :mapc[lear]! 清除插入及命令行模式下的映射 |:imapc| :imapc[lear] 清除插入模式下的映射 |:vmapc| :vmapc[lear] 清除可视模式下的映射 |:omapc| :omapc[lear] 清除 Operator-pending 模式下的映射 |: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", but don't remap [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} invert boolean option. |:set| :se[t] {option}={value} Set string/number option to {value}. |:set| :se[t] {option}+={value} append {value} to string option, add {value} to number option |:set| :se[t] {option}-={value} remove {value} to string option, subtract {value} from number option |:set| :se[t] {option}? 显示 {option} 的值 |:set| :se[t] {option}& Reset {option} to its default value.
|:setlocal| :setl[ocal] like ":set" but set the local value for options that have one |:setglobal| :setg[lobal] like ":set" but set the global value of a local option
|:fix| :fix[del] Set value of 't_kD' according to value of 't_kb'. |:options| :opt[ions] Open a new window to view and set options, grouped by functionality, a one line explanation and links to the help.
各选项的简短说明: *option-list* |'aleph'| |'al'| ASCII code of the letter Aleph (Hebrew) |'allowrevins'| |'ari'| allow CTRL-_ in Insert and Command-line mode |'altkeymap'| |'akm'| for default second language (Farsi/Hebrew) |'ambiwidth'| |'ambw'| what to do with Unicode chars of ambiguous width |'antialias'| |'anti'| Mac OS X: use smooth, antialiased fonts |'autochdir'| |'acd'| change directory to the file in the current window |'arabic'| |'arab'| for Arabic as a default second language |'arabicshape'| |'arshape'| do shaping for Arabic characters |'autoindent'| |'ai'| take indent for new line from previous line |'autoread'| |'ar'| autom. read file when changed outside of Vim |'autowrite'| |'aw'| automatically write file if changed |'autowriteall'| |'awa'| as 'autowrite', but works with more commands |'background'| |'bg'| "dark" or "light", used for highlight colors |'backspace'| |'bs'| how backspace works at start of line |'backup'| |'bk'| keep backup file after overwriting a file |'backupcopy'| |'bkc'| make backup as a copy, don't rename the file |'backupdir'| |'bdir'| list of directories for the backup file |'backupext'| |'bex'| extension used for the backup file |'backupskip'| |'bsk'| no backup for files that match these patterns |'balloondelay'| |'bdlay'| delay in mS before a balloon may pop up |'ballooneval'| |'beval'| switch on balloon evaluation |'binary'| |'bin'| read/write/edit file in binary mode |'bioskey'| |'biosk'| MS-DOS: use bios calls for input characters |'bomb'| prepend a Byte Order Mark to the file |'breakat'| |'brk'| characters that may cause a line break |'browsedir'| |'bsdir'| which directory to start browsing in |'bufhidden'| |'bh'| what to do when buffer is no longer in window |'buflisted'| |'bl'| whether the buffer shows up in the buffer list |'buftype'| |'bt'| special type of buffer |'casemap'| |'cmp'| specifies how case of letters is changed |'cdpath'| |'cd'| list of directories searched with ":cd" |'cedit'| key used to open the command-line window |'charconvert'| |'ccv'| expression for character encoding conversion |'cindent'| |'cin'| do C program indenting |'cinkeys'| |'cink'| keys that trigger indent when 'cindent' is set |'cinoptions'| |'cino'| how to do indenting when 'cindent' is set |'cinwords'| |'cinw'| words where 'si' and 'cin' add an indent |'clipboard'| |'cb'| use the clipboard as the unnamed register |'cmdheight'| |'ch'| number of lines to use for the command-line |'cmdwinheight'| |'cwh'| height of the command-line window |'columns'| |'co'| number of columns in the display |'comments'| |'com'| patterns that can start a comment line |'commentstring'| |'cms'| template for comments; used for fold marker |'compatible'| |'cp'| behave Vi-compatible as much as possible |'complete'| |'cpt'| specify how Insert mode completion works |'confirm'| |'cf'| ask what to do about unsaved/read-only files |'conskey'| |'consk'| get keys directly from console (MS-DOS only) |'copyindent'| |'ci'| make 'autoindent' use existing indent structure |'cpoptions'| |'cpo'| flags for Vi-compatible behavior |'cscopepathcomp'| |'cspc'| how many components of the path to show |'cscopeprg'| |'csprg'| command to execute cscope |'cscopequickfix'| |'csqf'| use quickfix window for cscope results |'cscopetag'| |'cst'| use cscope for tag commands |'cscopetagorder'| |'csto'| determines ":cstag" search order |'cscopeverbose'| |'csverb'| give messages when adding a cscope database |'debug'| set to "msg" to see all error messages |'define'| |'def'| pattern to be used to find a macro definition |'delcombine'| |'deco'| delete combining characters on their own |'dictionary'| |'dict'| list of file names used for keyword completion |'diff'| use diff mode for the current window |'diffexpr'| |'dex'| expression used to obtain a diff file |'diffopt'| |'dip'| options for using diff mode |'digraph'| |'dg'| enable the entering of digraphs in Insert mode |'directory'| |'dir'| list of directory names for the swap file |'display'| |'dy'| list of flags for how to display text |'eadirection'| |'ead'| in which direction 'equalalways' works |'edcompatible'| |'ed'| toggle flags of ":substitute" command |'encoding'| |'enc'| encoding used internally |'endofline'| |'eol'| write <EOL> for last line in file |'equalalways'| |'ea'| windows are automatically made the same size |'equalprg'| |'ep'| external program to use for "=" command |'errorbells'| |'eb'| ring the bell for error messages |'errorfile'| |'ef'| name of the errorfile for the QuickFix mode |'errorformat'| |'efm'| description of the lines in the error file |'esckeys'| |'ek'| recognize function keys in Insert mode |'eventignore'| |'ei'| autocommand events that are ignored |'expandtab'| |'et'| use spaces when <Tab> is inserted |'exrc'| |'ex'| read .vimrc and .exrc in the current directory |'fileencoding'| |'fenc'| file encoding for multi-byte text |'fileencodings'| |'fencs'| automatically detected character encodings |'fileformat'| |'ff'| file format used for file I/O |'fileformats'| |'ffs'| automatically detected values for 'fileformat' |'filetype'| |'ft'| type of file, used for autocommands |'fillchars'| |'fcs'| characters to use for displaying special items |'fkmap'| |'fk'| Farsi keyboard mapping |'foldclose'| |'fcl'| close a fold when the cursor leaves it |'foldcolumn'| |'fdc'| width of the column used to indicate folds |'foldenable'| |'fen'| set to display all folds open |'foldexpr'| |'fde'| expression used when 'foldmethod' is "expr" |'foldignore'| |'fdi'| ignore lines when 'foldmethod' is "indent" |'foldlevel'| |'fdl'| close folds with a level higher than this |'foldlevelstart'| |'fdls'| 'foldlevel' when starting to edit a file |'foldmarker'| |'fmr'| markers used when 'foldmethod' is "marker" |'foldmethod'| |'fdm'| folding type |'foldminlines'| |'fml'| minimum number of lines for a fold to be closed |'foldnestmax'| |'fdn'| maximum fold depth |'foldopen'| |'fdo'| for which commands a fold will be opened |'foldtext'| |'fdt'| expression used to display for a closed fold |'formatoptions'| |'fo'| how automatic formatting is to be done |'formatprg'| |'fp'| name of external program used with "gq" command |'gdefault'| |'gd'| the ":substitute" flag 'g' is default on |'grepformat'| |'gfm'| format of 'grepprg' output |'grepprg'| |'gp'| program to use for ":grep" |'guicursor'| |'gcr'| GUI: settings for cursor shape and blinking |'guifont'| |'gfn'| GUI: Name(s) of font(s) to be used |'guifontset'| |'gfs'| GUI: Names of multi-byte fonts to be used |'guifontwide'| |'gfw'| list of font names for double-wide characters |'guiheadroom'| |'ghr'| GUI: pixels room for window decorations |'guioptions'| |'go'| GUI: Which components and options are used |'guipty'| GUI: try to use a pseudo-tty for ":!" commands |'helpfile'| |'hf'| full path name of the main help file |'helpheight'| |'hh'| minimum height of a new help window |'helplang'| |'hlg'| preferred help languages |'hidden'| |'hid'| don't unload buffer when it is |abandon|ed |'highlight'| |'hl'| sets highlighting mode for various occasions |'hlsearch'| |'hls'| highlight matches with last search pattern |'history'| |'hi'| number of command-lines that are remembered |'hkmap'| |'hk'| Hebrew keyboard mapping |'hkmapp'| |'hkp'| phonetic Hebrew keyboard mapping |'icon'| let Vim set the text of the window icon |'iconstring'| string to use for the Vim icon text |'ignorecase'| |'ic'| ignore case in search patterns |'imactivatekey'| |'imak'| key that activates the X input method |'imcmdline'| |'imc'| use IM when starting to edit a command line |'imdisable'| |'imd'| do not use the IM in any mode |'iminsert'| |'imi'| use :lmap or IM in Insert mode |'imsearch'| |'ims'| use :lmap or IM when typing a search pattern |'include'| |'inc'| pattern to be used to find an include file |'includeexpr'| |'inex'| expression used to process an include line |'incsearch'| |'is'| highlight match while typing search pattern |'indentexpr'| |'inde'| expression used to obtain the indent of a line |'indentkeys'| |'indk'| keys that trigger indenting with 'indentexpr' |'infercase'| |'inf'| adjust case of match for keyword completion |'insertmode'| |'im'| start the edit of a file in Insert mode |'isfname'| |'isf'| characters included in file names and pathnames |'isident'| |'isi'| characters included in identifiers |'iskeyword'| |'isk'| characters included in keywords |'isprint'| |'isp'| printable characters |'joinspaces'| |'js'| two spaces after a period with a join command |'key'| encryption key |'keymap'| |'kmp'| name of a keyboard mapping |'keymodel'| |'km'| enable starting/stopping selection with keys |'keywordprg'| |'kp'| program to use for the "K" command |'langmap'| |'lmap'| alphabetic characters for other language mode |'langmenu'| |'lm'| language to be used for the menus |'laststatus'| |'ls'| tells when last window has status lines |'lazyredraw'| |'lz'| don't redraw while executing macros |'linebreak'| |'lbr'| wrap long lines at a blank |'lines'| number of lines in the display |'linespace'| |'lsp'| number of pixel lines to use between characters |'lisp'| automatic indenting for Lisp |'lispwords'| |'lw'| words that change how lisp indenting works |'list'| show <Tab> and <EOL> |'listchars'| |'lcs'| characters for displaying in list mode |'loadplugins'| |'lpl'| load plugin scripts when starting up |'magic'| changes special characters in search patterns |'makeef'| |'mef'| name of the errorfile for ":make" |'makeprg'| |'mp'| program to use for the ":make" command |'matchpairs'| |'mps'| pairs of characters that "%" can match |'matchtime'| |'mat'| tenths of a second to show matching paren |'maxfuncdepth'| |'mfd'| maximum recursive depth for user functions |'maxmapdepth'| |'mmd'| maximum recursive depth for mapping |'maxmem'| |'mm'| maximum memory (in Kbyte) used for one buffer |'maxmemtot'| |'mmt'| maximum memory (in Kbyte) used for all buffers |'menuitems'| |'mis'| maximum number of items in a menu |'modeline'| |'ml'| recognize modelines at start or end of file |'modelines'| |'mls'| number of lines checked for modelines |'modifiable'| |'ma'| changes to the text are not possible |'modified'| |'mod'| buffer has been modified |'more'| pause listings when the whole screen is filled |'mouse'| enable the use of mouse clicks |'mousefocus'| |'mousef'| keyboard focus follows the mouse |'mousehide'| |'mh'| hide mouse pointer while typing |'mousemodel'| |'mousem'| changes meaning of mouse buttons |'mouseshape'| |'mouses'| shape of the mouse pointer in different modes |'mousetime'| |'mouset'| max time between mouse double-click |'nrformats'| |'nf'| number formats recognized for CTRL-A command |'number'| |'nu'| print the line number in front of each line |'osfiletype'| |'oft'| operating system-specific filetype information |'paragraphs'| |'para'| nroff macros that separate paragraphs |'paste'| allow pasting text |'pastetoggle'| |'pt'| key code that causes 'paste' to toggle |'patchexpr'| |'pex'| expression used to patch a file |'patchmode'| |'pm'| keep the oldest version of a file |'path'| |'pa'| list of directories searched with "gf" et.al. |'preserveindent'| |'pi'| preserve the indent structure when reindenting |'previewheight'| |'pvh'| height of the preview window |'previewwindow'| |'pvw'| identifies the preview window |'printdevice'| |'pdev'| name of the printer to be used for :hardcopy |'printencoding'| |'penc'| encoding to be used for printing |'printexpr'| |'pexpr'| expression used to print PostScript for :hardcopy |'printfont'| |'pfn'| name of the font to be used for :hardcopy |'printheader'| |'pheader'| format of the header used for :hardcopy |'printoptions'| |'popt'| controls the format of :hardcopy output |'readonly'| |'ro'| disallow writing the buffer |'remap'| allow mappings to work recursively |'report'| threshold for reporting nr. of lines changed |'restorescreen'| |'rs'| Win32: restore screen when exiting |'revins'| |'ri'| inserting characters will work backwards |'rightleft'| |'rl'| window is right-to-left oriented |'rightleftcmd'| |'rlc'| commands for which editing works right-to-left |'ruler'| |'ru'| show cursor line and column in the status line |'rulerformat'| |'ruf'| custom format for the ruler |'runtimepath'| |'rtp'| list of directories used for runtime files |'scroll'| |'scr'| lines to scroll with CTRL-U and CTRL-D |'scrollbind'| |'scb'| scroll in window as other windows scroll |'scrolljump'| |'sj'| minimum number of lines to scroll |'scrolloff'| |'so'| minimum nr. of lines above and below cursor |'scrollopt'| |'sbo'| how 'scrollbind' should behave |'sections'| |'sect'| nroff macros that separate sections |'secure'| secure mode for reading .vimrc in current dir |'selection'| |'sel'| what type of selection to use |'selectmode'| |'slm'| when to use Select mode instead of Visual mode |'sessionoptions'| |'ssop'| options for |:mksession| |'shell'| |'sh'| name of shell to use for external commands |'shellcmdflag'| |'shcf'| flag to shell to execute one command |'shellpipe'| |'sp'| string to put output of ":make" in error file |'shellquote'| |'shq'| quote character(s) for around shell command |'shellredir'| |'srr'| string to put output of filter in a temp file |'shellslash'| |'ssl'| use forward slash for shell file names |'shelltype'| |'st'| Amiga: influences how to use a shell |'shellxquote'| |'sxq'| like 'shellquote', but include redirection |'shiftround'| |'sr'| round indent to multiple of shiftwidth |'shiftwidth'| |'sw'| number of spaces to use for (auto)indent step |'shortmess'| |'shm'| list of flags, reduce length of messages |'shortname'| |'sn'| non-MS-DOS: Filenames assumed to be 8.3 chars |'showbreak'| |'sbr'| string to use at the start of wrapped lines |'showcmd'| |'sc'| show (partial) command in status line |'showfulltag'| |'sft'| show full tag pattern when completing tag |'showmatch'| |'sm'| briefly jump to matching bracket if insert one |'showmode'| |'smd'| message on status line to show current mode |'sidescroll'| |'ss'| minimum number of columns to scroll horizontal |'sidescrolloff'| |'siso'| min. nr. of columns to left and right of cursor |'smartcase'| |'scs'| no ignore case when pattern has uppercase |'smartindent'| |'si'| smart autoindenting for C programs |'smarttab'| |'sta'| use 'shiftwidth' when inserting <Tab> |'softtabstop'| |'sts'| number of spaces that <Tab> uses while editing |'splitbelow'| |'sb'| new window from split is below the current one |'splitright'| |'spr'| new window is put right of the current one |'startofline'| |'sol'| commands move cursor to first blank in line |'statusline'| |'stl'| custom format for the status line |'suffixes'| |'su'| suffixes that are ignored with multiple match |'suffixesadd'| |'sua'| suffixes added when searching for a file |'swapfile'| |'swf'| whether to use a swapfile for a buffer |'swapsync'| |'sws'| how to sync the swap file |'switchbuf'| |'swb'| sets behavior when switching to another buffer |'syntax'| |'syn'| syntax to be loaded for current buffer |'tabstop'| |'ts'| number of spaces that <Tab> in file uses |'tagbsearch'| |'tbs'| use binary searching in tags files |'taglength'| |'tl'| number of significant characters for a tag |'tagrelative'| |'tr'| file names in tag file are relative |'tags'| |'tag'| list of file names used by the tag command |'tagstack'| |'tgst'| push tags onto the tag stack |'term'| name of the terminal |'termbidi'| |'tbidi'| terminal takes care of bi-directionality |'termencoding'| |'tenc'| character encoding used by the terminal |'terse'| shorten some messages |'textauto'| |'ta'| obsolete, use 'fileformats' |'textmode'| |'tx'| obsolete, use 'fileformat' |'textwidth'| |'tw'| maximum width of text that is being inserted |'thesaurus'| |'tsr'| list of thesaurus files for keyword completion |'tildeop'| |'top'| tilde command "~" behaves like an operator |'timeout'| |'to'| time out on mappings and key codes |'timeoutlen'| |'tm'| time out time in milliseconds |'title'| let Vim set the title of the window |'titlelen'| percentage of 'columns' used for window title |'titleold'| old title, restored when exiting |'titlestring'| string to use for the Vim window title |'toolbar'| |'tb'| GUI: which items to show in the toolbar |'toolbariconsize'| |'tbis'| size of the toolbar icons (for GTK 2 only) |'ttimeout'| time out on mappings |'ttimeoutlen'| |'ttm'| time out time for key codes in milliseconds |'ttybuiltin'| |'tbi'| use built-in termcap before external termcap |'ttyfast'| |'tf'| indicates a fast terminal connection |'ttymouse'| |'ttym'| type of mouse codes generated |'ttyscroll'| |'tsl'| maximum number of lines for a scroll |'ttytype'| |'tty'| alias for 'term' |'undolevels'| |'ul'| maximum number of changes that can be undone |'updatecount'| |'uc'| after this many characters flush swap file |'updatetime'| |'ut'| after this many milliseconds flush swap file |'verbose'| |'vbs'| give informative messages |'viewdir'| |'vdir'| directory where to store files with :mkview |'viewoptions'| |'vop'| specifies what to save for :mkview |'viminfo'| |'vi'| use .viminfo file upon startup and exiting |'virtualedit'| |'ve'| when to use virtual editing |'visualbell'| |'vb'| use visual bell instead of beeping |'warn'| warn for shell command when buffer was changed |'weirdinvert'| |'wi'| for terminals that have weird inversion method |'whichwrap'| |'ww'| allow specified keys to cross line boundaries |'wildchar'| |'wc'| command-line character for wildcard expansion |'wildcharm'| |'wcm'| like 'wildchar' but also works when mapped |'wildignore'| |'wig'| files matching these patterns are not completed |'wildmenu'| |'wmnu'| use menu for command line completion |'wildmode'| |'wim'| mode for 'wildchar' command-line expansion |'winaltkeys'| |'wak'| when the windows system handles ALT keys |'winheight'| |'wh'| minimum number of lines for the current window |'winfixheight'| |'wfh'| keep window height when opening/closing windows |'winminheight'| |'wmh'| minimum number of lines for any window |'winminwidth'| |'wmw'| minimal number of columns for any window |'winwidth'| |'wiw'| minimal number of columns for current window |'wrap'| long lines wrap and continue on the next line |'wrapmargin'| |'wm'| chars from the right where wrapping starts |'wrapscan'| |'ws'| searches wrap around the end of the file |'write'| writing to a file is allowed |'writeany'| |'wa'| write to file with no need for "!" override |'writebackup'| |'wb'| make a backup before overwriting a file |'writedelay'| |'wd'| delay this many msec for each char (for debug) ------------------------------------------------------------------------------ *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 commands
|:cc| :cc [nr] 显示错误 [nr] (缺省为同一错误) |:cnext| :cn 显示下一个错误 |:cprevious| :cp 显示上一个错误 |:clist| :cl 列出所有错误 |:cfile| :cf 从文件 'errorfile' 读入错误 |:cquit| :cq 退出不保存并返回错误代码 (至编译器) |:make| :make [args] 启动 make, 读入错误, 并跳转至第一个错误 |:grep| :gr[ep] [args] 执行 'grepprg' 程序以找出匹配并跳转至 第一个匹配 ------------------------------------------------------------------------------ *Q_vc* 其他移动
|CTRL-L| CTRL-L 清除并重画屏幕 |CTRL-G| CTRL-G 先是当前文件名 (包括路径) 和光标位置 |ga| ga 以十进制,十六进制和八进制显示当前光标下的字符 的ASCII值 |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} 输入10进制数表示的字符 (可达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] alternate file 文件名 [num] (仅当期望文件名时) 注: 一下四项以字面意思键入; 并非特殊键! |:<cword>| <cword> 光标下的 word (仅当期望文件名时) |:<cWORD>| <cWORD> 光标下的 WORD (仅当期望文件名时) |:<cfile>| <cfile> 光标下的文件名 (仅当期望文件名时) |:<afile>| <afile> 供自动命令使用的文件名 (仅当期望文件名时) |:<sfile>| <sfile> 一个被 ":source" 的文件的文件名, within that file (only (仅当期望文件名时)
于 "%", "#", "<cfile>", "<sfile>" 或 "<afile>" 之后 |::p| :p 完整路径 |::h| :h 头 (除去文件名) |::t| :t 尾 (仅使用文件名) |::r| :r 根 (除去扩展名) |::e| :e 扩展名 |::s| :s/{pat}/{repl}/ 以 {repl} 替换 {pat} ------------------------------------------------------------------------------ *Q_ed* 编辑一个文件
无 !: 若当前缓冲已被改动则失败 有 !: 放弃任何对当前缓冲的改动 |:edit_f| :e[dit][!] {file} 编辑 {file}. |:edit| :e[dit][!] 重新载入当前文件 |:enew| :ene[w][!] 编辑一个无名的新缓冲 |:find| :fin[d][!] {file} 在 'path' 当中查找文件 {file} 并编辑之
|CTRL-^| N CTRL-^ 编辑 alternate file N (同 ":e #N"). |gf| gf or ]f 编辑光标下的文件名对应的文件 |:pwd| :pwd 显示当前目录名 |:cd| :cd [path] 将当前目录名变至 [path]. |:cd-| :cd - 回到上一次当前目录 |:file| :f[ile] 先是当前文件名及光标位置 |:file| :f[ile] {name} 至当前文件名为 {name}. |:files| :files 显示 alternate file 的文件名. ------------------------------------------------------------------------------ *Q_fl* 使用参数列表 |argument-list|
|:args| :ar[gs] 显示参数列表, 当前文件显示在 "[]" 中 |:all| :all or :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][!] or :wqall[!] 写入所有改动的缓冲并退出
|:stop| :st[op][!] 挂起 VIM 或开始一个新 shell. 如果设置了 'aw' 选项 并没有给出 [!] 则写入缓冲. |CTRL-Z| CTRL-Z 同 ":stop" ------------------------------------------------------------------------------ *Q_st* 启动 VIM
|-vim| vim [options] 启动vim并开起一个空白缓冲 |-file| vim [options] {file} .. 启动并编辑一个或多个文件 |--| vim [options] - 从标准输入读入文件 |-tag| vim [options] -t {tag} 编辑于标签 {tag} 关联的文件 |-qf| vim [options] -q [fname] 以快速纠正模式开始编辑, 显示第一个错误.
Vim 参数:
|-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' 选项) |-b| -b 二进制模式 |-l| -l lisp 模式 |-A| -A 阿拉伯模式 ('arabic' is set) |-F| -F Farsi 模式 ('fkmap' 和 'rightleft' are set) |-H| -H Hebrew 模式 ('hkmap' and 'rightleft' are set) |-V| -V Verbose, 给出更多信息 |-C| -C 兼容, 设置 'compatible' 选项 |-N| -N 不兼容, 复位 'compatible' 选项 |-r| -r 给出交换文件列表 |-r| -r {file} .. 恢复中断的编辑 |-n| -n 不创建交换文件 |-o| -o [num] 打开 [num] 个窗口 (缺省: 每个文件一个窗口) |-f| -f GUI: 前台进程, 不调用 fork Amiga: do not restart VIM to open a window (for e.g., mail) |-s| -s {scriptin} 先从文件 {scriptin} 读入命令 |-w| -w {scriptout} 把键入的字符写进文件 {scriptout} (添加) |-W| -W {scriptout} 把键入的字符写进文件 {scriptout} (覆盖) |-T| -T {terminal} 设置终端名 |-d| -d {device} Amiga: open {device} to be used as a console |-u| -u {vimrc} 从文件 {vimrc} 而非其它文件读入初始化命令 |-U| -U {gvimrc} 同上, 但用于启动 GUI 时 |-i| -i {viminfo} 从文件 {viminfo} 而不是其它文件读入 info |---| -- 结束选项, 其余的参数都将是文件名 |--help| --help 显示参数列表并退出 |--version| --version 显示版本信息并退出 |--| - 从标准输入读入文件 ------------------------------------------------------------------------------ *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} 的自动命令 Remove all autocommands for {event} |:autocmd| :au! * {pat} 清除所有文件匹配 {pat} 的自动命令 |:autocmd| :au! {event} {pat} 清除所有文件匹配 {pat} 及事件 {event} 的自动命令 |:autocmd| :au! {event} {pat} {cmd} 清除所有文件匹配 {pat} 及事件 {event} 的 自动命令并加入新的 ------------------------------------------------------------------------------ *Q_wi* 多窗口命令
|CTRL-W_s| CTRL-W s 或 :split 将窗口分割成两部分 |:split_f| :split {file} 分隔窗口并在其中一个编辑 {file} |:sfind| :sf[ind] {file} 分隔窗口, 从 {path} 中找到文件 {file} 并编辑之 |:vsplit| :vsplit {file} 同上,但垂直分割 |:vertical| :vertical {cmd} 使命令 {cmd} 垂直分割 |CTRL-W_]| CTRL-W ] 分割窗口并跳转至光标下的标签 |CTRL-W_f| CTRL-W f 分隔窗口并编辑光标下的文件 |CTRL-W_^| CTRL-W ^ 分隔窗口并编辑 alternate file |CTRL-W_n| CTRL-W n 或 :new 创建新空白窗口 |CTRL-W_q| CTRL-W q 或 :q[uit] 退出编辑并关闭窗口 |CTRL-W_c| CTRL-W c 或 :cl[ose] 隐藏当前缓冲区并关闭窗口 |CTRL-W_o| CTRL-W o 或 :on[ly] 使当前窗口成为唯一窗口
|CTRL-W_j| CTRL-W j 跳转至下方窗口 |CTRL-W_k| CTRL-W k 跳转至上方窗口 |CTRL-W_CTRL-W| CTRL-W CTRL-W 移动光标至下方窗口 (折转) |CTRL-W_W| CTRL-W W 移动光标至上方窗口 (折转) |CTRL-W_t| CTRL-W t 跳转至顶端窗口 |CTRL-W_b| CTRL-W b 跳转至底端窗口 |CTRL-W_p| CTRL-W p 跳转至上一次激活的窗口
|CTRL-W_r| CTRL-W r 向下旋转窗口 |CTRL-W_R| CTRL-W R 向上旋转窗口 |CTRL-W_x| CTRL-W x 将当前窗口于下一个窗口对调
|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} 将 {lhs} 加入菜单 {mpath} |:menu| :menu {pri} {mpath} {rhs} 同上, 并带有优先权 {pri} |:menu| :menu ToolBar.{name} {rhs} 将 {lhs} 加入工具条 |:tmenu| :tmenu {mpath} {text} 为菜单 {mpath} 加入 tooltip |: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| :{range}fold 将范围 {range} 包括的行定义为一个折叠 |zd| zd 删除光标下的一个折叠 |zD| zD 删除光标下的所有折叠
|zo| zo 打开光标下的折叠 |zO| zO 打开光标下的所有折叠 |zc| zc 关闭光标下的一个折叠 |zC| zC 关闭光标下的所有折叠
|zm| zm 折起更多: 减少 'foldlevel' |zM| zM 关闭所有折叠: 置 'foldlevel' 为0 |zr| zr 减少折叠: 增加 'foldlevel' |zR| zR 打开所有折叠: 置 'foldlevel' 为最大
|zn| zn 什么也不折叠: 重置 'foldenable' |zN| zN 正常折叠: 置 'foldenable' |zi| zi 反转 'foldenable' | |