こんにちは。
SublimeText2でSublimeLinterという構文チェックパッケージを使っているのですが、
いつからかアップデートがかかって、日本語を含むコードがエラーになってしまいました。
日本語というか、マルチバイト文字なんでしょうが、
この不具合がタチ悪いのが、コメントの中に日本語を含めてもエラーになります。
なんという英語養成ギブス。
日本のエンジニアの未来は明るいかもしれませんが、
日本語ゼロは不便なので直してみたいと思います。
GithubのREADMEを読んだら書いてありました。
On Mac OS X, you must install Node.js if you plan to edit JavaScript or CSS files that use non-ASCII characters in strings or comments, because JavaScriptCore is not Unicode-aware.
どうやら、このエラーはMac+JavaScript時のみ発生する不具合のようです。
なぜjsだけダメなのかというと、
他の言語と異なり、Nodejsのコマンドラインは入っていない場合が多いため、
Nodejs依存ではなく、JavaScriptCoreというMacのデフォルトjsエンジンを使っているようです。
このJavaScriptCoreがマルチバイト文字に対応していないため、
非ASCII文字はエラーになるようです。
「SublimeLinter 日本語」でググるとまずこの記事が出てくるのですが、
僕はこの記事の内容(Nodejsをインストールすれば勝手に治る)では治りませんでした。
もともとNodejsはインストールしてあったのですが、それが使われていない感じがします。
Nodejsが使われているなら日本語エラー出ないし。
ということで、インストール済みのNodejsを使うように切り替える設定がありそうだと思って探してみました。
中国語は全く読めないのですが、タイトルに釣られて読んでみたら当たりでした。
設定>SublimeLinter>設定 - ユーザ
に以下を追加します。“sublimelinter_executable_map”: {
“javascript”: “/Users/leon/.nvm/v0.10.8/bin/node” // which node
},
which node
とコマンドを打って出てきたパスを設定するらしいです。
僕の場合boxen経由で入れているので、/opt/boxen/nodenv/shims/node
でした。
これをパッケージのユーザ設定に追加します。
"sublimelinter_executable_map": {
"javascript": "/opt/boxen/nodenv/shims/node"
}
保存してSublimeTextを再起動したら治りました!