【问题标题】:LiteIDE no autocompleteLiteIDE 没有自动完成功能
【发布时间】:2013-11-09 14:08:36
【问题描述】:

我正在尝试在 32 位 Linux 上使用 LiteIDE(Go IDE)。除自动完成外,一切正常。构建,运行,一切正常。 gocode 二进制文件似乎正在运行:

ithisa@miyasa ~> ps aux | grep gocode
ithisa   10003  0.0  0.0 823788  2624 pts/1    Sl+  09:06   0:00 /home/ithisa/scratch/liteide/bin/gocode -s -sock unix -addr localhost:37373

我可能做错了什么?

【问题讨论】:

  • 自动完成对我有用,使用 12.04 LTS(32 位)。我完全按照这里的说明进行操作,全部FreeBSD, Linux, Mac OS X and NetBSD tarballs 然后我从这里安装了 LiteIDE:LiteIDE x18.2.1 Linux (x86 32bit) 一切都是第一次,每次都正常。
  • 嗯。我使用的是来自 repos 的 Debian Unstable-supplied Go,而不是从 Google 手动安装......Debian 通常会正确打包东西;可能是因为它是 Debian Unstable,它有时包含未经测试的软件包。
  • 我安装了官方的 Go 包。仍然没有自动完成...
  • DK - 我会删除所有内容并从头开始。当我开始时,我的机器上没有任何与 Go 相关的东西,并且完全按照说明进行操作。我对它的轻松程度感到惊讶——我在 LiteIDE 中运行了一个项目(带有自动完成功能),从开始 @ 0 开始大约半小时。我发现我喜欢 LiteIDE——我来自 Delphi/C++/Python,而且我总是需要一个好的 IDE - 讨厌搞乱所有其他 bs - 只想编写我的代码并构建它。 LiteIDE 似乎可以处理这项工作——良好的调试、跟踪——至少足以让你继续前进。尚未使用 Go 完成任何大型项目。
  • 我刚刚删除了所有内容并从头开始。所有的 go 工具都可以工作,LiteIDE 中的所有东西都可以工作,除了现有库的自动完成(关键字自动完成,以及我自己写的东西,工作)。似乎是gocode 的问题。

标签: ide go liteide


【解决方案1】:

您可能需要设置一个 GOROOT=。要在 LiteIDE 中设置它,请查找环境工具栏;它应该是一个下拉菜单,可能预选了“系统”和一个按钮。单击按钮以调出“编辑环境”窗格,然后双击“system.env”或在下拉列表中选择的任何环境。

更改以GOROOT= 开头的行以指向您的“go”目录。如果您从 golang.org 安装普通旧 $HOME/go 是一个常见设置,如果您不知道它在哪里,运行 go env 将显示 Go 工具链本身正在使用的 GOROOT。当然,如果该行被注释掉 (#GOROOT=...) 删除 #。保存。

如果工具栏完全丢失,视图 -> 环境工具栏将取消隐藏它。

在你的.bashrc 中设置GOROOT 和相关设置可能也是值得的,所以从命令行启动的工具可以看到它。我在我的 homedir 中安装了 Go 和 LiteIDE,我的工作空间是 ~/gocode,所以我的就像:

export PATH="$HOME/go/bin:$HOME/liteide/bin:$PATH"
export GOROOT=$HOME/go
export GOPATH=$HOME/gocode

我不能确定这实际上是你的问题,但如果我取消设置我的 GOROOT,症状与你所看到的相符:完成适用于我的代码,但不适用于标准库。祝你好运!

【讨论】:

  • 我应该将 GOROOT 设置为什么? Debian 安装 Go 到 /usr/lib/usr/bin 以及一大堆其他 Unixy 地方;我应该卸载 Debian 的 Go 并将 Go 安装到我的 homedir 中吗?
  • 嗯,好问题。运行go env 会给你Go 的环境变量,看起来你的GOROOT 将是/usr/lib/go。 (更新我的答案。)
  • 作为 Windows 用户,我在下拉菜单中将系统更改为 win64,gocode 立即开始工作。耶代码预测/自动完成
【解决方案2】:

你安装了gocode吗?

https://github.com/nsf/gocode

另外,没有自动完成功能或只是新包?需要安装包才能自动完成。您有标准安装设置吗?

您的 GOROOT 和 GOPATH 也应该正确设置。

【讨论】:

    【解决方案3】:

    我遇到了完全相同的问题,除了 64 位 linux (ArchLinux)

    我通过以下方式解决了这个问题:

    设置正确的GOROOTGOPATH,例如:

    $ cat ~/.bashrc | grep GO
    export GOROOT=/usr/lib/go
    export GOPATH=~/goroot
    PATH="$PATH:$GOPATH/bin"
    bash
    

    安装/启动 gocode 守护进程

    $ go get -u github.com/nsf/gocode
    $ gocode -addr=:37373
    $ gocode status
    

    在 LiteIDE 配置文件中设置正确的 GOROOT:

    sudo vim /usr/share/liteide/liteenv/linux64.env
    GOROOT=/usr/lib/go
    

    【讨论】:

    • 最后一行中的 GOROOT=/usr/lib/go 为我解决了这个问题。
    【解决方案4】:

    对我来说,gocode(自动完成)在更新到最新版本后在 LiteIDE 中中断。

    我所做的是确保 GOPATH 设置正确。然后安装gocode:

    go get -u github.com/nsf/gocode
    

    然后从 liteide/bin/ 文件夹中删除 gocode 版本,因为否则 LiteIDE 将使用自己的版本(我只是为了以防万一)。

    现在当你启动 LiteIDE 时,它应该会显示

    GolangCode: Found gocode at <YOUR GOPATH>/bin/gocode
    

    而不是使用自己的版本的 LiteIDE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2020-02-14
      • 2013-10-06
      相关资源
      最近更新 更多