index

index.txt 适用于 Vim 8.2 版本。 最近更新: 2021年4月 VIM 参考手册 by Bram Moolenaar 译者: Willis index 本文件包含各个模式下所有命令的一个完整列表。包含它们的标签和简单说明。列表以 ASCII 值排序。 提示: 要找特定功能,使用搜索命令。例如,要找寻如何删除,使用: "/删除"。 1. 插入模式 insert-index 2. 普通模式 normal-index 2.1. 文本对象 objects 2.2. 窗口命令 CTRL-W 2.3. 方括号命令 [ 2.4. 'g' 开头的命令 g 2.5. 'z' 开头的命令 z 2.6. 操作符等待模式 operator-pending-index 3. 可视模式 visual-index 4. 命令行编辑 ex-edit-index 5. 终端作业模式 terminal-job-index 6. EX 命令 ex-cmd-index 选项总览可见 option-list 。 内建函数总览可见 functions 。 Vim 变量的列表可见 vim-variable 。 帮助项目的完整列表可见 help-tags

1. 插入模式 insert-index

标签 字符 插入模式动作

i_CTRL-@ CTRL-@ 插入最近插入的文本并停止插入 i_CTRL-A CTRL-A 插入最近插入的文本 CTRL-B 不用 i_CTRL-B-gone i_CTRL-C CTRL-C 退出插入模式,不检查缩写,除非置位了 'insertmode'i_CTRL-D CTRL-D 在当前行删除一个 shiftwidth 的缩进 i_CTRL-E CTRL-E 插入光标下方的字符 CTRL-F 不用 (但缺省是 'cinkeys' 中的一项,用以重新缩 进本行) i_CTRL-G_j CTRL-G CTRL-J 往下一行,到插入开始的列 i_CTRL-G_j CTRL-G j 往下一行,到插入开始的列 i_CTRL-G_j CTRL-G <Down> 往下一行,到插入开始的列 i_CTRL-G_k CTRL-G CTRL-K 往上一行,到插入开始的列 i_CTRL-G_k CTRL-G k 往上一行,到插入开始的列 i_CTRL-G_k CTRL-G <Up> 往上一行,到插入开始的列 i_CTRL-G_u CTRL-G u 开始新的可撤销的编辑 i_CTRL-G_U CTRL-G U 下一个光标移动不打断撤销 i_<BS> <BS> 删除光标前的字符 i_digraph {char1}<BS>{char2} 输入二合字母 (只有打开了 'digraph' 选项才有效) i_CTRL-H CTRL-H<BS> i_<Tab> <Tab> 插入 <Tab> 字符 i_CTRL-I CTRL-I<Tab> i_<NL> <NL><CR> i_CTRL-J CTRL-J<CR> i_CTRL-K CTRL-K {char1} {char2} 输入二合字母 i_CTRL-L CTRL-L 'insertmode' 打开时: 离开插入模式 i_<CR> <CR> 开始新行 i_CTRL-M CTRL-M<CR> i_CTRL-N CTRL-N 查找光标前面的关键字的后一个匹配 i_CTRL-O CTRL-O 执行单个命令然后回到插入模式 i_CTRL-P CTRL-P 查找光标前面的关键字的前一个匹配 i_CTRL-Q CTRL-QCTRL-V,除非它用于终端控制流 i_CTRL-SHIFT-Q CTRL-SHIFT-Q {char} 类似于 CTRL-Q 除非 modifyOtherKeys 激活 i_CTRL-R CTRL-R {register} 插入寄存器内容 i_CTRL-R_CTRL-R CTRL-R CTRL-R {register} 按本义插入寄存器内容 i_CTRL-R_CTRL-O CTRL-R CTRL-O {register} 按本义插入寄存器内容,而且不自动缩进 i_CTRL-R_CTRL-P CTRL-R CTRL-P {register} 按本义插入寄存器内容,而且修正缩进 CTRL-S 不用,或用于终端控制流 i_CTRL-T CTRL-T 在当前行插入一个 shiftwidth 的缩进 i_CTRL-U CTRL-U 删除当前行的所有输入字符 i_CTRL-V CTRL-V {char} 按本义插入下一个非数字字符 i_CTRL-SHIFT-V CTRL-SHIFT-V {char} 类似于 CTRL-V 除非 modifyOtherKeys 激活 i_CTRL-V_digit CTRL-V {number} 插入三位十进制数字代表的单个字节。 i_CTRL-W CTRL-W 删除光标前的单词 i_CTRL-X CTRL-X {mode} 进入 CTRL-X 子模式,见 i_CTRL-X_index i_CTRL-Y CTRL-Y 插入光标上方的字符 i_CTRL-Z CTRL-Z 'insertmode' 打开时: 暂停 Vim i_<Esc> <Esc> 结束插入模式 (除非打开了 'insertmode') i_CTRL-[ CTRL-[<Esc> i_CTRL-\_CTRL-N CTRL-\ CTRL-N 进入普通模式 i_CTRL-\_CTRL-G CTRL-\ CTRL-G 进入 'insertmode' 指定的模式 CTRL-\ a - z 保留给扩展用 CTRL-\ 其它 不用 i_CTRL-] CTRL-] 切换缩写 i_CTRL-^ CTRL-^ 切换 :lmap 映射的使用 i_CTRL-_ CTRL-_ 'allowrevins' 打开时: 改变语言 (希伯来语,波斯语等) {仅当编译时加入 +rightleft 特性才有效} <Space> to '~' 不用,除了 CTRL-D 之前的 '0' 和 '^' i_0_CTRL-D 0 CTRL-D 删除当前行的所有缩进 i_^_CTRL-D ^ CTRL-D 删除当前行的所有缩进,在下一行恢复删除的缩进 i_<Del> <Del> 删除光标所在的字符 Meta 字符 (0x80 到 0xff,128 到 255) 不用 i_<Left> <Left> 光标左移一个字符 i_<S-Left> <S-Left> 光标左移一个单词 i_<C-Left> <C-Left> 光标左移一个单词 i_<Right> <Right> 光标右移一个字符 i_<S-Right> <S-Right> 光标右移一个单词 i_<C-Right> <C-Right> 光标右移一个单词 i_<Up> <Up> 光标上移一行 i_<S-Up> <S-Up><PageUp> i_<Down> <Down> 光标下移一行 i_<S-Down> <S-Down><PageDown> i_<Home> <Home> 光标移到行首 i_<C-Home> <C-Home> 光标移到文件首 i_<End> <End> 光标移到行尾后面 i_<C-End> <C-End> 光标移到文件尾后面 i_<PageUp> <PageUp> 满屏上滚 i_<PageDown> <PageDown> 满屏下滚 i_<F1> <F1><Help> i_<Help> <Help> 停止插入模式并显示帮助窗口 i_<Insert> <Insert> 切换插入/替换模式 i_<LeftMouse> <LeftMouse> 光标移到鼠标点击处 i_<ScrollWheelDown> <ScrollWheelDown> 窗口向下滚动三行 i_<S-ScrollWheelDown> <S-ScrollWheelDown> 窗口向下滚动完整一页 i_<ScrollWheelUp> <ScrollWheelUp> 窗口向上滚动三行 i_<S-ScrollWheelUp> <S-ScrollWheelUp> 窗口向上滚动完整一页 i_<ScrollWheelLeft> <ScrollWheelLeft> 窗口向左滚动六列 i_<S-ScrollWheelLeft> <S-ScrollWheelLeft> 窗口向左滚动完整一页 i_<ScrollWheelRight> <ScrollWheelRight> 窗口向右滚动六列 i_<S-ScrollWheelRight> <S-ScrollWheelRight> 窗口向右滚动完整一页 CTRL-X 子模式的命令 i_CTRL-X_index i_CTRL-X_CTRL-D CTRL-X CTRL-D 补全定义过的标识符 i_CTRL-X_CTRL-E CTRL-X CTRL-E 上滚 i_CTRL-X_CTRL-F CTRL-X CTRL-F 补全文件名 i_CTRL-X_CTRL-I CTRL-X CTRL-I 补全标识符 i_CTRL-X_CTRL-K CTRL-X CTRL-K 从字典补全标识符 i_CTRL-X_CTRL-L CTRL-X CTRL-L 补全完整的行 i_CTRL-X_CTRL-N CTRL-X CTRL-N 后一个补全 i_CTRL-X_CTRL-O CTRL-X CTRL-O 全能 (omni) 补全 i_CTRL-X_CTRL-P CTRL-X CTRL-P 前一个补全 i_CTRL-X_CTRL-S CTRL-X CTRL-S 拼写建议 i_CTRL-X_CTRL-T CTRL-X CTRL-T 从同义词词典补全标识符 i_CTRL-X_CTRL-U CTRL-X CTRL-U'completefunc' 补全 i_CTRL-X_CTRL-V CTRL-X CTRL-V 如同 : 命令行那样补全 i_CTRL-X_CTRL-Y CTRL-X CTRL-Y 下滚 i_CTRL-X_CTRL-] CTRL-X CTRL-] 补全标签 i_CTRL-X_s CTRL-X s 拼写建议 补全模式的命令 (见 popupmenu-keys ) complete_CTRL-E CTRL-E 停止补全并回到原来的文本 complete_CTRL-Y CTRL-Y 接受选择的匹配并停止补全 CTRL-L 从当前匹配中插入一个字符 <CR> 插入当前选择的匹配 <BS> 删除一个字符,重新搜索 CTRL-H<BS> 相同 <Up> 选择前一个匹配 <Down> 选择后一个匹配 <PageUp> 选择往前几个项目的匹配 <PageDown> 选择往后几个项目的匹配 其它 停止补全并插入键入的字符

2. 普通模式 normal-index

CHAR 任何非空白字符 WORD 非空白字符的序列 (字串) N 命令前输入的数值 {motion} 光标移动命令 Nmove {motion} 移动跨越的文本 SECTION 可能以 '}' 而不是 '{' 开始的小节 备注: 1 = 光标移动命令;2 = 可以撤销/重做 标签 字符 备注 普通模式的动作

