两部分问题:
首先,当我使用VIM时,我会采取什么样的过程以及键入哪些键以“转到定义”或“转到声明”等? This document可能是我的问题的答案,但我不能让它工作,所以我不确定。看起来它只是文本匹配字符串而不是找到真正的定义。如果我可以使用它,那么我能够将当前文档的外部跳转到定义/声明吗?或者这仅在单个文档中起作用?
其次,如何使用Go编程语言专门开展此工作? “点击”
中的Client
肯定会很高兴
clnt := &http.Client{Transport: tr}
并被带到actual code that defines an http.Client。
可能?怎么样?
答案 0 :(得分:6)
正如您所猜测的那样,gd
(和其他命令)仅仅是文本匹配,vim不理解语法,因为它只是一个文本编辑器,:h gd
将解释gd
如何的工作原理。
通常,使用CTRL-]
和标记文件来“转到定义”。 :h 29.1
可以阅读有关此主题的用户手册。
首先你需要为你的项目生成一个标签文件,因为最新的 Exuberant Ctags 支持golang(来自here),命令
cd /path/to/your/project
ctags -f tags -R --fields=+K+a
将完成这项工作。
其次,打开vim,默认情况下,vim会在工作目录下找到标签文件(根据'tags'
选项),如果成功找到标签文件,则CTRL-]
应该运行正常。
答案 1 :(得分:4)
对于golang,您可以使用应用程序godef来执行此操作。插入的vim-go可帮助您设置所有内容,因此,您只需键入' gd'在一个定义中,它是确切的定义。