繁体   English   中英

为Go编程语言设置vim自动完成功能

[英]Setting up vim autocomplete for the Go programming language

编辑:

我通常很想知道人们是如何为vim设置自动完成功能的,并正在寻求建议。

关于我最初的问题,我想我可以去:

https://github.com/nsf/gocode

复制它们提供的文件,然后开始使用vim自动完成功能。 但是,我想知道人们的想法以及go社区如何设置vim自动完成功能。

另外,我已经按照此处发布的指示进行操作,但是我仍然无法使自动完成功能在vim中发挥作用。 因此,我正在寻找其他替代方案或想法,以使其发挥作用。 不确定是什么问题。 当前,当我尝试自动完成时,它只写了PANIC一词,而不是向我显示自动完成的选项。

原版的:

我试图设置vim以使其能够自动完成Go编程语言,但是,我遵循以下页面中的说明:

https://github.com/nsf/gocode

我不确定它们是什么意思,我有点害怕改变我的vim设置,而这可能会因错误地执行而损坏。

让我感到困惑的第一件事是:

Install official Go vim scripts from $GOROOT/misc/vim. If you did that already, proceed to the step 2.

但是,我不确定这意味着什么。 我确实进入了终端的那个目录并阅读了readme.txt文件,它说了如何激活我已经拥有的语法突出显示。 这就是我要做的一切吗?

在第2步中说:

做:

vim/update.sh

他们实际上提供了update.sh的代码,但是我不确定cp命令的开头是什么意思,即:

#!/bin/sh
mkdir -p "$HOME/.vim/autoload"
mkdir -p "$HOME/.vim/ftplugin/go"
cp "${0%/*}/autoload/gocomplete.vim" "$HOME/.vim/autoload"
cp "${0%/*}/ftplugin/go/gocomplete.vim" "$HOME/.vim/ftplugin/go"

但是$ {0%/ *}部分有什么作用? 即使我知道update.sh是什么,由于vim / update.sh是在相对路径上完成的,所以我什至在哪里运行它?

我知道update.sh要我将一些文件复制到$ HOME / .vim / ftplugin / go和$ HOME / .vim / autoload,但是我什至从〜进行了查找,但是找不到此类文件,所以我不确定关于要复制的内容。 我知道应该去哪里,但文件不知道在哪里。 有人知道这些文件在哪里,或者更简单或更详细的说明如何使vim自动完成吗?

我在这里先向您的帮助表示感谢! :)


我发现了一些问题,不确定是否可以预期,但是在$ GOROOt / misc / vim / ftplugin / go中,我根本没有gocomplete.vim文件。 我还有其他似乎不相关的东西,例如fmt.vim import.vim和test.sh文件。

但是奇怪的是,在$ GOROOt / misc / autoload中,我没有gocomplete.vim文件,但是我有一个complete.vim文件。 不确定是否相同或为什么文件名会更改。 无论如何,他们都设置了自动完成功能,并与他人共享他们所拥有的东西,如果他们知道与我所遇到的东西可能会有什么不同? 谢谢!


除问题外

我通常也对其他人如何在Vim中设置自动完成功能感兴趣。 也可以随意分享!

您是否已经执行过update.sh命令? 我非常有信心它将起作用。

您所有的Vim配置都存储在~/.vim/~/.vimrc~/.gvimrc (对于Vim 7.4,您也可以将最后两个放在第一个目录中)。 要备份您的Vim配置,只需将其存储在某个位置(或像现在许多一样,将所有dotfile置于版本控制下)。

${0%/*}dirname一样操作脚本的文件名( $0 ):切断脚本文件名本身(末尾*直到最后一个/ )。 这样,您可以从任何地方调用脚本,例如$GOROOT/misc/vim/update.shcd misc; vim/update.sh cd misc; vim/update.shcd misc/vim; ./update.sh cd misc/vim; ./update.sh

该脚本还确保autoloadftplugin子目录存在,并创建子目录(如果尚不存在)。 试一试!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM