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:
:w !diff -au "%" - > changes.patch
( %
se sustituye con la ruta del archivo que se está editando, -
lee el búfer de stdin)
diff -u "%" -
ya que diff
entiende un guión como significado leído de stdin
También puede filtrar el búfer mediante diff
la %!
sintaxis:
:%! diff -au "%" -
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:
:%! patch -o - "%"
Eso transforma tu diff nuevamente en el archivo modificado.