CTRL-@ 不用 CTRL-A CTRL-A 2 把 N 加到光标所在/之后的数值上 CTRL-B CTRL-B 1 反向 (Backwards) 滚动 N 屏 CTRL-C CTRL-C 终止当前的 (搜索) 命令 CTRL-D CTRL-D 窗口下滚 (Downwards) N 行 (缺省: 半屏) CTRL-E CTRL-E 文本上滚 (Extra) N 行 CTRL-F CTRL-F 1 正向 (Forwards) 滚动 N 屏 CTRL-G CTRL-G 显示当前文件名和位置 <BS> <BS> 1 同 "h" CTRL-H CTRL-H 1 同 "h" <Tab> <Tab> 1 跳转到跳转表里第 N 个较新的项目 CTRL-I CTRL-I 1 同 <Tab> <NL> <NL> 1 同 "j" CTRL-J CTRL-J 1 同 "j" CTRL-K 不用 CTRL-L CTRL-L 重画屏幕 <CR> <CR> 1 光标移到 N 行下面的首个 CHAR 上 CTRL-M CTRL-M 1 同 <CR> CTRL-N CTRL-N 1 同 "j" CTRL-O CTRL-O 1 跳转到跳转表里第 N 个较旧的项目 CTRL-P CTRL-P 1 同 "k" CTRL-Q 不用,或用于终端控制流 CTRL-R CTRL-R 2 重做 'u' 撤销的改变 CTRL-S 不用,或用于终端控制流 CTRL-T CTRL-T 跳转到标签列表的第 N 个较老的标签 (Tag) CTRL-U CTRL-U 窗口上滚 (Upwards) N 行 (缺省: 半屏) CTRL-V CTRL-V 开始面向列块的可视 (Visual) 模式 CTRL-W CTRL-W {char} 窗口命令,见 CTRL-W CTRL-X CTRL-X 2 从光标所在/之后的数值上减去 N CTRL-Y CTRL-Y 文本下滚 N 行 CTRL-Z CTRL-Z 暂停程序 (或者启动新的外壳) CTRL-[ <Esc> 不用 CTRL-\_CTRL-N CTRL-\ CTRL-N 进入普通 (Normal) 模式 (空动作) CTRL-\_CTRL-G CTRL-\ CTRL-G 进入 'insertmode' 指定的模式 CTRL-\ a - z 保留作扩展用 CTRL-\ 其它 不用 CTRL-] CTRL-] :ta 到光标所在的标识符 CTRL-^ CTRL-^ 编辑第 N 个轮换文件 (同 ":e #N") CTRL-_ 不用 <Space> <Space> 1 同 "l" ! !{motion}{filter} 2 用 {filter} 命令过滤 Nmove 文本 !! !!{filter} 2 用 {filter} 命令过滤 N 行 quote "{register} 指定下次删除、抽出或放置使用的寄存器 {register} ({.%#:} 只能用于放置) # # 1 反向搜索第 N 次出现的光标所在的标识符 $ $ 1 光标移动到往下第 N 行的行尾之后 % % 1 查找本行后一个 (花/方) 括号,并转到其匹配的 括号上,或者转到匹配的注释配对上,或者转到 匹配的预处理命令上。 N% {count}% 1 转到文件的百分之 N 的位置上 & & 2 重复前次 :s ' '{a-zA-Z0-9} 1 光标移动到位置标记 {a-zA-Z0-9} 所在行的第一 个 CHAR 上 '' '' 1 光标移动到前次跳转之前所在行的首个 CHAR 上 '( '( 1 光标移动到当前句子首部所在行的首个 CHAR 上 ') ') 1 光标移动到当前句子尾部所在行的首个 CHAR 上 '< '< 1 光标移动到当前缓冲区高亮区开始/曾经开始的行 的首个 CHAR 上。 '> '> 1 光标移动到当前缓冲区高亮区结束/曾经结束的行 的首个 CHAR 上。 '[ '[ 1 光标移动到当前缓冲区最近操作/放置的文本的首 部所在行的首个 CHAR 上 '] '] 1 光标移动到当前缓冲区最近操作/放置的文本的尾 部所在行的首个 CHAR 上 '{ '{ 1 光标移动到当前段落首部所在行的首个 CHAR 上 '} '} 1 光标移动到当前段落尾部所在行的首个 CHAR 上 ( ( 1 光标回退 N 个句子 ) ) 1 光标前移 N 个句子 star * 1 正向搜索第 N 次出现的光标所在的标识符 + + 1 同 <CR> , , 1 反方向重复最近的 f、t、F 或 T N 次 - - 1 光标移动到上方 N 行的首个 CHAR 上 . . 2 重复最近的改变,其计数被 N 取代 / /{pattern}<CR> 1 正向搜索第 N 次出现的 {pattern} /<CR> /<CR> 1 正向搜索前次搜索使用的 {pattern} count 0 1 光标移动到本行的首个字符上 count 1 附加于命令前,给出计数 count 2 " count 3 " count 4 " count 5 " count 6 " count 7 " count 8 " count 9 " : : 1 开始进入 Ex 命令 N: {count}: 开始进入 Ex 命令,给出从当前行开始到下方 N-1 行为止的行范围 ; ; 1 重复最近的 f、t、F 或 T N 次 < <{motion} 2 左移 Nmove 文本行一个 'shiftwidth' << << 2 左移 N 行一个 'shiftwidth' = ={motion} 2 用 "indent" 过滤 Nmove 文本行 == == 2 用 "indent" 过滤 N 行 > >{motion} 2 右移 Nmove 文本行一个 'shiftwidth' >> >> 2 右移 N 行一个 'shiftwidth' ? ?{pattern}<CR> 1 反向搜索第 N 次出现的 {pattern} ?<CR> ?<CR> 1 反向搜索最近一次搜索使用的 {pattern} @ @{a-z} 2 执行 {a-z} 寄存器的内容 N 次 @: @: 重复前次的 ":" 命令 N 次 @@ @@ 2 重复前次的 @{a-z} N 次 A A 2 在行尾附加文本 N 次 B B 1 光标回退 N 个 WORD (字串) C ["x]C 2 从光标位置到行尾部分,再加上 N-1 行进行修改 [到寄存器 x];同 "c$" D ["x]D 2 删除位置到行尾部分,再加上 N-1 行的字符 [到 寄存器 x];同 "d$" E E 1 光标前移到第 N 个 WORD 的结束处 F F{char} 1 光标左移到第 N 次出现的 {char}G G 1 光标移动到第 N 行,缺省是末行 H H 1 光标移动到屏幕顶部开始算的第 N 行 I I 2 在本行首个 CHAR 之前插入文本 N 次 J J 2 连接 (Join) N 行;缺省为 2 K K 查找光标所在的关键字 (Keyword),使用 'keywordprg' 的定义 L L 1 光标移动到屏幕底部开始算的第 N 行 M M 1 光标移动到屏幕的中间一行 N N 1 反方向重复最近的 '/' 或 '?' N 次 O O 2 在光标上方开始一个新行,并插入文本,重复 N 次 P ["x]P 2 在光标放置文本 [到寄存器 x] N 次 Q Q 切换到 "Ex" 模式 R R 2 进入替换模式: 覆盖存在的字符,重复输入文本 N-1 次 S ["x]S 2 删除 N 行 [到寄存器 x] 并开始输入;同 "cc" T T{char} 1 光标移动到左侧第 N 次出现的 {char} 之前 U U 2 撤销一行内所有最近的改变 V V 进入面向行的可视 (Visual) 模式 W W 1 光标前移 N 个 WORD X ["x]X 2 删除光标前的 N 个字符 [到寄存器 x] Y ["x]Y 抽出 N 行 [到寄存器 x];同 "yy" ZZ ZZ 如果缓冲区修改过则写入,然后关闭窗口 ZQ ZQ 关闭窗口但不写入 [ [{char} 方括号命令 (见下 [ ) \ 不用 ] ]{char} 方括号命令 (见下 ] ) ^ ^ 1 光标移动到本行的首个 CHAR 上 _ _ 1 光标移动到下方第 N - 1 行的首个 CHAR 上 ` `{a-zA-Z0-9} 1 光标移动到位置标记 {a-zA-Z0-9} `( `( 1 光标移动到当前句子的开始处 `) `) 1 光标移动到当前句子的结束处 `< `< 1 光标移动到高亮区域的开始处 `> `> 1 光标移动到高亮区域的结束处 `[ `[ 1 光标移动到最近一次操作/放置的文本的开始处 `] `] 1 光标移动到最近一次操作/放置的文本的结束处 `` `` 1 光标移动到最近一次跳转的位置 `{ `{ 1 光标移动到当前段落的开始处 `} `} 1 光标移动到当前段落的结束处 a a 2 在光标处附加文本 N 次 b b 1 光标回退 N 个单词 c ["x]c{motion} 2 删除 Nmove 文本 [到寄存器 x] 并开始插入 cc ["x]cc 2 删除 N 行 [到寄存器 x] 并开始插入 d ["x]d{motion} 2 删除 Nmove 文本 [到寄存器 x] dd ["x]dd 2 删除 N 行 [到寄存器 x] do do 2 同 ":diffget" dp dp 2 同 ":diffput" e e 1 光标前移到第 N 个单词的结束处 f f{char} 1 光标右移到第 N 次出现的 {char}g g{char} 扩展命令,见下 g h h 1 光标左移 N 个字符 i i 2 在光标前插入文本 N 次 j j 1 光标下移 N 行 k k 1 光标上移 N 行 l l 1 光标右移 N 个字符 m m{A-Za-z} 在光标位置处设置位置标记 {A-Za-z} n n 1 重复最近的 '/' 或 '?' N 次 o o 2 在光标下方开始一个新行,并插入文本,重复 N 次 p ["x]p 2 在光标后放置文本 [从寄存器 x] N 次 q q{0-9a-zA-Z"} 记录输入的字符到命令寄存器 {0-9a-zA-Z"} (大写用于添加) q q (在记录时) 停止记录 q: q: 在命令行窗口里编辑 : 命令行 q/ q/ 在命令行窗口里编辑 / 命令行 q? q? 在命令行窗口里编辑 ? 命令行 r r{char} 2 用 {char} 替换 N 个字符 s ["x]s 2 (替换) 删除 N 个字符 [到寄存器 x] 并开始插 入 t t{char} 1 光标移动到右侧第 N 次出现的 {char} 之前 u u 2 撤销改变 v v 开始面向字符的可视 (Visual) 模式 w w 1 光标前移 N 个单词 x ["x]x 2 删除光标开始的 N 个字符 [到寄存器 x] y ["x]y{motion} 抽出 Nmove 文本 [到寄存器 x] yy ["x]yy 抽出 N 行 [到寄存器 x] z z{char} 'z' 开始的命令,见下 z { { 1 光标回退 N 个段落 bar | 1 光标移到第 N 列 } } 1 光标前移 N 个段落 ~ ~ 2 'tildeop' 关闭时: 切换光标所在处开始的 N 个 字符的大小写,并右移光标 N 个字符 ~ ~{motion} 'tildeop' 打开时: 切换 Nmove 文本的大小写 <C-End> <C-End> 1 同 "G" <C-Home> <C-Home> 1 同 "gg" <C-Left> <C-Left> 1 同 "b" <C-LeftMouse> <C-LeftMouse> ":ta" 到鼠标点击所在的单词上 <C-Right> <C-Right> 1 同 "w" <C-RightMouse> <C-RightMouse> 同 "CTRL-T" <C-Tab> <C-Tab> 同 "g<Tab>" <Del> ["x]<Del> 2 同 "x" N<Del> {count}<Del> 删除 {count} 最后的一位数字 <Down> <Down> 1 同 "j" <End> <End> 1 同 "$" <F1> <F1><Help> <Help> <Help> 打开帮助窗口 <Home> <Home> 1 同 "0" <Insert> <Insert> 2 同 "i" <Left> <Left> 1 同 "h" <LeftMouse> <LeftMouse> 1 移动光标到鼠标点击处 <MiddleMouse> <MiddleMouse> 2 等同于在鼠标点击处 "gP" <PageDown> <PageDown>CTRL-F <PageUp> <PageUp>CTRL-B <Right> <Right> 1 同 "l" <RightMouse> <RightMouse> 开始可视模式,移动光标到鼠标点击处 <S-Down> <S-Down> 1 同 CTRL-F <S-Left> <S-Left> 1 同 "b" <S-LeftMouse> <S-LeftMouse> 等同于在鼠标点击处 "*" <S-Right> <S-Right> 1 同 "w" <S-RightMouse> <S-RightMouse> 等同于在鼠标点击处 "#" <S-Up> <S-Up> 1 同 CTRL-B <Undo> <Undo> 2 同 "u" <Up> <Up> 1 同 "k" <ScrollWheelDown> <ScrollWheelDown> 窗口向下滚动三行 <S-ScrollWheelDown> <S-ScrollWheelDown> 窗口向下滚动完整一页 <ScrollWheelUp> <ScrollWheelUp> 窗口向上滚动三行 <S-ScrollWheelUp> <S-ScrollWheelUp> 窗口向上滚动完整一页 <ScrollWheelLeft> <ScrollWheelLeft> 窗口向左滚动六列 <S-ScrollWheelLeft> <S-ScrollWheelLeft> 窗口向左滚动完整一页 <ScrollWheelRight> <ScrollWheelRight> 窗口向右滚动六列 <S-ScrollWheelRight> <S-ScrollWheelRight> 窗口向右滚动完整一页

2.1 文本对象 objects

他们可以用在操作符之后,或者在可视模式里选择一个对象。 标签 命令 操作符等待和可视模式下的动作

v_aquote a" 双引号字符串 v_a' a' 单引号字符串 v_a( a( 同 ab v_a) a) 同 ab v_a< a< "一个 <> 块" 从 '<' 到匹配的 '>' v_a> a> 同 a< v_aB aB "一个大块" 从 "[{" 到 "]}" (带上括号) v_aW aW "一个字串" (带上空白) v_a[ a[ "一个 [] 块" 从 '[' 到匹配的 ']' v_a] a] 同 a[ v_a` a` 反引号字符串 v_ab ab "一个块" 从 "[(" 到 "])" (带上括号) v_ap ap "一个段落" (带上空白) v_as as "一个句子" (带上空白) v_at at "一个标签块" (带上空白) v_aw aw "一个单词" (带上空白) v_a{ a{ 同 aB v_a} a} 同 aB v_iquote i" 双引号字符串,不带引号 v_i' i' 单引号字符串,不带引号 v_i( i( 同 ib v_i) i) 同 ib v_i< i< "内含 <> 块" 从 '<' 到匹配的 '>' v_i> i> 同 i< v_iB iB "内含大块" 从 "[{" 到 "]}" v_iW iW "内含字串" v_i[ i[ "内含 [] 块" 从 '[' 到匹配的 ']' v_i] i] 同 i[ v_i` i` 反引号字符串,不带反引号 v_ib ib "内含块" 从 "[(" 到 "])" v_ip ip "内含段落" v_is is "内含句子" v_it it "内含标签块" v_iw iw "内含单词" v_i{ i{ 同 iB v_i} i} 同 iB

2.2 窗口命令 CTRL-W

标签 命令 普通模式下的动作

CTRL-W_CTRL-B CTRL-W CTRL-B 同 "CTRL-W b" CTRL-W_CTRL-C CTRL-W CTRL-C 同 "CTRL-W c" CTRL-W_CTRL-D CTRL-W CTRL-D 同 "CTRL-W d" CTRL-W_CTRL-F CTRL-W CTRL-F 同 "CTRL-W f" CTRL-W CTRL-G 同 "CTRL-W g .." CTRL-W_CTRL-H CTRL-W CTRL-H 同 "CTRL-W h" CTRL-W_CTRL-I CTRL-W CTRL-I 同 "CTRL-W i" CTRL-W_CTRL-J CTRL-W CTRL-J 同 "CTRL-W j" CTRL-W_CTRL-K CTRL-W CTRL-K 同 "CTRL-W k" CTRL-W_CTRL-L CTRL-W CTRL-L 同 "CTRL-W l" CTRL-W_CTRL-N CTRL-W CTRL-N 同 "CTRL-W n" CTRL-W_CTRL-O CTRL-W CTRL-O 同 "CTRL-W o" CTRL-W_CTRL-P CTRL-W CTRL-P 同 "CTRL-W p" CTRL-W_CTRL-Q CTRL-W CTRL-Q 同 "CTRL-W q" CTRL-W_CTRL-R CTRL-W CTRL-R 同 "CTRL-W r" CTRL-W_CTRL-S CTRL-W CTRL-S 同 "CTRL-W s" CTRL-W_CTRL-T CTRL-W CTRL-T 同 "CTRL-W t" CTRL-W_CTRL-V CTRL-W CTRL-V 同 "CTRL-W v" CTRL-W_CTRL-W CTRL-W CTRL-W 同 "CTRL-W w" CTRL-W_CTRL-X CTRL-W CTRL-X 同 "CTRL-W x" CTRL-W_CTRL-Z CTRL-W CTRL-Z 同 "CTRL-W z" CTRL-W_CTRL-] CTRL-W CTRL-] 同 "CTRL-W ]" CTRL-W_CTRL-^ CTRL-W CTRL-^ 同 "CTRL-W ^" CTRL-W_CTRL-_ CTRL-W CTRL-_ 同 "CTRL-W _" CTRL-W_+ CTRL-W + 增加当前窗口高度 N 行 CTRL-W_- CTRL-W - 减少当前窗口高度 N 行 CTRL-W_: CTRL-W : 同 : ,编辑命令行 CTRL-W_< CTRL-W < 减少当前窗口宽度 N 列 CTRL-W_= CTRL-W = 使得所有窗口同宽同高 CTRL-W_> CTRL-W > 增加当前窗口宽度 N 列 CTRL-W_H CTRL-W H 移动当前窗口到最左端 CTRL-W_J CTRL-W J 移动当前窗口到最底部 CTRL-W_K CTRL-W K 移动当前窗口到最顶部 CTRL-W_L CTRL-W L 移动当前窗口到最右端 CTRL-W_P CTRL-W P 跳转到预览窗口 CTRL-W_R CTRL-W R 向上旋转窗口 N 次 CTRL-W_S CTRL-W S 同 "CTRL-W s" CTRL-W_T CTRL-W T 移动当前窗口到新标签页 CTRL-W_W CTRL-W W 跳转到前面第 N 个窗口 (回绕) CTRL-W_] CTRL-W ] 分割窗口并跳转到光标所在的标签上 CTRL-W_^ CTRL-W ^ 分割窗口并编辑轮换文件 N CTRL-W__ CTRL-W _ 设置当前窗口高度为 N (缺省: 尽量大) CTRL-W_b CTRL-W b 跳转到底部的窗口 CTRL-W_c CTRL-W c 关闭当前窗口 (类似于 :close ) CTRL-W_d CTRL-W d 分割窗口并跳转到光标所在的定义上 CTRL-W_f CTRL-W f 分割窗口并跳转到光标所在的文件名上 CTRL-W_F CTRL-W F 分割窗口并编辑光标所在的文件名,然后跳转到 文件名后给出的行号上。 CTRL-W_g_CTRL-] CTRL-W g CTRL-] 分割窗口并在光标所在的标签上执行 :tjump CTRL-W_g] CTRL-W g ] 分割窗口并在光标所在的标签上执行 :tselect CTRL-W_g} CTRL-W g } 在光标所在的标签上执行 :ptjump CTRL-W_gf CTRL-W g f 在新的标签页里编辑光标所在的文件名 CTRL-W_gF CTRL-W g F 在新的标签页里编辑光标所在的文件名然后跳转 到文件名后给出的行号上。 CTRL-W_gt CTRL-W g t 同 gt : 跳转到后一个标签页 CTRL-W_gT CTRL-W g T 同 gT : 跳转到前一个标签页 CTRL-W_g<Tab> CTRL-W g <Tab>g<Tab> : 跳转到最近访问的标签页 CTRL-W_h CTRL-W h 跳转到左面第 N 个的窗口 (在首个窗口上停止) CTRL-W_i CTRL-W i 分割窗口并跳转到光标所在的标识符的声明上 CTRL-W_j CTRL-W j 跳转到下面第 N 个的窗口 (在末个窗口上停止) CTRL-W_k CTRL-W k 跳转到上面第 N 个的窗口 (在首个窗口上停止) CTRL-W_l CTRL-W l 跳转到右面第 N 个的窗口 (在末个窗口上停止) CTRL-W_n CTRL-W n 打开新窗口,N 行高 CTRL-W_o CTRL-W o 关闭除了当前窗口以外的所有窗口 (类似于 :only ) CTRL-W_p CTRL-W p 转到前面一个 (最近访问的) 窗口 CTRL-W_q CTRL-W q 退出当前窗口 (类似于 :quit ) CTRL-W_r CTRL-W r 向下旋转窗口 N 次 CTRL-W_s CTRL-W s 分割当前窗口为两部分,新的窗口 N 行高 CTRL-W_t CTRL-W t 跳转到顶部窗口 CTRL-W_v CTRL-W v 垂直分割当前窗口,新的窗口 N 列宽 CTRL-W_w CTRL-W w 转到后面第 N 个窗口 (回绕) CTRL-W_x CTRL-W x 交换当前和第 N 个窗口 (缺省: 后一个窗口) CTRL-W_z CTRL-W z 关闭预览窗口 CTRL-W_bar CTRL-W | 设置窗口宽度为 N 列 CTRL-W_} CTRL-W } 在预览窗口里显示光标所在的标签 CTRL-W_<Down> CTRL-W <Down> 同 "CTRL-W j" CTRL-W_<Up> CTRL-W <Up> 同 "CTRL-W k" CTRL-W_<Left> CTRL-W <Left> 同 "CTRL-W h" CTRL-W_<Right> CTRL-W <Right> 同 "CTRL-W l"

