VIM 命令及快捷键整理

VIM 命令大全

在vim官网找到的一些命令的合集,自己整理了一下,然后补充了一些例子和说明,喜欢VIM编辑器的童鞋们请收藏。
|h| N h 左 (亦: CTRL-H、 或 键) 也可以移动n列,例如:12h
以这个例子说明一下 |h| 代表操作符说明 N 代表数字,h 是操作符. 例子: 12h
后续文档都是按照这个格式阅读,你很快就会掌握这些命令,怎样使用.
文档中的说明已经很清晰了,有些会补充一些例子,其他的自己边看边操作
这样学习起来会很快
简体中文版(基础版)
在这里插入图片描述

VIM 中左右动作

|h|     N  h            左 (亦: CTRL-H、<BS> 或 <Left> 键)  也可以移动n列,例如:12h
|l|     N  l            右 (亦: <Space> 或 <Right> 键) l 向左移动一列, 12l 向左移动 12列
|0|        0            至本行第一个字符 (亦: <Home> 键)
|^|        ^            至本行第一个非空白字符
|$|     N  $            至本行 (加上 N - 1 后续行) 最后一个字符 (亦: <End> 键)
|g0|       g0           至屏幕行第一个字符 (当行回绕时和 "0" 不同)
|g^|       g^           至屏幕行第一个非空白字符 (当行回绕时和 "^" 不同)
|g$|    N  g$           至屏幕行最后一个字符 (当行回绕时和 "$" 不同)
|gm|       gm           至屏幕行中点
回绕行: 很长的一行显示成两行
|bar|   N  |            至第 N 列 (缺省: 1)   输入:  数字 + | (竖线,跳转到列数)
|f|     N  f{char}      至右边第 N 次出现 {char} 之处 (find) 例如: 2ft
|F|     N  F{char}      至左边第 N 次出现 {char} 之处 (Find)例如: 4Fh
|t|     N  t{char}      至右边第 N 次出现 {char} 之前 (till) 例如:2tf
|T|     N  T{char}      至左边第 N 次出现 {char} 之前 (Till) 例如:2Th
|;|     N  ;            重复上次 “f”、“F”、“t” 或 “T” 命令 N 次例如: 2;
|,|     N  ,            以相反方向重复上次 “f”、“F”、“t” 或 “T” 命令 N 次例如:2,

上下操作

|k|     N  k            上移 N 行 (亦: CTRL-P 和 <Up>)向上移动多行: 10k
|j|     N  j            下移 N 行 (亦: CTRL-J、CTRL-N、<NL> 和 <Down>)  向下移动多行:12j
|-|     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")


屏幕滚动

|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-u|        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’ 选项关闭时生效:  wrap 是行太长时,显示两行.
|zh|            N  zh           屏幕右滚 N 个字符
|zl|            N  zl           屏幕左滚 N 个字符
|zH|            N  zH           屏幕右滚半个屏宽
|zL|            N  zL           屏幕左滚半个屏宽


文本对象动作

|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 个注释的结束 "*/"

文本对象 (仅适用于可视模式或在操作符后)

|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        选择 "内含大块" (从 "[{" 到 "]}")
|v_a>|     N  a>        选择 "一个 <> 块"
|v_i>|     N  i>        选择 "内含 <> 块"
|v_at|     N  at        选择 "一个标签块" (从 <aaa> 到 </aaa>) (tag)
|v_it|     N  it        选择 "内含标签块" (从 <aaa> 到 </aaa>)
|v_a'|     N  a'        选择 "一个单引号字符串"
|v_i'|     N  i'        选择 "内含单引号字符串"
|v_aquote| N  a"        选择 "一个双引号字符串"
|v_iquote| N  i"        选择 "内含双引号字符串"
|v_a`|     N  a`        选择 "一个反引号字符串"
|v_i`|     N  i`        选择 "内含反引号字符串"


插入模式键

|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>            光标至本行的首字符之上


插入文本

|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    在所有选中的行之后添加相同的文本


删除文本

|x|     N  x            删除光标之下及之后的 N 个字符
|<Del>| N  <Del>        删除光标之下及之后的 N 个字符
|X|     N  X            删除光标之前的 N 个字符
|d|     N  d{motion}    删除动作 {motion} 覆盖的文本 例如:dw 删除一个单词
|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]


撤销/重做命令

|u|       N  u          撤销最近的 N 此改动
|CTRL-R|  N  CTRL-R     重做最近的 N 个被撤销的改动
|U|          U          恢复最近被改动的行


复制与移动文本

|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,但将光标留在新文本之后


重复命令

|.|        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)


可视模式

|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       以列块方式开始高亮或停止高亮


写入和退出

|: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"


折叠

|'foldmethod'|  set foldmethod=manual   手动折叠
                set foldmethod=indent   按照缩进折叠
                set foldmethod=expr     按照表达式 'foldexpr' 折叠
                set foldmethod=syntax   按照语法区域折叠
                set foldmethod=marker   按照标志 'foldmarker' 折叠

|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)


多窗口命令

|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 _                设置当前窗口高度 (缺省: 很高)


