私はtmux 1.6を実行しており、viスタイルのキーバインディングを使用して対話型モードでコピーするときにシステムクリップボードを使用するように設定したいと思います。
set-window-option -g mode-keys vi
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' "copy-selection && run \"tmux save-buffer | xclip -selection clipboard\""
Cつまり、+操作を実行し[てからvコピーするテキストの選択を開始し、押したときにyselectを使用して選択内容をtmuxにコピーし、それを使用してシステムクリップボードにエクスポートできるようにしますxclip
。
残念ながら、これを試してみると、次の内容が表示されます。
.tmux.conf: 14: unknown command: copy-selection && run "tmux save-buffer | xclip -selection clipboard"
tmux設定でこれを行う方法はありますか?
ベストアンサー1
これも答えたここですが、使い方を理解するのに時間がかかりましたので、混乱している方のために説明させていただきます。
これは基本的に希望の設定です。
(tmuxの場合バージョン<2.5)
bind -t vi-copy y copy-pipe 'xclip -in -selection clipboard'
(tmuxの場合バージョン>=2.5)
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
次にクリックしてCtrl+b
[
コピーモードに入ります。次に、Space
vi 移動キーを押して選択します。次に、Enter
クリックする代わりにクリックすると、y
選択内容がクリップボードにコピーされます。
注:これは、viキーでtmuxのデフォルトバインディングを使用すると想定しています。
Tmuxには、モードごとに異なるキーバインディングテーブルがあります。そのため、コピーモードでキー操作を設定してくださいbind-key -t vi-copy y
。最初は選択後にボールを打つy
のが慣れて混乱しました。実際には、コマンドの主キーバインディングです(コピーモードで)。このコマンドを使用すると、新しいキーをバインドして選択内容をコマンドに渡すことができます(この場合)。Enter
Enter
copy-selection
copy-pipe
xclip
を実行すると、コピーモードのすべてのキーバインディングを表示できますlist-keys -t vi-copy
。