TL;DR
個人用のwhich-keyを作りたくて、何で作ればいいか検討してみたが
shellscript + gumがよかった。
shellscriptにした理由は、ファイル一つで完結したかったのと、cdが楽だし、セットアップも簡単だったのが理由。
ただ、それだけだと味気ないのでshellscript用のUIライブラリを探して見つけたのがgumだった。
gumとは?
シェルスクリプト用のUIライブラリ
https://github.com/charmbracelet/gum
めっちゃかっこいい!!!
インストール
公式サイトにしたがう。
https://github.com/charmbracelet/gum?tab=readme-ov-file#installation
Macだとhomebrew
brew install gum
fish shell で which-key作ってみた
こんな感じのをさくっとchatgptに作ってもらった。
結構いい感じ。
コードは以下の通り
function __which-key gum style \ --border rounded --margin "1 1" --padding "1 2" --align left \ --bold "g → ghq project" "c → git checkout" read --nchars 1 choice switch $choice case g cd (ghq list | fzf | xargs -I {} echo $HOME/workspaces/{}) case c gc # fzfでgit checkoutする自作のコマンド case '*' gum style --foreground 196 --bold "⚠️ Unknown choice: $choice" end end bind --mode insert \cg '__which-key; echo; commandline -f repaint'
仕組みとしては
- `gum style` で メニューを描画
read --nchars 1
で Enter 不要 の 1 キー入力取得switch
で処理を分岐
まとめ
chatgptのおかげで簡単にshellscriptかけるようになったので、みんなもかっこいいshellscriptに挑戦してみてね