两部分问题:
首先,在使用VIM时我应该采取什么样的过程以及键入哪些键来"定义"或"转到声明"等?这个文件可能是我的问题的答案,但我不能让它工作,所以我不确定.看起来它只是文本匹配字符串而不是找到真正的定义.如果我可以让它工作,那么我能够跳到当前文档之外的定义/声明吗?或者这仅适用于单个文档?
其次,如何使用Go编程语言专门开展此工作?这肯定将是不错的"点击" Client
的
clnt := &http.Client{Transport: tr}
并采用定义http.Client的实际代码.
可能?怎么样?
正如您所猜测的那样gd
(和其他命令)仅仅是文本匹配,vim不理解语法,因为它只是一个文本编辑器,:h gd
将解释如何gd
工作.
通常,使用CTRL-]
和标记文件会带来"转到定义" .可以阅读有关此主题的用户手册:h 29.1
.
首先,你需要为你的项目生成一个标签文件,因为最新的Exuberant Ctags支持golang(从这里开始),命令
cd /path/to/your/project
ctags -f tags -R --fields=+K+a
Run Code Online (Sandbox Code Playgroud)
会做的.
第二,打开vim,默认情况下vim会在工作目录下找到标签文件(根据'tags'
选项),如果标签文件找到成功,那么CTRL-]
应该运行良好.