Respuestas:
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)
diff -u "%" -ya que diffentiende un guión como significado leído de stdin
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.