[小ネタ] VimでJSONのLinterを設定する方法
はじめに
先日、Developers.IOの特集カテゴリーについにVimが追加されたと聞きました。
ありがとうございました!と言うわけで早速Vimの記事を書きたいと思いました。
今回はVimのLinterプラットフォームPlugin、ALEでJSONLintを設定する方法をご紹介します。
本来はALEを使うことでJSONLintを非同期に実行できますが、本記事で紹介しているのは有効/無効を切替えて使う設定例です。
この方法であれば、LSP等と併用した際も問題が起こりにくいと思います。
検証環境
以下、手元の検証環境です。
- Vim
$ vim --version | head -n 1 VIM - Vi IMproved 8.1 (以下略)
準備
JSONLintのnpmパッケージをインストールします。
https://www.npmjs.com/package/jsonlint
npm install jsonlint -g
ALE自体の導入方法は、ここではvim-plugを使った例のみ記載しておきます。詳細は以下をご確認下さい。
GitHub - Asynchronous Lint Engine
Plug 'w0rp/ale'
Setting
ALEプラグインを導入後に以下を.vimrc
に設定します。
" Vim起動時にALEをOFFにする設定です let g:ale_lint_on_enter = 0 " JSONLintをALEで使うよう指定します let g:ale_linters = { \ 'json': ['jsonlint'], \} " ALEの有効/無効切替をお好みのキーにマップします(※任意です) nmap <silent>, <Plug>(ale_toggle)
さいごに
ALEのリファレンスを読んでいくと、どのJSON Linterが対応しているか辿り着けるのですが、実際に設定例を紹介している情報は少ない印象でした。
JSONは様々な場面で使いますし、設定ファイルぐらいならVimでやりたいと言う方も少なくないと思いますので、参考にして貰えれば幸いです。