一般来说,我如何在VIM中“定义”?然后我如何与golang?

时间:2014-01-14 22:43:41

标签: vim go

两部分问题:

首先,当我使用VIM时,我会采取什么样的过程以及键入哪些键以“转到定义”或“转到声明”等? This document可能是我的问题的答案,但我不能让它工作,所以我不确定。看起来它只是文本匹配字符串而不是找到真正的定义。如果我可以使用它,那么我能够将当前文档的外部跳转到定义/声明吗?或者这仅在单个文档中起作用?

其次,如何使用Go编程语言专门开展此工作? “点击”

中的Client肯定会很高兴

clnt := &http.Client{Transport: tr}

并被带到actual code that defines an http.Client

可能?怎么样?

2 个答案:

答案 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-]应该运行正常。

同时检查两个有用的插件TagbarEasytags

答案 1 :(得分:4)

对于golang,您可以使用应用程序godef来执行此操作。插入的vim-go可帮助您设置所有内容,因此,您只需键入' gd'在一个定义中,它是确切的定义。

https://github.com/fatih/vim-go/blob/master/doc/vim-go.txt