あるtmuxウィンドウから別のウィンドウにテキストをコピーする(vimを使用)

あるtmuxウィンドウから別のウィンドウにテキストをコピーする(vimを使用)

vimでは、それぞれtmuxウィンドウに2つのファイルが開いています。あるファイルから別のファイルに10行をコピーしたいです。

マウスの->を使用せずにCopyこれを行うにはどうすればよいですかPaste

答え1

tmux ショートカットを使用する必要があります。 tmux コマンドのショートカットがデフォルトのCtrl+bであると仮定すると、次のようになります。

  1. Ctrl+ b[コピー(?)モードに入ります。

  2. 強調表示するテキストの開始/終了に移動します。

  3. Ctrl+Space

テキストの強調表示を開始します(Arch Linuxの場合)。 OSXや他のLinuxのソースからtmuxをコンパイルすると、通常はそれ自体がSpace機能します。選択したテキストの色が変わるため、コマンドが機能しているかどうかがわかります。

  1. コピーするテキストの反対側に移動します。

  2. Alt+w選択したテキストをtmuxクリップボードにコピーします。
    MacではEsc+を使用してくださいwEnter上記のいずれかの方法がうまくいかない場合は、以下を試してください。

  3. カーソルを反対側の tmux ウィンドウに移動するか、まったく別の tmux ウィンドウに移動します。コピーしたテキストを貼り付ける場所にカーソルを置きます。

  4. Ctrl+ b]tmuxクリップボードからコピーしたテキストを貼り付けます。

tmuxコマンドをカスタムキーボードショートカットにマッピングするのは非常に上手です。

設定キーボードショートカットの完全なリストについてはCtrl+を参照してくださいb?

答え2

残念ながら、まだAlex Leachの回答にコメントを追加できないので、Mac OS Xユーザーのためにここに付録を追加します。

  1. Enter選択したテキストのコピー

答え3

macOSでvimとtmuxを使用している場合(macOS 10.12.2、tmux 2.3でテスト済み):

(tmuxのプレフィックスキーの組み合わせを仮定すると、デフォルトのprefixプレフィックスはctrl+です。)b

  • コピー:
    1. prefix+を押して[コピーモードに入ります。
    2. 矢印キーを使用してテキスト選択の開始/終了に移動します。
    3. ctrl+を押します(+をプレフィックスに設定したspace場合は、代わりに++を押します)。ctrlspacectrlspacespace
    4. 矢印キーを使用して選択項目の反対側に移動します。
    5. ctrl+を押しますw
  • 生地:
    1. 挿入モードでprefix+を押します。]

答え4

すでにvim開いている場合は、vimのコピー - 貼り付けを使用してテキストをコピーするのが最善です。

Tmuxコピー - 貼り付けは機能しますが、いくつかの欠点があります。

まず、複数行のテキストをコピーするときは、複数行を選択する必要があります。 Tmuxコピー - 貼り付けは通常、vimvimマージンの行番号やマーカー(相対数/絶対数など)を理解しません。その結果、これらの項目もコピーされます。

次に、テキストに言語固有の書式があり、tmuxを使用してvimに直接コピーして貼り付けようとすると、書式がめちゃくちゃになることがわかりました。これはを使用して防ぐことができますset paste!。しかし、これにはより多くの作業が必要です。

コピーして"+y貼り"+p付ける

Vim"+yこのシステムは、またはを使用してvimバッファとシステムクリップボードの間にコピーして貼り付ける方法を提供します"*y。次に、またはを使って"+p貼り付けます"*p。これにより、余白の相対数やvimに関連しない他のランダムな表示がコピーされるのを防ぎます。

関連情報