2.3 方括号命令 [ ]

标签 字符 备注 普通模式下的动作

[_CTRL-D [ CTRL-D 跳转到首个在当前文件和它包含的头文件里匹配 光标所在的单词的 #define,从当前文件的头部 开始 [_CTRL-I [ CTRL-I 跳转到首个在当前文件和它包含的头文件里匹配 光标所在单词的位置,从当前文件头部开始 [# [# 1 光标移动到前面第 N 个未匹配的 #if、#else 或 者 #ifdef [' [' 1 光标移动到前面的小写位置标记,定位在它所在 行的首个非空白字符上 [( [( 1 光标移动到前面第 N 个未匹配的 '(' [star [* 1 同 "[/" [` [` 1 光标移动到前一个小写位置标记 [/ [/ 1 光标移动到前面第 N 个 C 注释的开始处 [D [D 列出在当前文件和它包含的头文件里匹配光标所 在的单词的所有定义,从当前文件的头部开始 [I [I 列出在当前文件和它包含的头文件里匹配光标所 在单词的所有位置,从当前文件的头部开始 [P [P 2 同 "[p" [[ [[ 1 光标后退 N 个小节 [] [] 1 光标后退 N 个 SECTION [c [c 1 光标后退 N 个更改开始的地方 [d [d 显示首个在当前文件和它包含的头文件里匹配光 标所在的单词的 #define,从当前文件的头部开 始 [f [f 同 "gf" [i [i 显示首个在当前文件和它包含的头文件里匹配光 标所在单词的位置,从当前文件的头部开始 [m [m 1 光标后退 N 个成员函数的开始 [p [p 2 类似于 "P",但调整当前行的缩进 [s [s 1 移动到前一个拼写错误的单词 [z [z 1 移动到打开的折叠的开始 [{ [{ 1 光标后退 N 个未匹配的 '{' [<MiddleMouse> [<MiddleMouse> 2 同 "[p" ]_CTRL-D ] CTRL-D 跳转到首个在当前文件和它包含的头文件里匹配 光标所在的单词的 #define,从光标位置开始 ]_CTRL-I ] CTRL-I 跳转到首个在当前文件和它包含的头文件里匹配 光标所在单词的位置,从光标位置开始 ]# ]# 1 光标移动到后面第 N 个未匹配的 #endif、#else ]' ]' 1 光标移动到后面的小写位置标记,定位在它所在 行的首个非空白字符上 ]) ]) 1 光标移动到后面第 N 个未匹配的 ')' ]star ]* 1 同 "]/" ]` ]` 1 光标移动到后一个小写位置标记 ]/ ]/ 1 光标移动到后面第 N 个 C 注释的结尾处 ]D ]D 列出在当前文件和它包含的头文件里匹配光标所 在的单词的所有定义,从光标位置开始 ]I ]I 列出在当前文件和它包含的头文件里匹配光标所 在单词的所有位置,从光标位置开始 ]P ]P 2 同 "[p" ][ ][ 1 光标前移 N 个小节 ]] ]] 1 光标前移 N 个 SECTION ]c ]c 1 光标前移 N 个更改开始的地方 ]d ]d 显示首个在当前文件和它包含的头文件里匹配光 标所在的单词的 #define,从光标位置开始 ]f ]f 同 "gf" ]i ]i 显示首个在当前文件和它包含的头文件里匹配光 标所在单词的位置,从光标位置开始 ]m ]m 1 光标前移 N 个成员函数的结尾 ]p ]p 2 类似于 "p",但调整当前行的缩进 ]s ]s 1 移动到后一个拼写错误的单词 ]z ]z 1 移动到打开的折叠的结尾处 ]} ]} 1 光标前移 N 个未匹配的 '}' ]<MiddleMouse> ]<MiddleMouse> 2 同 "]p"

2.4 'g' 开始的命令 g

标签 字符 备注 普通模式下的动作

g_CTRL-A g CTRL-A 只有在编译时加入了 MEM_PROFILE 时才有定义: 转储内存内容 g_CTRL-G g CTRL-G 显示当前光标位置 g_CTRL-H g CTRL-H 启动选择列块模式 g_CTRL-] g CTRL-] :tjump 到光标所在的标签上 g# g# 1 类似于 "#",但不使用 "\<" 和 "\>" g$ g$ 1 'wrap' 关闭时转到当前行屏幕最右侧可见的字符 'wrap' 打开时转到当前屏幕行最右侧的字符 g& g& 2 在所有行上重复前次的 ":s" g' g'{mark} 1 类似于 ' ,但不更改跳转表 g` g`{mark} 1 类似于 ` ,但不更改跳转表 gstar g* 1 类似于 "*",但不使用 "\<" 和 "\>" g+ g+ 转到第 N 个更新的文本状态 g, g, 1 转到改变表第 N 个更新的位置 g- g- 转到第 N 个更旧的文本状态 g0 g0 1 'wrap' 关闭时转到当前行屏幕最左侧可见的字符 'wrap' 打开时转到当前屏幕行最左侧的字符 g8 g8 显示光标所在的 UTF-8 字符的十六进制字节码 g; g; 1 转到改变表第 N 个更旧的位置 g< g< 显示前次的命令输出 g? g? 2 Rot13 编码操作符 g?g? g?? 2 Rot13 编码当前行 g?g? g?g? 2 Rot13 编码当前行 gD gD 1 转到当前文件的光标所在单词的定义 gE gE 1 回退到前一个 WORD 的结尾处 gH gH 启动选择行模式 gI gI 2 类似于 "I",但总是从第一列开始 gJ gJ 2 连接行,不插入空格 gN gN 1,2 使用前次搜索模式搜索前一个匹配,并可视选择 之 gP ["x]gP 2 在光标之前放置文本 [从寄存器 x] N 次,光标 留在插入文本之后 gQ gQ Vim 编辑时进入 "Ex" 模式 gR gR 2 进入虚拟替换模式 gT gT 转到前一个标签页 gU gU{motion} 2 使得 Nmove 文本全部大写 gV gV 在执行选择模式下的映射或者菜单时,不要重复 选择过去的可视区域 g] g] :tselect 到光标所在的标签上 g^ g^ 1 'wrap' 关闭时转到当前行最左侧屏幕上可见的非 空白字符 'wrap' 打开时转到当前屏幕行最左侧的非空白字 符 g_ g_ 1 移动光标到下方 N - 1 行的末 CHAR 上 ga ga 打印光标所在处的字符的 ascii 值 gd gd 1 转到当前函数里当前光标所在的单词的定义 ge ge 1 反向转到前一个单词的结尾处 gf gf 开始编辑当前光标所在的名字对应的文件 gF gF 开始编辑光标所在的文件名并跳转到文件名后的 行号上。 gg gg 1 光标移动到第 N 行,缺省是第一行 gh gh 开始选择模式 gi gi 2 类似于 "i",但先移动到 '^ 位置标记 gj gj 1 类似于 "j",但 'wrap' 打开时往下 N 个屏幕行 gk gk 1 类似于 "k",但 'wrap' 打开时往上 N 个屏幕行 gm gm 1 转到屏幕行正中间的那个字符 gM gM 1 转到文本行正中间的那个字符 gn gn 1,2 使用前次搜索模式搜索后一个匹配,并可视选择 之 go go 1 光标移动到缓冲区的第 N 个字节 gp ["x]gp 2 在光标后面放置文本 [从寄存器 x] N 次,光标 留在后面 gq gq{motion} 2 排版 Nmove 文本 gr gr{char} 2 虚拟替换 N 个字符为 {char} gs gs 睡眠 N 秒 (缺省 1) gt gt 转到后一个标签页 gu gu{motion} 2 使得 Nmove 文本全部小写 gv gv 重新选择前次的可视区域 gw gw{motion} 2 排版 Nmove 文本并保持光标位置 netrw-gx gx 执行光标下的文件名对应的应用程序 (仅限于 netrw 插件) g@ g@{motion} 调用 'operatorfunc' g~ g~{motion} 2 改变 Nmove 文本的大小写 g<Down> g<Down> 1 同 "gj" g<End> g<End> 1 同 "g$" g<Home> g<Home> 1 同 "g0" g<LeftMouse> g<LeftMouse><C-LeftMouse> g<MiddleMouse><C-MiddleMouse> g<RightMouse> g<RightMouse><C-RightMouse> g<Tab> g<Tab> 跳转到最近访问的标签页。 g<Up> g<Up> 1 同 "gk"

