Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

VimでJSON(jqとvim-json)

$
0
0

JSONを直接見るようなとき、いつもは単に目で追うだけだったり、あるいはブラウザの拡張機能とかで誤魔化していたのですが、最近はVimに貼り付けてから、整形・加工・検索しています。

pythonで整形する

こちらの記事が参考になります

自分がVimでJSONを整形したいと思ったのも、この投稿がきっかけです。

ただ、自分が普段開発している環境にはjqを入れてあるので、それを使うようにした方が何かと便利かなと思い、自分はjqを使うようにしています。

jqで整形する

jqという、コマンドラインで使えるJSONパーサーがあります。

Vimからjqを使うのに、次のようなコマンドをvimrcに定義しました。

Vim Script
command!-nargs=? Jq calls:Jq(<f-args>)function!s:Jq(...)if0==a:0letl:arg="."elseletl:arg=a:1endif
    execute "%! jq \"" . l:arg . "\""endfunction

バッファ内の文字列全体に対してjqを実行し、変換後の文字列で置き換えます。

例えば、次のようなJSONがあったとして、

{"obj":{"list":[1,1,2,3,5,8,13]},"jstr":"\u3053\u3093\u306B\u3061\u306F\u4E16\u754C","str":"helloworld","num":1}

「:Jq」と実行

{"num":1,"str":"helloworld","jstr":"こんにちは世界","obj":{"list":[1,1,2,3,5,8,13]}}

「:Jq .obj.list」と実行

[1,1,2,3,5,8,13]

なんて風になります。

ばっちりUnicodeエスケープシーケンスの変換が行われて日本語が表示されていますし、色々加工も出来ちゃいます。
欠点はもちろんjqに依存してしまうことですが、普段から良くJSONに触れている方ならjqは入れておいて損はないと思いますよ!

jqのフィルタ機能については、以下のブログがとても参考になります!

vim-jsonを入れる

JSONを表示するのに、filetypeをjavascriptにしてもいいのですが、どうせならJSON用のfiletypeプラグインを入れてしまうのをオススメします。

↑のgithubのページにスクリーンショットがありますが、filetypeをjavascriptにしたときよりも色分けされるようになりますし、文字列を囲う「"」も省略されて表示されるので、とても見易いです


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>