zaw がよいそうなので使い始めてみた。
基本的なところ設定したあと、とりあえずこれがないと始まらないということで、tmux の現在の pane 内に表示されてる文字列を補完対象にするやつだけ追加で書いた。
function zaw-src-tmux-pane-strings() {
candidates=($(tmux capture-pane\; show-buffer \; delete-buffer | sed '/^$/d' | sed '$ d'))
actions=("zaw-callback-append-to-buffer")
act_descriptions=("append to edit buffer")
return 0
}
zaw-register-src -n tmux-pane-strings zaw-src-tmux-pane-strings
bindkey '^x^o' zaw-tmux-pane-strings
zsh + tmux で同じことやってはいてこれはこれで便利だったけど、先頭一致しないと絞りこまれないのが不便だった(zsh レベルが低いだけでうまいことやる方法知らないだけか?)。それがzaw により部分一致できるようになったのでだいぶ具合がよくなった。