Vimで別ファイルへコピー&ペーストする方法【レジスタ・クリップボード】

Vimで別ファイルへコピーする3つの方法

方法1:名前付きレジスタを使う

コピー元で範囲を選択し、名前付きレジスタaへヤンクします。

v        " ビジュアル選択
"ay      " レジスタaへコピー
:e target.txt
"ap      " レジスタaから貼り付け

通常のypでも別ファイルへ移動する間は内容を保持しますが、削除操作などで上書きされる可能性があります。確実に保持したい場合は名前付きレジスタが便利です。

方法2:分割画面で2ファイルを開く

:split target.txt     " 横分割
:vsplit target.txt    " 縦分割
Ctrl-w w              " ウィンドウ間を移動

コピー元でyyまたは選択後にy、コピー先へ移動してpを実行します。

方法3:OSのクリップボードを使う

"+y      " OSクリップボードへコピー
"+p      " OSクリップボードから貼り付け

"+レジスタは、Vimが+clipboard付きでビルドされている場合に使用できます。:versionで確認してください。

よく使うコマンド早見表

コマンド操作
yy現在行をコピー
5yy現在行から5行コピー
pカーソルの後へ貼り付け
Pカーソルの前へ貼り付け
:e file別ファイルを開く
:lsバッファ一覧
:bnext次のバッファへ移動
Vimをあんまり真面目に使ったことが無かったので、少し勉強し始めました。 早速、ファイル内の文字列を、別ファイルにコピーする方法です。 この場合、2つのファイルを同時に開く事で実現できます。 (例)index.php 内の文字列を index2.phpにコピーする
# vimでindex.phpを開く
vim index.php

# 別ファイルを開く
:new index2.php
ちなみに:new は:vs, :spでも別画面を開くことが出来ます。 (:vs 左右に開く, :sp 上下に開く) これで、ファイルを2つ同時に開くことが出来たと思います。 後は、ヤンク・プット等で指定の文字列を貼り付ければOKです。 (yyでヤンクして、pでコピーなど。) 各画面間の移動は以下のコマンドで移動します。
  • CTRL+w w カーソルを次のウィンドウに移動する
  • CTRL+w h カーソルを左のウィンドウに移動する
  • CTRL+w j カーソルを下のウィンドウに移動する
  • CTRL+w k カーソルを上のウィンドウに移動する
  • CTRL+w l カーソルを右のウィンドウに移動する
タイトルとURLをコピーしました