最初のvimを使用して行をコピーする場合(yy
を使用)、別の端末のvimに(p
を使用して)貼り付けるにはどうすればよいですか?それを行うことができるコマンドまたは設定はありますか?グローバルシステムのクリップボードにコピーして貼り付けることはできますか?
私は次の方法が可能であることを知っていますが、もっと簡単な方法が欲しいです:
最初のvimを終了して、2番目のvimを再度開きたくありません。
別のウィンドウ(:sp
を使用)を使用したくありません。
まず、vimのクリップボード対応バージョンをインストールする必要があります。非グラフィカル環境のユーザー(Ubuntu Serverユーザーなど)に対応するため、vim
およびvim-tiny
はこの機能にフックしません。 GVim 。グラフィカルまたは端末で起動します。 GVimはvim
コマンドを置き換えます。
最初のvimから「カットバッファー」にテキストをヤンクしてから、2番目のvimにテキストを貼り付けることができます。グローバルカットバッファにコピーするには、+
レジスタを使用します。 "
キーを使用すると、ヤンクまたは貼り付け操作を行うときに使用するレジスタを指定できます。
最初のvimで、+
レジスタに行をヤンクします。
"+yy
次に、2番目のvimの+
レジスタから貼り付けるには:
"+p
使用可能なレジスタの詳細については、:help registers
をご覧ください。 "+p
を使用して、システム上の他のソースからコピーしたテキストを貼り付けることもできます。
私のために働いた最高のソリューション(キーバインドの習慣を変更する必要はありません)はここにあります: https://stackoverflow.com/questions/9166328/how-to-copy-selected-lines-to- clipboard-in-vim
置くだけ:
set clipboard=unnamedplus
.vimrc
で。
私はビルのソリューションが好きで、マッピングを作成しました:
vmap <leader>y :w! /tmp/vitmp<CR>
nmap <leader>p :r! cat /tmp/vitmp<CR>
ビジュアルモードの最初のものはすべて/ tmp/vitmpにコピーし、2番目のものはファイルの/ tmp/vitmpからコンテンツをコピーします
さまざまなUnixファミリマシン間を移動し、次のシーケンスが常に機能することを発見しました。
ソースviセッション:
ESC m a
を使用して最初の行をマークしますESC m b
を使用して最後の行をマークします:'a,'b w! xfer
を使用して範囲をスクラッチファイルに書き出します宛先セッション:
ESC :r xfer
を使用してテキストを読む私はそれがきれいではないことを知っていますが、それは私のために常に機能します!
実際には非常に簡単です。クリップボードをサポートする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
が表示されます。
あなたはおそらくこの答えを嫌います。私は80年代にさまざまなUnixコンピューターでviで働いていましたが、最近Linuxで遊ぶ機会がありました。
カットアンドペーストの私のソリューションは、Windowsで実行されているPuTTYを使用してLinuxボックスにアクセスすることです。
PuTTYでは、強調表示するだけで、ウィンドウ内の任意のtxtをコピーできます。その後、別のPuTTYウィンドウ/セッションに移動し、右クリックして貼り付けます。
簡単にできませんでした。そして今、vimがあります。あまりにもひどく、それは私の時代にはなかったので、emacsのマフィアをかわすのに役立ちました。
Yyを正確に使用しているわけではありませんが、マウスでコピーするテキストを選択する場合(Shift- [ドラッグ]を使用する必要がある場合があります)、他のターミナルウィンドウに切り替えて[中クリック]またはShift- [middleクリック]をクリックすると、現在の挿入ポイントにテキストが挿入されます。
これは、vimだけでなく、ほとんどのコマンドラインおよびGUIプログラムで機能します。