VIM 中执行 GoInstallBinaries 安装依赖失败

文章目录

    在 VIM 中安装了 vim-go 插件,但是在为其安装依赖时,执行

    :GoInstallBinaries
    

    失败,报错信息:

    vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder /home/zhongwei/go/bin/
    
    Error downloading github.com/kisielk/errcheck: github.com/kisielk/errcheck (download)^@package golang.org/x/tools/go/analysis: unrecognized import path "golang.org/x/tools/go/analysis": https fetch: Get "https://golang.org/x/tools/go/analysis?go-get=1": dial tcp 216.239.37.1:443: connect: connection refused^@package golang.org/x/tools/go/packages: unrecognized import path "golang.org/x/tools/go/packages": https fetch: Get "https://golang.org/x/tools/go/packages?go-get=1": dial tcp 216.239.37.1:443: connect: connection refused
    

    看起来都是在直连 github,由于国内不可描述的原因导致下载失败。

    这里下载 golang 依赖包,并没有走我配置的七牛云 golang 国内镜像源

    所以,最简单的做法就是,把下载失败的依赖包,再手动复制到终端下 go get 安装。

    我整理了一下,需要安装的依赖包如下,可以写一个安装脚本,批量安装:

    #!/bin/bash
    
    set -e	# or use "set -o errexit" to quit on error.
    set -x  # or use "set -o xtrace" to print the statement before you execute it.
    
    go get github.com/nsf/gocode
    go get github.com/bradfitz/goimports
    go get golang.org/x/tools/cmd/guru
    go get golang.org/x/tools/cmd/gorename
    go get github.com/rogpeppe/godef
    go get github.com/kisielk/errcheck
    go get github.com/jstemmer/gotags
    go get github.com/klauspost/asmfmt/cmd/asmfmt
    go get github.com/fatih/motion
    go get github.com/zmb3/gogetdoc
    go get github.com/josharian/impl
    go get github.com/golangci/golangci-lint/cmd/golangci-lint
    go get github.com/fatih/gomodifytags
    go get honnef.co/go/tools/cmd/keyify
    go get golang.org/x/lint/golint
    

    安装完成后,再进入 VIM 中,执行 GoInstallBinaries 就可以成功了。

    ‘go get’ is no longer supported outside a module

    升级 go 1.18 版本之后,这样搞就行不通了

    go: go.mod file not found in current directory or any parent directory.
            'go get' is no longer supported outside a module.
            To build and install a command, use 'go install' with a version,
            like 'go install example.com/cmd@latest'
            For more information, see https://golang.org/doc/go-get-install-deprecation
            or run 'go help get' or 'go help install'.
    

    修改脚本如下:

    #!/bin/bash
    
    set -e	# or use "set -o errexit" to quit on error.
    set -x  # or use "set -o xtrace" to print the statement before you execute it.
    
    go install github.com/nsf/gocode@latest
    go install github.com/bradfitz/goimports@latest
    go install golang.org/x/tools/cmd/guru@latest
    go install golang.org/x/tools/cmd/gorename@latest
    go install github.com/rogpeppe/godef@latest
    go install github.com/kisielk/errcheck@latest
    go install github.com/jstemmer/gotags@latest
    go install github.com/klauspost/asmfmt/cmd/asmfmt@latest
    go install github.com/fatih/motion@latest
    go install github.com/zmb3/gogetdoc@latest
    go install github.com/josharian/impl@latest
    go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
    go install github.com/fatih/gomodifytags@latest
    go install honnef.co/go/tools/cmd/keyify@latest
    go install golang.org/x/lint/golint@latest
    go install github.com/davidrjenni/reftools/cmd/fillstruct@master
    go install github.com/go-delve/delve/cmd/dlv@master
    go install github.com/koron/iferr@master
    

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式