¡No entres en pánico!
La recuperación de archivos siempre es segura, porque vim nunca escribe ningún cambio hasta que los escribe usted mismo. Por lo tanto, recuperarse de un archivo de intercambio y luego cerrar sin guardar no cambiará nada.
Organiza tus archivos de intercambio:
Obtenga vim para colocar todos sus archivos de intercambio en el mismo lugar, para que siempre sepa dónde están:
set directory^=$HOME/.vim/swap//
o donde prefieras El uso //
al final del nombre de archivo hace que vim use rutas de archivo absolutas para los nombres de los archivos de intercambio para que no tenga colisiones de nombres. Asegúrese de que el directorio exista, o vim no lo usará (no lo creará para usted).
Nota: Esto solo funciona en variables de entorno, si desea usar una variable vimscript, entonces necesitamos usar algo de :execute
magia:
execute "set directory^=".my_vim_home_var."/swap//"
Diferencia las diferencias:
La ayuda de Vim sugiere un comando muy útil para usar en esta situación: :DiffOrig
. No es un comando vim predeterminado , así que copie la implementación desde :h :DiffOrig
su vimrc. (también está en $VIMRUNTIME/defaults.vim
si tienes vim8). Ahora, puede recuperar el archivo y simplemente ejecutar DiffOrig para obtener un vimdiff de lo que ha cambiado desde la versión no modificada.
Si desea comparar el contenido de varios archivos de intercambio, recupere su archivo con cada archivo de intercambio diferente y luego escriba el resultado en archivos temporales. Ahora cargue los archivos y ejecútelos :diffthis
en cada archivo, realice los cambios que desee, vuelva a escribir en el archivo original y elimine los archivos temporales e intercambiables.
Comandos útiles:
:swapname
: obtiene el nombre que vim está usando para el archivo de intercambio para el búfer actual ( :h :swapname
)
:recover
: recupera el archivo seleccionado, igual que cuando inicia vim y presiona R( :h :recover
)
Mira la ayuda:
Vim tiene una sección entera del manual de usuario en la recuperación: :usr_11.txt
ayuda de referencia de Vim en los archivos de intercambio: :h swap-file
, h recovery
Ayuda en la opción de directorio (para establecer la ubicación del archivo de intercambio)::h 'directory'
Editar: ejemplo modificado para configurar el directorio, como se señala en los comentarios de @B Layer