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

JnB*_*ymn 2 vim go

两部分问题:

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

其次,如何使用Go编程语言专门开展此工作?这肯定将是不错的"点击" Client

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

并采用定义http.Client实际代码.

可能?怎么样?

dyn*_*yng 6

正如您所猜测的那样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-]应该运行良好.

还要检查两个有用的插件TagbarEasytags.