vim,ctags和同名的标识符

时间:2009-03-18 01:48:58

标签: c++ vim ctags

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

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

4 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:8)

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

用法:

:tj foo

答案 2 :(得分:7)

我知道你的问题有两个解决方法(看起来你也知道):

  • 使用:tselect和tag name或g],光标位于标签上,以获取匹配标签的列表,并从列表中按标签转到标签;
  • map:热键上的tnext或:tprev(我已映射到F6和F7)并手动找到所需的函数;

答案 3 :(得分:5)

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

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