この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
CSVの計算等でワークハードのお供となっているcsvqにて、「こう書きたい時のsyntaxはどんな感じだろう」と調べる事がちょくちょくあります。その度にcsvq syntax
を入力していましたが、
- 対象句を一覧から確認(
csvq syntax
) - 対象句詳細表示(
csvq syntax TARGET
)
と都合2回入力となります。1回でなんとかしたいなと思い、pecoによるコマンド補完を併用してみました。
入力補完について
コマンド入力での補完に関する記事として、DevIOにも以下のようなエントリーが既に存在します。
- fzfを使った自作インタラクティブアプリを作ってみよう!〜git addを快適に〜
- 【TAB補完】BASH Complete と fzf で「ぼくのかんがえたさいきょうの AWS_PROFILE 環境変数設定環境」をつくる【メニュー選択】
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で躊躇してた、みたいな人にはオススメです。