在Go-Mode Emacs会话中找不到Godef

时间:2018-08-01 21:50:32

标签: go emacs

我通过以下方式安装了godef

go get github.com/rogpeppe/godef

我已经安装了emacs go-mode,并且在.bashrc中有以下导出:

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
找到

godef

godef -h # appears to work.

如:

$ godef -h
usage: godef [flags] [expr]
  -A    print all type and members information
  -a    print public type and member information
  -acme
        use current acme window
  -debug
        debug mode
  -f string
        Go source filename
  -i    read file from stdin
  -json
        output location in JSON format (-t flag is ignored)
  -o int
        file offset of identifier in stdin (default -1)
  -t    print type information

当我在emacs会话的文件中运行C-c C-d时,该文件应按以下方式调用godef-describe函数

https://github.com/dominikh/go-mode.el

我希望:

Integration with godef

    godef-describe (C-c C-d) to describe expressions
    godef-jump (C-c C-j) and godef-jump-other-window (C-x 4 C-c C-j) to jump to declarations
    This requires you to install godef via go get github.com/rogpeppe/godef.

很酷,都准备好了。但是当我尝试在go文件中使用C-c C-d时,我得到:

Could not run godef binary

我可以在命令行上运行它,并且它的定义正确。发生什么事了?

我发现:

M-x godoc

// then
godoc: OSReadDir // for example

生产

godoc: /bin/bash: go: command not found

哪位对我建议,即使在普通的外壳程序中找到了godef和godoc,但emacs中可能仍然存在一些路径问题?如何检查或修复?

2 个答案:

答案 0 :(得分:2)

又是这样:

https://askubuntu.com/questions/1045712/emacs-launched-from-favorites-doesnt-read-bashrc

如果从Ubuntu启动器启动emacs,则不会加载.bashrc。

您必须打开一个终端,然后致电

$ emacs

弹出的emacs将已经从shell继承了.bashrc。

答案 1 :(得分:0)

enter image description here

〜/ .emacs.d / init.el

(setq exec-path (append exec-path '("/root/go/bin")))