jqでクリップボードのJSONを瞬時に整形する賢いエイリアス
Using jq to format JSON on the clipboard
jqはJSON処理の定番ツールだが、この記事ではクリップボード上のJSONを整形してそのままクリップボードに戻す便利なエイリアスを紹介。macOSのpbpaste/pbcopyに相当するLinuxのxclipを使い、さらにJSONでないテキストを消してしまう問題を回避するエラーハンドリングも追加している。
パイプは非ゼロの終了コードを気にしないので、クリップボードの内容を空文字列で上書きしてしまう。
HNでの議論
17- 1-more
こういうことはよくやっていて、`pbpaste | sed s/^ // | pbcopy` みたいなことをしてる。その方が頭にしっくりくるんだよね。macOSのペーストボードマネージャーとしてRaycastがいいのは、Cmd-Shift-Vで最後に選択したものが`pbpaste`の出力になるってこと。画像をコピーしたときにそれがどう影響するかは、あまり確信がないけどね。
- bilkow
気に入りました!`fish`と`wl-clipboard`用にこんなバージョンを作りました:
function clipboard-format-json
# Inspired by https://chris48s.github.io/blogmarks/posts/2021/jsontidy/
if set -l formatted "$(wl-paste | jq '.')"
wl-copy $formatted
end
end
これを.config/fish/functions/clipboard-format-json.fishに保存すれば、すぐに使えるはずです。
- _flux
クリップボードの内容を整えるのに、似たようなアプローチを使っています。
tr '\n' ' ' | sed 's/\t/ /g; s/ */ /g'
でも、ある時点でxselに切り替えました。xclipはユニコードの扱いがあまり良くないようなので。ただ、その後xclipが修正されている可能性はありますけどね。