vim
注意
区分大小写,大写可以用 shif+小写
两个键组合。所有命令都是在 esc 状态(命令模式)
下进行的。
esc 状态(命令模式)
刚进入 vim 文件里面就是这个模式,或者按键盘 Esc
键,只要左下角没有任何提示应该就是esc 状态(命令模式)
。
在输入任何命令时,想要终止时都可以使用 Esc
键,有时候可能需要多按几下。
使用 vim:vim demo.py
,vim 不是默认安装,没有按照需要安装,或者使用vi
,vi
跟 vim
类似。
描述
Vim 是从 vi 发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。 Vim 的第一个版本由布莱姆·米勒在 1991 年发布。最初的简称是 Vi IMitation,随着功能的不断增加,正式名称改成了 Vi IMproved。
# 安装 vim
yum -y install vim*
1
apt-get install -y vim
1
// Make sure to add code blocks to your code group
# 常用命令
# 快速删除一对括号内的内容-di
# 光标移动到括号上或括号内:
# 删除{}里面内容(下面两个命令其中之一都可以)
di{
di}
# 删除[]里面内容(下面两个命令其中之一都可以)
di[
di]
# 其他的括号类似
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 删除-d
# 删除当前行
dd
# 往后删除10行(包含当前行)
10dd
# 删除光标到行尾(包含光标位)(下面两个命令其中之一都可以)
D
d$
# 删除光标前到行首,d 后面是 数字零
d0
# 删除光标行到最后一行 (包含光标行)
dG
# 删除光标行到第一行 (包含光标行)(下面两个命令其中之一都可以)
d1G
dgg
# 向后删除[n]个字符(包含光标所在字符)
nx
# 向前删除[n]个字符(不包含光标所在字符)
nX
# 从光标处删除到该单词尾部,删除后进入到编辑模式
cw
# 删除整个单词,删除后进入到编辑模式
caw
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
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 复制-y、粘贴-p
# 复制当前行
yy
# 到行首
y0
# 到行尾
y$
# 光标后一个单词
ye
# 光标后一个单词忽略字符,空格有效
yE
# 光标前一个单词
yb
# 光标前一个单词忽略字符,空格有效
yB
# 向后复制[n]行,包含本行
nyy
# 复制本行到第一行所有内容
y1G
# 复制本行及后面的所有内容
yG
# 粘贴复制的内容到 光标(如果是整行复制就是:光标行)前,小写p
p
# 粘贴复制的内容到 光标(如果是整行复制就是:光标行)后,大写P
P
#注意:使用p的粘贴是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
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 替换
# :s(substitute)命令用来查找和替换字符串。语法如下
# :{作用范围}s/{目标}/{替换}/{替换标志}
# 作用范围分为当前行、全文、选区等等。
# 只替换当前行找到的第一个
:s/foo/bar
# 当前行全部替换
:s/foo/bar/g
# 全文替换
:%s/foo/bar/g
# 选区,在 Visual(输入:v) 模式下选择区域后输入 : , Vim 即可自动补全为 :'<,'>
# 选中的 行 全部 foo 替换为 bar
:'<,'>s/foo/bar/g
# 替换 2-11 行的 foo 为 bar
:2,11s/foo/bar/g
# 替换 当前行 . 与接下来两行 +2 的 foo 为 bar
:.,+2s/foo/bar/g
# 上文中命令结尾的 g 即是替换标志之一,表示全局 global 替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:
# 空替换标志表示只替换从光标位置开始,目标的第一次出现
# i 表示大小写不敏感查找,I 表示大小写敏感(默认),(默认情况可能跟 vim 版本有关系)
# 全文查找 foo 替换为 bar,忽略大小写
:%s/foo/bar/gi
# c 表示需要确认,例如全局查找 "foo" 替换为 "bar" 并且需要确认
:%s/foo/bar/gc
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
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 查看指定字符的数量
:%s/查找的字符串//gn
# 取消高亮
:noh
# 光标快速定位
# 1.定位到指定第10行
:10
# 2.向后查找foo(执行完下面命令后,n继续相同方向查找,N相反方向继续查找)
/foo
# 3.向前查找foo(执行完下面命令后,n继续相同方向查找,N相反方向继续查找)
?foo
# 4.当前行首
0
# 当前的第一个非空字符
^
# 5.当前行尾
$
# 6.定位到第一行
gg
# 7.定位到最后一行
G
# 8.往后定位100个字符
100空格
# 9.往后定位2行(下面两个命令其中之一都可以)
2+
2回车
# 往前定位2行
2-
# 10.移动到字符尾部(下个字符)
e
# 动到字符尾部忽略标点符(下个字符)
E
# 11.移动到字符首部(下个字符)
w
# 动到字符首部忽略标点符(下个字符)
W
# 12.移动到字符首部(上个字符)
b
# 移动到字符首部忽略标点符(上个字符)
B
# 13.移到屏幕的最后一行
L
# 移到屏幕的中间一行
M
# 移到屏幕的第一行
H
# 14.移到段落的开头,python中方法的上一行
{
# 移到段落的尾部,python中方法的下一行
}
# 15.移到句子的开头
(
# 移到句子的结尾
)
# 16.光标返回到以前的位置。相当于光标移动的“撤销”
ctrl和o
# 17.光标返回到后来的位置。相当于光标移动的“恢复”
ctrl和i
# 18.向后移动n个字符
n+空格
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 屏幕定位
# 1.将当前行置为屏幕的中央
z.
# 2.将当前行置为屏幕的底行
z-
# 3.将当前行置为屏幕的第一行
z+
1
2
3
4
5
6
2
3
4
5
6
# 翻页
# 往后翻整页
ctrl-f
# 往前翻整页
ctrl-b
# 往后翻半页
ctrl-d
# 往前翻半页
ctlr-u
# 往后翻一行
ctrl-e
# 往前翻一行
ctrl-y
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 撤销修改-u
u
# 编辑 INSERT 模式
# insert-光标当前位置插入(光标当前字符会在插入字符后)
i
# 光标 当前行 第一位字符处插入(插入的字符在最开头)
I
# append-光标当前位置后插入
a
# 光标 当前行 最后字符后处插入(当前行最后一个字符后)
A
# 光标下一行插入空行,光标置于最开头的位置
o
# 同o相反
O
# 替换光标所在字符一次
r
# 替换光标所在字符,直到退出编辑模式
R
# 还原本次撤销,重做,一般结合撤销(u)使用
ctrl+r
# 进入VISUAL可视化模式,移动光标可以选中字符(再次输入v可退出VISUAL模式)
v
# v结合b/B((上个)字符首部)、e/E((下个)字符尾部)、w/W((下个)字符首部)可以快速选中单词。
# 在VISUAL模式下:
# 复制,复制完成并退出VISUAL模式
y
# 删除选择并退出VISUAL模式
d
# 粘贴,粘贴并覆盖选中字符串
p
# 退出编辑模式,键盘上的 Esc 按键
Esc
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
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 退出/保存
# 保存
:w
# 退出(如果有修改没有保存会报错,没有修改时直接退出)
:q
# 保存并退出(相当于 :w 和 :q 两个命令)
:wq
# 强制退出(如果有修改丢弃所有修改)
:q!
# 另存一份为fileName
:w fileName
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 行号
# 显示行数(下面两个命令其中之一都可以)
:set nu
:set number
# 隐藏行数(下面两个命令其中之一都可以)
:set nonu
:set nonumber
# 行数永久生效的方法:
# 注意vimrc的路径可能不同,可以使用命令 【find /etc/ -name vimrc】 在etc路径下面搜索。
# 输入下列命令(进入vim编辑器的配置文件内,在文件尾部,新建一行)
sudo vim /etc/vim/vimrc
# 最后一行插入(下面两个命令其中之一都可以),然后保存退出。这样再次打开vim编辑器就会一直显示行数
set nu
set number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上次更新: 2023/08/08, 20:00:46