zshでtmuxのコマンドを超々手抜きで補完する
以下を.zshrcに追加
# tmux list-commands | sed -e 's/ .*$//' よりリストを取得している _tmux() { compadd attach-session bind-key break-pane capture-pane choose-buffer choose-client choose-list choose-session choose-tree choose-window clear-history clock-mode command-prompt confirm-before copy-mode delete-buffer detach-client display-message display-panes find-window has-session if-shell join-pane kill-pane kill-server kill-session kill-window last-pane last-window link-window list-buffers list-clients list-commands list-keys list-panes list-sessions list-windows load-buffer lock-client lock-server lock-session move-pane move-window new-session new-window next-layout next-window paste-buffer pipe-pane previous-layout previous-window refresh-client rename-session rename-window resize-pane respawn-pane respawn-window rotate-window run-shell save-buffer select-layout select-pane select-window send-keys send-prefix server-info set-buffer set-environment set-option set-window-option show-buffer show-environment show-messages show-options show-window-options source-file split-window start-server suspend-client swap-pane swap-window switch-client unbind-key unlink-window } compdef _tmux tmux
そしてtmuxと打ちこんだあとに[TAB]を押すと・・・
わーい全部出たwwwwww
と思っていたらちゃんと絞り込めます。
ワーイワーイ
とりあえずここまで。
このあと入力するべきオプションとかも補完できる気がする。
zshの補完についてはちゃんと勉強したいなぁ。
参考
Tmuxinator Zsh Completion - Claus Witt
zsh補完関数を自作すると便利 - HAKOBE blog ♨
zsh補完関数の書き方