¿Cómo guardo los cambios en mi búfer vim como un archivo de revisión?


21

¿Hay alguna manera de guardar los cambios que hice en mi búfer vim como un archivo de parche para el archivo original, sin guardarlo como un archivo separado y usando diff?


2
Hay un nuevo sitio beta SE para Vi y Vim , es posible que desee comprobarlo.
Roflo

Respuestas:


21

Es posible hacer esto sin un complemento usando el wcomando, por lo que el contenido del búfer se puede usar en un comando de shell:

:w !diff -au "%" - > changes.patch

( %se sustituye con la ruta del archivo que se está editando, -lee el búfer de stdin)


2
Puede usar diff -u "%" -ya que diffentiende un guión como significado leído de stdin
roaima

1

También puede filtrar el búfer mediante diffla %!sintaxis:

:%! diff -au "%" -

Esto llenará el búfer con el diff, en lugar de escribirlo en el disco; es posible que desee configurarlo readonlypara no golpear el original por accidente (OTOH, eso no debería ser un problema grave porque tiene el archivo bajo control de versión, ¿verdad? ). Por supuesto, ayuda tener el comando inverso:

:%! patch -o - "%"

Eso transforma tu diff nuevamente en el archivo modificado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.