セクション

viminfoファイルを利用して、vimエディタウィンドウ間でデータを転送する

作者: 小見 拓 最終変更 2009年12月05日 19時26分

vimエディタの作業中の状態を一度、.viminfoファイルに書き出してから、 別のvimエディタで.viminfoファイルを読み込むことにより、 ウィンドウ間でヤンクのデータ、レジスタ、コマンド履歴、検索履歴などの情報を 共有する方法を紹介します。 (Windows, Mac)

概要

vimエディタの作業中の状態を一度、.viminfoファイルに書き出してから、
別のvimエディタで.viminfoファイルを読み込むことにより、
ウィンドウ間でヤンクのデータ、レジスタ、コマンド履歴、検索履歴などの情報を
共有する方法を紹介します。

データの移動

.viminfoファイルについて

.viminfoファイルは、通常、vimエディタの終了時に作成、更新されるファイルで、 コマンド、検索履歴、レジスタなどの情報が格納されています。 vimエディタが前回編集時の情報を最初から持っているのは、 .viminfoファイルを起動時に読み込んでいるためです。

この.viminfoファイルは、vimエディタ終了時、起動時以外でも、 「:wv」コマンド、「:rv」コマンドを実行すれば読み書きできるので、
.viminfoファイルを経由して、 レジスタや各種履歴データを、あるウィンドウからあるウィンドウまで渡してしまおう、
というのが今回の話になります。

参考: vimエディタが(勝手に)作成する、一見、不要に見えるファイルが何をしているか

作業手順

例として、vimエディタのウィンドウが2つあり、 片方のウィンドウからもう一方のウィンドウに
データを転送する場合の作業手順を説明します。

実行前の段階では、2つのウィンドウのレジスタの状態は違う

転送元のvimエディタで、.viminfoファイルを出力する

まず、データを送り込む側のvimエディタウィンドウで「:wv」コマンドを実行し、
現在の状態を.viminfoファイルに書き出します。

:wv
状態をviminfoファイルに書き出す

転送先のvimエディタで、.viminfoファイルを読み込む

次に、データを受け取る側のvimエディタに移動し、
「:rv!」コマンドで.viminfoファイルに記述されたデータを読み込み、 現在の状態を上書きします。

:rv!
状態をviminfoファイルから読み込む

データが転送されました

この操作を行うと、.viminfoファイルを読み込んだ側のvimエディタで、
渡されたヤンクのデータ、レジスタ、ファイルのマーク情報、コマンド履歴、検索履歴などを 操作できるようになります。

実行後、2つのウィンドウのレジスタの状態は同じになった

.viminfoファイルで記録するデータ

この方法によりウィンドウ間で送信できるデータは、 .viminfoファイルに記録しているデータに限られます。
つまり、.viminfoファイルにデータを記録しない設定にしていると、 この方法は使用できません。

.viminfoファイルに記録するデータの設定方法は、 vimエディタのヘルプ「21.3」を参照してください。

:help 21.3

" optionsの項にも説明がある
:help options | /*'viminfo'*

注意事項など

実際の場面では、クリップボードを使ってウィンドウ間のデータの受け渡しを行えば 必要十分なケースが多いので、
クリップボードの使い方も知っておくと便利です。

参考: vimエディタからクリップボードを利用する。

ドキュメントアクション
コメント
{no}. {user_name}  {posted}
{message_body}

(必須)
氏名を入力してください。
Eメールアドレスを入力してください。
(必須)
送りたいメッセージを入力してください。
Recent Comment
EnhCommentify.vim : 複数のファイルタイプに対応したソースコメントアウト、コメントアウト解除スクリプト — 名無しのvim使い
==> anonymous [2010/03/22 06:32:47]
vimエディタから外部のプログラムやコマンドを実行する。 — 名無しのvim使い
==> 通りすがりnoです [2010/02/04 18:28:49]
==> 通りすがりの者です [2010/02/04 18:30:28]
==> 通りすがりのものです2 [2010/02/04 18:41:38]
PCに昨日初めてさわった人でもわかるgvim超々入門 (Windows、vim6) — 名無しのvim使い
==> anonymous [2009/11/05 11:57:11]
==> 佐藤 よしお [2009/11/27 15:53:34]
==> 小見 拓 [2009/11/27 18:40:42]
==> anonymous [2010/01/06 19:48:09]
Update Feed
RSS1.0 / RSS2.0 / ATOM