2009-04-13 23 views
141

¿Por qué vim crea archivos <filename>~? ¿Hay alguna forma de desactivar eso?Cómo evitar que vim cree (y abandone) archivos temporales?

Si es para copia de seguridad (o algo así), uso git para eso.

También, estos archivos .<filename.with.path.hints>.swp también.

¿Cómo le digo a vim que no cree esas, o al menos que haga una limpieza?

EDITAR

gritos, duplicar:

Why does Vim save files with a ~ extension?

que adoptó rogeriopvl's answer desde allí.

copia literal:

set nobackup  "no backup files 
set nowritebackup "only in case you don't want a backup file while editing 
set noswapfile  "no swap files 
+10

Git nunca lo ayudará a recuperar el trabajo después de un bloqueo del sistema. Git puede ignorar tus archivos * .swp también. = D – vmassuchetto

+2

Posible duplicado de [¿Por qué Vim guarda archivos con una ~ extensión?] (Http://stackoverflow.com/questions/607435/why-does-vim-save-files-with-a-extension) –

Respuesta

50

Pon esto en el archivo de configuración .vimrc.

set nobackup 
+5

We ' he hecho esto en Windows 8.1 con Vim. Los archivos de intercambio todavía están presentes. –

+1

Shaun, puede que necesite agregar "set noswapfile" a su .vimrc para evitar que se creen nuevos archivos de intercambio, como se menciona en la edición de la pregunta original. –

+0

¿Qué pasa con el ':' sentado como un prefijo antes de la palabra clave 'set'? ¿Es requerido? No parece un comentario. – Stephane

63

Recomiendo encarecidamente seguir trabajando con archivos de intercambio (en caso de que Vim falle).

Puede establecer el directorio donde se almacenan los archivos de intercambio, por lo que no estorbar sus directorios normales:

set swapfile 
set dir=~/tmp 

Ver también

:help swap-file 
+3

, nunca los necesité con Notepad ++, a menos que ¡diga que vim se bloqueará con demasiada frecuencia! – hasen

+5

no, no estaba implicando que vim falle demasiado a menudo (aunque lo he visto colapsar). Pero para mi entorno de trabajo, la conexión de red a algún host en el que estoy trabajando es bastante inestable, por lo que se produce una edición interrumpida. Los archivos de intercambio ayudan allí. – user55400

+6

@ user55400 ¿Has oído hablar de GNU/Screen? (o tmux, o esta alternativa japonesa) –

25

; Para los usuarios de Windows Volver al directorio temp

set backup 
set backupdir=C:\WINDOWS\Temp 
set backupskip=C:\WINDOWS\Temp\* 
set directory=C:\WINDOWS\Temp 
set writebackup 
+3

Tuve que agregar el conjunto undodir = C: \ WINDOWS \ Temp –

9

hice un plugin llamado "noswapsuck" que sólo permite que el archivo de intercambio cuando el búfer contiene cambios sin guardar. Una vez que se han guardado los cambios, se borra el archivo de intercambio. Por lo tanto, se eliminarán los archivos de intercambio que contengan el mismo contenido que el archivo en el disco.

https://github.com/joeytwiddle/rc_files/blob/master/.vim/plugin/noswapsuck.vim

Se ha estado trabajando bien para mí, pero nunca he publicitado antes, así que daría la bienvenida a la retroalimentación.

Ventajas:

  • Los únicos swapfiles que permanecen en su disco será importante swapfiles que realmente se diferencian del archivo!

Desventajas:

  • Si el tampón tiene un archivo de intercambio, que no se detectará cuando se abre por primera vez el archivo. Solo se detectará cuando swapfile esté habilitado, que es cuando comienza a editar el búfer. Eso es molestamente tarde y te interrumpirá. Un poco de magia adicional cuando el archivo se abre por primera vez (por ejemplo, activar, marcar y luego desactivar swapfile) podría solucionar esto.
  • Si se encuentra en un entorno en el que desea minimizar las grabaciones de disco (por ejemplo, baja potencia o archivos montados en una red), esta no es una buena solución, ya que destruye y vuelve a crear el archivo de intercambio en cada guardar/editar. (*)
  • Por la misma razón, este no es un buen complemento para usar al editar archivos de gran tamaño.

(*) En realidad los valores predeterminados actuales del plugin evitar este problema al mantener swapfile permitido después de una escritura, y sólo incapacitante más tarde cuando unfocus la ventana o tampón. La desventaja de esto es que los archivos de intercambio innecesarios a veces existen en el disco después de un bloqueo. Por lo tanto, se recomienda deshabilitar esa opción en máquinas potentes. ¡Puedo cambiar ese defecto nuevamente en el futuro!

+0

Esto debería ser un comportamiento vim predeterminado, gracias – codebeard

4

En Windows Agregue las siguientes líneas a _vimrc

" store backup, undo, and swap files in temp directory 
set directory=$HOME/temp// 
set backupdir=$HOME/temp// 
set undodir=$HOME/temp// 
3

Esta respuesta se aplica a la utilización de gVim en Windows 10. No puedo garantizar los mismos resultados para otros sistemas operativos.

Añadir:

set nobackup 
set noswapfile 
set noundofile 

Para su archivo _vimrc.

Nota: Esta es la respuesta directa a la pregunta (para Windows 10) y probablemente no sea lo más seguro (lea las otras respuestas), pero esta es la solución más rápida en mi caso.

Cuestiones relacionadas