powerlevel10kとfzf-tmux

zshのプロンプトをpureからpowerlevel10kに移行しようとしたところ、fzf-tmuxと食い合わせが悪いことがわかった。 以下のような関数で再現する。

func() { var=$(fzf-tmux); print -z $var }

例えばREADME.mdを選択すると、

❯ README.md

となってほしいところ、何故か表示上では

❯ README.mdREADME.md

となってしまう。なお表示がおかしいだけで、実際のコマンドライン内容には問題ない。

デフォルトオプションのfzf-tmux -dだとほぼ確実に起こり、fzf-tmux -rだとまず起こらない。fzf-tmux -uだと起こったり起こらなかったり。

原因はおそらく、tmuxでウインドウのリサイズが走るため。 https://github.com/romkatv/powerlevel10k/blob/master/README.md#horrific-mess-when-resizing-terminal-window 公式ドキュメントにもリサイズはおかしくなると書いてあるので、Issue等は作成していない。

対処法としてはfzf単体を使うか、fzf-tmux -rなどとして横分割にするか。 横分割は画面の描画が崩れてしまい辛いので、私はとりあえずfzf単体で使ってみることにした。