タイトルの質問に対する答えは、あなたが観察したものです。vimユーザーマニュアルから:help 21.3
Vimを複数回実行すると、最後に終了したものがその情報を保存します。これにより、以前に保存されたVimsに保存されていた情報が失われる可能性があります。各アイテムは一度だけ記憶できます。
ただし、viminfoファイルのファイル名(グローバルマークやレジスタコンテンツなど、設定されている場合はコマンド履歴が保存される場所)は変更可能です!これは、vimの異なるプロジェクトまたはインスタンスに対して異なる「履歴」を設定できることを意味します。プロジェクトごとに複数のvimインスタンスを実行しないと仮定すると、vimrc(または他のプロジェクト設定プラグイン)を介してviminfoファイル名を管理することは、これを処理するための優れた方法です。
代替viminfoファイルのセットアップ
プロジェクトレベルの管理では、viminfoを別のファイルに保存するようにvimを構成します。これは、終了する前に実行中のvim内で、またはvimrcによって実行できます。たとえば、vimrcに特定のディレクトリをプロジェクトに属するものとして検出する行がある場合があります。
:set viminfo+=nPath/to/custom/viminfofile
ディレクトリに基づいてvimrcがこれを自動的に設定する例:
if getcwd() == "/projects/projA"
set viminfo+=n~/.viminfo-projA
endif
上記の結果、vimが/ projects / projAディレクトリで起動されると、プロジェクト固有の履歴が起動時にロードされ、終了時に保存されます。
起動時に代替viminfoをロードします
これは、プロジェクトレベルで履歴を管理せずに、履歴を横に保存して後で読み込む場合に適しています。
最初に、履歴を保存するには、終了する前に上記のようにviminfoオプションに追加します。次に、履歴をロードするには、-iオプションを使用してvimを起動します
vim -i Path/to/custom/viminfofile
viminfoファイルを保存するためにvimを終了したくない場合は、:wv
(:wviminfo
)を使用できます。これにより、上記のn設定に従ってvimを終了せずにviminfoファイルが保存されます。また、:wv SomeOtherFile
viminfoオプションの設定とは異なる場所に保存することもできます。これは、終了時に使用するファイル名を設定するよりも便利かもしれませんが、vimが終了したらデフォルトファイルを使用することを止めません。
たとえば、最初のvimの場合:
:wv ~/customInfo
そして、2番目のターミナルで:
vim -i ~/customInfo
または、2番目のvimがすでに実行されていて、viminfoをロードする場合:
:rv ~/customInfo
ことを注意:wv
して:rv
終了したり、起動時に読み込むファイルの名前で保存されますファイルのvimの名前を変更しないでください。
追加情報
説明set viminfo+=nSomePath
:setコマンドを使用して、という名前のオプションを調整しますviminfo
。+=
すべてを変更しないで、我々はオプションに追加する示します。n
viminfoのファイル名を指定するオプションを追加します。直後にn
、私たちは持ってSomePath
はviminfoを保存するために使用されるファイル名になりますました。
wv
(:help wv
)のドキュメントは、このコマンドが最初にviminfoファイルを読み取り、次に古い情報と新しい情報をマージすることを示しています。これまでのところ、この場合のマージの動作に関する情報はありませんが、現在のセッションで設定されていない未知のファイルとレジスタのマークを保持していると思います。