Como eu salvo as alterações no meu buffer vim como um arquivo de patch?

20

Existe uma maneira de salvar as alterações que eu fiz no meu buffer vim como um arquivo de patch para o arquivo original, sem salvá-lo como um arquivo separado e usando o diff?

    
por lesderid 11.06.2015 / 19:18

2 respostas

20

É possível fazer isso sem um plug-in usando o comando w , portanto, o conteúdo do buffer pode ser usado em um comando shell:

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

( % é substituído pelo caminho do arquivo que está sendo editado, - lê o buffer do stdin)

    
por 11.06.2015 / 19:18
1

Você também pode filtrar o buffer por meio de diff usando a sintaxe %! :

:%! diff -au "%" -

Isso preencherá o buffer com o diff, em vez de gravá-lo no disco; você pode querer definir readonly para não estragar o original por acidente (OTOH, isso não deve ser um problema sério porque você tem o arquivo sob controle de versão, certo? ). Claro, ajuda ter o comando inverso:

:%! patch -o - "%"

Isso transforma seu diff de volta no arquivo modificado.

    
por 12.06.2015 / 04:59

Tags