Linux编辑器--vim的tag29.4

29.4查找全局标识符

 

  你正在编写C程序,并且想知道一个变量是被声明为int或者unsigned。一个发现这个的快速方法是使用[I命令。

 

   假设光标在column这个字上,输入[I,vim会列出匹配的所有行。不仅仅在当前文件,所有包含文件,和包含文件中包含的文件,都会列出。

 

  这种方式相对于使用tags和分屏的好处就是包含文件也被搜索。多数情况下,这将会正确的找到声明。即使tags文件过期了,或者你没有对于包含文件的tags文件。

 

  当然,一些事情必须正确,才能保证[I完成它的工作。首先,include选项必须指明文件如何被包含。默认是对于C和C++。其他语言,你必须自己去设置。

 

   加载包含文件

 

   vim将会在使用path选项指明的地方查找包含文件。如果目录不正确,一些包含文件将不能被找到。你可以使用如下命令查看:

 

  :checkpath

 

   它将会列出所有不能找到的包含文件。当然,也会列出发现的包含没有发现文件的包含文件。

 

   注意:

   vim不是一个编译器。它不能够识别#ifdef语句。这意味着每个#include语句都被用以包含,即使其在#if NEVER的语句后边。

 

  解决文件不能被找到的错误,增加一个目录到path选项。一个找到这些信息的好地方是Makefile。查找-I的项,例如 -I/usr/local/X11。把这些目录增加到path:

 

  :set path+=/usr/local/X11。

 

 你可以使用通配符:

 

 :set path+=/usr/*/include

 

 使用**意味着所有的子目录,例如:

 

 :set path+=/projects/invent/**/include

 

你可以看看一个包含文件是否真的被找到:

 

  :checkpath!

 

你将获取一个包含文件的列表,列出包含的文件等。为了将这个列表减少,vim对于那些已经在之前显示的包含文件,显示already listed,并且不再在那显示。

 

 

 跳转到一个匹配

 

  [I 仅仅处理list文本的一行。当你希望对于第一个item有近距离观看的时候,使用如下命令跳转:

 

 [<Tab>

 

 你也可使用 [ CTRL-I,因为其作用相同。当你想跳转到不是第一个的其他item,你可以在命令前打出一个行号:

 

3[<Tab>

 

上述将跳转到list中第三个item。注意,你可以使用CTRL-0跳回到你开始的地方。

 

相关命令:

 

 

 [i  仅仅列出第一个匹配

 

 ]I  仅仅列出在光标下的项

 

]i仅仅列出光标下的第一项

 

查找定义的标识符

 

[I命令发现任何标识符。仅仅查找宏,即以#define开始的定义,使用如下命令:

 

[D

 

这也是在include文件中进行的。define选项指明对于[D的定义的item的行的样子。你可以将其改变,以适应不同的除了c和c++外的语言。

 

相关ID的命令有:

 

[d        第一个匹配

 

]D      光标下的匹配

 

]d      光标下的第一个匹配

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值