vim、ctags 和同名标识符

发布于 2024-07-15 09:47:11 字数 247 浏览 7 评论 0原文

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

在 C++ 中,函数经常被重载,并在子类中被重写。 这使得vim总是在“Ctrl + ]”上跳转到错误类中的标签。 有没有办法让它表现得更聪明一点? 我知道我可以带来一个包含替代标签的列表,但是每当我想跳到定义时总是必须打开这个列表并按数字找到所需的标签,这真是太烦人了。

vim + ctags works well for C projects, since C does not allow function overloading and, in general encourages manual prefixing of symbols due to rudimentary scoping facilities.

In C++, functions are frequently overloaded, and overridden in subclasses. This makes vim always jump to the tag in the wrong class on "Ctrl + ]". Is there a way to make it behave a little more intelligently? I know I can bring a list with tag alternatives, but that's insanely annoying to always have to bring up this list, and find a needed tag by number whenever I want to jump to definition.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

混浊又暗下来 2024-07-22 09:47:11

还有“tagNext”可移动到下一个标签(或 :tn

There is also "tagNext" to move to the next tag (or :tn<enter>)

腹黑女流氓 2024-07-22 09:47:11

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

用法:

:tj foo

I use tjump a lot. It supports tab completion which is helpful. If multiple tags are found, it will give a list for you to select from, if only one is found, it will jump right to the tag (unlike tselect).

Usage:

:tj foo
深爱不及久伴 2024-07-22 09:47:11

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

  • 使用 :tselect 和标签名称或 g] 将光标放在标签上以获取匹配标签的列表,然后按列表中的数字转到标签;
  • 在热键上映射 :tnext 或 :tprev (我已映射到 F6 和 F7 )并手动查找所需的功能;

I know two workarounds for your porblem ( it seems you knew it too ):

  • Use :tselect and tag name or g] with cursor on tag for get list of matched tags and goto on tag by number from list;
  • map :tnext or :tprev on hotkeys ( I've mapped on F6 and F7 ) and find needed function manualy;
宫墨修音 2024-07-22 09:47:11

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

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

You can use my script which will help you to select tag you need by typing some letters of the class name or special tags like 'field', 'function', 'constructor', etc.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文