web-dev-qa-db-ja.com

vimの異なるインスタンス間でデータをコピーする方法は?

最初のvimを使用して行をコピーする場合(yyを使用)、別の端末のvimに(pを使用して)貼り付けるにはどうすればよいですか?それを行うことができるコマンドまたは設定はありますか?グローバルシステムのクリップボードにコピーして貼り付けることはできますか?

私は次の方法が可能であることを知っていますが、もっと簡単な方法が欲しいです:

  1. 最初のvimを終了して、2番目のvimを再度開きたくありません。

  2. 別のウィンドウ(:spを使用)を使用したくありません。

40
sam

まず、vimのクリップボード対応バージョンをインストールする必要があります。非グラフィカル環境のユーザー(Ubuntu Serverユーザーなど)に対応するため、vimおよびvim-tinyはこの機能にフックしません。 GVimInstall GVim 。グラフィカルまたは端末で起動します。 GVimはvimコマンドを置き換えます。

最初のvimから「カットバッファー」にテキストをヤンクしてから、2番目のvimにテキストを貼り付けることができます。グローバルカットバッファにコピーするには、+レジスタを使用します。 "キーを使用すると、ヤンクまたは貼り付け操作を行うときに使用するレジスタを指定できます。

最初のvimで、+レジスタに行をヤンクします。

"+yy

次に、2番目のvimの+レジスタから貼り付けるには:

"+p

使用可能なレジスタの詳細については、:help registersをご覧ください。 "+pを使用して、システム上の他のソースからコピーしたテキストを貼り付けることもできます。

49
Jeremy Kerr

私のために働いた最高のソリューション(キーバインドの習慣を変更する必要はありません)はここにあります: https://stackoverflow.com/questions/9166328/how-to-copy-selected-lines-to- clipboard-in-vim

置くだけ:

set clipboard=unnamedplus

.vimrcで。

20
bhh1988

私はビルのソリューションが好きで、マッピングを作成しました:

vmap <leader>y :w! /tmp/vitmp<CR>                                                                   
nmap <leader>p :r! cat /tmp/vitmp<CR>

ビジュアルモードの最初のものはすべて/ tmp/vitmpにコピーし、2番目のものはファイルの/ tmp/vitmpからコンテンツをコピーします

9
Samir Sadek

さまざまなUnixファミリマシン間を移動し、次のシーケンスが常に機能することを発見しました。

ソースviセッション:

  1. ESC m aを使用して最初の行をマークします
  2. ESC m bを使用して最後の行をマークします
  3. :'a,'b w! xferを使用して範囲をスクラッチファイルに書き出します

宛先セッション:

  1. カーソルを挿入行に移動します
  2. ESC :r xferを使用してテキストを読む

私はそれがきれいではないことを知っていますが、それは私のために常に機能します!

5
Bill

実際には非常に簡単です。クリップボードをサポートするvimのバージョンをインストールします。 vimがそうでない場合は、次のいずれかを取得します。

Sudo apt-get install vim-athena
Sudo apt-get install vim-gnome
Sudo apt-get install vim-gtk

インストールしたら、vimを実行します。次を実行して、クリップボードが有効になっていることを確認することもできます。

 vim --version|grep clipboard

+xterm_clipboardが表示されます。

2
FuzzyAmi

あなたはおそらくこの答えを嫌います。私は80年代にさまざまなUnixコンピューターでviで働いていましたが、最近Linuxで遊ぶ機会がありました。

カットアンドペーストの私のソリューションは、Windowsで実行されているPuTTYを使用してLinuxボックスにアクセスすることです。

PuTTYでは、強調表示するだけで、ウィンドウ内の任意のtxtをコピーできます。その後、別のPuTTYウィンドウ/セッションに移動し、右クリックして貼り付けます。

簡単にできませんでした。そして今、vimがあります。あまりにもひどく、それは私の時代にはなかったので、emacsのマフィアをかわすのに役立ちました。

2
srtour2011

Yyを正確に使用しているわけではありませんが、マウスでコピーするテキストを選択する場合(Shift- [ドラッグ]を使用する必要がある場合があります)、他のターミナルウィンドウに切り替えて[中クリック]またはShift- [middleクリック]をクリックすると、現在の挿入ポイントにテキストが挿入されます。

これは、vimだけでなく、ほとんどのコマンドラインおよびGUIプログラムで機能します。

1
Sergey