viminfoファイルを利用して、vimエディタウィンドウ間でデータを転送する
vimエディタの作業中の状態を一度、.viminfoファイルに書き出してから、 別のvimエディタで.viminfoファイルを読み込むことにより、 ウィンドウ間でヤンクのデータ、レジスタ、コマンド履歴、検索履歴などの情報を 共有する方法を紹介します。 (Windows, Mac)
概要
vimエディタの作業中の状態を一度、.viminfoファイルに書き出してから、
別のvimエディタで.viminfoファイルを読み込むことにより、
ウィンドウ間でヤンクのデータ、レジスタ、コマンド履歴、検索履歴などの情報を
共有する方法を紹介します。
.viminfoファイルについて
.viminfoファイルは、通常、vimエディタの終了時に作成、更新されるファイルで、 コマンド、検索履歴、レジスタなどの情報が格納されています。 vimエディタが前回編集時の情報を最初から持っているのは、 .viminfoファイルを起動時に読み込んでいるためです。
この.viminfoファイルは、vimエディタ終了時、起動時以外でも、
「:wv」コマンド、「:rv」コマンドを実行すれば読み書きできるので、
.viminfoファイルを経由して、
レジスタや各種履歴データを、あるウィンドウからあるウィンドウまで渡してしまおう、
というのが今回の話になります。
作業手順
例として、vimエディタのウィンドウが2つあり、
片方のウィンドウからもう一方のウィンドウに
データを転送する場合の作業手順を説明します。
転送元のvimエディタで、.viminfoファイルを出力する
まず、データを送り込む側のvimエディタウィンドウで「:wv」コマンドを実行し、
現在の状態を.viminfoファイルに書き出します。
:wv
転送先のvimエディタで、.viminfoファイルを読み込む
次に、データを受け取る側のvimエディタに移動し、
「:rv!」コマンドで.viminfoファイルに記述されたデータを読み込み、
現在の状態を上書きします。
:rv!
データが転送されました
この操作を行うと、.viminfoファイルを読み込んだ側のvimエディタで、
渡されたヤンクのデータ、レジスタ、ファイルのマーク情報、コマンド履歴、検索履歴などを
操作できるようになります。
.viminfoファイルで記録するデータ
この方法によりウィンドウ間で送信できるデータは、
.viminfoファイルに記録しているデータに限られます。
つまり、.viminfoファイルにデータを記録しない設定にしていると、
この方法は使用できません。
.viminfoファイルに記録するデータの設定方法は、 vimエディタのヘルプ「21.3」を参照してください。
:help 21.3 " optionsの項にも説明がある :help options | /*'viminfo'*
注意事項など
実際の場面では、クリップボードを使ってウィンドウ間のデータの受け渡しを行えば
必要十分なケースが多いので、
クリップボードの使い方も知っておくと便利です。