問題
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ステップですね。