:h[elp] <keyword> - 为<keyword>打开帮助(不要使用“ <>” ):sav[eas] <file> - 保存<file>为:clo[se] - 关闭电流窗格:ter[minal] - 打开一个终端窗口K光标下的单词开放页面
提示: -在终端中运行vimtutor,以学习第一个vim命令。
h向左移动光标
j将光标向下移动
k将光标移动
l移动光标右
H移至屏幕顶部
M移至屏幕中间
L移至屏幕底部
w跳到单词的开始
W跳到单词的开始(单词可以包含标点符号)
e跳到单词的结尾
E跳到单词的末尾(单词可以包含标点符号)
b向后跳到单词的开始
B向后跳到单词的开始(单词可以包含标点符号)
% - 移动到匹配的字符(默认支持对:'()','{}','[]' - 使用:vim中的h仪表pairs以获取更多信息)
0跳到线的开始
^ - 跳到该行的第一个非空白字符
$ - 跳到线的尽头
; - 重复以前的F,T,F或T运动
, - 重复以前的f,t,f或t移动,向后移动
} - 跳到下一个段落(或编辑代码时功能/块)
{ - 跳到以前的段落(或编辑代码时功能/块)
g_跳到该行的最后一个非空白字符gg转到文档的第一行G转到文档的最后一行5gg或5G转到第5行gd转到本地声明gD转到全球声明fx跳到字符x的下一个出现tx跳到下次出现字符x之前Fx跳到字符X的先前情况Tx跳到以前出现字符x之后zz屏幕上的中心光标gh将光标移至Pevious编辑线gj将光标移至下一个编辑线g0跳到编辑线的开头g^ - 跳到编辑线中的第一个非空白字符g$ - 跳到编辑线的末端Ctrl + e向下移动屏幕(无移动光标)
Ctrl + y向上移动屏幕(无移动光标)
Ctrl + b向后移动一个全屏
Ctrl + f向前移动一个全屏
Ctrl + d向前移动1/2屏幕
Ctrl + u向后移1/2屏幕
提示: -前缀一个光标移动命令,具有一个数字以重复它。例如,4J向下移动4行。
Ctrl + h在插入模式期间删除光标之前的字符Ctrl + w在插入模式期间光标之前删除单词Ctrl + j在插入模式下开始新线路Ctrl + t缩进(向右移动)在插入模式下的一条移位Ctrl + d插入模式期间一条移动放宽(向左移动)Ctrl + n插入(自动完成)下一场比赛Ctrl + p插入(自动完成)上一次匹配Ctrl + rx插入寄存器x的内容Ctrl + ws拆分窗口Ctrl + wv垂直分裂窗口Ctrl + ww切换窗口Ctrl + wq退出窗口Ctrl + wx与下一个的交换当前窗口Ctrl + w= - 使所有窗户相等的高度和宽度Ctrl + wh将光标移动到左窗口(垂直拆分)Ctrl + wl将光标移动到右窗口(垂直拆分)Ctrl + wj将光标移动到下面的窗口(水平拆分)Ctrl + wk将光标移动到上方的窗口(水平拆分) i - 在光标之前插入I在行的开头插入a光标后插入(附加)A在行末尾插入(附加)o附加(打开)当前行以下的新线路O附加(打开)当前行上方的新线路ea插入(附加)单词结尾Esc退出插入模式r更换单个字符J将下面的线加入当前的线,两者之间有一个空间gJ在下面连接到当前的线,介于两者之间gwip回流段落g~切换箱直至运动gu更改下小写的运动gU更改为大写运动cc更改(替换)整行C更改(替换)到线的末端c$ - 更改(替换)到线的末端ciw更改(替换)整个单词cw更改(替换)到单词的结尾s删除字符和替代文本S删除行和替代文本(与CC相同)xp转置两个字母(删除和糊状)u撤消U还原(撤消)最后一个更改线Ctrl + r重做. - 重复最后一个命令v启动视觉模式,标记线,然后执行命令(例如y -yank)V启动线路视觉模式gv启动视觉模式,回忆先前的选择o移至标记区域的另一端Ctrl + v开始视觉块模式O移至块的另一个角落aw标记一个单词ab带有()的块aB {}的块at带有<>标签的块ib内块()iB内部块,{}it带有<>标签的内部块Esc退出视觉模式> - 正确的文字正确< - 剩下的移位文字y扬克(复制)标记文本d删除标记文本~开关情况u将标记的文本更改为小写U将标记的文本更改为大写:reg[isters] - 显示寄存器内容
"xy`倾斜到寄存器x
"xp`寄存器的粘贴内容x
"+y`向系统剪贴板寄存器倾斜
"+p`从系统剪贴板寄存器粘贴
提示-寄存器被存储在〜/.viminfo中,并将再次在VIM的下一个重新启动中加载。
0最后一次拉克" - 未命名的登记册,最后删除或Yank% - 当前文件名# - 替代文件名* - 剪贴板内容(x11主)+ - 剪贴板内容(X11剪贴板)/ - 最后的搜索模式: - 最后一个命令行. - 最后插入的文字-最后一个小(小于一行)删除= - 表达式寄存器_黑洞寄存器:marks* - 标记列表
ma设定标记A的当前位置
`a跳到标记A的位置
y`a - A位置的文字
`0转到先前退出VIM的位置
`" - 上次编辑此文件时,请转到位置
`. - 转到该文件中最后一个更改的位置
`` -在上次跳前前往位置
:ju[mps] - 跳跃清单
Ctrl + i转到跳跃列表中的新位置
Ctrl + o转到跳跃列表中的较旧位置
:changes - 更改列表
g, - 转到变更列表中的较新位置
g; - 转到变更列表中的较旧位置
Ctrl + ] - 在光标下跳到标签
提示-跳到标记,您可以使用反理( ` )或撇号(')。使用撇号跳到持有标记的线的开头(第一非黑)。
qa记录宏Aq - 停止记录宏@a a-运行宏A@@ -重新运行最后运行宏yy扬克(复制)一行2yy -yank(副本)2行yw扬克(复制)单词的字符从光标位置到下一个单词的开始y$ - 扬克(复制)到线的结尾p放置(粘贴)光标之后的剪贴板P放在光标之前(粘贴)dd删除(切)2dd删除(切)2行dw删除(剪切)单词的字符从光标位置到下一个单词的开始D删除(切)到线的末端d$ - 删除(切)到线的末端x删除(剪切)字符>> - 缩进(右移动)行一条位置<< - De -Indent(向左移动)一行>% - 带有()或{}的块(撑杆上的光标)>ib ()缩进内块>at - 带有<>标签的块3== - 重新连接3行=% - 用()或{}(撑杆上的光标)重新指出一个块=iB {}的重新指示内块gg=G重新注册整个缓冲区]p粘贴并调整到当前线:w写(保存)文件,但不要退出:w!sudo tee % - 使用sudo写出当前文件:wq或:x或ZZ写(保存)并退出:q退出(如果有未保存的更改,则会失败):q!或ZQ退出并扔掉未保存的更改:wqa写(保存)并在所有选项卡上退出/pattern - 搜索模式?pattern - 向后搜索图案vpattern “非常魔术”模式:非alphanumeric字符被解释为特殊的正则符号(无需逃脱)n在同一方向上重复搜索N在相反的方向上重复搜索:%s/old/new/g将所有旧替换为全旧文件:%s/old/new/gc用确认:noh[lsearch] - 删除搜索匹配的突出显示:vim[grep] /pattern/ {`{file}`}**** - 在多个文件中搜索模式** eg :vim[grep] /foo/ **/*:cn[ext] - 跳到下一场比赛:cp[revious] - 跳到上一场比赛:cope[n] - 打开一个包含匹配列表的窗口:ccl[ose] - 关闭QuickFix窗口:tabnew或:tabnew {page.words.file} - 在新选项卡中打开一个文件Ctrl + wT将当前的拆分窗口移动到自己的选项卡中gt或:tabn[ext] - 移至下一个选项卡gT OR :tabp[revious] - 移至上一个选项卡#gt GT-移动到选项卡号#:tabm[ove] # - 将当前选项卡移至#位置(从0索引):tabc[lose] - 关闭当前标签及其所有窗口:tabo[nly] - 关闭所有选项卡:tabdo command - 在所有选项卡上运行命令(例如:tabdo q关闭所有打开的选项卡) :e[dit]文件 - 在新的缓冲区中编辑文件:bn[ext] - 转到下一个缓冲区:bp[revious] - 转到上一个缓冲区:bd[elete] - 删除缓冲区(关闭文件):b[uffer]# - 索引#转到缓冲区:b[uffer] <file> - <file>转到缓冲区(_remove“ <>”):ls或:buffers - 列出所有开放缓冲区:sp[lit] <file> - 在新的缓冲区和拆分窗口中打开<file>:vs[plit] <file> - 在新的缓冲区中打开<file> ,并垂直拆分窗口:vert[ical] ba[ll] - 将所有缓冲区编辑为垂直窗口:tab ba[ll] - 将所有缓冲区编辑为选项卡zf手动定义折叠以进行运动zd删除光标下方的折叠za光标下方切换折叠zo光标下方的折叠zc光标下的关闭折叠zr将所有折叠减少(打开)一个级别zm折叠更多(关闭)所有折叠zi切换折叠功能]c跳到下一个更改开始[c跳到先前的更改开始do或:diffg[et] - 获得(get)差异(从其他缓冲区)dp或:diffpu[t] - 放置差异(到其他缓冲区):diffthis使当前窗口的一部分:dif[fupdate] - 更新差异:diffo[ff] - 关闭当前窗口的DIFF模式