| 命令 |
解析 |
| zz |
重新绘制屏幕,并把当前行显示在屏幕中央 |
| 命令 |
解析 |
| K |
查看当前光标所在处的单词的手册页 |
| 移动 |
|
| 命令 |
解析 |
| -- 3 |
:- |
| h |
|
| J |
|
| K |
|
| l |
|
| home |
去到行首 |
| end |
去到行尾 |
| $ |
去到行尾 |
| B |
去到字符串词首 |
| gg |
去到文件开头 |
| {number}G |
直接跳转到某行 |
| 删除 |
|
| 命令 3 |
解析 |
| -- 2 |
:- |
| dd |
删除当前光标所在行 |
| x |
删除当前光标所在的字符,并且光标向向前进一位 |
| cw |
删除从光标位置到单词结尾间的字符,并进入插入模式 |
| dw |
删除从光标位置到单词结尾间的字符,不进入插入模式 |
| db |
删除从光标起始位置到代词开头的内容,不进入输入模式 |
| daw |
delete a word |
| dap |
删除当前所在段落 |
| C |
删除指定文本并进入插入模式 |
| 查找与替换 |
|
| 命令 4 |
解析 |
| -- |
:- |
| R |
进入替换模式 |
| - |
正向查询字符串 |
|
逆向查询字符串 |
| F{char} |
查找下一出指定字符出现的位置并把光标移动到字符处 |
| ; |
与f{char}配合使用,重复查找上次F命令所查找到的字符 |
| , |
与f{char}配合使用,反向查找上次F命令所查找到的字符 |
| 2 |
查找当前光标下的字符 |
| N |
跳转到下一个匹配项 |
| N |
反向跳转到上一个匹配项 |
| 格式控制 |
|
| 命令 2 |
解析 |
| -- 4 |
:- |
| G |
|
| 命令 |
解析 |
| I |
|
| I |
|
| A |
|
| A |
|
| s |
|
| cw 2 |
删除从光标位置到单词结尾间的字符,并进入插入模式 |
| o(字母) |
在当前光标所在行的下面新建一个新行,切换到新行,进入输入模式 |
| ctrl+vcode |
code为要插入字符的编码, |
| 命令 |
解析 |
| July 19, 2020 |
先删除光标下的字符,然后进入插入模式 |
| 命令 |
解析 |
| numberctrl+a |
加法 |
| numberctrl+x |
减法 |
| ctrl+r=expressionbackspace |
计算表达式的值并插入光标所在位置 |
| 复制与粘贴 |
|
| 命令 14 |
解析 |
| -- 14 |
:- |
| yy |
复制当前行(使用寄存器) |
| P |
粘贴 |
| J |
将当前行与下一行连接起来 |
| 进制问题 |
|
| 命令 15 |
解析 |
| -- 15 |
:- |
| 0 4 |
0开头的数字为8进制 |
| 0x |
0x开头的数字为16进制 |
| ga |
显示字符编码格式 |
额外规则:当一个操作符被连续调用两次的时候,他会作用于当前行
操作符+动作命令=操作
| 命令 |
解析 |
| c 2 |
修改 |
| d |
删除 |
| y |
复制到寄存器 |
| g-~-vU |
反转大小写 |
| gU |
转换为小写 |
| gU |
转换为大写 |
| 3 |
增加缩进 |
| 4 |
减小缩进 |
| = |
自动缩进 |
| ! |
使用外部程序过滤所跨越的行 |
| 命令 |
解析 |
| ctrl+h |
删除前一个字符,相当于
|
| ctrl+w |
删除前一个单词 |
| ctrl+u |
删除至行首 |
| 命令 |
解析 |
| ESC 2 |
切换到普通模式 |
| ctrl+ |
切换到普通模式 |
| ctrl+o 2 |
切换到插入-普通模式 |
| 命令 |
解析 |
| V |
激活面向字符的可视化模式 |
| V |
激活面向行的可视化模式 |
| ctrl+v |
激活面向块的可视化模式 |
| gv |
重选上一次由可视化模式选择的文本范围 |
| o |
切换到高亮选区的活动端 |
| b 2 |
选区向前选择一个单词 |
| E |
选区向后选择一个单词 |
| U |
可视模式下的U相当于普通模式下的gU |
| rchar |
用cahr代替选区中的所有内容 |
| c 3 |
删除选区内容,并进入插入模式,并且在退出后会将修改的文本添加到每一行 |
| I 2 |
可视模式下的插入(光标前) |
| A 2 |
可视模式下的插入(光标后) |
| - 2 |
在可视模式下进入命令行会将表示范围的’<,’>预先填充到命令行上 |
| 命令 |
解析 |
| - 3 |
切换到命令行模式 |
| ESC |
切换回普通模式 |
| -noh |
取消搜索之后的一直高亮模式 |
| -edit |
读写文件 |
| -write |
读写文件 |
| -tabnew |
创建标签页 |
| -split |
分割窗口 |
| -prev |
操作参数列表 |
| -printf -p |
显示指定范围的文字 |
| -delete -d |
删除指定行的文字 |
| -next |
操作参数列表 |
| -bprev |
操作缓冲区列表 |
| -bnext |
操作缓冲区列表 |
| -rangedelete x |
删除指定范围内的行【到寄存器X中】 |
| -rangeyank x |
复制指定范围的行【到寄存器中】 |
| -rangeput x |
在指定行后粘贴寄存器X中的内容 |
| -rangecopy {address} -co -t |
把指定范围内的行拷贝到{address}指定的行之下(不使用寄存器) |
| -rangemove {address} |
把指定范围内的行移动到{address}指定的行之下 |
| -rangejoin |
连接指定范围内的行 |
| -rangenormal {command} |
对指定范围内的每一行执行普通模式命令{command} |
| -rangesubstitude-{pattern}-{string}-flags |
在指定范围内出现{pattern}的地方替换为{string} |
| -rangeglobal-{pattern}-cmd |
对指定范围内匹配{pattern}的所有行执行Ex命令{cmd} |
| -@- |
重复执行上次的Ex命令 |
| -@@ |
重复执行上一条命令 |
| -u |
撤销上一条命令行命令的影响 |
| -up ordown |
类似bash,回溯历史命令 |
| ctrl+d |
命令补全 还可进行选项补全 |
| tab |
依次显示可以执行的命令,还可进行文件路补全 |
| s+tab |
反向遍历所有的可执行命令 |
| ctrl+rctrl+w |
复制光标下的单词并把他插入到命令行中 |
| q- |
进入命令行窗口模式 |
| ctrl+f |
把当前命令行命令映射到命令行窗口 |
| 运行shell命令 |
|
| 命令 7 |
解析 |
| -- 7 |
:- |
| -!{cmd} |
执行shell中的命令,当给此命令指定范围时,会将『range』指定行会传给{cmd}作为标准输入,然后会将{cmd}的输出覆盖『range』内原本的内容 |
| -shell |
启动一个交互的shell会话 |
| :exit |
&emsp退出此shell并返回vim |
| -read !{cmd} |
把命令的标准输出重定向到缓冲器 |
| -rangewrite !{cmd} |
把缓冲区的内容作为指定{cmg}的标准输入 |
| 区别于 -write! {cmd} |
把缓冲区的内容写到一个名为{cmd}的文件,这里的!表示会覆盖原文件的内容 |
| -range!filter |
使用外部程序{dilter]过滤指定的『range』 |
| 批量执行Ex命令 |
|
| 命令 5 |
解析 |
| -- 6 |
:- |
| -source {file} |
执行vim脚本 |
| -argdo source {file} |
对参数列表里的每个文件执行{file}里面的Ex命令 |
| 自动补全EX命令 |
|
| 命令 6 |
解析 |
| -- 5 |
:- |
| -set wildmode=… |
设置自动补全的环境变量 |
| 命令 |
解析 |
| {start},{end} |
start行至end行 |
| 0 |
虚拟行,位于文件的第一行上面 |
| 1 |
文件的第一行 |
| 8 |
表示当前行 |
| $ 2 |
表示文件最后一行 |
| % 2 |
整个文件(:1,$的简写形式) |
| m |
包含位置标记m的行 |
| 6 |
高亮选区的起始行 |
| 9 |
高亮选区的终止行 |
| -{string}-.-{string}- |
起始字符到终止字符 |
| {address}+n |
对地址进行便偏移,可视模式的选区 |
| 文件 |
|
| 管理多个文件 |
|
| 命令 8 |
解析 |
| -- 8 |
:- |
| -ls |
列出所有被载入内存中的缓冲区列表 |
| % |
指明那个缓冲区在当前窗口可见 |
| 10 |
代表轮换文件 |
| ctrl+r |
在当前文件与轮换文件间快速切换 |
| -bnext 2 |
切换到列表中的下一个缓冲区 |
| -bprev 2 |
切换到列表中的上一个缓冲区 |
| -bfirst |
跳到缓冲区列表的开头 |
| -blast |
跳到缓冲去列表的结尾 |
| -buffer N -h N |
直接按照编号跳转到相应的缓冲区 |
| -bdelete N1 N2… |
删除编号为N1,N2…的缓冲区 |
| -M,N bdelete |
&emsjp; 删除编号从M到N的缓冲区列表 |
| -args |
显示参数列表(参数列表记录了在启动时作为参数传递给VIM的文件列表)(可以在任意时刻修改参数列表的值) |
| &emsjp; -args file |
&emsjp; 在参数列表中加入参数 |
| 7 |
匹配0个或多个字符(范围局限于指定的目录,不会递归子目录) |
| 5 |
匹配0个或多个字符(可以递归进入指定目录的子目录) |
| -args ‘{command}’ |
把``内的命令的输出作为args的参数执行 |
| -write 2 |
将缓冲区内容写入磁盘 |
| -edit 2 |
把磁盘文件内容写入缓冲区(即回滚所做修改) |
| -qall |
关闭所有窗口,摈弃修改而无需警告 |
| -wall |
把所有改变的缓冲区写入磁盘: |
| -split {file} ctrl+ws |
水平切分当前窗口,并在新窗口中载入{file} |
| -vsplit {file} ctrl+wv |
垂直切分当前窗口,并在新窗口中载入{file} |
| ctrl+ww |
在窗口间循环切换 |
| ctrl+wh |
切换到左边的窗口 |
| ctrl+wj |
切换到下面的窗口 |
| ctrl+wk |
切换到上面的窗口 |
| ctrl+wl |
切换到右面的窗口 |
| -close |
关闭活动窗口以及包含此窗口的标签页 |
| -only |
只保留活动窗口,关闭其他活动窗口 |
| ctrl+w= |
使所有窗口等宽等高 |
| ctrl+w_ |
最大化活动窗口的高度 |
| ctrl+w 2 |
|
| Nctrl+w |
把活动窗口的高度设置为[N]行 |
| Nctrl+w 2 |
把活动窗口的宽度设置为[N]列 |
| -lcd {path} |
设置当前窗口的本地工作目录 如果创建了一个新的标签页,并用:lcd命令切换到另一个目录,就可以将每个标签页限制在当前的工作目录(:lcd只影响当前窗口,而非当前标签页) |
| -windo lcd {path} |
为所有这些窗口设置本地工作目录 |
| -tabedit {filename} |
打开一个新的标签页 |
| ctrl+wT |
把当前窗口移动到一个新的标签页中 |
| -tabclose |
关闭当前标签页 |
| -tabonly |
只保留活动标签页关闭其他所有标签页 |
| EX命令 |
普通命令 |
解析 |
| -tabnext {N} |
{N}gt |
切换到编号为N{的}标签页 |
| -tabnext |
gt |
切换到下一个标签页 |
| -tabprevious |
gT |
切换到上一个标签页 |
| -tabmove N |
|
重新排列标签页,如果没有N,当前标签会被移动到结尾 |
| 命令 |
解析 |
| -edit {file} |
通过文件的绝对路径与相对路径来打开文件 |
| &emsjp; -edit % |
&emsjp; 这里的%表示活动缓冲区的完整文件目录 |
| &emsjp; -edit %-h |
&emsjp; 这里的:h修饰符回去除文件名,但保留路径中的其他部分 |
| -write 3 |
把缓冲区的内容写入磁盘 |
| -pwd |
打印工作目录 |
| -find |
允许通过文件名来打开一个文件,但无需输入该文件的完整路径,要想利用此功能,首先要配置‘path’选项 |
| &emsjp; -set path+=-dir- |
&emsjp; 把/dir/目录下面的所有文件添加到path里面,以’,’作为分割符 |
| 使用netrw(插件)管理文件系统 |
|
| 命令 9 |
解析 |
| -- 9 |
:- |
| $ vim -dir- |
通过vim打开一个文件管理器窗口{h,j,k,l,/} |
| -edit -dir- |
在vim内部打开文件管理器窗口 |
| -explore |
打开文件管理器,并显示活动缓冲区所在目录 |
| -Sexplore |
水平切分窗口打开文件管理器 |
| -Vexplore |
垂直切分窗口打开文件管理器 |
| ctrl+^ |
切换刚才正在编辑的文件 |
| 命令 |
解析 |
| ctrl+g |
显示当前文件的文件名与状态 |
| 命令 |
解析 |
| -h motion.txt |
列出动作命令的帮助文档 |
| h 2 |
|
| j 2 |
|
| k 2 |
|
| l 2 |
|
| -gj -gk |
按照屏幕行进行上下移动 |
| 0 2 |
移动到实际行的行首 |
| -g0 |
移动到屏幕行的行首 |
| ^ |
移动到实际行的第一个非空白字符 |
| g^ |
移动到屏幕行的第一个非空白字符 |
| $ 3 |
移动到实际行的行尾 |
| g$ |
移动到屏幕行的行尾 |
| W |
正向移动到下一个单词的开头 |
| W |
以字串为单位操作 |
| b 3 |
反向移动到当前单词/上一个单词的开头 |
| B |
以字串为单位操作 |
| e 2 |
正向移动到当前单词/上一个单词的开头 |
| E |
以字串为单位操作 |
| gE |
反向移动到上一单词的结尾 |
| gE |
以字串为单位操作 |
| f{char} 2 |
在光标位置与当前行的行尾查找字符串,如果找到就将光标移动到此字符上 |
| F{char} |
反向移动到上一个{char}所在之处 |
| T{char} |
正向移动到下一个{char}所在之处的前一个字符上 |
| T{char} |
反向移动到上一个{char}所在之处的后一个字符上 |
| ; 2 |
重复上次的字符查找命令 |
| ‘ |
反向查找上次的字符查找命令 |
| -{str}cr |
通过查找命令快速跳转 |
| C-b |
向上翻页 |
| C-f |
向下翻页 |
| 文本对象 |
选择区域 |
| a) ab |
包含符号本身 |
| a} aB |
包含符号本身 |
| A 2 |
包含符号本身 |
| a 3 |
包含符号本身 |
| a’ |
包含符号本身 |
| a” |
包含符号本身 |
| a` |
包含符号本身 |
| at |
包含符号本身 |
| i) ib |
不包含符号本身 |
| i} iB |
不包含符号本身 |
| i 3 |
不包含符号本身 |
| I 2 |
不包含符号本身 |
| i’ |
不包含符号本身 |
| i” |
不包含符号本身 |
| i` |
不包含符号本身 |
| it 2 |
不包含符号本身 |
| iW |
当前单词 |
| aw 2 |
当前单词及一个空格 |
| iW |
当前字串 |
| aW |
当前字串及一个空格 |
| is |
当前句子 |
| as |
当前句子以及一个空格 |
| ip |
当前段落 |
| ap 2 |
当前段落以及一个空行 |
| -m{a~zA~Z} |
用选定的字母标记当前光标所在位置 |
| -‘{mark} |
跳到光标所在的行并且把光标置在第一个非空白字符上 |
| -`{mark} |
跳到光标所在的行列 |
| `` |
当前文件中上次跳转动作之前的位置 |
| ` 5 |
上次修改的位置 |
| `^ |
上次插入的位置 |
| ` 2 |
上次修改或复制的起始位置 |
| ` 4 |
上次修改或复制的结束位置 |
| ` 3 |
上次高亮选区的起始位置 |
| ` |
上次高亮选区的结束位置 |
| % 3 |
在一组开闭括号间跳转 |
| S{‘ “ } } |
把选中的文本用符号括起来 |
| 命令 |
解析 |
| -jumps |
查看跳转列表的内容 |
| NG |
跳转到指定的行号 |
| -patternCR-patternCR-n-N |
跳转到下一个/上一个模式出现之处 |
| % 4 |
跳转到匹配的括号之处 |
| (-) |
跳转到上一句/下一句的开头 |
| {-} |
跳转到上一段/下一段的开头 |
| H-M-L |
跳转到屏幕上方/正中间/最下方 |
| gf |
跳转到光标的文件名下 |
| gi |
返回上次修改的地方继续编辑 |
| C- |
跳转到光标下关键字的定义之处 |
| ‘{mark}-`{mark} |
跳转到一个位置标记处,小写字母会创建局部于缓冲区的标记,大写字母则创建全局变量 |
| ctrl+i |
|
| ctrl+o |
|
| -changes |
查看改变列表 |
| :g;-:g, |
反向或正向遍历改变列表 |
| set suffixesadd+=.c |
为文件添加扩展名,suffixesadd path选项可以针对每一个缓冲区进行设置,因此可以对不同的文件类型来设置不同的值 |
| -vimgrep -“string”- path |
在路径中查找string字符串 |
| -grep |
|
| -make |
|
| 命令 |
解析 |
| x 3 |
x命令用于把光标下的字符剪切下来,把他放在无名寄存器中 |
| dd 2 |
剪切当行文本并把他放到无名寄存器中 |
| yy 2 |
复制当前行文本到无名寄存器中 |
| p 2 |
p命令把无名寄存器中的内容粘贴到光标后面,也可以在可视模式下替换高亮选区内容 |
| P |
将文本插入到光标的前面 |
| gP |
将文本插入到光标的后面 |
| gP |
将文本插入到光标的前面 |
| “” |
无名寄存器的表示,”a-“z/“A-“Z |
| “_ |
黑洞寄存器 |
| “0 |
复制专用寄存器 |
| -reg {regester} |
显示寄存器内的信息 |
| 命令 |
解析 |
| “+ |
系统剪切版,可用剪切,复制粘贴命令操作 |
| “ |
主剪切板,保留上次被高亮选中的文本,可用鼠标中键粘贴出来 |
| “= |
表达式寄存器,当从此寄存器中读取内容时,VIM进入命令行模式,可以输入一段VIM脚本表达式并执行 |
| 隐式赋值寄存器(只读寄存器) |
|
| “% |
当前文件名 |
| “ 3 |
轮换文件名 |
| “ 2 |
上次插入的文本 |
| “- 2 |
上次执行的EX命令 |
| “- |
上次查找的模式 |
| 宏 |
|
| 可以串行或者并行的方式执行宏 |
|
| 命令 10 |
解析 |
| -- 10 |
:- |
| q{REG} |
录制宏在指定寄存器中 再次按下q录制结束 |
| q{REG} |
添加宏在指定寄存器中 |
| @{reg} |
用来执行指定寄存器中的宏 |
| @@ |
重复最近调用的宏 |
| N@{reg} |
重复N次寄存器中的宏 |
| -wall 2 |
保存缓冲列表中的所有文件 |
| -wnext |
相当于 :w+:next |
| -put {reg} |
把寄存器中的内容粘贴到新的一行(当前行的光标之后) |
| 命令 |
解析 |
| ignorecse |
是否忽略大小写的变量 |
| -C |
覆盖ignorecase,忽略大小写 |
| -C |
覆盖ignorecase,强制大小写检查 |
| smartcase |
智能的大小写敏感性检查,如果全部为小写,则忽略大小写,否则不忽略大小写 |
| V 2 |
magic搜索模式,即假定除_ 大小写字母以及数字之外的所有字符均具有特殊含义 |
| V 2 |
该元字符会激活very noagic搜索模式 |
| x 2 |
该字符类可以代替完整的字符集[0-9a-fA-F] |
| 13 |
在VIM中匹配任意字符 |
| () 1 |
任何()内部的匹配文本都会被自动保存到一个临时仓库中。可以用\1来引用这段被捕获的文本,\2 \3…则被用来对每个()捕获的子匹配 |
| _s |
匹配空白符或换行符 |
| 12 |
在very magic模式下,用<和>表示单词界定符 |
| W 2 |
匹配单词类字符,包括字母,数字,以及符号_ |
| W 2 |
用来匹配除单词类字符以外的其他字符串 |
| 14 |
正向查找光标下的单词 |
| 11 |
反向查找光标下的单词 |
| g 2 |
正向查找光标下的单词(不使用单词界定符) |
| g 3 |
反向查找光标下的单词(不使用单词界定符) |
| 查找与匹配的区别 |
|
| 命令 13 |
解析 |
| -- 12 |
:- |
| zs |
标志着一个匹配的起始(零宽度) |
| ze |
标志着一个匹配的结束(零宽度) |
| - 5 |
(正向查找)查找结束符 |
| ? |
(反向查找)查找结束符 |
| 15 |
在查找域中,一个\的出现预示着紧挨着他的后面的字符将会被特殊对待,如果将其加倍变成\之后,前者会消除后者的特殊含义 |
| 查找 |
|
| 命令 12 |
解析 |
| -- 13 |
:- |
| warpscan |
当检查到文件结尾时是否返回文本开头进行检查 |
| - 4 |
正向查找 |
| ? 2 |
反向查找 |
| gN |
进入面向字符的可视化模式,并选中下一次匹配并进行操作 |
| gN |
进入面向字符的可是花模式,并选中上一次匹配并进行操作 |
| hlsearch |
是否进行高亮匹配 |
| -nohlsearch |
暂时关闭查找高亮 |
| incsearch |
可以预览第一处匹配 |
| ctrl+rctrl+w 2 |
用当前预览的匹配结果对查找域进行自动补全 |
| -{string}-e |
/e表示用来结束匹配,并将光标放在string之后 |
| -UP |
显示上一次的查找历史 |
| q- 2 |
调出命令行窗口(查找历史) |
| -substitude |
能够显示匹配的数量 |
| -vimgrep |
显示匹配的数量 |
| -v^(^,),(^,),(^,) |
子匹配 |
| 替换 |
|
| 命令 11 |
解析 |
| -- 11 |
:- |
| -rangesubtitute-{pattern}-{string}-flags |
一条完整的substitute命令 [range]对于每一条EX命令均适用 |
| flags |
effect |
| G |
使substitute命令可以在全局范围内执行,实际上仅作用于当前行 |
| c 4 |
有机会确认或者拒绝每一处修改(在每次修改前进行询问) |
| &emsjp; y |
&emsjp; 替换此处匹配 |
| &emsjp; n |
&emsjp; 忽略此处匹配 |
| &emsjp; q |
&emsjp; 退出替换过程 |
| &emsjp; l |
&emsjp; 替换此处匹配后退出 |
| &emsjp; a |
&emsjp; 替换此处与之后所有匹配 |
| &emsjp; ctrl-e |
&emsjp; 向上滚动屏幕 |
| &emsjp; ctrl-y |
&emsjp; 向下滚动屏幕 |
| n 2 |
抑制正常的替换行为,即让vim不执行替换操作,只报告此次substitute命令匹配的个数 |
| & |
仅仅用来指示vim重用上一次substitute命令所使用的标志位 |
| e 3 |
专门用来屏蔽错误提示 |
| 替换域中的特殊字符 |
描述 |
| R |
插入一个换行符 |
| t |
插入一个制表符 |
| 16 |
插入一个反斜杠 |
| 1 2 |
插入第一个子匹配 |
| 2 |
插入第二个子匹配(以此类推) |
| 0 3 |
插入匹配模式的所有内容 |
| & 2 |
插入匹配模式的所有内容 |
| - 6 |
使用上一次调用:substitute的[string] |
| &emsjp; ={VIM scripts |
} &emsjp; 执行vim的脚本表达式,并将结果替换为{string} |
缺省情况下,substitute命令仅作用于当前行的第一个匹配处
| 命令 |
解析 |
| g 4 |
标志位,貌似表示全文,实则只表示当前行 |
| % 5 |
代表全文范围 |
| c 5 |
标志位,控制是否继续实现相同的修改 |
| y 2 |
替换此处匹配 |
| n 3 |
忽略此处匹配 |
| q |
退出替换过程 |
| l 3 |
替换此处匹配后退出 |
| a 4 |
替换此处与之后的所有匹配 |
| ctrl+e |
向上滚动屏幕 |
| ctrl+y |
向下滚动屏幕 |
当把查找域留空时,默认使用上一次的查找,这样使得我们可以先设置查找域在进行替换
| 命令 |
解析 |
| ctrl+r{reg} |
把寄存器的值插入到命令行 |
| -= |
只是VIM执行一段表达式文本 |
| g& |
在整个文件的范围重复上一次substitute命令 |
| & 3 |
重复上一次sub命令(忽略上一次的标志位) |
| vimgrep |
在工程范围内查找,并将返回的结果记录在quickfix列表中 |
| &emsjp; -copen |
&emsjp; 打开quickfix列表浏览匹配结果 |
| -set hidden |
该设置项可以无需存盘就可以从某个被修改的文件中切换出去 |
| -cfdo |
在整个工程的范围内执行sub命令 |
| -update |
用于保存有过更改的文件 |
| 命令 |
解析 |
| -range global! -{partern}- range2{cmd} |
:global命令的形式,默认情况下作用范围是整个文件,{pattern}如果留空的话会自动使用当前的查找模,{cmd}如果不指定会默认使用:print,global[!]表示反向匹配,range2默认没有,使用前面的range,不过也可以单独设置 |
| 命令 |
解析 |
| ctrl+ 2 |
光标会从当前所在的关键字跳转到它的定义处 |
| ctrl+t |
充当后退按钮 |
| gctrl+ |
多次匹配的时候会从标签匹配列表挑出可选项供我们选择 |
| -tselect |
提示用户从标签匹配列表中选择一项进行跳转 |
| -tprev |
跳转到上一处匹配的标签 |
| -tnext |
跳转到下一处匹配的标签 |
| -tfirst |
跳转到第一处匹配的标签 |
| -tlast |
跳转到最后一处匹配的标签 |
| -tag(keyword) |
跳转到匹配关键字的第一处标签 |
| -tjumo(keyword) |
提示用户从匹配关键字的多次标签中指定一处进行跳转 |
| -tag |
正向遍历标签历史 |
| -pop |
<ctrl+t> |
| 命令 |
解析 |
| -cnext |
跳转到下一项 |
| -cprev |
跳转到上一项 |
| -cfirst |
跳转到第一项 |
| -clast |
跳转到最后一项 |
| -cnfile |
跳转到下一个文件第一项 |
| -cpfile |
跳转到上一个文件的最后一项 |
| -cc N |
挑战到第N项 |
| -copen |
打开quickfix窗口 |
| -cclose |
关闭quickfix窗口 |
| -cdo {cmd} |
在quickfix列表中的每一行上执行{cmd} |
| -cfdo {cmd} |
在quickfix列表中的每一个文件上执行一次{cmd} |
| -colder |
回溯quickfix列表之前的某个版本 支持次数 |
| -cnewer |
从旧的的quickfix列表回到比较新的列表 支持次数 |
| makeprg |
改选项允许指定运行:make时调用的程序 |
| errorformat |
改选项控制错误信息显示格式 |
| -compiler |
激活一个编译器插件,它回设置‘makeprg’ ‘errorformat’选项 |
| 命令 |
解析 |
| -grep 2 |
在vim内部调用grep并生成quickfix列表进行查询 |
| grepprg |
负责指定调用的shell程序 |
| grepformat |
指定VIM如何解析来自:grep命令的输出结果 |
| 命令 |
解析 |
| ctrl+n |
普通关键字 |
| ctrl+xctrl+i |
当前缓冲区关键字:- |
| ctrl+xctrl+n |
包含文件关键字 |
| ctrl+xctrl+ |
标签文件关键字 |
| ctrl+xctrl+k |
字典查找 |
| ctrl+xctrl+l |
整行补全 |
| ctrl+xctrl+f |
文件名补全 |
| ctrl+xctrl+o |
全能(omni)补全:- |
| ctrl+n 2 |
使用来自补全列表的下一个匹配项 |
| ctrl+p |
使用来自补全列表的上一个匹配项 |
| Down |
使用来自补全列表的下一个匹配项 |
| Up |
使用来自补全列表的上一个匹配项 |
| ctrl+y 2 |
确认使用当前选中的匹配项 |
| ctrl+e 2 |
还原早先输入的文本(从自动补全中exit) |
| &emsjp; ctrl+h |
&emsjp; 从当前匹配中删除一个字符 |
| &emsjp; ctrl+l |
&emsjp; 从当前匹配中增加一个字符 |
| &emsjp; {char} |
终止自动补全并插入字符串 |
| cd - |
切换到之前的工作目录 |
| s 3 |
在拼写错误间进行反向跳转 |
| s 2 |
在拼写错误间正向跳转 |
| z= |
获取VIM提供的更正建议列表 |
| zg |
把当前单词添加到拼写文件中 |
| zw |
把当前单词从拼写文件中删除 |
| zug |
撤销针对当前单词的zg和zw命令 |
| ctrl+xs |
vim从光标位置进行反向扫描,直到发现一处拼写错误,然后根据建议创建单词列表并将他们显示在弹出菜单中 |
| set setting! |
反转当前设置项的状态 |
| set setting |
查看当前设置项的状态 |
| set setting& |
将当前设置项的状态设为默认 |