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 退出插入模式
Esc
Ctrl+[
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
向前/后跳转到字符c
gg
首行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 操作符+动作
形式如下:
操作符 动作
例子:
dw
d
是操作符代表删除,w
是移动到下一个单词首 ,所以就是删除到下一个单词首db
删除到上一个单词首2dd
删除两行dip
删除一个文本对象(下面有说)
操作符列表:
d
删除y
复制(也叫yank)c
修改>
右缩进<
左缩进g~
变换大小写gU
大写gu
小写
8 文本对象
形式如下:
操作符 i/a 文本对象
其中操作符是上面提到的,i/a
表示:
i
inside,仅选择文本,比如文本对象是一个字符串,仅选择字符串内容,不包括包围的单/双引号a
around,选择包括文本,包围的字符与周围的空白,比如文本对象是一个[]
块,会选择[]
里面的内容,同时选中包围的[]
,如果[]
周围有空白也会进行选中
文本对象:
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
的位置的行首