-
: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
数字加1 -
Ctrl+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
的位置的行首