vim,ctags和同名的标识符

Ale*_*x B 17 c++ vim ctags

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

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

Mar*_*ork 13

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


gpo*_*ojd 8

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

用法:

:tj foo
Run Code Online (Sandbox Code Playgroud)


bay*_*yda 7

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

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


Myk*_*yev 5

您可以使用我的脚本,通过键入类名称或"字段","函数","构造函数"等特殊标记来帮助您选择所需的标记.

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