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 | 1 F2打开tags列表窗口(居左部).
2 F3打开文件浏览窗口(居右部).
3 F4打开最近阅读的源码(居下部).
4 F5创建或更新ctags和cscope.
5 Ctrl-o返回上次位置.
6 :cs find s wrod查找工程内变量或函数. 其快捷键为",ss": 查找光标下的变量或函数.
7 :cs find t word查找工程内文本. 其快捷键为",st": 查找光标下的文本.
7.1 :cs find f word查找工程内文件. 其快捷键为",sf": 查找光标下的文件.
8 Ctrl-]跳转到工程内变量或函数的定义处.
8.1 ctrl+t:返回上一个查找的地方.
9 移动操作
gg 将光标定位到文件第一行起始位置。
G 将光标定位到文件最后一行起始位置。
NG或Ngg 将光标定位到第 N 行的起始位置。
10 分屏与标签页
:split(可用缩写 :sp) 上下分屏
:vsplit(可用缩写 :vsp) 左右分屏
vim -On file1 file2... 打开 file1 和 file2 ,垂直分屏
vim -on file1 file2... 打开 file1 和 file2 ,水平分屏
Ctrl+ww 切换到当前分屏的左边一屏,循环操作
vimdiff file1 file2 Vim里分屏显示两个文件内容的对比结果
11 选择文本块
v:按字符选择。经常使用的模式,所以亲自尝试一下它。
V:按行选择。这在你想拷贝或者移动很多行的文本的时候特别有用。
CTRL+v:按块选择。非常强大,只在很少的编辑器中才有这样的功能。你可以选择一个矩形块,并且在这个矩形里面的文本会被高亮。
复制选定块到缓冲区,用y;复制整行,用yy
剪切选定块到缓冲区,用d;剪切整行用dd
粘贴缓冲区中的内容,用p
12 vimgrep
vimgrep /匹配模式/[g][j] 要搜索的文件/范围
g:表示是否把每一行的多个匹配结果都加入
j:表示是否搜索完后定位到第一个匹配位置
vimgrep /pattern/ % 在当前打开文件中查找
vimgrep /pattern/ * 在当前目录下查找所有
vimgrep /pattern/ ** 在当前目录及子目录下查找所有
vimgrep /pattern/ *.c 查找当前目录下所有.c文件
vimgrep /pattern/ **/* 只查找子目录
13 全局搜索快捷键
F6 从**/*.c **/*.h **/*.cpp **/*.sh **/*.lua文件中对当前光标下的word进行全局搜索.
14 vim 单文件替换方法
单文件中使用 :s 命令进行替换操作
替换操作会涉及几个常用的标记
% 所有行 g 单行内所有匹配项 i 忽略大小写 c 确认是否替换
关键词 old 替换为 new
:s/old/new 将光标所在行第一个 old 替换为 new
:s/old/new/g 将光标所在行所有 old 替换为 new
:%s/old/new/gc 全文执行替换,询问是否替换
:3,10s/old/new/gic 将第3行到第10行内容替换,忽略大小写,且每个询问是否替换
|