vim 的语法错误定位 多行编辑 折叠-展开

时间:2022-10-14 17:10:08

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 中直接跳转到出错的代码位置。

vim 很贴心的为我们做了一些快捷的错误定位方法:

  1. :cc  显示当前错误信息
  2. :cn  显示下一个错误信息
  3. :cp  显示上一个错误信息
  4. :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 全部折叠