pecoでcsvqのsyntaxを調べやすくしてみる

csvqのSyntaxを確認したい場合に、コマンド補完にて候補選択及び詳細確認を簡潔に行えるようにしてみました。
2019.03.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

CSVの計算等でワークハードのお供となっているcsvqにて、「こう書きたい時のsyntaxはどんな感じだろう」と調べる事がちょくちょくあります。その度にcsvq syntaxを入力していましたが、

  1. 対象句を一覧から確認(csvq syntax)
  2. 対象句詳細表示(csvq syntax TARGET)

と都合2回入力となります。1回でなんとかしたいなと思い、pecoによるコマンド補完を併用してみました。

入力補完について

コマンド入力での補完に関する記事として、DevIOにも以下のようなエントリーが既に存在します。

fzfとpecoの関係については以下の記事でさっくりと触れられています。

今回pecoを選んだ理由については、

  • pecoが作られた過程の中にfzfとWindowsの相性があること
  • csvqは各プラットフォーム向けに単体動作でのバイナリが提供されていること
  • pecoとcsvqのcontributorに共通の人物がいること

などです。ある程度動きが担保されるはず、という目論見です。

補完設定

今回はzsh前提です。

% brew install peco
% vim ~/.zshrc

function csvqs() {
  result="$(csvq syntax | peco)"
  print "> csvq syntax${result}"
  csvq syntax ${result} | less
}

csvq syntaxを実行しつつ、該当する句を選択表示させて、解説にスクロールが必要となる場合を想定してlessを呼んでます。

まとめ

同等の動作を作り込んでpull-reqで投げることも考えましたが、「補完で済ませられるんだからそれでいいやん」という結論になりました。

色々と出来ることが見やすくなるため、使いこなしてみたいけどsyntaxで躊躇してた、みたいな人にはオススメです。