假设我们有一个工程,放在test目录下,里面有main.c, a.c, b.c ...
1. 创建"工程文件"的过程
(1)进入test目录,启动vi(2)用:e命令分别打开所有需要加入功能的文件
(3)用:mksession! test.vim创建"工程文件"
(4)退出vim.
2. 打开工程文件的过程
用vim -S test.vim启动vim即可
3. 编辑工程文件
用:b命令和:sb命令。这些命令带自动补完功能,只记得部分文件名即可。如:b ma<Tab>会自动补完为 main.c
4.列出工程中的文件
:ls 即可用:b <ls序号>也可以编辑需要的文件
5. 添加新文件到工程
首先退出vim,重新用vim -S test.vim恢复工程状态用:e <文件名>打开一个或多个文件
用:mksession! test.vim 更新工程文件即可
6.删除工程文件
用:bd 文件名即可。也可以用部分文件名自动补完。
7. 多文件编辑
在一个vim 程序中打开很多文件进行编辑是挺方便的.:sp(:vsp) 文件名 vim 将分割出一个横(纵)向窗口, 并在该窗口中打开新文件.
从vim6.0 开始, 文件名可以是一个目录的名称, 这样, vim 会 把该目录打开并显示文件列表, 在文件名上按回车则在本窗口打 开该文件, 若输入O 则在新窗口中打开该文件, 输入? 可以看 到帮助信息.
:e 文件名 vim 将在原窗口中打开新的文件, 若旧文件编辑过, 会要求保存.
c-w-w vim 分割了好几个窗口怎么办? 输入此命令可以将光标循环定位到各个窗口之中.
:ls 此命令查看本vim 程序已经打开了多少个文件, 在屏幕的最下方会显示出如下数据:
1 %a "usevim.html" 行162
2 # "xxxxxx.html" 行0
其中:
1 表示打开的文件序号, 这个序号很有用处.
%a 表示文件代号, % 表示当前编辑的文件,
# 表示上次编辑的文件
"usevim.html" 表示文件名.
行162 表示光标位置.
:args 在一行内显示当前编辑文件
:b 序号(代号) 此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号) 就是用:ls 命令看到的.
ctrl+^ 快速在最近打开的两个文件间切换
:set diff 此命令用于比较两个文件, 可以用
:vsp filename 命令打开另一个文件, 然后在每个文件窗口中输入此命令,就能看到效果了.
8.vim使用vimgrep在其他文件中或者文件夹中搜索字符串
Vim中也可以像普通ide那样的在多个文件中查找的功能,用的是:vimgrep这条命令,格式如:
:vimgrep /classA/gj ./*.c
解释一下:
g: 如果一行中出现多处,只显示一次,没有g就会出现多次
j: 只是列出所有匹配的行,没有j那么就会跳去第一个匹配的行
执行这条命令后,可以通过:cw命令打开匹配的窗口进行查询结果的查看。
更多的信息可以使用
:help vimgrep
来查看。
风格:
$vi ~/.vimrc
set nu