Vimで別ファイルへコピーする3つの方法
方法1:名前付きレジスタを使う
コピー元で範囲を選択し、名前付きレジスタaへヤンクします。
v " ビジュアル選択
"ay " レジスタaへコピー
:e target.txt
"ap " レジスタaから貼り付け
通常のyとpでも別ファイルへ移動する間は内容を保持しますが、削除操作などで上書きされる可能性があります。確実に保持したい場合は名前付きレジスタが便利です。
方法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で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 カーソルを右のウィンドウに移動する

