.tmux.confのショートカットを(Xクリップボードに)コピーします


22

tmuxでXクリップボードにテキストをコピーするために、私が現在していることは:

  • で選択モードに進む prefix[
  • で選択を開始spacemode-keys vibtw を使用)
  • テキストを選択して押します enter
  • を使用してtmuxバッファをXクリップボードにコピーします prefixctrl+c

(マッピングがあります bind C-c run "tmux show-buffer | xclip -selection clipboard -i"

選択モードのマッピングを作成することで、これらの手順の一部を排除しようとしています。私が試してみました:

bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"

私とエラーが発生します:

.. usage: bind-key [-cnr] [-t key-table] key command [arguments]

(エラーをコピーできませんでした)

どうすれば修正できますか?

編集:私は選択して、通常の選択と同じようにマウスを使用してtmuxバッファ(最初の3つのステップ)にコピーし(強調表示は持続しませんが、テキストを選択します)、次のバインドを使用してxクリップボードにコピーできることに気付きました:

bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"

(このメソッドを使用してこのテキストをコピーしましたが、簡単でした;)

-n「接頭辞なし」を示すことに注意してください。したがって、エスケープする必要はありません。消失するハイライトに混乱しない場合、これは通常の(一般的なユーザーインターフェイス)コピーに似ています。

これは私がこれまでに思いついた最高のものです。

EDIT2:ctrl+cプロセス割り込みの事と重複することが判明したのでctrl+alt+c、今のところに変更しました。(気に入らなかった)

EDIT3: tmux 1.8程度で、コピーモードでキーバインドを追加するサポートが追加されたため、次のようなものを使用して最初の最初の意図が可能になりました。

bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"

これらの2つのバインディングにより、使用時にテキストをクリップボードにコピーしenterたりy、コピーを終了したりできます。

マウスでコピーし、後でtmuxバッファーの内容をクリップボードに入れることにした場合に備えて、この行を保持します。

bind-key y run "tmux show-buffer | xclip -selection clipboard -i"

1
割り込みをctrl-cからsttyを使用して他の何かに変更できます。たとえば、Ctrl-Z:を使用するにはstty intr=^Z。このコマンドには注意してください。通常の文字を割り込み文字に設定することは可能です(設定する場合は、設定を修正するまでctrl-vを使用して入力してください)。また、どのキーが使用されているかについて混乱しないでください(例:ctrl-zは通常サスペンドキーです)。

@ashは書き留めました、ありがとう..しかし^c、コピーするよりも頻繁に使用するので、私は割り込みキーとして保持すると思います。また、この問題に対する現在の解決策を反映するために、回答を更新しました。
なし

いいですね。また、xmodmapを何度も実行すると、修正が困難な面白い状態になる可能性があるため、コマンドの影響が正しくないと思われる場合は、新しいXセッションで新たに開始することをお勧めします。

実行中のbind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"ライブは与える:Unknown command: run
Alexejマグラ

1
ただし、実行bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"は正常に機能します。
アレクセイマグラ

回答:


13

この返信は、ショートカットの作成に関する質問には直接回答しません。しかし、ここに私がやることがあります。

を押して、キー/マウスイベントをtmuxに渡すことを一時的に停止できますshift。そのため、Shiftキーを押したまま、ターミナル/ Xのユーザーショートカットを押してコピーを実行できます。私の場合、ターミネーターを使用して、を押しshift、マウスで必要なものをハイライトし、コピーしますCtrl+Shift+C

また、ペインが分割されている場合は、zoom-toggle-keyを使用して現在のペインをズームしPrefix + z、コピー操作を実行できます。(tmux v1.8でテスト済み)


水平方向の分割のため、これを使用できませんでしたが、ズームトリックは素晴らしいと思います。ヒントをありがとう。
なし14

これは確かにgnome-terminalで機能します。しかし、それはすべての端末エミュレータに適用されますか?おそらくない
jpaugh

wsl-terminalでは、これは機能します。私の一日を節約してください!
キンシー

1

これはあなたの質問に直接答えるわけではありませんが、tmuxのviコピーモードでシステムクリップボードを使用し、tmuxバッファーをクリップボードにコピーするで説明されているtmux-yankを見てください。インストール後、

prefix + y -コマンドラインからクリップボードにテキストをコピーします。

コピーモードバインディング:

y -選択をシステムのクリップボードにコピー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.