Perché vi è apparentemente rotto (errore viminfo E576) e come posso ripararlo?


18

Sono abile nell'usare Unix / Linux, ma non sono un esperto. Se voglio aprire un file (ad esempio, file.txt), utilizzo vi:

vi file.txt

Questo apre il file e, se voglio chiuderlo, lo uso :q!. Ho usato questo metodo per i due anni in cui ho usato Unix / Linux. La mia istituzione ha un cluster che esegue Ubuntu Linux.

Oggi, tuttavia, ho provato ad aprire un file e ho ricevuto questi messaggi di errore:

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

Quindi premo Enter. Ricevo gli stessi messaggi:

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

Ancora una volta premo Enter, e finalmente il file si apre per la lettura / modifica. Tuttavia, il problema si ripete quando provo a chiudere il file utilizzando :q!e anche quando provo ad aprire qualsiasi altro file utilizzando vi.

Le parole chiave CJ, CG, CC, OEP, CEP, dih, ang, e xvg(io non sono sicuro b, però) sono tutte le stringhe che appaiono spesso in file che ho letto usando vi, anche se non sono certo che tutti esistono nel file particolare, che io sono l'apertura (Penso di no). Quindi, forse qualcosa non va nel mio viminfofile? Tuttavia, sto usando vi, no vim .

Non sono sicuro di cosa sia successo; hai qualche suggerimento su come posso diagnosticare e possibilmente risolvere questo problema?


2
Il tuo è ~/.viminfocorrotto? Prova a spostarlo altrove e verifica se il problema si ripresenta. Tieni presente che molti sistemi che forniscono vimsemplicemente forniscono viun link simbolico a vim.
jw013,

2
Sto usando vi, non vim. Sei sicuro? viè spesso aliasato vim(verificare con which vie poi filesu quella posizione).
ire_and_curses il

2
Sulla maggior parte dei sistemi Linux, vi è un link simbolico a vim, quindi potresti avere un viminfo corrotto.
Mark Cohen,

@ire_and_curses Grazie! Quando entro which vi, ottengo l'output /usr/bin/vi. Quando entro file /usr/bin/vi, ottengo l'output /usr/bin/vi: symbolic link to / etc / alternatives / vi ' . Does this mean I am using vi`?
Andrew,

1
@Andrew - Ok, anche tu file /etc/alternatives/vi. Mi aspetto che ti dirà che stai effettivamente correndo vim.
ire_and_curses il

Risposte:


25

Fai questo:

rm -f ~/.viminfo

Il .viminfofile conserva metadati su varie informazioni sullo stato utili, ma non critiche. Il tuo è corrotto. Rimuoverlo.


2
Sarebbe più avverso al rischio spostarsi .viminfo piuttosto che rimuoverlo. Ad esempio, se stai lavorando su una base di codice di grandi dimensioni potrebbe essere molto doloroso ricostruire i tuoi voti.
indossando con successo il

@bahamat @donothings con successo Grazie a tutti per il vostro tempo! Lo spostamento .viminfo(metodo avverso al rischio) risolve il problema. Quindi immagino che il mio .viminfofile sia stato danneggiato. Grazie sinceri per il vostro aiuto. Buone vacanze!
Andrew,

1

L'errore vim E576 si verifica quando si verifica un errore di sintassi nel .viminfofile che memorizza il comando e la cronologia dei file, ecc.

Il danneggiamento può verificarsi quando sei fuori dallo spazio o il tuo motore di archiviazione è difettoso. Puoi provare a modificare ~/.viminfo, individuare e rimuovere le righe non valide, eventualmente per rinominarlo con un nome diverso e semplicemente per rimuoverlo.

È inoltre possibile utilizzare il -i {viminfo}parametro per specificare il diverso file .viminfo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.