两部分问题:
首先,当使用 VIM 时,我需要执行什么过程以及输入什么键来“转到定义”或“转到声明”等? This document可能是我问题的答案,但我无法让它工作,所以我不确定。看起来它只是匹配字符串的文本,而不是找到真正的定义。如果我能让它工作,那么我是否能够跳到当前文档的定义/声明?或者这是否只适用于单个文档?
其次,我如何专门使用 Go 编程语言来完成这项工作? “单击”
中的Client
肯定会很好
clnt := &http.Client{传输: tr}
并被带到actual code that defines an http.Client .
可能吗?怎么办?
最佳答案
如你所料,gd
(和其他命令)只是文本匹配,vim 不理解语法,因为它只是一个文本编辑器,:h gd
将解释 gd
的工作原理。
通常,'go to definition' 是通过使用CTRL-]
和标签文件带来的。 :h 29.1
可以阅读有关该主题的用户手册。
首先你需要为你的项目生成一个标签文件,因为最新的Exuberant Ctags已经支持golang(来自here),command
cd /path/to/your/project
ctags -f tags -R --fields=+K+a
会完成这项工作。
其次,打开vim,默认情况下vim会在工作目录下寻找标签文件(根据'tags'
选项),如果标签文件找到成功,则CTRL-]` 应该运行良好。
关于vim - 通常,我如何在 VIM 中使用 "go to definition"?那我怎么用golang呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125602/