2022年11月18日
Yggdroot/indentLine はとてもいいプラグインだが、1点問題があって、jsonファイルをひらくとダブルクォートが表示されなくなってしまう。
以下のように elzr/vim-json を入れるなどの手があるようだ。
Plugin 'elzr/vim-json'
let g:vim_json_syntax_conceal = 0
ただ、(neovimを使用しているから?)こちらのオプションが機能しない。
let g:vim_json_syntax_conceal = 0
無効にはできるが、 json外になにかしら 以下のように hogeなど文字列が入っていると、このhogeが vim上で表示されず、大変困ったことになった。
hoge
{
"fuga": 1
}
見ている内容と実際の内容が違うのだから。
jsonファイルだけ Yggdroot/indentLine を無効にすることで対応。 以下のようにvimrcで設定する。
autocmd BufNewFile,BufRead,BufEnter * :let g:indentLine_setConceal = (&ft=='json' ? 0 : 1)
dein.toml等なら 以下のように書く
[[plugins]]
repo = 'Yggdroot/indentLine'
hook_add = '''
autocmd BufNewFile,BufRead,BufEnter * :let g:indentLine_setConceal = (&ft=='json' ? 0 : 1)
'''
ちなみに BufNewFile
がないと vim hoge.json などで新しくファイル作る時に有効になってしまう
BufReadがないと、読み込んだ時に有効になってしまう。
また、BufEnterがないと、バッファ切り替えて戻ってきた時に有効になってしまう。