komeの備忘録

東大院卒外資ITエンジニアの技術ブログ

.tmux.conf:62: usage: bind-key [-cnr] [-T key-table] key command [arguments]

Ubuntu18.04で、Ubuntu16.04で使っていたtmux.confを流用したら、エラーを吐いたのでトラブルシューティングした。

環境
Ubuntu18.04 Desktop

エラー

エラーメッセージ

従来と同じtmux.confをダウンロードしてtmuxを起動したら、下記のエラーメッセージが出力された。

/home/kome/.tmux.conf:62: usage: bind-key [-cnr] [-T key-table] key command [arguments] 

なにやらbind-key周辺で悲しいことになっているらしい。

62行目の確認とtmuxのバージョン

エラーメッセージを見るに62行目でエラーしていた。62行目は下記のとおりである。

bind -t vi-copy Enter copy-pipe "cat | xsel -i --clipboard"

多分コピー周りのエラーだと目星をつけて、次にバージョンの確認をする。

ちなみにUbuntu16.04ではtmuxのバージョンは2.1だった。

$ tmux -V
tmux 2.6

めっちゃ進化してた。。

間違いなく原因はこいつらだと見定め、引き続き調査した。

原因

いくつか同様のエラーを回避している人がいた。

qiita.com

github.com

簡単に言うと、コピーモードの記法をviライクにしたいときに用いていたvi-copyというコマンドが、copy-mode-viという記法に置き換わったかららしい。

対策

下記のように62行目を書き換えるとうまくいく

bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "cat | xsel -i --clipboard"  

まとめ

改悪かな?という感じ。ちなみにcopy-mode-viをcopy-modeにすると、emacsライクなキーバインドになるらしい。

参考にしたサイト

tmux2.4からvi-copyがcopy-modeに変わっていた

Upgrade to tmux 2.6 bind-key error messages · Issue #25 · salcode/ironcode-tmux · GitHub

tmuxからクリップボードにコピーする

linuxにおけるtmuxの設定(クリップボード, ステータスライン)

(C) komee.org