回答:
tmuxショートカットを使用する必要があります。tmuxコマンドのショートカットがデフォルトであると仮定すると:Ctrl+ b、その後:
Ctrl+ b、[copy(?)モードに入ります。
テキストの先頭/末尾に移動して強調表示します。
Ctrlspace
テキストの強調表示を開始します(Arch Linuxの場合)。OSXや他のLinuxのソースからtmuxをコンパイルすると、Space通常はそれだけで機能します。選択したテキストの色が変わるため、コマンドが機能したかどうかがわかります。
コピーするテキストの反対側に移動します。
Alt+ w選択したテキストをtmuxクリップボードにコピーします。(MacではEsc+を使用しますw。)
カーソルを反対側のtmuxペイン、またはまったく異なるtmuxウィンドウに移動します。コピーしたテキストを貼り付ける場所にカーソルを置きます。
Ctrl+ b、]tmuxクリップボードからコピーしたテキストを貼り付けます。
tmuxは、コマンドをカスタムキーボードショートカットにマッピングするのに非常に優れています。
参照してくださいCtrl+ b、?セットのキーボードショートカットの完全なリストについて。
screen
ショートカットを使用する場合:(Ctrl + A [
コピーモードに入る)、Space
(強調表示を開始する)、Enter
(強調表示を終了する)、Ctrl + A ]
(貼り付け)。
Enter
キーに置き換える必要があります。
macOSでvimとtmuxを使用している場合(macOS 10.12.2、tmux 2.3でテスト済み):
(tmuxのプレフィックスキーの組み合わせはであると仮定しますprefix。デフォルトでは、プレフィックスはctrl+ bです。)
通常のyとpの代わりに、「* yと "* p」を使用してシステムクリップボードを使用できます。
"+2yy
2行をX11クリップボードにコピーします– X11クリップボードに"+dd
行をカットします– X11クリップボードを"+p
貼り付けます
h,j,k,l
へまた、ubuntu VMで「+」レジスタが消える場合もありますが、理由は不明です。+
レジスタがあること:reg
を確認するには"+
、最初の列に文字列が入力されているかどうかを確認します
y
とp
に"+y
と"+p
?
vim
開いている場合は、vim copy pasteを使用してテキストをコピーすることをお勧めします。
Tmuxのコピーペーストは機能しますが、いくつかの欠点があります。
まず、複数行のテキストをコピーする場合、複数行を選択する必要があります。Tmuxコピーペーストは、通常、vim
行番号があるか、vimガターにマークがある(相対番号/絶対番号など)ことを理解しません。その結果、それらもコピーされます。
次に、テキストに特定の言語固有の書式設定があり、tmuxを使用してvimに直接貼り付けてコピーしようとすると、書式設定が台無しになることがわかりました。これはを使用して回避できますset paste!
。ただし、これにはさらに多くの作業が必要です。
"+y
コピーすると、"+p
貼り付けますVim
"+y
またはを使用して、vimバッファーとシステムクリップボードの間で貼り付けをコピーする方法をネイティブで提供します"*y
。次に"+p
またはを使用して貼り付け"*p
ます。これにより、Vimに関係のないガターまたはその他のランダムマークの相対番号のコピーを回避できます。
tmuxショートカットシーケンスが少し長く、覚えにくいので、vimを使用するためのいくつかのオプション
上記の回答のように、とを使用"+y
し"*y
てコピーしてから"+p
、"*p
それぞれ貼り付けることができます。vimがデフォルトでクリップボードを使用するようにしたい場合は、y/p
そのまま直接使用できます。
set clipboard=unamed "sets the default copy register to be *
set clipboard=unamedplus "sets the default copy register to be +
クリップボードコマンドのソース:https : //vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
:w /tmp/lines
し、:r /tmp/lines
他のインスタンスで)。または、Vimがシステムクリップボードと通信する方法を知っている場合は、+
またはを使用し*
て一時ファイルを回避できます。