2009-07-08 12 views
35

No tengo idea de por qué, pero parece que no importa cómo salga de Vim, siempre deja los archivos de intercambio detrás. Entonces, cada vez que abro ese archivo de nuevo, aparece un error irritante sobre un archivo de intercambio existente. Cada vez que tengo que elegir "eliminar". Realmente desearía que esto se detuviera. ¿Hay algo que pueda poner en mi .vimrc para decirlo, "simplemente elimine el archivo de intercambio si existe y déjeme en paz"?Vim: Detener las advertencias de "archivo de intercambio existente"

+12

¿Cómo abandona VIM? No debe dejar atrás los archivos de intercambio, por lo que en lugar de enmascarar el problema, es mejor que lo solucionemos –

+1

¿Está utilizando un sistema operativo Unix y toca Ctrl-Z? Si es así, lo estás haciendo mal. Por favor sea específico sobre lo que quiere decir con "Salir de Vim". –

+0

Quizás accidentalmente se colgó vim en ese archivo mientras era root y ahora vim no puede eliminarlo? Tal vez es solo de lectura? –

Respuesta

10

Consulte la entrada manual de VIM recovery. No se debe ver estos archivos normalmente, a menos que

  1. su instancia VIM está fallando
  2. que estés corriendo inadvertidamente dos casos VIM contra el mismo archivo

me hago muy a menudo la este último, ejecuta 2 VIM contra el mismo archivo, en dos terminales, sin darse cuenta. El mensaje 'swap file' es el indicador de que estoy haciendo esto.

Tal vez tiene una sesión VIM ejecutándose (¿está atrasada?) Que ya olvidó.

+1

¿No es un archivo de intercambio diferente para un archivo de copia de seguridad? Deja un archivo de intercambio alrededor si vim falla antes de cerrar el búfer correctamente. – nik

+0

Así que acabo de lanzar 'vi Test.java', luego lo edité de fondo. Luego, lanzo otro 'vi Test.java'. Y obtengo "Swap file .Test.java.swp ya existe", lo cual tiene sentido, creo que –

+0

El archivo swap se crea al abrir un documento en vim y se borra cuando el documento se cierra correctamente. –

11

Command-Q en Mac OS cierra la ventana del Terminal y bloquea todas las aplicaciones que se ejecutan en la ventana.

Para salir de VIM, debe usar comandos VIM comunes como :q.

+0

Tan simple como sea posible, pero no más simple. – Tom

+2

El cartel original menciona que está usando MacVim, que es una aplicación de interfaz gráfica; la Terminal no está involucrada. –

5

conjunto noswapfile

+0

swapfile es bueno tener en caso de fallas –

0

Ponga esto en su archivo vimrc.

if has("win32") || has("win64") 
    set directory=$TMP 
else 
    set directory=/tmp 
end 
32

En .vimrc complemento:

set shortmess+=A 

De los documentos :help shortmess:

A don't give the "ATTENTION" message when an existing swap file is found.

+1

Exactamente lo que estaba buscando. Gracias. – htmldrum

1

Es posible que usted no tiene suficientes derechos para algún directorio en la ruta a su directorio actual . Me acaba de pasar.

2

Cuando se abre un archivo usando el editor vim, el archivo de intercambio correspondiente se creará con la extensión .swp. Al editar el archivo si el sistema falla, el archivo de intercambio creado no se eliminará. Por esta razón, cuando abre el mismo archivo, el mensaje se muestra como ".filename.c.swp" ya existe. Para evitar esto, tenemos que eliminar todos los archivos de intercambio antes de comenzar nuestro trabajo.

rm filename.c.swp 

nombre del archivo. extensión. swp

+0

Olvidó el. delante del nombre del archivo –

8

Hay un complemento que puede "hacer lo correcto" automáticamente para los archivos de intercambio de Vim: vim-autoswap.

Desde la página principal:

Tratar con los archivos de intercambio es molesto. La mayoría de las veces tiene que tratar con un archivo de intercambio porque tiene el mismo archivo abierto en otra ventana o es un archivo de intercambio dejado por un bloqueo anterior.

Este plugin hace por ti lo que haría en estos casos:

  • es el archivo ya está abierto en otra sesión Vim en alguna otra ventana?
  • En caso afirmativo, cambie a la ventana donde estamos editando ese archivo.
  • De lo contrario, si el archivo swap es anterior al archivo en sí, simplemente deshazte de él.
  • De lo contrario, abra el archivo de solo lectura para que podamos echarle un vistazo y podamos guardarlo.
Cuestiones relacionadas