Vim-go: :GoInstallBinaries must be ru-run for every new invocation of vim

Created on 5 Jan 2017  路  6Comments  路  Source: fatih/vim-go

Behavior

vim-go: could not find 'guru'. Run :GoInstallBinaries to fix it.
Although $GOPATH/bin/guru does indeed exist, issuing :GoInstallBinaries fixes the issue but only for the current VIM session. New instances of vim go through the same problem.

Steps to reproduce:

  1. vim
  2. :GoDef (or any :Go command)
  3. observe error vim-go: could not find 'guru'. Run :GoInstallBinaries to fix it.
  4. :GoInstallBinaries
  5. :GoDef (now works)
  6. ':q'
  7. vim
    8.: GoDef
  8. observe error
  9. loop back to step 4.

Configuration

:echo $GOPATH
/Users/paulf/src/go
:!ls $GOPATH/bin
asmfmt gocode gogetdoc golint gorename guru motion
errcheck godef goimports gometalinter gotags impl

Add here your current configuration and additional information that might be
useful, such as:

  • vimrc you used to reproduce
    call plug#begin('~/.vim/plugins')

Plug 'fatih/vim-go', { 'tag': 'v1.10' }

call plug#end()

set lines=43 co=132

  • vim version:
    :ve
    VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 22 2016 11:16:35)
    MacOS X (unix) version
    Included patches: 1-94
    Compiled by MacPorts
    Huge version with MacVim GUI. Features included (+) or not (-):
    +acl +cursorbind +fullscreen +modify_fname +path_extra +syntax +viminfo
    +arabic +cursorshape +gettext +mouse -perl +tag_binary +vreplace
    +autocmd +dialog_con_gui -hangul_input +mouseshape +persistent_undo +tag_old_static +wildignore
    +balloon_eval +diff +iconv +mouse_dec +postscript -tag_any_white +wildmenu
    +browse +digraphs +insert_expand -mouse_gpm +printer -tcl +windows
    ++builtin_terms +dnd +job -mouse_jsbterm +profile +termguicolors +writebackup
    +byte_offset -ebcdic +jumplist +mouse_netterm -python +terminfo -X11
    +channel +emacs_tags +keymap +mouse_sgr -python3 +termresponse -xfontset
    +cindent +eval +lambda -mouse_sysmouse +quickfix +textobjects +xim
    +clientserver +ex_extra +langmap +mouse_urxvt +reltime +timers -xpm
    +clipboard +extra_search +libcall +mouse_xterm +rightleft +title -xsmp
    +cmdline_compl +farsi +linebreak +multi_byte -ruby +toolbar -xterm_clipboard
    +cmdline_hist +file_in_path +lispindent +multi_lang +scrollbind +transparency -xterm_save
    +cmdline_info +find_in_path +listcmds -mzscheme +signs +user_commands
    +comments +float +localmap +netbeans_intg +smartindent +vertsplit
    +conceal +folding -lua +num64 +startuptime +virtualedit
    +cryptv -footer +menu +odbeditor +statusline +visual
    -cscope +fork() +mksession +packages -sun_workshop +visualextra
    system vimrc file: "$VIM/vimrc"
    user vimrc file: "$HOME/.vimrc"
    2nd user vimrc file: "~/.vim/vimrc"
    user exrc file: "$HOME/.exrc"
    system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    2nd user gvimrc file: "~/.vim/gvimrc"
    defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
    fall-back for $VIM: "/opt/local/MacVim.app/Contents/Resources/vim"
    Compilation: /usr/bin/clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe -I/opt/local/include
    -DMACOS_X_UNIX -pipe -Os -arch x86_64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
    Linking: /usr/bin/clang -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -o Vim -framework Cocoa -framework Carbon
    -lm -lncurses -liconv -lintl -framework Cocoa

  • vim-go version:
    r1.10

  • go version:
    go version go1.7.4 darwin/amd64

Most helpful comment

Hi @PaulForgey

Vim reads the binaries from your PATH, if it's there you should be covered. Seems like it's not the case. :GoInstallBinaries is just a helper command, it's not required and you should not call it everytime. Please be sure you installed them correctly. Thanks

All 6 comments

Hi @PaulForgey

Vim reads the binaries from your PATH, if it's there you should be covered. Seems like it's not the case. :GoInstallBinaries is just a helper command, it's not required and you should not call it everytime. Please be sure you installed them correctly. Thanks

I ran into this embarrassing situation today, and I found that my $GOPATH/bin is not in the $PATH. In order to make several go projects use go-vim smoothly, I think move the binaries using by vim-go(e.g. guru) to $GOROOT/bin

also, better to double check that a project being edited form go src e.g: vim $GOPATH/src/github.com/testing/test.go

FYI for those who have this issue, and go is in their PATH. It is possible that the deps wont build either because of an issue with the dep itself, or more likely, your version of go is out of date, or its version is incompatible with one of the deps.

example: If you install golang-go in debian stretch using apt, golang will likely be too old. You are always suggested to install from the golang downloads page.

Env set $GOBIN and :GoInstallBinaries fix it.
Was this page helpful?
0 / 5 - 0 ratings

Related issues

groob picture groob  路  3Comments

smontazeran picture smontazeran  路  4Comments

andrejvanderzee picture andrejvanderzee  路  3Comments

danielmanesku picture danielmanesku  路  4Comments

joeblubaugh picture joeblubaugh  路  3Comments