本文翻译自:https://devhints.io/vim
文章目录 1、Basic Exiting Exiting insert mode 2、编辑 3、导航 4、操作符 5、文本对象 6、杂项 标签页 折叠 导航 跳跃 计数器 窗口 标签 案例 Marks 杂项 命令行 文本对齐 计算器 退出并出现错误 拼写检查 Also see
1、Basic
Vim是一个非常高效的文本编辑器。
有关快捷方式表示法,请参见:help key-notation。
Exiting
:q关闭文件 :qa关闭所有文件 :w保存 :wq / :x保存并关闭文件 ZZ保存并退出 ZQ退出而不检查更改
Exiting insert mode
Esc / <C-[>退出插入模式 <C-C>退出插入模式,并中止当前命令
2、编辑
编辑
a追加 A从行尾追加 i插入 o下一行 O上一行 s删除字符并插入 S删除行并插入 C删除直到行尾并插入 r替换一个字符 R进入替换模式 u撤消更改 <C-R>重做更改
剪切板
x删除字符 dd删除线(剪切) yy扬线(复制) p粘贴 P粘贴前 "*p / "+p粘贴从系统剪切板 "*y / "+y粘贴到系统剪切板
Visual 模式
v进入可视模式 V进入可视线模式 <C-V>进入可视屏蔽模式
在可视模式下
有关您可以执行的其他操作,请参阅操作符。
查找和替换
:%s/foo/bar/g : 在整个文档中将foo替换为bar
3、导航
方向
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上一个拟合 *光标下的下一个整词 #光标下的上一个整词
4、操作符
用法
运算符允许您在一系列文本(由运动定义)中进行操作。这些在正常模式下执行。
操作符列表
d删除 y扬克(复制) c更改(删除然后插入) >缩进右 <缩进左 =自动缩进 g~交换大小写 gU大写 gu小写 !滤波器通过外部程序
请参见 :help operator
例子
将运算符与动作结合使用。
dd (重复字母)删除当前行 dw 删除到下一个单词 db 删除到单词的开头 2 dd删除2行 dip 删除文本对象(段落内) (在可视模式下) d删除选择
请参阅::help motion.txt
5、文本对象
用法
文本对象允许您在文本块(对象)中或周围进行操作(使用运算符)。
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中查看文件之间的差异
6、杂项
标签页
: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)
在可视或普通模式下执行这些操作。
Marks
``^` 插入模式下光标的最后位置 ``.` 当前缓冲区中的最后更改 ``"` 最后退出当前缓冲区 ``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
Also see
Vim cheatsheet (vim.rotrr.com) Vim documentation (vimdoc.sourceforge.net) Interactive Vim tutorial (openvim.com)
2024-06-05(三)