¿Por qué vi está aparentemente roto (error viminfo E576) y cómo puedo solucionarlo?


18

Soy competente en el uso de Unix / Linux, pero no soy un experto. Si quiero abrir un archivo (por ejemplo file.txt), uso vi:

vi file.txt

Esto abre el archivo, y si quiero cerrarlo, lo uso :q!. He estado usando este método durante los dos años que he estado usando Unix / Linux. Mi institución tiene un clúster que ejecuta Ubuntu Linux.

Hoy, sin embargo, intenté abrir un archivo y obtuve estos mensajes de error:

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

Entonces presiono Enter. Recibo los mismos mensajes:

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

Nuevamente presiono Enter, y finalmente el archivo se abre para leer / editar. Sin embargo, el problema se repite cuando intento cerrar el archivo usando :q!, y también cuando intento abrir cualquier otro archivo usando vi.

Las palabras clave CJ, CG, CC, OEP, CEP, dih, ang, y xvg(no estoy seguro acerca b, sin embargo) son todas las cadenas que aparecen a menudo en los archivos que he leído usando vi, aunque no estoy seguro de que todos ellos existen en el archivo particular que estoy abriendo (Creo que no). Por lo tanto, tal vez algo está mal con mi viminfoarchivo? Sin embargo, estoy usando vi, no vim .

No estoy seguro de lo que ha pasado; ¿Tiene alguna sugerencia sobre cómo puedo diagnosticar y posiblemente solucionar este problema?


2
¿Es tu ~/.viminfocorrupto? Intente moverlo a otro lugar y vea si el problema regresa. Tenga en cuenta que muchos sistemas que proporcionan vimsimplemente proporcionan viun enlace simbólico a vim.
jw013

2
Estoy usando vi, no vim. ¿Estás seguro? via menudo se le asigna un alias vim(consulte con which viy luego fileen esa ubicación).
ire_and_curses

2
En la mayoría de los sistemas Linux, vi es un enlace simbólico a vim, por lo que es posible que tenga un viminfo corrupto.
Mark Cohen

@ire_and_curses ¡Gracias! Cuando entro which vi, obtengo la salida /usr/bin/vi. Cuando entro file /usr/bin/vi, obtengo el resultado /usr/bin/vi: symbolic link to / etc / Alternatives / vi ' . Does this mean I am using vi`?
Andrew

1
@ Andrew - Ok, también file /etc/alternatives/vi. Espero que eso te diga que realmente estás corriendo vim.
ire_and_curses

Respuestas:


25

Hacer esto:

rm -f ~/.viminfo

El .viminfoarchivo mantiene metadatos sobre información de estado útil, pero no crítica. El tuyo es corrupto. Quitarlo


2
Sería más aversivo al riesgo moverse en .viminfo lugar de eliminarlo. Por ejemplo, si está trabajando en una base de código grande, puede ser muy doloroso reconstruir sus marcas.
donothings exitosamente

@bahamat @donothingsuccessfully Gracias a todos por su tiempo! Mudarse .viminfo(método de aversión al riesgo) soluciona el problema. Así que supongo que mi .viminfoarchivo estaba dañado. Un sincero agradecimiento por su ayuda. ¡Felices vacaciones!
Andrew

1

El error vim E576 ocurre cuando tiene un error de sintaxis en su .viminfoarchivo que almacena su comando e historial de archivos, etc.

La corrupción puede ocurrir cuando no tiene espacio o su motor de almacenamiento está defectuoso. Puede intentar editar ~/.viminfo, ubicar y eliminar las líneas no válidas, eventualmente cambiarle el nombre a otro nombre y simplemente eliminarlo.

También puede usar el -i {viminfo}parámetro para especificar los diferentes archivos .viminfo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.