2.5 'z' 开始的命令 z

标签 字符 备注 普通模式下的动作

z<CR> z<CR> 重画,光标移动到窗口的顶行的首个非空白字符 zN<CR> z{height}<CR> 重画,使得窗口高度为 {height}z+ z+ 光标移动到第 N 行 (缺省为窗口之后的首行), 其它同 "z<CR>" z- z- 重画,光标移动到窗口末行的首个非空白字符 z. z. 重画,光标移动到窗口的中间行的首个非空白字 符 z= z= 给出拼写建议 zA zA 递归打开一个关闭的折叠或关闭一个打开的折叠 zC zC 递归关闭折叠 zD zD 递归删除折叠 zE zE 除去所有折叠 zF zF 为 N 行建立折叠 zG zG 临时把单词标记为拼写正确 (good) zH zH 'wrap' 关闭时向右滚屏半个屏幕宽度 zL zL 'wrap' 关闭时向左滚屏半个屏幕宽度 zM zM 设置 'foldlevel' 为零 zN zN 置位 'foldenable' zO zO 递归打开折叠 zR zR 设置 'foldlevel' 为最大折叠级别 zW zW 临时把单词标记为拼写错误 (wrong) zX zX 重新应用 'foldlevel' z^ z^ 光标移动到第 N 行 (缺省为窗口之前的一行), 其它同 "z-" za za 打开关闭的折叠,或关闭打开的折叠 zb zb 重画,光标在窗口底行 zc zc 关闭折叠 zd zd 删除折叠 ze ze 'wrap' 关闭时,水平滚动使得光标定位到屏幕的 尾部 (最右侧) zf zf{motion} 为 Nmove 文本建立折叠 zg zg 永久把单词标记为拼写正确 (good) zh zh 'wrap' 关闭时,水平右滚屏幕 N 个字符 zi zi 切换 'foldenable' zj zj 1 移动到后一个折叠的开始处 zk zk 1 移动到前一个折叠的结束处 zl zl 'wrap' 关闭时,水平左滚屏幕 N 个字符 zm zm 从 'foldlevel' 减一 zn zn 复位 'foldenable' zo zo 打开折叠 zr zr 给 'foldlevel' 加一 zs zs 'wrap' 关闭时,水平滚动使得光标定位到屏幕的 起始处 (最左侧) zt zt 重画,光标移动到窗口的顶部 zuw zuw 撤销 zw zug zug 撤销 zg zuW zuW 撤销 zW zuG zuG 撤销 zG zw zw 永久把单词标记为拼写错误 (wrong) zv zv 打开足够的折叠,使得当前行可见 zx zx 重新应用 'foldlevel' 然后执行 "zv" zz zz 重画,光标移动到窗口的中间行 z<Left> z<Left> 同 "zh" z<Right> z<Right> 同 "zl" 2.6 操作符等待模式 operator-pending-index 它们在操作符后但在键入 {motion} 之前使用。 标签 字符 操作符等待模式下的动作

o_v v 强制操作符面向字符 o_V V 强制操作符面向行 o_CTRL-V CTRL-V 强制操作符面向列块

3. 可视模式 visual-index

可视模式下大多数命令同普通模式的相同。以下列出的是它们不同的部分。 标签 字符 备注 可视模式下的动作

