swap-file – ¿Cómo ves las diferencias de un archivo de intercambio sin salir de `vim`?

Pregunta:

Tengo una forma de manejar archivos de intercambio.

Y funciona, pero lleva un tiempo.

Aquí va:

  • Primero trato de encontrar la sesión de vim original – rastrear si el PID todavía está vivo – y si el PID todavía está vivo, trato de encontrar esa sesión de vim y guardo el archivo y salgo … y listo (deténgase aquí) – Si no puedo abrir la sesión de vim, elimino el PID … y tengo que recuperar el archivo.

  • intenta ver la diferencia

    • Presioné r para recuperar el archivo
    • guardar el archivo recuperado en un archivo temporal
    • salir de vim
    • hacer una línea de comando vimdiff entre los dos
    • arreglar manualmente cualquier conflicto
    • guarda el archivo
    • salir de vim
    • eliminar el archivo temporal
    • reabrir vim
    • hecho

Quería encontrar una manera de hacer lo mismo pero de manera más eficiente.

¿Cómo veo las diferencias del archivo con el archivo recuperado, resuelvo las diferencias, guardo el archivo sin salir de vim o usar complementos?

Respuesta:

Aquí están los comandos de vim que necesita para ver la diferencia, resolver cualquier diferencia, guardar el archivo sin salir de vim o usar complementos:

  • desde la línea de comando abre el archivo
    • vim path/to/file
  • todos los demás comandos están dentro de vim
  • recuperar el archivo
    • r
  • guardar el archivo recuperado (si el archivo de destino existe, luego sobrescribir)
    • :sav! ~/.recovered
  • abre el archivo original (no recuperado) en una nueva ventana
    • :vsplit
    • ctrl-w w
    • :bn
    • mi
  • ahora tenemos el archivo recuperado a la izquierda y el archivo no recuperado a la derecha
  • diff los dos archivos
    • :diffthis
    • ctrl-w w
    • :diffthis
  • ahora tenemos una diferencia de los dos archivos (ver man vimdiff )
  • resolver cualquier conflicto (ver man vimdiff para más información)
  • guardar los cambios realizados en el archivo no resuelto
  • eliminar el archivo de intercambio – :!rm -v path/to/.file.swp
  • salir de vim
    • :q

Estoy seguro de que hay formas de mejorar mi solución y, si conoce mejoras, edite mi solución.

Comencé con la solución de http://vim.wikia.com/wiki/Swap_file_%22…%22already_exists!_-_so_diff_it

Modifiqué la solución vinculada porque

  • la solución vinculada no maneja la apertura de un archivo que se encuentra en un directorio
  • las instrucciones no fueron tan claras como yo preferiría

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım