Pourquoi vi est-il apparemment cassé (erreur viminfo E576), et comment puis-je le réparer?

18

Je suis compétent pour utiliser Unix / Linux, mais je ne suis pas un expert. Si je veux ouvrir un fichier (par exemple, file.txt), j'utilise vi:

vi file.txt

Cela ouvre le fichier, et si je veux le fermer, j'utilise :q!. J'utilise cette méthode depuis deux ans que j'utilise Unix / Linux. Mon institution possède un cluster exécutant Ubuntu Linux.

Aujourd'hui, cependant, j'ai essayé d'ouvrir un fichier et j'ai reçu ces messages d'erreur:

E576: viminfo: Missing '>' in line: newest to oldest):
E576: viminfo: Missing '>' in line: ?/CJ
E576: viminfo: Missing '>' in line: ?/CG
E576: viminfo: Missing '>' in line: ?/CC
E576: viminfo: Missing '>' in line: ?/OEP
E576: viminfo: Missing '>' in line: ?/CEP
E576: viminfo: Missing '>' in line: ?/dih
E576: viminfo: Missing '>' in line: ?/ang
E576: viminfo: Missing '>' in line: ??b
E576: viminfo: Missing '>' in line: ?/xvg
E136: viminfo: Too many errors, skipping rest of file
Press ENTER or type command to continue

Alors j'appuie Enter. Je reçois les mêmes messages:

E576: viminfo: Missing '>' in line: newest to oldest):
E576: viminfo: Missing '>' in line: ?/CJ
E576: viminfo: Missing '>' in line: ?/CG
E576: viminfo: Missing '>' in line: ?/CC
E576: viminfo: Missing '>' in line: ?/OEP
E576: viminfo: Missing '>' in line: ?/CEP
E576: viminfo: Missing '>' in line: ?/dih
E576: viminfo: Missing '>' in line: ?/ang
E576: viminfo: Missing '>' in line: ??b
E576: viminfo: Missing '>' in line: ?/xvg
E136: viminfo: Too many errors, skipping rest of file
Press ENTER or type command to continue

Encore une fois, j'appuie sur Enter, et enfin le fichier s'ouvre pour la lecture / l'édition. Toutefois, le problème se répète lorsque j'essaie de fermer le fichier à l'aide :q!et également lorsque j'essaie d'ouvrir tout autre fichier à l'aide vi.

Les mots clés CJ, CG, CC, OEP, CEP, dih, anget xvg(je ne suis pas sûr b, cependant) sont toutes les chaînes qui apparaissent souvent dans des fichiers que je lus à l' aide vi, bien que je ne suis pas certain qu'ils existent tous dans le fichier particulier que je suis ouverture (Je ne pense pas). Ainsi, peut-être que quelque chose ne va pas avec mon viminfodossier? Cependant, je suis utilise vi, non vim .

Je ne sais pas ce qui s'est passé; avez-vous des suggestions sur la façon de diagnostiquer et éventuellement de résoudre ce problème?

Andrew
la source
2
Votre ~/.viminfocorrompu est-il? Essayez de le déplacer ailleurs et voyez si le problème réapparaît. Gardez à l'esprit que de nombreux systèmes fournissent vimsimplement viun lien symbolique vers vim.
jw013
2
J'utilise vi, pas vim. Êtes-vous sûr? viest souvent aliasé vim(vérifiez avec which vipuis filesur cet emplacement).
ire_and_curses
2
Sur la plupart des systèmes Linux, vi est un lien symbolique vers vim, vous pouvez donc avoir un viminfo corrompu.
Mark Cohen
@ire_and_curses Merci! Quand j'entre which vi, j'obtiens la sortie /usr/bin/vi. Lorsque j'entre file /usr/bin/vi, j'obtiens la sortie /usr/bin/vi: symbolic link to / etc / alternatives / vi ' . Does this mean I am using vi`?
Andrew
1
@Andrew - Ok, alors faites de même file /etc/alternatives/vi. J'espère que cela vous dira que vous courez réellement vim.
ire_and_curses

Réponses:

25

Faites ceci:

rm -f ~/.viminfo

Le .viminfofichier conserve des métadonnées sur diverses informations d'état utiles mais non critiques. Le vôtre est corrompu. Retirez-le.

bahamat
la source
2
Il serait plus risqué d'avancer .viminfo que de le supprimer. Par exemple, si vous travaillez sur une grande base de code, il peut être très difficile de reconstruire vos marques.
donothingsuccess
@bahamat @donothingsuccessfully Merci à tous pour votre temps! Le déplacement .viminfo(méthode d'aversion au risque) résout le problème. Je suppose donc que mon .viminfofichier a été corrompu. Sincères remerciements pour votre aide. Joyeuses fêtes!
Andrew
1

L'erreur vim E576 se produit lorsque vous avez une erreur de syntaxe dans votre .viminfofichier qui stocke votre historique de commandes et de fichiers, etc.

La corruption peut se produire lorsque vous manquez d'espace ou que votre moteur de stockage est défectueux. Vous pouvez essayer de modifier ~/.viminfo, de localiser et de supprimer les lignes invalides, pour éventuellement le renommer sous un nom différent et simplement pour le supprimer.

Vous pouvez également utiliser un -i {viminfo}paramètre pour spécifier les différents fichiers .viminfo.

kenorb
la source