Como salvar as alterações no meu buffer vim como um arquivo de patch?
20
Existe uma maneira de salvar as alterações que fiz no meu buffer vim como um arquivo de correção para o arquivo original, sem salvá-lo como um arquivo separado e usando o diff?
Você pode usar diff -u "%" -uma vez diffcompreende um traço no sentido de ler de stdin
roaima
1
Você também pode filtrar o buffer diffusando a %!sintaxe:
:%! diff -au "%" -
Isso preencherá o buffer com o diff, em vez de gravá-lo no disco; convém configurar readonlypara não danificar 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? ). Obviamente, ajuda ter o comando inverso:
:%! patch -o - "%"
Isso transforma seu diff de volta no arquivo modificado.
Respostas:
É possível fazer isso sem um plug-in usando o
w
comando, para que o conteúdo do buffer possa ser usado em um comando shell:(
%
é substituído pelo caminho do arquivo que está sendo editado,-
lê o buffer de stdin)fonte
diff -u "%" -
uma vezdiff
compreende um traço no sentido de ler de stdinVocê também pode filtrar o buffer
diff
usando a%!
sintaxe:Isso preencherá o buffer com o diff, em vez de gravá-lo no disco; convém configurar
readonly
para não danificar 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? ). Obviamente, ajuda ter o comando inverso:Isso transforma seu diff de volta no arquivo modificado.
fonte