1 退出
:qa关闭所有文件:qa!关闭所有文件,放弃更改:w保存:wq或:x保存和关闭文件:q关闭文件:q!关闭文件,放弃更改ZZ保存退出ZQ退出,放弃更改
2 编辑
a追加A行尾追加i插入I行首插入o插入行O上方插入行s删除插入当前字符S删除行同时插入C删除到行尾同时插入r替换单个字符R替换模式u撤销Ctrl+R重做
3 退出插入模式
EscCtrl+[Ctrl+C退出插入模式同时终止当前命令
4 剪贴板
x剪切字符dd剪切行yy复制行p粘贴,对于复制行在下方粘贴,对于字符后方粘贴P粘贴,对于复制行在上方粘贴,对于字符前方粘贴"*p或"*P从系统剪贴板粘贴,*与+是与系统剪贴板交互的寄存器,若"*p不行可以尝试"+p,需要确保vim支持剪贴板,可以使用vim --version | grep clipboard查看,出现+clipboard即为支持”*y或+y复制到系统剪贴板
5 导航
h/j/k/l左/下/上/右Ctrl+E/Y滚动上/下一行Ctrl+U/D滚动上/下半页Ctrl+F/B滚动上/下一页b/w前/后一个单词首字母ge/e前/后一个单词尾字母0绝对行首(忽略空白)^相对行首$行尾fc或Fc向前/后跳转到字符cgg首行G末行:n或nG第n行Ctlr+O/I上一次位置/撤回[(/[{前一个(/{])/]}后一个)/}[m方法前一个开始/结束处]m方法后一个开始/结束处zz滚动窗口让当前行居中zt滚动窗口让当前行置顶H/M/L移动到屏幕顶部/中部/底部:tabedit file打开一个新tab编辑文件file:tabclose关闭当前tab:tabs列出所有tab:tabfirst/:tablast跳转到第一个/最后一个tab:tabn/:tabp下一个/上一个tab
6 可视化模式
v可视化模式V行可视化模式Ctrl+V块可视化模式
7 操作符+动作
形式如下:
操作符 动作
例子:
dwd是操作符代表删除,w是移动到下一个单词首 ,所以就是删除到下一个单词首db删除到上一个单词首2dd删除两行dip删除一个文本对象(下面有说)
操作符列表:
d删除y复制(也叫yank)c修改>右缩进<左缩进g~变换大小写gU大写gu小写
8 文本对象
形式如下:
操作符 i/a 文本对象
其中操作符是上面提到的,i/a表示:
iinside,仅选择文本,比如文本对象是一个字符串,仅选择字符串内容,不包括包围的单/双引号aaround,选择包括文本,包围的字符与周围的空白,比如文本对象是一个[]块,会选择[]里面的内容,同时选中包围的[],如果[]周围有空白也会进行选中
文本对象:
p段落w单词s句子[/(/{/<一个[]/()/{}/<>块'/"/反引号单/双/反引号字符串t一个xml标签块
例子:
vip选择段落vipipip选择更多段落yit复制一个xml标签块ya"复制一个"字符串以及包围的"di[删除一个[]块的内容ca{修改一个{}块以及周围空白
9 杂项
9.1 数字增减
Ctrl+A数字加1Ctrl+X数字减1
默认识别十进制,使用:set nrformats=bin,octal,hex后,能识别2/8/16进制。
- 二进制:
0b或0B开头 - 八进制:
0开头 - 十六进制:
0x或0X开头
9.2 大小写
g~切换大小写gU大写gu小写g~~整行切换大小写gUU整行大写guu整行小写
9.3 计算器
插入模式下,输入Ctrl+R,接着输入=,再输入式子即可计算。Enter获取计算结果,会将计算结果插入到当前光标所在位置。
9.4 标记
反引号^插入模式的上一次位置反引号.上一次修改位置反引号反引号上一次跳转的位置ma标记当前位置为标记a反引号a跳转到标记a的位置'a跳转到标记a的位置的行首


