web-dev-qa-db-ja.com

端末間でのVimのコピーと貼り付け

通常のvim yankpasteは、同じウィンドウでのみ機能します(ただし、ファイル間およびclose/saveコマンドで機能します)。端末間で機能させることはできますか(1つの端末のウィンドウからヤンクして別の端末に貼り付けます)。

20
JP19

おそらく、あなたが試す最も簡単なことは、set clipboard=unnamedあなたの.vimrcとvimセッションを再起動します。

これにより、1つのウィンドウでyank(例:yy)を実行でき、別のウィンドウでput(例:p)が機能します。同じX選択バッファーを共有します。

欠点としては、アプリケーションの他のウィンドウでテキストを選択するとすぐに、ヤンクバッファーが上書きされます。

利点としては、vimでヤンクしたものはすべて、中クリックで任意のアプリケーションに貼り付けることができることも意味します。

その方法が気に入らない場合は、"+または"* yankとputコマンドの前。 "+yy行をヤンクします。

+フォームはクリップボードと相互作用します("+y のようなものです Ctrl+C"+p のようなものです Ctrl+V)。
*フォームは、選択バッファー("*yは左クリックアンドドラッグのようなもので、"*pは中クリックのようなものです)。

詳細については、 GUI選択の選択X11選択サポート 、および クリップボード および マウス オプションを参照してください。

30
Mikel

承認されたソリューションは、ヘッドレスセットアップ(X11なし)では機能しません。任意のvim環境で機能する解決策は、選択を一時ファイル:w! /tmp/temp_fileに書き込み、そのファイルから他のvimインスタンス:r! cat /tmp/temp_fileに貼り付けることです。

これらの2つのコマンドは、<leader>y<leader>pおよび.vimrcとしてマップされています。

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

ソース

1
crypdick

ファイル全体をターゲットファイルにコピーする場合。

ターゲットファイルをvimで開きます。

必要な場所にカーソルを置き、次のように入力します。

:r /path_to_file/file.ext

これにより、ファイル全体がカーソルのある場所にコピーされます...

0
no1uknow