v_CTRL-\_CTRL-N CTRL-\ CTRL-N 结束可视模式 v_CTRL-\_CTRL-G CTRL-\ CTRL-G 转到 'insertmode' 指定的模式 v_CTRL-A CTRL-A 2 给高亮文本中的数值加上 N v_CTRL-C CTRL-C 结束可视模式 v_CTRL-G CTRL-G 在可视模式和选择模式间切换 v_<BS> <BS> 2 选择模式: 删除高亮区域 v_CTRL-H CTRL-H 2 同 <BS> v_CTRL-O CTRL-O 从选择模式切换到可视模式,只限于下个命令 v_CTRL-V CTRL-V 使得可视模式面向列块,或者退出可视模式 v_CTRL-X CTRL-X 2 给高亮文本中的数值减去 N v_<Esc> <Esc> 结束可视模式 v_CTRL-] CTRL-] 跳转到高亮的标签上 v_! !{filter} 2 用外部命令 {filter} 过滤高亮行 v_: : 使用高亮行作为范围,开始一个命令行 v_< < 2 左移高亮行一个 'shiftwidth' v_= = 2 用 {equalprg} 选项指定的外部程序过滤高亮行 v_> > 2 右移高亮行一个 'shiftwidth' v_b_A A 2 列块模式下: 在高亮区域的所有行后附加相同的 文本 v_C C 2 删除高亮行,并开始插入 v_D D 2 删除高亮行 v_b_I I 2 列块模式: 在所有高亮行之前插入相同的文本 v_J J 2 连接高亮行 v_K K 在高亮区域上运行 'keywordprg' v_O O 水平移动到区域的另外一侧 Q 不启动 Ex 模式 v_R R 2 删除高亮行并开始插入 v_S S 2 删除高亮行并开始插入 v_U U 2 使得高亮区域全变大写 v_V V 使得可视区域面向行,或者退出可视模式 v_X X 2 删除高亮区域 v_Y Y 抽出高亮行 v_aquote a" 扩展高亮区域,使包含一个双引号字符串 v_a' a' 扩展高亮区域,使包含一个单引号字符串 v_a( a( 同 ab v_a) a) 同 ab v_a< a< 扩展高亮区域,使包含一个 <>v_a> a> 同 a< v_aB aB 扩展高亮区域,使包含一个 {}v_aW aW 扩展高亮区域,使包含 "一个 WORD" v_a[ a[ 扩展高亮区域,使包含一个 [] 块 v_a] a] 同 a[ v_a` a` 扩展高亮区域,使包含一个反引号字符串 v_ab ab 扩展高亮区域,使包含一个 () 块 v_ap ap 扩展高亮区域,使包含一个段落 v_as as 扩展高亮区域,使包含一个句子 v_at at 扩展高亮区域,使包含一个标签块 v_aw aw 扩展高亮区域,使包含 "一个单词" v_a{ a{ 同 aB v_a} a} 同 aB v_c c 2 删除高亮区域,并开始插入 v_d d 2 删除高亮区域 v_g_CTRL-A g CTRL-A 2 给高亮文本中的数值加上 N v_g_CTRL-X g CTRL-X 2 给高亮文本中的数值减去 N v_gJ gJ 2 连接高亮行,不插入空格 v_gq gq 2 排版高亮行 v_gv gv 交换现在和以前的高亮区域 v_iquote i" 扩展高亮区域,使包含一个双引号字符串 (但不 含引号) v_i' i' 扩展高亮区域,使包含一个单引号字符串 (但不 含引号) v_i( i( 同 ib v_i) i) 同 ib v_i< i< 扩展高亮区域,使包含内含 <>v_i> i> 同 i< v_iB iB 扩展高亮区域,使包含内含 {}v_iW iW 扩展高亮区域,使包含 "内含 WORD" v_i[ i[ 扩展高亮区域,使包含内含 [] 块 v_i] i] 同 i[ v_i` i` 扩展高亮区域,使包含一个反引号字符串 (但不 含反引号) v_ib ib 扩展高亮区域,使包含内含 () 块 v_ip ip 扩展高亮区域,使包含内含段落 v_is is 扩展高亮区域,使包含内含句子 v_it it 扩展高亮区域,使包含内含标签块 v_iw iw 扩展高亮区域,使包含 "内含单词" v_i{ i{ 同 iB v_i} i} 同 iB v_o o 移动光标到区域的另一侧 v_r r 2 用字符替换高亮区域 v_s s 2 删除高亮区域,并开始插入 v_u u 2 使得高亮区域全变小写 v_v v 使得可视模式面向字符,或者退出可视模式 v_x x 2 删除高亮区域 v_y y 抽出高亮区域 v_~ ~ 2 改变高亮区域的大小写

4. 命令行编辑 ex-edit-index

使用 ':'、'!'、'/' 或 '?' 命令进入命令行编辑。 输入普通字符会在当前光标位置插入该字符。 下面的 "补全" 指上下文相关的补全。如果可能,会补全文件名、标签、命令等。 标签 字符 命令行编辑模式下的动作

CTRL-@ 不用 c_CTRL-A CTRL-A 使用光标前面的模式进行补全,并插入所有的匹配 c_CTRL-B CTRL-B 光标移动到命令行开始的地方 c_CTRL-C CTRL-C<Esc> c_CTRL-D CTRL-D 列出光标前面模式的所有补全 c_CTRL-E CTRL-E 光标移动到命令行结束的地方 'cedit' CTRL-F 'cedit' 的缺省值: 打开命令行窗口;否则不用 c_CTRL-G CTRL-G 'incsearch' 激活时,下个匹配 c_<BS> <BS> 删除光标前面的字符 c_digraph {char1} <BS> {char2} 'digraph' 打开时,输入二合字母 c_CTRL-H CTRL-H<BS> c_<Tab> <Tab> 如果 'wildchar'<Tab>: 补全光标前面的模式 c_<S-Tab> <S-Tab>CTRL-P c_wildchar 'wildchar' 补全光标前面的模式 (缺省: <Tab>) c_CTRL-I CTRL-I<Tab> c_<NL> <NL><CR> c_CTRL-J CTRL-J<CR> c_CTRL-K CTRL-K {char1} {char2} 输入二合字母 c_CTRL-L CTRL-L 补全光标前的模式,并插入最长的公共子串 c_<CR> <CR> 执行输入的命令 c_CTRL-M CTRL-M<CR> c_CTRL-N CTRL-N 使用 'wildchar' 并有多个匹配: 转到后一个匹配, 不然: 从历史中调入后一个命令行 CTRL-O 不同 c_CTRL-P CTRL-P 使用 'wildchar' 并有多个匹配: 转到前一个匹配, 不然: 从历史中调入前一个命令行 c_CTRL-Q CTRL-QCTRL-V,除非用于终端控制流 c_CTRL-R CTRL-R {regname} 插入寄存器的内容或特殊对象到光标所在的地方,如 同直接输入那样 c_CTRL-R_CTRL-R CTRL-R CTRL-R {regname} c_CTRL-R_CTRL-O CTRL-R CTRL-O {regname} 按本义插入寄存器的内容或特殊对象到光标所在的地 方 CTRL-S 不用,或用于终端控制流 c_CTRL-T CTRL-T 'incsearch' 激活时,前个匹配 c_CTRL-U CTRL-U 删除所有字符 c_CTRL-V CTRL-V 按本义插入下一个非数字字符,或者插入其后三位数 字所代表的单个字节。 c_CTRL-W CTRL-W 删除光标前面的单词 CTRL-X 不用 (保留作补全用) CTRL-Y 复制 (抽出) 无模式的选择 CTRL-Z 不用 (保留作暂停用) c_<Esc> <Esc> 放弃命令行,不执行 c_CTRL-[ CTRL-[<Esc> c_CTRL-\_CTRL-N CTRL-\ CTRL-N 转到普通模式,放弃命令行 c_CTRL-\_CTRL-G CTRL-\ CTRL-G 转到 'insertmode' 指定的模式,放弃命令行 CTRL-\ a - d 保留给扩展用 c_CTRL-\_e CTRL-\ e {expr}{expr} 的结果替换命令行 CTRL-\ f - z 保留给扩展用 CTRL-\ 其它 不用 c_CTRL-] CTRL-] 激活缩写 c_CTRL-^ CTRL-^ 切换 :lmap 映射的使用 c_CTRL-_ CTRL-_ 'allowrevins' 打开时: 改变语言 (希伯来,波斯) c_<Del> <Del> 删除光标所在的字符 c_<Left> <Left> 光标左移 c_<S-Left> <S-Left> 光标左移一个单词 c_<C-Left> <C-Left> 光标左移一个单词 c_<Right> <Right> 光标右移 c_<S-Right> <S-Right> 光标右移一个单词 c_<C-Right> <C-Right> 光标右移一个单词 c_<Up> <Up> 从历史中调入匹配光标前模式的前一个命令行 c_<S-Up> <S-Up> 从历史中调入前一个命令行 c_<Down> <Down> 从历史中调入匹配光标前模式的后一个命令行 c_<S-Down> <S-Down> 从历史中调入后一个命令行 c_<Home> <Home> 光标移动到命令行开始的地方 c_<End> <End> 光标移动到命令行结束的地方 c_<PageDown> <PageDown><S-Down> c_<PageUp> <PageUp><S-Up> c_<Insert> <Insert> 切换插入/替换模式 c_<LeftMouse> <LeftMouse> 光标移动到鼠标点击的地方

5. 终端作业模式 terminal-job-index

除了窗口命令 ( CTRL-W ) 以外,绝大多数普通模式命令不能直接应用在终端窗口。要用 这些命令,先切换到终端普通模式。 这里假定未设置 'termwinkey'标签 字符 终端作业模式下的动作

t_CTRL-\_CTRL-N CTRL-\ CTRL-N 切换到终端普通模式 t_CTRL-W_N CTRL-W N 切换到终端普通模式 t_CTRL-W_: CTRL-W : 输入 Ex 命令 t_CTRL-W_. CTRL-W . 在终端中输入 CTRL-W CTRL-W CTRL-\ 给终端中的作业发送 CTRL-\ t_CTRL-W_quote CTRL-W " {register} 在终端中粘贴寄存器 t_CTRL-W_CTRL-C CTRL-W CTRL-C 强制结束作业 t_CTRL-W_CTRL-W CTRL-W CTRL-W 移动焦点到下个窗口 t_CTRL-W_gt CTRL-W gt 转到后一个标签页,同 gt t_CTRL-W_gT CTRL-W gT 转到前一个标签页,同 gT 亚瑟王,你找到 (圣杯) 了! holy-grail :smile

6. EX 命令 ex-cmd-index :index

这里是一个简短但完整的 ":" 命令的列表。这里不讨论参数。命令可选的部分用 [] 括 起。命令按照名字非可选部分排序。 标签 字符 动作

: : 什么都不做 :range :{range} 转到 {range} 的末行 :! :! 过滤行,或可通过外部命令执行之 :!! :!! 重复前次的 ":!" 命令 :# :# 同 ":number" :& :& 重复前次的 ":substitute" :star :* 执行寄存器的内容 :< :< 将行左移一个 'shiftwidth' := := 显示光标所在的行号 :> :> 将行右移一个 'shiftwidth' :@ :@ 执行寄存器的内容 :@@ :@@ 重复前次的 ":@" :Next :N[ext] 转到参数列表的前一个文件 :Print :P[rint] 显示行 :X :X 请求加密密钥 :append :a[ppend] 附加文本 :abbreviate :ab[breviate] 输入缩写 :abclear :abc[lear] 删除所有的缩写 :aboveleft :abo[veleft] 使得分割的窗口出现在左侧或者上方 :all :al[l] 为参数列表的每个文件打开一个窗口 :amenu :am[enu] 为所有模式输入菜单项 :anoremenu :an[oremenu] 为所有模式输入菜单项,不会被重新映射 :args :ar[gs] 显示参数列表 :argadd :arga[dd] 添加项目到参数列表中 :argdelete :argd[elete] 从参数列表中删除项目 :argedit :arge[dit] 添加项目到参数列表中并编辑之 :argdo :argdo 在参数列表上的所有项目上执行一个命令 :argglobal :argg[lobal] 定义全局参数列表 :arglocal :argl[ocal] 定义本地参数列表 :argument :argu[ment] 转到参数列表一个指定的文件 :ascii :as[cii] 显示光标所在的字符的 ascii 值 :autocmd :au[tocmd] 输入或者显示自动命令 :augroup :aug[roup] 选择要用的自动命令组 :aunmenu :aun[menu] 删除所有模式下的菜单 :buffer :b[uffer] 转到缓冲区列表里的特定缓冲区 :bNext :bN[ext] 转到缓冲区列表里的前一个缓冲区 :ball :ba[ll] 为缓冲区列表里的每个缓冲区打开一个窗口 :badd :bad[d] 添加缓冲区到缓冲区列表 :balt :balt 同 ":badd" 且同时设置轮换文件 :bdelete :bd[elete] 从缓冲区列表删除缓冲区 :behave :be[have] 设置鼠标和选择行为 :belowright :bel[owright] 使得分割的窗口出现在右侧或者下方 :bfirst :bf[irst] 转到缓冲区列表里的首个缓冲区 :blast :bl[ast] 转到缓冲区列表里的末个缓冲区 :bmodified :bm[odified] 转到缓冲区列表里的后一个修改过的缓冲区 :bnext :bn[ext] 转到缓冲区列表里的后一个缓冲区 :botright :bo[tright] 使得分割的窗口出现在最右侧或者下方 :bprevious :bp[revious] 转到缓冲区列表里的前一个缓冲区 :brewind :br[ewind] 转到缓冲区列表里的首个缓冲区 :break :brea[k] 跳出 while 循环 :breakadd :breaka[dd] 添加调试器断点 :breakdel :breakd[el] 删除调试器断点 :breaklist :breakl[ist] 列出调试器断点 :browse :bro[wse] 使用文件选择对话框 :bufdo :bufdo 为每个列表内缓冲区执行命令 :buffers :buffers 列出缓冲区列表里的所有文件 :bunload :bun[load] 卸载指定的缓冲区 :bwipeout :bw[ipeout] 真正删除一个缓冲区 :change :c[hange] 替换一行或若干行 :cNext :cN[ext] 跳转到前一个错误 :cNfile :cNf[ile] 跳转到前一个文件的末个错误 :cabbrev :ca[bbrev] 类似于 ":abbreviate",但用于命令行模式 :cabclear :cabc[lear] 清除所有缩写,用于命令行模式 :cabove :cabo[ve] 转到当前行之上的错误 :caddbuffer :cad[dbuffer] 通过缓冲区补充错误 :caddexpr :cadde[xpr] 通过表达式补充错误 :caddfile :caddf[ile] 加入错误信息到当前快速修复列表 :cafter :caf[ter] 转到当前光标之后的错误 :call :cal[l] 调用函数 :catch :cat[ch] :try 命令的一部分 :cbefore :cbef[ore] 转到当前光标之前的错误 :cbelow :cbel[ow] 转到当前行之下的错误 :cbottom :cbo[ttom] 滚动到 quickfox 窗口底部 :cbuffer :cb[uffer] 分析错误信息并跳转到其中的首个错误 :cc :cc 跳转到特定的错误 :cclose :ccl[ose] 关闭快速修复窗口 :cd :cd 改变目录 :cdo :cdo 为每个合法的错误列表项目执行命令 :cfdo :cfd[o] 为每个错误列表的文件执行命令 :center :ce[nter] 排版行,使其居中对齐 :cexpr :cex[pr] 从表达式里读取错误并跳转到其中的首个错误 :cfile :cf[ile] 读入含有错误信息的文件,并跳转到其中的首个错误 :cfirst :cfir[st] 跳转到指定的错误上,缺省为首个 :cgetbuffer :cgetb[uffer] 从缓冲区里得到错误 :cgetexpr :cgete[xpr] 从表达实里得到错误 :cgetfile :cg[etfile] 读入含有错误信息的文件 :changes :changes 显示修改的列表 :chdir :chd[ir] 改变当前目录 :checkpath :che[ckpath] 列出包含的头文件 :checktime :checkt[ime] 检查载入缓冲区的时间标签 :chistory :chi[story] 列出所有的错误列表 :clast :cla[st] 跳转到指定的错误上,缺省为末个 :clearjumps :cle[arjumps 清除跳转列表 :clist :cl[ist] 列出所有错误 :close :clo[se] 关闭当前窗口 :cmap :cm[ap] 类似于 ":map",但用于命令行模式 :cmapclear :cmapc[lear] 清除所有映射,用于命令行模式 :cmenu :cme[nu] 为命令行模式添加菜单 :cnext :cn[ext] 跳转到后一个错误 :cnewer :cnew[er] 跳转到后一个较新的错误列表 :cnfile :cnf[ile] 跳转到后一个文件的首个错误 :cnoremap :cno[remap] 类似于 ":noremap",但用于命令行模式 :cnoreabbrev :cnorea[bbrev] 类似于 ":noreabbrev",但用于命令行模式 :cnoremenu :cnoreme[nu] 类似于 ":noremenu",但用于命令行模式 :copy :co[py] 复制行 :colder :col[der] 跳转到前一个较老的错误列表 :colorscheme :colo[rscheme] 载入特定的色彩方案 :command :com[mand] 建立用户自定的命令 :comclear :comc[lear] 清除所有用户自定的命令 :compiler :comp[iler] 为特定编译器设定选项 :continue :con[tinue] 回到 :while 开始处 :confirm :conf[irm] 需要确认时,提示用户 :const :cons[t] 建立常量变量 :copen :cope[n] 打开快速修复窗口 :cprevious :cp[revious] 跳转到前一个错误 :cpfile :cpf[ile] 跳转到前一个文件的末个错误 :cquit :cq[uit] 退出 Vim,带错误码 :crewind :cr[ewind] 跳到指定的错误,缺省为首个 :cscope :cs[cope] 执行 cscope 命令 :cstag :cst[ag] 使用 cscope 来跳转到标签上 :cunmap :cu[nmap] 类似于 ":unmap",但用于命令行模式 :cunabbrev :cuna[bbrev] 类似于 ":unabbrev",但用于命令行模式 :cunmenu :cunme[nu] 删除命令行的菜单 :cwindow :cw[indow] 打开或者关闭快速修复窗口 :delete :d[elete] 删除行 :debug :deb[ug] 在调试模式执行命令 :debuggreedy :debugg[reedy] 从正常的输入那里读取调试模式命令 :def :def 定义 Vim9 用户函数 :defcompile :defc[ompile] 编译当前脚本中的 Vim9 用户函数 :delcommand :delc[ommand] 删除用户自定的命令 :delfunction :delf[unction] 删除用户函数 :delmarks :delm[arks] 删除位置标记 :diffupdate :dif[fupdate] 更新 'diff' 缓冲区 :diffget :diffg[et] 删除当前缓冲区的所有差异 :diffoff :diffo[ff] 关闭比较模式 :diffpatch :diffp[atch] 应用补丁然后显示差异 :diffput :diffpu[t] 删除另外一个缓冲区的差异 :diffsplit :diffs[plit] 显示和另外一个文件的差异 :diffthis :diffthis 使得当前窗口成为 diff 窗口 :digraphs :dig[raphs] 显示或者输入二合字母 :display :di[splay] 显示寄存器 :disassemble :disa[ssemble] 反编译 Vim9 用户函数 :dl :dl 带 'l' 标志位的 :delete 的简写 :djump :dj[ump] 跳转到 #define :dlist :dli[st] 列出所有的 #define :doautocmd :do[autocmd] 在当前缓冲区应用自动命令 :doautoall :doautoa[ll] 在所有载入的缓冲区上应用自动命令 :dp :d[elete]p 带 'p' 标志位 :delete 的简写 :drop :dr[op] 跳到编辑某文件的窗口,不成功则在当前窗口编辑之 :dsearch :ds[earch] 列出一个 #define :dsplit :dsp[lit] 分割窗口并跳转到 #define :edit :e[dit] 编辑文件 :earlier :ea[rlier] 回到旧的改变,撤销 :echo :ec[ho] 回显表达式结果 :echoconsole :echoc[onsole] 同 :echomsg,但写到标准输出 :echoerr :echoe[rr] 类似于 :echo,如同错误一样显示和使用历史 :echohl :echoh[l] 为 echo 等命令设置高亮 :echomsg :echom[sg] 同 :echo,在历史里放置消息 :echon :echon 同 :echo,但不留 <EOL> :else :el[se] :if 命令的一部分 :elseif :elsei[f] :if 命令的一部分 :emenu :em[enu] 按名字执行菜单 :enddef :enddef 结束 :def 开始的用户函数 :endif :en[dif] 结束最近的 :if :endfor :endfo[r] 结束最近的 :for :endfunction :endf[unction] 结束 :function 开始的用户函数 :endtry :endt[ry] 结束最近的 :try :endwhile :endw[hile] 结束最近的 :while :enew :ene[w] 编辑新的无名缓冲区 :ex :ex 同 ":edit" :execute :exe[cute] 执行表达式的结果产生的字符串 :exit :exi[t] 同 ":xit" :export :exp[ort] Vim9: 导出来自脚本的项目 :exusage :exu[sage] Ex 命令总览 :file :f[ile] 显示或者设置当前文件名 :files :files 列出缓冲区列表的所有文件 :filetype :filet[ype] 切换文件类型检测的打开/关闭 :filter :filt[er] 过滤跟随的命令的输出结果 :find :fin[d] 在 'path' 里找寻文件并编辑之 :final :final 在 Vim9 中声明不可更改的变量 :finally :fina[lly] :try 命令的一部分 :finish :fini[sh] 退出 Vim 脚本的执行 :first :fir[st] 转到参数列表的首个文件 :fixdel :fix[del] 设置 <Del> 的键码 :fold :fo[ld] 创建折叠 :foldclose :foldc[lose] 关闭折叠 :folddoopen :foldd[oopen] 对所有不在关闭折叠的行执行命令 :folddoclosed :folddoc[losed] 对所有在关闭折叠的行执行命令 :foldopen :foldo[pen] 打开折叠 :for :for for 循环 :function :fu[nction] 定义用户函数 :global :g[lobal] 对匹配的行执行命令 :goto :go[to] 转到缓冲区某字节处 :grep :gr[ep] 执行 'grepprg' 并转到首个匹配处 :grepadd :grepa[dd] 类似 :grep,但附加到当前列表后 :gui :gu[i] 启动 GUI :gvim :gv[im] 启动 GUI :hardcopy :ha[rdcopy] 发送文本到打印机 :help :h[elp] 打开帮助窗口 :helpclose :helpc[lose] 关闭帮助窗口 :helpfind :helpf[ind] 打开显示帮助窗口的对话框 :helpgrep :helpg[rep] 类似于 ":grep",但搜索帮助文件 :helptags :helpt[ags] 为一个目录产生帮助标签 :highlight :hi[ghlight] 指定高亮方法 :hide :hid[e] 为一个命令隐藏当前缓冲区 :history :his[tory] 显示历史列表 :insert :i[nsert] 插入文本 :iabbrev :ia[bbrev] 类似于 ":abbrev",但用于插入模式 :iabclear :iabc[lear] 类似于 ":abclear",但用于插入模式 :if :if 条件满足时执行命令 :ijump :ij[ump] 跳转到标识符的定义 :ilist :il[ist] 列出匹配标识符的行 :imap :im[ap] 类似于 ":map",但用于插入模式 :imapclear :imapc[lear] 类似于 ":map",但用于插入模式 :imenu :ime[nu] 为插入模式添加菜单 :import :imp[ort] Vim9: 导入来自其它脚本的项目 :inoremap :ino[remap] 类似于 ":noremap",但用于插入模式 :inoreabbrev :inorea[bbrev] 类似于 ":noreabbrev",但用于插入模式 :inoremenu :inoreme[nu] 类似于 ":noremenu",但用于插入模式 :intro :int[ro] 显示介绍文字 :isearch :is[earch] 列出匹配标识符的一行 :isplit :isp[lit] 分割窗口,并跳转到标识符的定义 :iunmap :iu[nmap] 类似于 ":unmap",但用于插入模式 :iunabbrev :iuna[bbrev] 类似于 ":unabbrev",但用于插入模式 :iunmenu :iunme[nu] 删除插入模式的菜单 :join :j[oin] 连接行 :jumps :ju[mps] 显示跳转表 :k :k 设置位置标记 :keepalt :keepa[lt] 跟随的命令保持轮换文件不变 :keepmarks :kee[pmarks] 跟随的命令保持位置标记不变 :keepjumps :keepj[umps] 跟随的命令保持跳转表和位置标记不变 :keeppatterns :keepp[atterns] 跟随的命令保持搜索模式历史不变 :lNext :lN[ext] 转到位置列表的前一个位置 :lNfile :lNf[ile] 转到上个文件的最近一个位置 :list :l[ist] 显示行 :labove :lab[ove] 转到当前行之上的位置 :laddexpr :lad[dexpr] 通过表达式补充位置 :laddbuffer :laddb[uffer] 通过缓冲区补充位置 :laddfile :laddf[ile] 把位置加到当前位置列表里 :lafter :laf[ter] 转到当前光标之后的位置 :last :la[st] 转到参数列表的末个文件 :language :lan[guage] 设置语言 (locale) :later :lat[er] 转到新的改变,重做 :lbefore :lbef[ore] 转到当前光标之前的位置 :lbelow :lbel[ow] 转到当前行之下的位置 :lbottom :lbo[ttom] 滚动到位置窗口的底部 :lbuffer :lb[uffer] 分析位置并跳转到其中的首个位置 :lcd :lc[d] 改变本地的目录 :lchdir :lch[dir] 改变本地的目录 :lclose :lcl[ose] 关闭位置窗口 :lcscope :lcs[cope] 类似于 ":cscope",但使用位置列表 :ldo :ld[o] 为每个合法位置列表项目执行命令 :lfdo :lfd[o] 为每个位置列表的文件执行命令 :left :le[ft] 左对齐行 :leftabove :lefta[bove] 使得分割的窗口出现在左侧或者上方 :let :let 给变量或选项赋值 :lexpr :lex[pr] 从表达式里读取位置并跳转到其中的首个位置 :lfile :lf[ile] 从文件里读取位置并跳转到其中的首个位置 :lfirst :lfir[st] 转到指定的位置上,缺省为首个 :lgetbuffer :lgetb[uffer] 从缓冲区里读取位置 :lgetexpr :lgete[xpr] 从表达式里读取位置 :lgetfile :lg[etfile] 从文件里读取位置 :lgrep :lgr[ep] 运行 'grepprg' 并跳转到其中的首个匹配 :lgrepadd :lgrepa[dd] 类似于 :grep,但附加到当前列表上 :lhelpgrep :lh[elpgrep] 类似于 ":helpgrep",但使用位置列表 :lhistory :lhi[story] 列出所有位置列表 :ll :ll 转到指定位置 :llast :lla[st] 转到指定位置,缺省为末个 :llist :lli[st] 列出所有的位置 :lmake :lmak[e] 执行外部命令 'makeprg' 并分析错误信息 :lmap :lm[ap] 类似于 ":map!",但包括 Lang-Arg 模式 :lmapclear :lmapc[lear] 类似于 ":mapclear!",但包括 Lang-Arg 模式 :lnext :lne[xt] 跳到后一个位置 :lnewer :lnew[er] 跳到较新的位置列表 :lnfile :lnf[ile] 跳到后一个文件的首个位置 :lnoremap :ln[oremap] 类似于 ":noremap!",但包括 Lang-Arg 模式 :loadkeymap :loadk[eymap] 载入后面的键盘映射表,直到 EOF 为止 :loadview :lo[adview] 从文件里为当前窗口载入视图 :lockmarks :loc[kmarks] 跟随的命令保持位置标记不变 :lockvar :lockv[ar] 给变量加锁 :lolder :lol[der] 转到较旧的位置列表 :lopen :lope[n] 打开位置窗口 :lprevious :lp[revious] 转到前一个位置 :lpfile :lpf[ile] 转到前一个文件的最近的位置 :lrewind :lr[ewind] 转到指定的位置,缺省为首个 :ls :ls 列出所有的缓冲区 :ltag :lt[ag] 跳转到标签,并把匹配的标签加到位置列表上 :lunmap :lu[nmap] 类似于 ":unmap!",但包括 Lang-Arg 模式 :lua :lua 执行 Lua 命令 :luado :luad[o] 对每行都执行 Lua 命令 :luafile :luaf[ile] 执行 Lua 脚本文件 :lvimgrep :lv[imgrep] 在若干文件里搜索模式 :lvimgrepadd :lvimgrepa[dd] 类似于 :vimgrep,但附加到当前列表 :lwindow :lw[indow] 打开或关闭位置窗口 :move :m[ove] 移动行 :mark :ma[rk] 设置位置标记 :make :mak[e] 执行外部命令 'makeprg' 并分析其错误信息 :map :map 显示或者输入映射 :mapclear :mapc[lear] 清除所有普通和可视模式的映射 :marks :marks 列出所有的位置标记 :match :mat[ch] 定义要高亮显示的匹配的模式 :menu :me[nu] 输入新的菜单项 :menutranslate :menut[ranslate] 添加菜单翻译项目 :messages :mes[sages] 显示以前显示的消息 :mkexrc :mk[exrc] 写入当前映射和设置到文件 :mksession :mks[ession] 写入会话信息到文件 :mkspell :mksp[ell] 生成 .spl 拼写文件 :mkvimrc :mkv[imrc] 写入当前映射和设置到文件 :mkview :mkvie[w] 写入当前窗口的视图到文件 :mode :mod[e] 显示或者改变屏幕模式 :mzscheme :mz[scheme] 执行 MzScheme 命令 :mzfile :mzf[ile] 执行 MzScheme 脚本文件 :nbclose :nbc[lose] 关闭当前 Netbeans 会话 :nbkey :nb[key] 传递一个键给 Netbeans :nbstart :nbs[art] 打开一个新的 Netbeans 会话 :next :n[ext] 跳转到参数列表的后一个文件 :new :new 创建一个新的空白窗口 :nmap :nm[ap] 类似于 ":map",但使用普通模式 :nmapclear :nmapc[lear] 清除普通模式的所有映射 :nmenu :nme[nu] 为普通模式添加菜单 :nnoremap :nn[oremap] 类似于 ":noremap",但使用普通模式 :nnoremenu :nnoreme[nu] 类似于 ":noremenu",但使用普通模式 :noautocmd :noa[utocmd] 跟随的若干命令不激活自动命令 :noremap :no[remap] 输入不会被重新映射的映射 :nohlsearch :noh[lsearch] 暂停 'hlsearch' 高亮 :noreabbrev :norea[bbrev] 输入不会被重新映射的缩写 :noremenu :noreme[nu] 输入不会被重新映射的菜单 :normal :norm[al] 执行普通模式的命令 :noswapfile :nos[wapfile] 跟随的若干命令不创建交换文件 :number :nu[mber] 显示文本行时给出行号 :nunmap :nun[map] 类似于 ":unmap",但使用普通模式 :nunmenu :nunme[nu] 删除普通模式的菜单 :oldfiles :ol[dfiles] 列出 viminfo 文件中包含位置标记的文件 :open :o[pen] 启动打开模式 (没有实现) :omap :om[ap] 类似于 ":map",但使用操作符等待模式 :omapclear :omapc[lear] 删除操作符等待模式的所有映射 :omenu :ome[nu] 为操作符等待模式添加菜单 :only :on[ly] 关闭当前窗口,除了当前的窗口以外 :onoremap :ono[remap] 类似于 ":noremap",但使用操作符等待模式 :onoremenu :onoreme[nu] 类似于 ":noremenu",但使用操作符等待模式 :options :opt[ions] 打开选项窗口 :ounmap :ou[nmap] 类似于 ":unmap",但使用操作符等待模式 :ounmenu :ounme[nu] 删除操作符等待模式的菜单 :ownsyntax :ow[nsyntax] 为本窗口设置新的局部语法高亮 :packadd :pa[ckadd] 从 'packpath' 载入插件 :packloadall :packl[oadall] 从 'packpath' 载入所有包 :pclose :pc[lose] 关闭预览窗口 :pedit :ped[it] 在预览窗口编辑文件 :perl :pe[rl] 执行 Perl 命令 :print :p[rint] 显示行 :profdel :profd[el] 停止剖视 (profile) 函数或脚本 :profile :prof[ile] 剖视 (profile) 函数或脚本 :promptfind :pro[mptfind] 打开 GUI 对话框进行搜索 :promptrepl :promptr[epl] 打开 GUI 对话框进行搜索/替代 :perldo :perld[o] 对每行都执行 Perl 命令 :pop :po[p] 跳转到标签栈较旧的项目上 :popup :popu[p] 根据名字弹出菜单 :ppop :pp[op] 在预览窗口 ":pop" :preserve :pre[serve] 写入所有文本到交换文件 :previous :prev[ious] 跳转到参数列表里的前一个文件 :psearch :ps[earch] 类似于 ":ijump",但在预览窗口显示匹配 :ptag :pt[ag] 在预览窗口显示标签 :ptNext :ptN[ext] 在预览窗口 :tNext :ptfirst :ptf[irst] 在预览窗口 :trewind :ptjump :ptj[ump] 在预览窗口 :tjump 和显示标签 :ptlast :ptl[ast] 在预览窗口 :tlast :ptnext :ptn[ext] 在预览窗口 :tnext :ptprevious :ptp[revious] 在预览窗口 :tprevious :ptrewind :ptr[ewind] 在预览窗口 :trewind :ptselect :pts[elect] 在预览窗口 :tselect 和显示标签 :put :pu[t] 插入寄存器的内容到文本 :pwd :pw[d] 显示当前目录 :py3 :py3 执行 Python 3 命令 :python3 :python3 同 :py3 :py3do :py3d[o] 对每行都执行 Python 3 命令 :py3file :py3f[ile] 执行 Python 3 脚本文件 :python :py[thon] 执行 Python 命令 :pydo :pyd[o] 对每行都执行 Python 命令 :pyfile :pyf[ile] 执行 Python 脚本文件 :pyx :pyx 执行 python_x 命令 :pythonx :pythonx 同 :pyx :pyxdo :pyxd[o] 对每行都执行 python_x 命令 :pyxfile :pyxf[ile] 执行 python_x 脚本文件 :quit :q[uit] 退出当前窗口 (如果只有一窗口,则退出 Vim) :quitall :quita[ll] 退出 Vim :qall :qa[ll] 退出 Vim :read :r[ead] 读入文件到文本 :recover :rec[over] 从交换文件里恢复文件 :redo :red[o] 重做一次撤销的改变 :redir :redi[r] 重定向消息到文件或者寄存器 :redraw :redr[aw] 强迫显示的重画 :redrawstatus :redraws[tatus] 强迫状态行的重画 :redrawtabline :redrawt[abline] 强迫标签行的重画 :registers :reg[isters] 显示寄存器的内容 :resize :res[ize] 改变当前窗口的高度 :retab :ret[ab] 改变制表大小 :return :retu[rn] 从用户函数返回 :rewind :rew[ind] 转到参数列表的首个文件 :right :ri[ght] 右对齐文本 :rightbelow :rightb[elow] 使得分割窗口出现在右侧或者下方 :ruby :rub[y] 执行 Ruby 命令 :rubydo :rubyd[o] 对每行执行 Ruby 命令 :rubyfile :rubyf[ile] 执行 Ruby 脚本文件 :rundo :rund[o] 从文件里读入撤销信息 :runtime :ru[ntime] 执行 'runtimepath' 里的 vim 脚本 :rviminfo :rv[iminfo] 读取 viminfo 文件 :substitute :s[ubstitute] 查找和替代文本 :sNext :sN[ext] 分割窗口并转到参数列表的前一个文件 :sandbox :san[dbox] 在沙盘里执行命令 :sargument :sa[rgument] 分割窗口并转到参数列表的某一个文件 :sall :sal[l] 为参数列表的每个文件打开窗口 :saveas :sav[eas] 用别的名字保存文件。 :sbuffer :sb[uffer] 分割窗口并转到缓冲区列表的某一个文件 :sbNext :sbN[ext] 分割窗口并转到缓冲区列表的前一个文件 :sball :sba[ll] 为缓冲区列表的每个文件打开窗口 :sbfirst :sbf[irst] 分割窗口并转到缓冲区列表的首个文件 :sblast :sbl[ast] 分割窗口并转到缓冲区列表的末个文件 :sbmodified :sbm[odified] 分割窗口并转到缓冲区列表的修改过的文件 :sbnext :sbn[ext] 分割窗口并转到缓冲区列表的后一个文件 :sbprevious :sbp[revious] 分割窗口并转到缓冲区列表的前一个文件 :sbrewind :sbr[ewind] 分割窗口并转到缓冲区列表的首个文件 :scriptnames :scr[iptnames] 列出所有执行过的 Vim 脚本的名字 :scriptencoding :scripte[ncoding] 执行过的 Vim 脚本使用的编码 :scriptversion :scriptv[ersion] Vim 脚本使用的版本 :scscope :scs[cope] 分割窗口并执行 cscope 命令 :set :se[t] 显示或设置选项 :setfiletype :setf[iletype] 设置 'filetype',除非已经设置过 :setglobal :setg[lobal] 显示或者设置全局选项值 :setlocal :setl[ocal] 显示或者设置本地选项值 :sfind :sf[ind] 分割当前窗口并编辑 'path' 的文件 :sfirst :sfir[st] 分割窗口并转到参数列表的首个文件 :shell :sh[ell] 退到外壳程序 :simalt :sim[alt] Win32 GUI: 模拟 Windows ALT 键 :sign :sig[n] 操作标号 :silent :sil[ent] 安静地运行命令 :sleep :sl[eep] 几秒内不作任何事 :sleep! :sl[eep]! 几秒内不作任何事,光标也不可见 :slast :sla[st] 分割窗口并转到参数列表的末个文件 :smagic :sm[agic] 带 'magic' 的 :substitute :smap :smap 类似于 ":map",但用于选择模式 :smapclear :smapc[lear] 删除选择模式所有的映射 :smenu :sme[nu] 为选择模式添加菜单 :smile :smi[le] 让用户高兴一下 :snext :sn[ext] 分割窗口并转到参数列表的后一个文件 :snomagic :sno[magic] 带 'nomagic' 的 :substitute :snoremap :snor[emap] 类似于 ":noremap",但用于选择模式 :snoremenu :snoreme[nu] 类似于 ":noremenu",但用于选择模式 :sort :sor[t] 给行排序 :source :so[urce] 从文件里读取 Vim 或 Ex 命令 :spelldump :spelld[ump] 分割窗口并用正确的单词填充 :spellgood :spe[llgood] 添加拼写的好词 :spellinfo :spelli[nfo] 显示载入的拼写文件的信息 :spellrare :spellra[re] 添加拼写的罕见词 :spellrepall :spellr[epall] 像前次 z= 那样,但替换所有的坏词 :spellundo :spellu[ndo] 删除好词或坏词 :spellwrong :spellw[rong] 添加拼写错误 :split :sp[lit] 分割当前窗口 :sprevious :spr[evious] 分割窗口并转到参数列表的前一个文件 :srewind :sre[wind] 分割窗口并转到参数列表的首个文件 :stop :st[op] 暂停编辑器并退回外壳 :stag :sta[g] 分割窗口并跳转到标签上 :startgreplace :startg[replace] 开始虚拟替换模式 :startreplace :startr[eplace] 开始替换模式 :startinsert :star[tinsert] 开始插入模式 :stopinsert :stopi[nsert] 退出插入模式 :stjump :stj[ump] 执行 ":tjump" 并分割窗口 :stselect :sts[elect] 执行 ":tselect" 并分割窗口 :sunhide :sun[hide] 同 ":unhide" :sunmap :sunm[ap] 类似于 ":unmap",但用于选择模式 :sunmenu :sunme[nu] 删除选择模式的菜单 :suspend :sus[pend] 同 ":stop" :sview :sv[iew] 分割窗口并以只读模式编辑文件 :swapname :sw[apname] 显示当前交换文件的名字 :syntax :sy[ntax] 语法高亮 :syntime :synti[me] 测量语法高亮速度 :syncbind :sync[bind] 同步滚动绑定 :t :t 同 ":copy" :tNext :tN[ext] 跳转到前一个匹配的标签 :tabNext :tabN[ext] 跳到前一个标签页 :tabclose :tabc[lose] 关闭当前标签页 :tabdo :tabdo 为每个标签页执行命令 :tabedit :tabe[dit] 在新标签页里编辑文件 :tabfind :tabf[ind] 寻找 'path' 里的文件,在新标签页里编辑之 :tabfirst :tabfir[st] 转到首个标签页 :tablast :tabl[ast] 转到末个标签页 :tabmove :tabm[ove] 把标签页移到别的位置 :tabnew :tabnew 在新标签页里编辑文件 :tabnext :tabn[ext] 转到后一个标签页 :tabonly :tabo[nly] 关闭所有除了当前标签页以外的所有标签页 :tabprevious :tabp[revious] 转到前一个标签页 :tabrewind :tabr[ewind] 转到首个标签页 :tabs :tabs 列出标签页以及里面包含的内容 :tab :tab 打开新窗口时建立新的标签页 :tag :ta[g] 跳转到标签上 :tags :tags 显示标签栈的内容 :tcd :tcd 切换标签页的目录 :tchdir :tch[dir] 切换标签页的目录 :tcl :tc[l] 执行 Tcl 命令 :tcldo :tcld[o] 为每行执行 Tcl 命令 :tclfile :tclf[ile] 执行 Tcl 脚本文件 :tearoff :te[aroff] 撕下一个菜单 :terminal :ter[minal] 打开终端窗口 :tfirst :tf[irst] 转到首个匹配的标签 :throw :th[row] 抛出例外 :tjump :tj[ump] 类似于 ":tselect",只有一个匹配时直接跳转之 :tlast :tl[ast] 跳转到末个匹配的标签 :tlmenu :tlm[enu] 为终端作业模式添加菜单 :tlnoremenu :tln[oremenu] 类似于 ":noremenu",但用于终端作业模式 :tlunmenu :tlu[nmenu] 删除终端作业模式的菜单 :tmapclear :tmapc[lear] 删除所有终端作业模式的映射 :tmap :tma[p] 类似于 ":map" 但用于终端作业模式 :tmenu :tm[enu] 定义菜单的工具提示 :tnext :tn[ext] 跳转到后一个匹配的标签 :tnoremap :tno[remap] 类似于 ":noremap" 但用于终端作业模式 :topleft :to[pleft] 使得分割的窗口出现在顶部或者最左端 :tprevious :tp[revious] 跳转到前一个匹配的标签 :trewind :tr[ewind] 跳转到首个匹配的标签 :try :try 执行命令,错误或者例外时终止 :tselect :ts[elect] 列出匹配的标签并从中选择一个 :tunmap :tunma[p] 类似于 ":unmap" 但用于终端作业模式 :tunmenu :tu[nmenu] 删除菜单的工具提示 :undo :u[ndo] 撤销最近的改变 :undojoin :undoj[oin] 将下一个改变和上一个撤销块合并 :undolist :undol[ist] 列出撤销树的叶结点 :unabbreviate :una[bbreviate] 删除缩写 :unhide :unh[ide] 为缓冲区列表里每个载入的文件打开窗口 :unlet :unl[et] 删除变量 :unlockvar :unlo[ckvar] 给变量解锁 :unmap :unm[ap] 删除映射 :unmenu :unme[nu] 删除菜单 :unsilent :uns[ilent] 非安静模式执行命令 :update :up[date] 如果有修改,写回缓冲区 :vglobal :v[global] 对不匹配的行,执行命令 :var :var Vim9 中变量声明 :version :ve[rsion] 显示版本号和其它信息 :verbose :verb[ose] 执行命令,过程中设置 'verbose' :vertical :vert[ical] 使得跟随的命令垂直分割 :vim9cmd :vim9[cmd] 使下一个命令使用 Vim9 脚本语法 :vim9script :vim9s[cript] 指示 Vim9 脚本文件 :vimgrep :vim[grep] 在若干文件里查找模式 :vimgrepadd :vimgrepa[dd] 类似于 :vimgrep,但附加到当前列表 :visual :vi[sual] 同 ":edit",但关掉 "Ex" 模式 :viusage :viu[sage] 普通模式命令的总览 :view :vie[w] 以只读方式编辑文件 :vmap :vm[ap] 类似于 ":map",但使用可视+选择模式 :vmapclear :vmapc[lear] 删除可视+选择模式所有的映射 :vmenu :vme[nu] 为可视+选择模式添加菜单 :vnew :vne[w] 建立新的空白窗口,垂直分割 :vnoremap :vn[oremap] 类似于 ":noremap",但使用可视+选择模式 :vnoremenu :vnoreme[nu] 类似于 ":noremenu",但使用可视+选择模式 :vsplit :vs[plit] 垂直分割当前窗口 :vunmap :vu[nmap] 类似于 ":unmap",但使用可视+选择模式 :vunmenu :vunme[nu] 删除可视+选择模式的菜单 :windo :windo 为每个窗口执行命令 :write :w[rite] 写回文件 :wNext :wN[ext] 写回文件,然后跳转到参数列表的前一个文件 :wall :wa[ll] 写回所有 (改变的) 缓冲区 :while :wh[ile] 只要条件满足,执行循环体 :winsize :wi[nsize] 取得或者设置窗口大小 (已废弃) :wincmd :winc[md] 执行窗口 (CTRL-W) 命令 :winpos :winp[os] 取得或者设置窗口位置 :wnext :wn[ext] 写回文件,然后跳转到参数列表的后一个文件 :wprevious :wp[revious] 写回文件,然后跳转到参数列表的前一个文件 :wq :wq 写回文件,然后退出窗口或者 Vim :wqall :wqa[ll] 写回所有 (改变的) 缓冲区然后退出 Vim :wundo :wu[ndo] 把撤销信息写入文件 :wviminfo :wv[iminfo] 写入 viminfo 文件 :xit :x[it] 如果缓冲区被改动则写入。然后关闭窗口 :xall :xa[ll] 同 ":wqall" :xmapclear :xmapc[lear] 删除可视模式的所有映射 :xmap :xm[ap] 类似于 ":map",但使用可视模式 :xmenu :xme[nu] 添加可视模式的菜单 :xrestore :xr[estore] 恢复 X 服务器的连接 :xnoremap :xn[oremap] 类似于 ":noremap",但使用可视模式 :xnoremenu :xnoreme[nu] 类似于 ":noremenu",但使用可视模式 :xunmap :xu[nmap] 类似于 ":unmap",但使用可视模式 :xunmenu :xunme[nu] 删除可视模式的菜单 :yank :y[ank] 抽出行到寄存器 :z :z 显示一些行 :~ :~ 重复前次 ":substitute" vim:tw=78:ts=8:noet:ft=help:norl: