vim常用命令

主要用来记录一些常用的vim操作,例如光标的移动等基本操作,后面遇到有用的命令会进行不断更新

光标移动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 基本的上下左右移动
# k: 光标上移
# j: 光标下移
# h: 光标左移
# l: 光标右移
k
h l
j

w # 移动至下一个单词的第一个字符
e # 移动至单词的最后一个字符
$ # 移动至行尾
0 # 移动至行首

# 结合数字一起使用
3j # 下移三格
4h # 左移4格
2w # 移动至第二个单词的词首字符
3e # 移动至第三个单词的词尾字符

CTRL + f # 屏幕向下移动一页
CTRL + b # 屏幕向上移动一页
H # 移动到屏幕第一行第一个字符
M # 移动到屏幕中间位置的第一个字符
L # 移动到屏幕最下方的第一个字符

删除

1
2
3
4
5
6
7
8
9
10
x # 删除光标所在位置的一个字符 
X # 删除当前光标之前的一个字符
dd # 删除当前光标所在的行

# 删除操作可与光标移动指令结合使用
dw # 删除一个单词
d3w # 删除3个单词
d$ # 删除光标所在处至行尾
d4l # 删除光标所在处起的4个字符
d2j # 删除2行

复制与粘贴

  • 复制y(yank)
  • 粘贴p(put)
  • 虚拟选择v(visual selection)
1
2
3
4
5
6
7
8
9
10
p # put命令,将剪贴的内容(注意,既可以是复制的内容,也可以为之前删除的内容)放置在光标后的位置,其大小字母P则表示放置在光标之前的位置
v # 进入虚拟选择模式(visual selection),被选择的文本段被高亮显示(v的选择对象为字符,对应的大写字母V则是以行为单位选择)
CTRL + v # 以矩形框的形式进行内容选择
y # 复制通过 v 操作选择的文本,或则其本身也可以与光标移动指令一同使用

yy # 复制光标所在行的内容
y0 # 复制光标所在位置至行首的内容
y$ # 复制光标所在位置至行尾的内容
yG # 复制光标所在位置至文本结束的内容
ynG # 复制光标所在位置至n行

行跳转

1
2
3
gg # 文件第一行
G # 末行
nG # 第n行

撤销操作

1
2
3
u # 撤销上一操作
U # 撤销对光标所在行的所有操作
CTRL + r # 重做上一次操作 TODO:

替换和修改

1
2
3
4
5
rc # 用字符c替换当前光标所在的字符
ce # 删除光标所在处至词尾的所有内容,并进入编辑模式,供用户修改
c3w # 删除光标所在处其的三个词,并进入编辑模式
c$ # 删除光标所在处至行尾的所有字符,并进入编辑模式
c0 # 删除光标所在处至行首的所有字符,并进入编辑模式

查找

1
2
3
4
/keyword # 按默认方向查找关键字
?keyword # 按与默认方向相反的方向查找关键字
n # 按与之前相同的查找顺序匹配下一个出现相同关键字的位置
N # 用户也可以通过Ctrl + o 和 Ctrl + i 进行位置的切换

替换

1
2
3
4
5
:s/old/new # 将光标所在行出现的第一个old替换为new(仅对该行的第一个old)
:s/old/new/g # 将光标所在行出现的所有old替换为new
:s/old/new/gc # 同上,替换之前提示用户确认是否替换
:n,ms/old/new/g # 在n和m指定的行之间进行检查和替换
:%s/old/new/g # 针对整个文本进行替换

其他有用的快捷键

1
2
3
4
CTRL + g # 获得文件相关的信息,如文件名,光标所处的行列号等信息
% # 跳转至与之匹配的括号处(包括 {}、[]、()等)
. # 重复上一操作
CTRL + d # 显示可能使用到的命令

参考

https://www.cnblogs.com/yhjoker/p/8405845.html