改变文本

|~|       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 行向左移动一个移位宽度  例如:ctrl+v 选中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] 中的行靠右对齐


复杂改动

|!|        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' 为新值并依据此值调整空白字符


模式查找

|/|     N  /{pattern}[/[search-offset]]<CR> search-offset 这个后面会介绍
                        向前查找第 N 次出现 {pattern} 的地方
|?|     N  ?{pattern}[?[search-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)


查找模式中的特殊字符

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        匹配一个非空白字符
\e      \e        匹配 <Esc>
\t      \t        匹配 <Tab>
\r      \r        匹配 <CR>
\b      \b        匹配 <BS>
*       \*        匹配 0 或多个前面的匹配原
\+      \+        匹配 1 或多个前面的匹配原
\=      \=        匹配 0 或 1 个前面的匹配原
\{2,5}  \{2,5}    匹配 2 至 5 个前面的匹配原
\|      \|        隔开两种可替换的匹配
\(\)    \(\)      组合模式为单个匹配原
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        匹配一个非空白字符
\e      \e        匹配 <Esc>
\t      \t        匹配 <Tab>
\r      \r        匹配 <CR>
\b      \b        匹配 <BS>
*       \*        匹配 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} 查找命令


位置标记和相关动作

|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]      列出跳转表


其他动作

|%|        %         找到本行中下一个括号、方括号、注释或"#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] 个字节


使用标签


|: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         关闭标签预览窗口
有点难理解? 看这篇文章: http://easwy.com/blog/archives/advanced-vim-skills-use-ctags-tag-file/


插入模式特殊键

|i_CTRL-V|      CTRL-V {char}..   按本义插入字符,或插入十进制数的字节值: ctrl +v 之后 选中行,然后 shift + i 进行列编辑.
|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          删除当前行的所有缩进,恢复下一行的缩进


二合字母

|:dig|     :dig[raphs]          显示当前二合字母列表
|:dig|     :dig[raphs] {char1}{char2} {number} 加入一个或多个二合字母到上述列表
在插入或命令行方式下:
|i_CTRL-K|      CTRL-K {char1} {char2} 键入二合字母
|i_digraph|     {char1} <BS> {char2} 若 'digraph' 选项被置位则键入二合字母


特殊插入

|:r| :r [file] 将文件 [file] 的内容插入到光标之下
|:r!| :r! {command} 将命令 {command} 的标准输出插入到光标之下


键盘映射

|: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",但同时存储当前文件、窗口等信
     息,使得用户将来可以继续当前对话


缩写

|: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]                打开一个新窗口,用来参看并设置选项,
                                             选项们以功能分组,有单行的解释,
                                             并有指向帮助的链接


外部命令

|:shell|        :sh[ell]        开启一个 shell
|:!|            :!{command}     通过一个 shell 执行命令 {command}
|K|                K            用 'keywordprg' 程序 (缺省: "man") 查光标下的关键字


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' 程序以找出匹配并跳转到首个匹配


其他移动

|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}       使用文件选择对话框打开/读入/写入文件


命令行编辑

|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' 之后存在多个匹配时: 至上一匹配


Ex 范围

|:bar|      |           分隔两个命令 (不适用于 ":global" 及 ":!")
|:quote|    "           开始注释

|:_%|       %           当前文件名 (仅当期望文件名时)
|:_#|       #[num]      第 [num] 个轮换文件名 (仅当期望文件名时)
        注: 以下七项以字面意思键入;并非特殊键!
|:<abuf>|   <abuf>      缓冲区号,用于自动命令 (仅当期望文件名时)
|:<afile>|  <afile>     文件名,用于自动命令 (仅当期望文件名时)
|:<amatch>| <amatch>    匹配模式的内容,用于自动命令 (仅当期望文件名时)
|:<cword>|  <cword>     光标下的单词 (仅当期望文件名时)
|:<cWORD>|  <cWORD>     光标下的字串 (仅当期望文件名时)
|:<cfile>|  <cfile>     光标下的文件名 (仅当期望文件名时)
|:<sfile>|  <sfile>     ":source" 的文件里该文件的文件名 (仅当期望文件名时)

                在 "%"、"#"、"<cfile>"、"<sfile>" 或 "<afile>" 之后
                |::p|       :p          完整路径
                |::h|       :h          头部 (除去文件名)
                |::t|       :t          尾部 (仅使用文件名)
                |::r|       :r          根部 (除去扩展名)
                |::e|       :e          扩展名
                |::s|       :s/{pat}/{repl}/    以 {repl} 替换 {pat}


启动 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       显示版本信息并退出
|--|    -                   从标准输入读入文件


文件编辑

 无 !: 若当前缓冲区已被改动则失败
                有 !: 放弃任何对当前缓冲区的改动
|: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               显示所有的轮换文件名


使用参数列表

|: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]              编辑最后一个文件


自动命令

|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} 的自动命令并输入新的


缓冲区列表命令

|: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 个改动过的缓冲区


语法高亮

|: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
                                        开启文件类型检测,包括自动缩进及设置


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}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zack_snair

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值