SublimeLinter、SublimeLinter-jshintをインストールしたが、インストール直後は動かなかったので
設定メモです。
- Ubuntu 64bit 14.04
- nodebrewでインストールしたnode、npm
- Sublime Text 3
- jshintはnpmでグローバル環境(/home/foo/.nodebrew/current/bin)にインストール済み
Preferences → Package Settings → SublimeLinter → Settings – User
で、設定ファイル表示します。
ファイルを表示した直後は、ほぼ何も記述されていないので、Defaultからコピーして持ってくる。
paths-linuxにjshintまでのパスを追記しましたが、動きませんでした。
{ "user": { "debug": false, "delay": 0.25, "error_color": "D02000", "gutter_theme": "Packages/SublimeLinter/gutter-themes/Knob/simple/Knob - simple.gutter-theme", "gutter_theme_excludes": , "lint_mode": "background", "linters": { "jshint": { "@disable": false, "args": , "excludes": , "node": true } }, "mark_style": "outline", "no_column_highlights_line": false, "paths": { "*": , "linux": [ "~/.nodebrew/current/bin" ], "osx": , "windows": }, "python_paths": { "linux": [ "/usr/bin" ], "osx": , "windows": }, "rc_search_limit": 3, "shell_timeout": 10, "show_errors_on_save": false, "show_marks_in_minimap": true, "syntax_map": { "html (django)": "html", "html (rails)": "html", "html 5": "html", "php": "html", "python django": "python" }, "warning_color": "DDB700", "wrap_find": true } }
この時点では、何が動かないか分からなかったので、デバッグモードで原因を確認します。
設定ファイルで下記を変更
"debug": true,
変更あと、Sublime Textを再起動後、コンソールを表示します。
Show → Console
以下のメッセージが表示されました。
SublimeLinter: computed PATH using /bin/bash: ~/.nodebrew/current/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games SublimeLinter: jshint version query: /home/foo/.nodebrew/current/bin/jshint --version SublimeLinter: WARNING: no jshint version could be extracted from: /usr/bin/env: node: そのようなファイルやディレクトリはありません
WARNINGメッセージをGoogle先生で調べても、Windowsの話しか出てこなかったので、
ハマりましたが、どうやら、path-linuxは、絶対パスを記述する必要があるようでした。
設定値を
~/.nodebrew/current/bin
から
/home/foo/.nodebrew/current/bin
に変更したら、動くようになりました。
変更後のデバッグメッセージ
SublimeLinter: user shell: /bin/bash SublimeLinter: computed PATH using /bin/bash: ~/.nodebrew/current/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games SublimeLinter: jshint version query: ~/.nodebrew/current/bin/jshint --version SublimeLinter: jshint version: 2.5.5 SublimeLinter: jshint: (>= 2.5.0) satisfied by 2.5.5 SublimeLinter: jshint activated: ~/.nodebrew/current/bin/jshint