La réponse à votre question de titre est ce que vous avez observé. Depuis le manuel d'utilisation de vim:help 21.3
Lorsque vous exécutez Vim plusieurs fois, la dernière sortie stockera ses informations. Cela peut entraîner la perte d'informations qui quittaient précédemment Vims stockées. Chaque élément ne peut être mémorisé qu'une seule fois.
Cependant, le nom de fichier du fichier viminfo (où l'historique des commandes est stocké, entre autres, comme les marques globales et le contenu du registre, s'il est ainsi configuré) est modifiable! Cela signifie que vous pouvez configurer différents «historiques» pour différents projets ou instances de vim. En supposant que vous n'exécutez pas plus d'une instance vim par projet, la gestion du nom de fichier viminfo via vimrc (ou un autre plugin de paramètres de projet) est un excellent moyen de gérer cela.
Configurer des fichiers viminfo alternatifs
Pour la gestion au niveau du projet, nous voulons configurer vim pour enregistrer votre viminfo dans un fichier différent. Cela peut être fait dans un vim en cours d'exécution avant de quitter, ou par votre vimrc, par exemple, vous pouvez avoir des lignes dans votre vimrc qui détectent un répertoire particulier comme appartenant à un projet.
:set viminfo+=nPath/to/custom/viminfofile
Un exemple de configuration automatique de vimrc en fonction du répertoire:
if getcwd() == "/projects/projA"
set viminfo+=n~/.viminfo-projA
endif
Le résultat de ce qui précède est que l'historique spécifique au projet sera chargé au démarrage et enregistré à la sortie, si vim est lancé dans le répertoire / projects / projA.
Charger un autre viminfo au démarrage
C'est bon dans le cas où vous souhaitez enregistrer votre historique sur le côté et le charger plus tard, sans le gérer au niveau du projet.
Tout d'abord, pour enregistrer l'historique, vous ajoutez à l'option viminfo comme ci-dessus avant de quitter. Ensuite, pour charger l'historique, lancez vim avec l'option -i
vim -i Path/to/custom/viminfofile
Si vous ne souhaitez pas quitter vim pour enregistrer le fichier viminfo, vous pouvez utiliser :wv
( :wviminfo
). Cela enregistre le fichier viminfo sans quitter vim selon le paramètre n ci-dessus. Et vous pouvez aussi faire:wv SomeOtherFile
pour enregistrer dans un emplacement différent du paramètre de l'option viminfo. Cela peut être plus pratique que de configurer le nom de fichier à utiliser à la sortie, mais n'empêche pas vim d'utiliser le fichier par défaut une fois qu'il quitte.
Par exemple, dans le premier vim:
:wv ~/customInfo
et dans le deuxième terminal:
vim -i ~/customInfo
Ou, si un deuxième vim est déjà en cours d'exécution et que vous souhaitez charger le viminfo:
:rv ~/customInfo
Notez que :wv
et :rv
ne changez pas le nom du fichier vim enregistrera à la sortie ni le nom du fichier lu au démarrage.
Information additionnelle
Description de set viminfo+=nSomePath
: Nous utilisons la commande set pour ajuster l'option nommée viminfo
. Le +=
indique que nous voulons ajouter à l'option, ne pas tout changer. Nous ajoutons l' n
option qui spécifie le nom de fichier pour viminfo. Immédiatement après, n
nous SomePath
aurons le nom de fichier utilisé pour enregistrer viminfo.
La documentation de wv
( :help wv
) indique que cette commande lira d'abord le fichier viminfo, puis fusionnera entre les anciennes et les nouvelles informations. Jusqu'à présent, je n'ai aucune information sur le fonctionnement de la fusion dans ce cas, mais je suppose qu'il garde des marques pour les fichiers et registres inconnus qui ne sont pas définis dans la session en cours.