問題
tmux2.3から2.4にアップデートしたところ,コピーモードに関するキーバインドで"invalid or unknown command"というエラーを吐くようになってしまいました...(泣
備忘録として解決策をここに記しておきます。
詳しい解決方法は解決への3ステップを御覧ください。
解決策
私は.tmux.confに次のようなコピーモードに関するキーバインドを記述しています。同じような設定をしている人も多いのではないでしょうか。
# 範囲選択後 prefix + y でコピー&コピーモード終了
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
tmux2.4ではvi-copy
コマンドが使えなくなっています。また,copy-pipe
だけではコピー後にコピーモードを終了してくれなくなっています。
次のように変更することでエラーを吐かなくなりました。
# 変更後
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
emacs派の人は-t vi-copy
のところが-t emacs-copy
になっていると思います。当てはまる方は-T copy-mode-vi
のところを-T copy-mode
にするといいみたいです。
原因
tmuxバージョン2.4ではkey tableに区別がなくなり,これまで使えていたコマンドがリネームされたり削除されているっぽい。そのせいでバージョン2.3まで使えていたコマンドが使えなくなったみたいです。
key table名前変更による問題を解決する詳しい方法(追記 2017/5/2)
コメントで@revivreさんに教えていただいた詳しい解決方法を追記します。@revivreさん,ありがとうございました。
解決への3ステップ
- フラグ
-t
を-T
に変更する -
vi-<name>
を<name>-mode-vi
に変更する - 実行するコマンドの前に
send -X
もしくはsend-keys -X
を追加する
<name>にはcopy
, edit
, choose
などのtableが入ります。
確かに解決策で行ってることは,この3ステップですね。