2012-05-25 21 views
39

Vim almacena la lista de comandos que aplicamos usando: para la ejecución actual. Pero cuando cierro vim y lo comienzo nuevamente, el historial de comandos vim se pierde. Intenté set history = 1000 en el archivo .vimrc pero eso no ayudó.
¿Dónde guarda Vim el historial de comandos local?
¿Cuál es el comando para retener el historial de comandos?
Historial de registros de Vim

+1

Funciona bien en mi sistema, ¿qué versión de vim está ejecutando? – Stefan

+0

funciona bien en mi sistema desktio .. versión 7.3 pero no funciona en mi lappy. incluso esa versión es 7.3 Supongo que –

+0

Acabo de comprobar mi '.vimrc', no hay ninguna configuración con respecto al historial de comandos ... el historial de guardado parece ser el predeterminado. – Stefan

Respuesta

19

Para comprobar si Vim admite el archivo 'viminfo' (que almacena el historial), :echo has('viminfo'). La configuración correspondiente no debe estar vacía: :set viminfo?, y :set history? debe ser mayor que uno.

Si hay un problema de escribir el archivo viminfo (aunque Vim debe quejarse en ese caso), usted podría tratar de pasar una ubicación diferente a través de vim -i /tmp/viminfo

+4

era extraño que no tuviera el permiso para escribir en '~/.viminfo' y vim no me notificó. – Amir

+6

wtf, mi ~/.viminfo era root: root sin ninguna razón y ¡vim tampoco se quejaba! – vak

1

Deberá configurar la opción viminfo. Lo puso en su $ MYVIMRC

actualización Para averiguar dónde está la opción de la última configuración/cambió:

:verbose set viminfo? 

Ver http://vimdoc.sourceforge.net/htmldoc/starting.html#viminfo-file

Si sale de Vim y después de empezar de nuevo, normalmente perdería una gran cantidad de información . El archivo viminfo se puede usar para recordar esa información, que le permite continuar donde lo dejó.

Esto se presenta en la sección | 21.3 | del manual de usuario.

El archivo viminfo se utiliza para almacenar:

  • La historia de línea de comandos.
  • El historial de cadenas de búsqueda.
  • El historial de la línea de entrada.
  • Contenido de los registros no vacíos.
  • Marcas para varios archivos.
  • Marcas de archivo, que apuntan a ubicaciones en los archivos.
  • Última búsqueda/patrón sustituto (para 'n' y '&').
  • La lista de almacenamiento intermedio.
  • Variables globales.

El archivo viminfo no es compatible cuando | + viminfo | la característica ha sido deshabilitada en tiempo de compilación.

También podría usar Session archivos.

69

Sólo un tema que me sorprendió el otro día, que puede ser o no sea su problema:

En algunos sistemas Linux (por ejemplo, Ubuntu), si la primera vez que ejecuta VIM, lo ejecuta como un superusuario, entonces el archivo $ HOME/.viminfo se crea con el propietario de la raíz y su usuario local no tiene permisos para escribir en él.Esto explica por qué mi VIM no estaba almacenando el historial de comandos cuando todo estaba configurado correctamente.

En pocas palabras: en un sistema * nix, busque su archivo .viminfo y asegúrese de tener permisos de lectura/escritura en él.

+2

¡Súper! ¡Gracias a un molino por ese consejo Balint! –

9

Debe verificar los permisos del archivo .viminfo. Es posible que necesite cambiar el propietario del archivo a su usuario actual usando chown o sudo chown.

+0

Este fue mi problema. De manera predeterminada, a la raíz. – felwithe

4

El Sr. Baint ha dado la respuesta.

  • Ir a $HOME directorio.
  • dar ls -l .viminfo para comprobar los permisos.
  • cambie el permiso para que el grupo y el propietario también puedan tener permiso de escritura . empleo:

    sudo chown yourUserId $HOME/.viminfo 
    

Debe solucionar el problema.

Cuestiones relacionadas