Creé un complemento llamado "noswapsuck" que solo habilita el archivo de intercambio cuando el búfer contiene cambios no guardados. 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.
Consiguelo aqui: noswapsuck.vim
Me ha funcionado bien, pero nunca lo había publicado antes, por lo que agradecería cualquier comentario.
Ventajas:
- ¡Los únicos archivos de intercambio que permanecen en su disco serán archivos de intercambio importantes que realmente difieren del archivo!
Desventajas
Si el búfer tiene un archivo de intercambio, no se detectará cuando se abra el archivo por primera vez. Solo se detectará cuando swapfile
esté habilitado, que es cuando comience a editar el búfer. Eso es molestamente tarde y te interrumpirá. (Resuelto: ahora buscamos un archivo de intercambio preexistente cuando se abre un búfer, activando temporalmente la swapfile
opción nuevamente).
Si está trabajando en un entorno en el que desea minimizar las escrituras en disco (p. Ej., Baja potencia o archivos montados en una red, o editar un archivo enorme), entonces no es ideal seguir eliminando y volviendo a crear el archivo de intercambio en cada guardar y editar En tales situaciones, puede hacer:
:let g:NoSwapSuck_CloseSwapfileOnWrite = 0
que mantendrá el archivo de intercambio después de una escritura, pero aún lo eliminará cuando el búfer pierda el foco.
Por cierto, tengo otro pequeño complemento :DiffAgainstFileOnDisk
que puede ser bastante útil después de presionar (r)ecover
, para verificar si el búfer que recuperó es más nuevo o más antiguo que el archivo existente, o es idéntico a él.