1、语法错误定位
因为 vim 天生就是 C 语言开发者的利器,所以很多时候它的一些原生功能就能为 C 程序员提供非常好的用户体验。
在 C 语言编译环境中,我们的编译一般是由 make 这个命令开始的,而 vim 就很好的整合了这个 make 命令。当然很多编译型的语言都可以通过 Makefile 编写编译规则,vim 默认也支持这些语言的语法错误定位,例如 C++。
在 vim 中,想定位语法错误需要借助 make 命令。我们可以在一个项目最上层的 Makefile 目录中打开 vim,然后执行 :make 这样会在 vim 的环境中去调用 Makefile 内的编译规则。下面看一下具体的例子吧。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(
int
argc,
char
*argv[])
{
print(
"hello, world!"
);
func();
return
0;
}
|
这个代码其实有两处错误,一个是 printf 函数我故意少写了一个 f;一个是根本没定义的 func 函数,但是却调用了。我们希望要的效果,就是 vim 可以帮助我们定位到错误的位置,告诉我们到底犯了什么错。
我们首先在 vim 中 :make,然后用 :cw 打开错误窗口,会出现如下
下面的窗口就是错误信息窗口,记录了错误信息,可以用回车选择错误的行,会在 vim 中直接跳转到出错的代码位置。
vim 很贴心的为我们做了一些快捷的错误定位方法:
- :cc 显示当前错误信息
- :cn 显示下一个错误信息
- :cp 显示上一个错误信息
- :ccl 关闭错误信息窗口
这样可以很快的定位各种错误问题,直接对代码进行修改,甚至是递归的目录也可以照常工作。
原文摘自:http://blog.sunheqiubai.com/?p=601
2、多行编辑
vim进了多行编辑模式:<ESC>之后按CTRL+V进入visual block模式(列编辑)。
光标移到某行行首,进入visual block模式,上下键选择行,按I(i的大写字母),输入##,然后按<ESC>键,这样就在多行行首添加##了。也可以在多行的固定位置添加固定字符。
如果要删除这些##,进入visual block模式,选中这些##,按d即可。
3.折叠展开
装上插件后,在vim编辑器里面编写如下代码:(test.c)
//function() {{{
int function() {
……
……
}
//}}}
这个函数体内容会被折叠起来 显示为:
23-30 lines: function() +——————————————————–+
把光标停留在该显示行上 在非编辑模式下敲击:
zo 展开
zc 收起
zn 全部展开
zN 全部折叠