Comment puis-je enregistrer les modifications apportées à mon tampon vim sous forme de fichier correctif?

21

Existe-t-il un moyen d'enregistrer les modifications que j'ai apportées à mon tampon vim en tant que fichier de correctif pour le fichier d'origine, sans l'enregistrer en tant que fichier séparé et en utilisant diff?

lesderid
la source
2
Il y a un nouveau site bêta SE pour Vi et Vim , vous voudrez peut-être le vérifier.
Roflo

Réponses:

21

Il est possible de le faire sans plugin en utilisant la wcommande, donc le contenu du tampon peut être utilisé dans une commande shell:

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

( %est remplacé par le chemin du fichier en cours d'édition, -lit le tampon depuis stdin)

lesderid
la source
2
Vous pouvez utiliser diff -u "%" -car diffcomprend un tiret comme signifiant lu à partir de stdin
roaima
1

Vous pouvez également filtrer le tampon via diff aide de la %!syntaxe:

:%! diff -au "%" -

Cela remplira le tampon avec le diff, plutôt que de l'écrire sur le disque; vous voudrez peut-être définir readonlypour ne pas encombrer l'original par accident (OTOH, cela ne devrait pas être un problème grave car vous avez le fichier sous contrôle de version, non? ). Bien sûr, cela aide d'avoir la commande inverse:

:%! patch -o - "%"

Cela transforme votre diff dans le fichier modifié.

Kevin
la source