bash - 为 Go 编程语言设置 vim 自动完成

标签 bash vim autocomplete go

编辑:

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

关于我原来的问题,我想我知道我可以Go:

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 文件。不确定文件名是否相同或为什么会更改。无论如何,他们是否设置了 go 自动完成功能并介意分享他们所拥有的,以及他们是否知道我遇到的可能有什么不同?谢谢!


问题的补充

我通常也对其他人如何在 vim 中设置自动完成设置感兴趣。也请随意分享!

最佳答案

您是否已经执行了 update.sh 命令?我非常有信心它会奏效。

你所有的 Vim 配置都存储在 ~/.vim/, ~/.vimrc~/.gvimrc (与 Vim 7.4,你可以把最后两个也放在第一个目录里)。要备份你的 Vim 配置,只需将它们存储在某个地方(或者将你所有的点文件置于版本控制之下,就像现在很多人所做的那样)。

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

该脚本还确保 autoloadftplugin 子目录存在,如果它们不存在则创建它们。试试吧!

关于bash - 为 Go 编程语言设置 vim 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21399610/

相关文章:

macos - 在 OSX 上的 bash 脚本中运行 perl 命令

XML数据提取

python - 简单 Python 代码中的 Str 对象错误

syntax-error - OmniComplete和Vim问题

vim - 如何暂时退出Vim并返回

bash - Git 自动补全行为异常

arrays - 在 AWK 中使用 Bash 数组

vim - 区分 Vim 中的隐藏缓冲区和事件缓冲区

javascript - jQuery UI 自动完成 - 返回页面下方的选择。不确定如何删除它

javascript - YUI 自动完成 : search after pasting?