18

vim + ctags适用于 C 项目,因为 C 不允许函数重载,并且由于基本的作用域设施,通常鼓励手动为符号添加前缀。

在 C++ 中,函数经常在子类中被重载和覆盖。这使得 vim 总是跳转到错误类中的标签上"Ctrl + ]"。有没有办法让它表现得更聪明一点?我知道我可以带一个带有标签替代品的列表,但是总是不得不提出这个列表,并且每当我想跳到定义时按数字找到所需的标签,这真是太烦人了。

4

4 回答 4

13

还有“tagNext”移动到下一个标签(或:tn<enter>)

于 2009-03-18T04:55:19.653 回答
8

我经常使用tjump。它支持制表符完成,这很有帮助。如果找到多个标签,它会给出一个列表供您选择,如果只找到一个,它将直接跳转到标签(与tselect不同)。

用法:

:tj foo
于 2009-03-19T01:24:56.250 回答
7

我知道您的问题有两种解决方法(看来您也知道):

  • 使用 :tselect 和标签名称或 g] 将光标放在标签上以获取匹配标签的列表,并从列表中按数字转到标签上;
  • 在热键上映射 :tnext 或 :tprev (我已经映射到 F6 和 F7 上)并手动找到所需的功能;
于 2009-03-18T08:29:02.587 回答
5

您可以使用我的脚本,通过键入类名的一些字母或特殊标签(如“字段”、“函数”、“构造函数”等)来帮助您选择所需的标签。

http://www.vim.org/scripts/script.php?script_id=2507

于 2009-03-18T08:51:10.600 回答