本文翻译自:https://devhints.io/vim
 
 
 文章目录  1、Basic Exiting Exiting insert mode 2、编辑   3、导航   4、操作符   5、文本对象   6、杂项 标签页 折叠 导航 跳跃 计数器 窗口 标签 案例 Marks 杂项 命令行 文本对齐 计算器 退出并出现错误 拼写检查 Also see   
 
 
有关快捷方式表示法,请参见:help key-notation。
 
:q关闭文件 :qa关闭所有文件 :w保存 :wq /  :x保存并关闭文件 ZZ保存并退出 ZQ退出而不检查更改 
 
Esc /  <C-[>退出插入模式 <C-C>退出插入模式,并中止当前命令 
 
a追加 A从行尾追加 i插入 o下一行 O上一行 s删除字符并插入 S删除行并插入 C删除直到行尾并插入 r替换一个字符 R进入替换模式 u撤消更改 <C-R>重做更改 
 
x删除字符 dd删除线(剪切) yy扬线(复制) p粘贴 P粘贴前 "*p /  "+p粘贴从系统剪切板 "*y /  "+y粘贴到系统剪切板 
 
v进入可视模式 V进入可视线模式 <C-V>进入可视屏蔽模式 
 
有关您可以执行的其他操作,请参阅操作符。
 
:%s/foo/bar/g : 在整个文档中将foo替换为bar
 
h j k l箭头键 <C-U> /  <C-D>半页 上/下 <C-B> /  <C-F>页面 上/下 
 
b /  w上一个/下一个单词 ge /  e上一个/下一个单词结尾 
 
gg第一行 G最后一行 :{number}Go to line{number} {number}GGo to line{number} {number}jGo down{number}行 {number}kGo up{number}行 
 
zz居中此行 zt顶部此行 zb底部此行 H移动到屏幕顶部 M移动到屏幕中间 L移动到屏幕底部 
 
n下一个匹配搜索模式 N上一个拟合 *光标下的下一个整词 #光标下的上一个整词 
 
运算符允许您在一系列文本(由运动定义)中进行操作。这些在正常模式下执行。
 
 
d删除 y扬克(复制) c更改(删除然后插入) >缩进右 <缩进左 =自动缩进 g~交换大小写 gU大写 gu小写 !滤波器通过外部程序 
 
请参见 :help operator
 
将运算符与动作结合使用。
 
dd (重复字母)删除当前行 dw 删除到下一个单词 db 删除到单词的开头 2 dd删除2行 dip 删除文本对象(段落内) (在可视模式下)  d删除选择 
 
请参阅::help motion.txt
 
文本对象允许您在文本块(对象)中或周围进行操作(使用运算符)。
 
vip运算符 [i]nside or [a]round文本对象 
 
p段落 wWord s句子 [ ( { <A [], (), 或{}屏蔽 ' " `A引号字符串 bA block  [( BA block in [{ tA XML tag block 
 
vip选择段落 vipipipip选择更多 yipYank内部段落 yapYank段落(包括换行符) dip删除内部段落 cip更改内部段落 
 
有关您可以执行的其他操作,请参阅操作符。
 
gvimdiff file1 file2 [file3] : 在HMI中查看文件之间的差异
 
:tabedit [file]在新标签页中编辑文件 :tabfind [file]打开文件如果存在于新标签页 :tabclose关闭当前标签 :tabs列出所有标签 :tabfirst转到第一个标签 :tablast转到最后一个标签 :tabn转到下一个标签 :tabp转到上一个标签 
 
zo /  zO打开 zc /  zC关闭 za /  zA切换 zv打开折叠 zM关闭所有 zR打开所有 zm折叠更多(foldlevel+=1) zr折叠更少(foldlevel-=1) zx更新折叠 
 
大写的是递归的(例如,zO是递归打开的)。
 
%最近/匹配{[()]} [( [{ [<上一个(或{或< ])下一个 [m上一个方法开始 [M上一个方法结束 
 
<C-O>返回到上一个位置 <C-I>前进 gf转到光标中的文件 
 
z{height}<Cr> : 将窗格调整为{height}行高
 
:tag Classname跳转到Classname的第一个定义 <C-]>跳转到定义 g]查看所有定义 <C-T>返回到最后一个标签 <C-O> <C-I>后退/前进 :tselect Classname查找Classname的定义 :tjump Classname查找Classname的定义(自动选择第一个) 
 
~切换大小写(Case=>cASE) gU大写 gu小写 gUU大写当前行(也gUgU) guu小写当前行(也gugu) 
 
在可视或普通模式下执行这些操作。
 
``^` 插入模式下光标的最后位置 ``.` 当前缓冲区中的最后更改 ``"` 最后退出当前缓冲区 ``0` 在最后编辑的文件中 ''返回当前缓冲区中从哪里跳转的行 `` 返回当前缓冲区中从哪里跳转的位置 ``[` 到先前更改或拉拽文本的开头 ``]` 到先前更改或拉拽文本的结束 ``<` 到最后一个视觉选择的开始 ``>` 到最后一个视觉选择的结束 ma将此光标位置标记为a ``a` 跳转到光标位置a 'a跳转到位置a d'a从当前行删除到标记行a d`a 从当前位置删除到标记a c'a的位置将文本从当前行更改为a y`a 的行从当前位置扬克文本到a :marks列出所有当前标记 :delm a删除标记a :delm a-d删除标记a,b,c,d :delm abc删除标记a,b,c 
 
.重复最后一个命令 ]p粘贴到当前缩进级别下 :set ff=unix将Windows行尾转换为Unix行尾 
 
<C-R><C-W>将当前字插入到命令行 <C-R>"从"寄存器 粘贴 <C-X><C-F>插入模式下路径的自动完成 
 
:center [width]
:right [width]
:left
请参阅:help formatting
 
<C-R>=128/2 : 显示除法的结果:‘64’
 
在插入模式下执行此操作。
 
:cq
:cquit
类似于:qa,但抛出错误。非常适合中止Git命令。
 
:set spell spelllang=en_us打开美国英语拼写检查 ]s移动到光标后的下一个拼写错误的单词 [s移动到光标前的前一个拼写错误的单词 z=建议在光标下/后的单词拼写 zg将单词添加到拼写列表 zw将单词标记为坏/拼写错误 zu/C-X (Insert Mode)从spellfile中为光标下的坏单词建议单词 
 
请参阅:help spell
 
Vim cheatsheet (vim.rotrr.com)  Vim documentation (vimdoc.sourceforge.net)  Interactive Vim tutorial (openvim.com)  2024-06-05(三)