命令 |
解析 |
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& |
将当前设置项的状态设为默认 |