2

Sublime 3 の Debian Testing で GoSublime + Linters を有効化/検出するのに問題があります。私はこれを OSX と Windows マシンで何回も実行しました。

ST コンソールには次のように表示されます。

SublimeLinter: debug mode: off 
SublimeLinter: annotations activated: <builtin> 
SublimeLinter: WARNING: golint deactivated, cannot locate 'golint' 
SublimeLinter: WARNING: gotype deactivated, cannot locate 'gotype' 
SublimeLinter: WARNING: govet deactivated, cannot locate 'go'

go以前のエラー (私が修正したもの) をセットアップするときに、以前は気付かなかったので、見つけられないと言っているのは興味深いことです。GoSublime が示すように、Go はそこにあります。

GoSblime r13.12.26-3 sh: load env vars ['/bin/bash', '--login', '-c', 'echo "..."']: go version: ['/usr/local/go/bin/go', 'version'] -> `go version go1.3.1 linux/amd64
` -> `go1.3.1`: 0.043s
GoSublime r13.12.26-3: init mod(mg9)
SublimeLinter: debug mode: off 
SublimeLinter: json activated: <builtin> 
SublimeLinter: annotations activated: <builtin> 

** 2014-09-18 08:48:11.608847 **:
GoSublime init r13.12.26-3 (0.001s)
|   install margo: no
|   install state: done
| sublime.version: 3065
| sublime.channel: stable
|       about.ann: a14.02.25-1
|   about.version: r13.12.26-3
|         version: r13.12.26-3
|        platform: linux-x64
|            ~bin: ~/.config/sublime-text-3/Packages/User/GoSublime/linux-x64/bin
|       margo.exe: ~bin/gosublime.margo_r13.12.26-3_go1.3.1.exe (ok)
|          go.exe: /usr/local/go/bin/go (ok)
|      go.version: go1.3.1
|          GOROOT: /usr/local/go
|          GOPATH: ~/go
|           GOBIN: (not set) (should usually be `(not set)`)
|       set.shell: ['/bin/bash', '--login', '-c', '$CMD']
|       env.shell: /bin/bash
|       shell.cmd: ['/bin/bash', '--login', '-c', '${CMD}']
--------------------------------

GOBIN (未設定) は、他のシステムではこれまで注意を払っていなかったことを認めるもう 1 つの興味深いものです。

だから、私が想像するGoSublimeプラグインからプロキシされるLinterプラグイン構成の問題ですか? ディレクトリをコピーアンドペーストすると、ターミナルで機能するため、正しく設定されていると思います(typeoがないことを示しています)。

# GoSublime.sublime-settings (User)
{
    "env": { 
        "GOROOT": "/usr/local/go",
        "GOPATH": "$HOME/go",
        "PATH": "$PATH:$GOROOT/bin:$GOPATH/bin"
    }
}

MarGo は、もはや GOPATH が見つからないことについても文句を言いません。だから、私はそれを正しく設定しており、それが検出されています。

私は今日、これを解決しようと素晴らしい GoSublime 設定を掘り下げ、bash に指定できるシェル コマンドの設定に関するナゲットを見つけました。だから、私は今これを持っています:

"shell": ["/bin/bash", "--login", "-c", "$CMD"],
"env": { 
    "GOROOT": "/usr/local/go",
    "GOPATH": "$HOME/go",
    "PATH": "$PATH:$GOROOT/bin:$GOPATH/bin"
},

しかし、それも役に立ちませんでした。

以下を使用します。

Debian Testing (all updated packages)
i3 Window Manager (though I don't think this worked with Gnome)
Go 1.3.1 (built from source release, located at /usr/local/go)
SublimeText 3 3065 (registered)
GoSublime (latest as of posting)
go get github.com/golang/lint (and working in terminal) 
go get code.google.com/p/go.tools/cmd/gotype (works in terminal)
go vet (working in terminal)

すべてのパスが正しく設定されています。

# i3wm
exec GOPATH="$HOME/go"
exec GOROOT="/usr/local/go"
exec PATH="$PATH:$GOROOT/bin:$GOPATH/bin"

# .bashrc
export GOPATH="$HOME/go"
export GOROOT="/usr/local/go"
PATH="$PATH:$GOROOT/bin:$GOPATH/bin"

これらは正常に動作し、ターミナルと i3 の両方から Go コマンドを実行したり、パッケージをインストールしたりできます (Go でいくつかのカスタム ステータスバーを作成します)。

GoType と GoLint もインストールされており、bash から実行できます。

一般的な SublimeLinter には正しいリンターがロードされています。

reloading plugin SublimeLinter-annotations.linter
SublimeLinter: annotations linter loaded 
reloading plugin SublimeLinter-contrib-golint.linter
SublimeLinter: golint linter loaded 
reloading plugin SublimeLinter-contrib-gotype.linter
SublimeLinter: gotype linter loaded 
reloading plugin SublimeLinter-contrib-govet.linter
SublimeLinter: govet linter loaded 
reloading plugin SublimeLinter-json.linter
SublimeLinter: json linter loaded 
reloading plugin sublimelint.commands
reloading plugin sublimelint.sublimelint

それでも、冒頭で述べたように、これらのエラーが引き続き発生します。

前もって感謝します!

4

1 に答える 1