¿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?
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.
Respuestas:
Es posible hacer esto sin un complemento usando el
w
comando, por lo que el contenido del búfer se puede usar en un comando de shell:(
%
se sustituye con la ruta del archivo que se está editando,-
lee el búfer de stdin)fuente
diff -u "%" -
ya quediff
entiende un guión como significado leído de stdinTambién puede filtrar el búfer mediante
diff
la%!
sintaxis:Esto llenará el búfer con el diff, en lugar de escribirlo en el disco; es posible que desee configurarlo
readonly
para 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:Eso transforma tu diff nuevamente en el archivo modificado.
fuente