vim是从vi发展而来的一个文本编译器,在类unix系统中被广泛使用,人们戏称emacs为神的编译器,而vim为编译器中的神,熟练使用vim可以让的工作量大大减少

注意^为Ctrl

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
#普通模式
h 左 ←
j 下 ↓
k 上 ↑
l 右 →
yy 复制光标当前行
p 粘贴光标当前行
dd 剪切光标所有行
dw 剪切一个单词
u 撤销
^r 取消撤销
x 剪切光标所在位置的字符
^g 查看光标所在位置
f char 搜索光标后下一个出现的char
G 到尾行
gg 到顶行
H 屏幕最上方
M 屏幕中间
L 屏幕最下方
w 移动到下一个单词的开头
W 以空白为分割,移动下个空白的开头
e 移动到下一个单词的结尾
E 以空白为分割,移动下个空白的结尾
^ 行首
$ 行末
>> 增加缩进
<< 减少缩进
^f 翻下一页
^b 翻上一页
1
2
3
4
5
6
#插入模式
i 光标所在位置插入
a 光标后位置插入
o 光标下一行插入
O 光标上一行插入
C 删除光标后的并进入插入模式
1
2
3
#替换模式
R 进入替换模式
r 只替换光标所在位置
1
2
3
4
5
6
#命令行模式
:2,10d 删除2至10行
:%s/y/x/g 全局替换y为x(%表示全文,同1,$)
:set nu|nonu 设置行号|不设置行号
/search 搜索光标下一个search
?search 搜索光标上一个search
1
2
3
4
5
6
7
8
#选择模式
v 字符选择
V 行选择
^v 块选择
I 进入编辑模式
u 换成小写
U 换成大写
~ 大小写互换

vim的一些方便的设置

1
2
3
4
5
6
7
8
9
10
11
12
$ vim ~/.vimrc
set nocp #该命令指定让 vim 工作在不兼容模式下,指不模仿vi,导致个别不友好
set fileencodings=utf8,gbk,big5 #对中文友好,不容易出现乱码
set nu #默认开启行号显示
set et #编辑时将所有 Tab 替换为空格
set sts=4 #使得按退格键时可以一次删掉 4 个空格
set sw=4 #自动缩进的时候,缩进尺寸为 4 个空格
set ts=4 #Tab 宽度为 4 个字符
set smarttab #使得按退格键时可以一次删掉 4 个空格
set ai #打开普通文件类型的自动缩进
set si #智能缩进

vimrc更详细的配置

vim中还有许多强大的功能,不过用的不多,类似的有标记、寄存器、读取shell输出、分屏等…

vim指法图
vim键盘图