端末間でコピーする方法は?


11

Linuxシステムを使用しています。2つのvimが2つのターミナルで開かれます。次に、AからBにテキストをコピーします。そのための1つの方法は、Aでテキストを選択し、マウスを使用してコピーしてからBに切り替え、挿入モードでコマンド<c-r>+を使用してテキストを貼り付けることです。

とにかくマウスを使わずに実行することはありますか?"+yyAのように、Bに切り替えると、o<c-r>+?私はいくつかの組み合わせを無駄に探索しました。そして、「端末間でコピー」を検索しましたが、何も見つかりませんでした。

ユーザ@statox、すなわち、ビジュアルモードを使用して、一つの解決策を提案しv$"+y、A、Bにスイッチにo<c-r>+

vモードに入らずにAのテキストをコピーできる簡単な方法はありますか?確かにvモードに入るのにあまり多くのキーストライクは必要ありません。もっと良い方法があるかどうか疑問に思います。例えば。カーソルが行の中央にある場合、行yy全体を(registerに")コピーしますが、0v$y追加のキーストロークで同じことを行います。

それとも、私の質問は、より少ないキーストロークでどのような方法がある場合に減少させることができる0v$"+yためコピー私が使用できるように<alt-tab>o<c-r>+貼り付けます。


あなたの正確な問題は何ですか?あなたは解決策を持っているようです:ビジュアルモードでテキストを選択してください(なぜマウスを使うのですか?)それをクリップボードレジスタに"+y入れ、他のvimインスタンスにクリップボードレジスタを入れます"+p。またはこれの複製?
statox

何かをヤンクするためにビジュアルモードに入る必要はありません。yモーション(:help motion.txt)またはオブジェクト(:help object-select)で追跡できます。Vimのインスタンス間で頻繁にヤンクして貼り付ける場合、その設定clipboardが含まれている、unnamedまたはunnamedplus便利な場合があります。を参照してください:help 'clipboard'。その後、インスタンス間でのコピーが機能するはずです。
garyjohn、2015

1
私のコメントのポイントはビジュアルモードではありませんでしたが、実際には問題を理解するのに苦労しています:最初に、ある端末から別の端末にテキストをコピーするのが事実だと思っていましたが、今ではキーストロークをできるだけ少なくすることだと思われますクリップボードレジスタにヤンクできます。それが2番目のケースである場合、Garyjohnのコメントが関連します。
statox

1
0v$と同じVです。そして、次のマッピングを簡単に作成でき"+yます:nnoremap <Leader>y "+y。したがって、に減少しV\yます。
Martin Tournoij、2015

@Carpetsmokerあなたのソリューションは良いです。回答領域に貼り付けて頂ければ最適な解決策にしたいと思います。キーマップなしで、私の質問のコピーに対して私たちができる最善のことはV"+y、4回のキーストロークであるようです。
user3813057

回答:


9

Vimがクリップボードをサポートするように構築されているかどうかは、次の方法で確認できます。

:echo has('clipboard')

出力がの場合、1目標を達成するには以下で十分です。

"*y    in source Vim
"*p    in destination Vim

でクリップボードレジスタとデフォルトレジスタをこの設定と同期させることで、すべてをよりシームレスにすることができますvimrc

set clipboard^=unnamed

の出力がで:echo has('clipboard')ある場合は0vim-gtkまたはのような適切なVimをインストールすることを検討してくださいvim-gnome(パッケージの名前はディストリビューションごとに異なる場合があります)。


1

あなたの質問ですでに述べた解決策は正しいものだと思います。キーストロークの数を減らしたい場合は、単純にマップを作成できます。

vmap <leader>y "+y
vmap <leader>d "+d
nmap <leader>p "+p
nmap <leader>P "+P
vmap <leader>p "+p
vmap <leader>P "+P

ここの2番目のエントリを参照してください。


1

@romainlの答えを拡張するには、(クリップボードのサポートにより)システム全体のクリップボードと共有されるレジスターを使用できます。

"+y    To yank/copy from a vim-terminal
"+p    To paste in destination vim-terminal

"*y    To yank/copy from a vim-terminal
"*p    To paste in destination vim-terminal

これらのコマンドを実行することで、あなたはあるY anking /レジスタの内容を選択し、保存/コピーpは先のVim-端末にそれらをasting。これらの二つの特殊レジスタ+*システム全体のクリップボードと共有される(およびWebブラウザなど、したがって、他の多くのプログラム、geditのなど)。レジスター+はコピー/貼り付けバッファーに*関連付けられ、選択バッファー(Ubuntuなどでテキストフィールドを中クリックして選択のコピーを挿入するバッファー)に関連付けられ、ctrl + vctrl + shift + vgnome-terminalで)を使用して貼り付けることができます。


1

1)Fedoraでは、次のセットアップを使用します。

dnf install vim-X11

vim-X11にはクリップボードサポートが付属しています。他のディストリビューションでも同様です。

2).bashrcにエイリアスを設定する

alias vim="vimx"

3).vimrc内:

set clipboard=unnamedplus

これで、Vimの通常のヤンクがシステムのクリップボードに入り、vimの外にあるすべてのCtrl-Cをvimに貼り付けることができます。


0

あなたは、Mac(OSX)を使用している場合は、インストールすることができますbpcopy(使用pbcopyインストールBREW --see http://brew.sh/の詳細については)。次に、マウスに触れずに次のコマンドを実行します(直線形式のコマンドライン)。

例:

1)TERMINAL#001で

cat /tmp/stuff.txt | pbcopy

2)あなたは、内蔵のOSXのターミナルアプリケーションでのホットキーを使用して、マウスを使用せずに、端末#002()に切り替えることができますcommand+i

3)TERMINAL#002で:vimで新しいファイルを開きます

vi newfile

4)vimを 挿入モードにしますi

5)command+ Vを使用してクリップボードからテキストを挿入します(Macのクリップボードから貼り付けます)

6)残りの1日をお楽しみください!

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