save – ¿Vim guarda automáticamente?

Pregunta:

De :help swap-file :

Actualizar el archivo de intercambio

El archivo de intercambio se actualiza después de escribir 200 caracteres o cuando no ha escrito nada durante cuatro segundos. Esto solo sucede si se cambió el búfer, no cuando solo se movió. La razón por la que no se mantiene actualizado todo el tiempo es que esto ralentizaría demasiado el trabajo normal. Puede cambiar el recuento de 200 caracteres con la opción 'updatecount'. Puede configurar la hora con la opción 'updatetime'. El tiempo se expresa en milisegundos. Después de escribir en el archivo de intercambio, Vim sincroniza el archivo con el disco. Esto lleva algo de tiempo, especialmente en sistemas Unix ocupados. Si no desea esto, puede establecer la opción 'swapsync' en una cadena vacía. Sin embargo, el riesgo de perder el trabajo aumenta. En algunos sistemas que no son Unix (MS-DOS, Amiga), el archivo de intercambio no se escribirá en absoluto.

De esto tengo algunas preguntas:

  1. ¿Significa esto que Vim guarda automáticamente su trabajo de vez en cuando?

  2. "Después de escribir en el archivo de intercambio, Vim sincroniza el archivo en el disco". ¿Qué significa esto? ¿Esto se refiere a que el archivo se escribe primero en la memoria y luego en el disco o es algo más?

  3. Digamos que estoy tomando notas de la clase: escribo rápido y no es necesario que salga del modo Insertar. Pero muchas veces cambio a Normal solo para guardar mi trabajo. ¿Necesito hacer esto o Vim se asegura de que la mayor parte de mi trabajo se guarde incluso si no salgo del modo Insertar?

Respuesta:

  1. Sí, se guarda para intercambiar archivos.

Puede hacer una prueba rápida para tener una idea de esto. Vaya a un directorio. Diga vim notest.txt y escriba un texto. Ni siquiera tiene que guardar el archivo.

Si enumera archivos en el directorio de trabajo, encontrará un archivo de intercambio. Cópielo en un directorio diferente (donde no tiene un archivo "notes.txt", como dice vim notest.txt .

Obtiene una nota sobre el intercambio existente, que se está modificando y las opciones de abrir como solo lectura, recuperar, etc. Elija recuperar y listo! Una "copia" de su archivo.

  1. Sí, el intercambio se guarda en la memoria.

Cuando Vim lee un archivo, lo agrega a la RAM. Eso es tanto para archivos existentes como nuevos (aún sin guardar). A medida que se guarda el intercambio, se descarga en el disco. El disco duro. De RAM.

  1. Si y no.

Con la configuración predeterminada, se guarda la mayor parte de su trabajo. Eso es por cada 200 caracteres ingresados, o cuando tenga una pausa de 4 segundos. Aunque confío en que se guardará el archivo de intercambio, me gusta guardar mi trabajo cuando sé que estoy en un sistema inestable. Pero, dicho esto, uno está bastante seguro de mantener el trabajo a menos que tenga muy mala suerte y el sistema de alojamiento entre en pánico justo después de escribir una oración muy importante.

En resumen, basta con ahorrar cuando termine la conferencia. Si el sistema se detiene por cualquier motivo en medio de una clase, el trabajo está hasta allí en el intercambio.

Por supuesto: si tiene mucha mala suerte, puede producirse un bloqueo mientras se escribe el archivo de intercambio. Como resultado, el archivo de intercambio podría estar dañado. Nunca he experimentado esto, y no estoy seguro de qué partes del archivo podrían estar dañadas, pero vale la pena pensarlo. Como el archivo de intercambio es binario (a falta de una palabra mejor), parece lógico que sea más frágil que un archivo de texto sin formato.


Como nota al margen. Al menos cuando se usa el directorio de trabajo para el intercambio, el archivo de intercambio es independiente de la ubicación en lo que respecta a la recuperación. Como tal, puede copiar el archivo de intercambio a una nueva ubicación y recuperar el archivo como un archivo nuevo . Solo tenga en cuenta que el nombre del archivo está codificado en el intercambio. Como tal, no puedes decir:

cp .foo.txt.swp .bar.txt.swp

y

vim bar.txt

y esperar el archivo de intercambio de foo.txt .

Si está muy interesado puede hacer (en * nix):

xxd -s 108 -l 800 -ps .foo.txt.swp | xxd -r -p

para obtener la ruta (con algunas peculiaridades) del archivo original. Como verá, se agrega la ruta completa, por ejemplo:

~user/blah/blah/notes.txt

pero solo se usa el nombre de base en la verificación de intercambio.

En ese sentido, también puede consultar la opción vim -r , que enumera los archivos de intercambio en los directorios actual e inferior. Consulte :h crash-recovery con subtemas.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım