web-dev-qa-db-ja.com

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

TmuxでXクリップボードにテキストをコピーするために、私が現在行っていることは次のとおりです。

  • で選択モードに入る prefix[
  • 選択を開始 spacemode-keys vi btwを使用)
  • テキストを選択して押します 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"
22
none

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

保持することで、キー/マウスイベントのtmuxへの受け渡しを一時的に停止できます。 shift。そのため、Shiftキーを押したまま、ターミナル/ Xの通常のショートカットを使用してコピーを実行できます。私の場合、ターミネーターを使用して、 shift、好きなようにマウスでハイライトし、コピーして Ctrl+Shift+C

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

13
Muneeb

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

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

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

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

1
serv-inc