如何配置我的 vim 来帮助我找到术语的定义?

发布于 2024-11-07 16:55:44 字数 120 浏览 0 评论 0原文

例如,当我遇到:

funcMiracle (argMagic);

我想按一个按钮,嗖的一声,我立即跳转到funcMiracle的定义,不管它是否在当前文件中。

For example, when I encounter:

funcMiracle (argMagic);

I want to press a button, and woosh, I immediately jump to the definition of funcMiracle, regardless of it is in the current file or not.

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

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

发布评论

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

评论(2

扛刀软妹 2024-11-14 16:55:44

在您的计算机上安装exuberant ctags。然后,在命令行中,在项目根目录中:

ctags -R 

在 Vim 中按 ctrl-[ 将跳转到符号的定义。跳转后,ctrl-T 将带您回到刚刚来的地方。

Install exuberant ctags on your machine. Then, from the command line, in your project root:

ctags -R 

Pressing ctrl-[ in Vim will then jump to the definition of the symbol. After the jump, ctrl-T will take you back where you just came from.

思念满溢 2024-11-14 16:55:44

更新

自从我读到你的评论后:

问题是,虽然它可以帮助我找到项目中的任何函数,但它不会自动找到我可能从头文件链接的外部函数,例如 stdio.h 中 fgets() 的定义

看看 C-[

  • CI 用于包含文件搜索
  • C-[d 用于定义查找
  • Shift- K 打开光标下标识符的手册页(例如 fgets :)

使用 man.vim 脚本 您还可以在 Vim 缓冲区内调用手册页,以便轻松复制/粘贴、突出显示、交叉引用,如 helptags 等。键:Leader -K

再一次,:he ^[^I 等是获得更多帮助/详细信息的好指针


外部项目上的标签

您可以为外部项目生成标签(例如,linux 标头)使用 ctags 如之前所示(如下)。然后让 Vim 知道你的标签在哪里:

:se tags+=/usr/src/linux/tags

注意 +=:Vim 可以一次处理多个标签文件


标准方法

  1. 安装(如果你还没有), ctags
  2. :!ctags % (或递归整个文件夹等 :!ctags -R %:h:!ctags **/*.c< /code> 等)
  3. 使用标签(C-] 或 Ctrl-MouseButton,请参阅 :help Tags 以获取完整参考)

如果您愿意,您可以将标签的构建集成到 makefile 中有一个。 Exuberant ctags 具有高度可配置性;我通常

ctags --exclude=packagedir -R --c++-kinds=+p --fields=+iaS --extra=+q

与 C++ 一起使用,但它以零配置支持许多开箱即用的语言。

Updated

Since I read your comment:

The question is, though it can help me find any function in my project, it won't automatically find the external functions that I probably linked from a header file, for example, the definition of fgets() in stdio.h

Have a look at

  • C-[C-I for include file search
  • C-[d for and definition lookup
  • Shift-K opens up the man page for the identifier under the cursor (e.g. fgets :)

With the man.vim script you can also summon the manpage inside a Vim buffer for easy copy/paste, highlighting, crossreference like with helptags etc. Key: Leader-K

Once again, :he ^[^I etc. are good pointers for more help/details


Tags on external projects

You can generate tags for an external project (say, linux headers) using ctags as shown earlier (below). It then a matter of letting Vim know where your tags are:

:se tags+=/usr/src/linux/tags

Note the +=: Vim can handle multiple tags files at once


The standard approach

  1. install (if you haven't), ctags
  2. :!ctags % (or for recursive whole folder etc :!ctags -R %:h or :!ctags **/*.c etc)
  3. use tags (C-] or Ctrl-MouseButton, see :help tags for complete reference)

You can integrate the building of tags in your makefile if you have one. Exuberant ctags is highly configurable; I routinely use

ctags --exclude=packagedir -R --c++-kinds=+p --fields=+iaS --extra=+q

for use with C++, but it supports many many languages out of the box with zero configuration.

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