tmuxのvi-copyモードでシステムクリップボードを使用する

tmuxのvi-copyモードでシステムクリップボードを使用する

私は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 [コピーモードに入ります。次に、Spacevi 移動キーを押して選択します。次に、Enterクリックする代わりにクリックすると、y選択内容がクリップボードにコピーされます。

注:これは、viキーでtmuxのデフォルトバインディングを使用すると想定しています。

Tmuxには、モードごとに異なるキーバインディングテーブルがあります。そのため、コピーモードでキー操作を設定してくださいbind-key -t vi-copy y。最初は選択後にボールを打つyのが慣れて混乱しました。実際には、コマンドの主キーバインディングです(コピーモードで)。このコマンドを使用すると、新しいキーをバインドして選択内容をコマンドに渡すことができます(この場合)。EnterEntercopy-selectioncopy-pipexclip

を実行すると、コピーモードのすべてのキーバインディングを表示できますlist-keys -t vi-copy

おすすめ記事