Você pode querer dar uma olhada nos patchutils [1]. Para a parte vim, eu escrevi um pequeno plugin vim que ajuda na navegação em patches: diff_navigator [2].
[1] link
[2] link
Às vezes, preciso dividir um grande patch em pequenos (não contíguos), por exemplo para cada recurso separado incluído.
Normalmente eu faço isso através de comandos vy yank / dd padrão e comutação de janela dividida.
Mas há algumas ferramentas / truques de vim para ajudar com esse tipo de edição?
Por exemplo, suporte para comandos como: mova os 3 próximos blocos completos para o arquivo de correção aberto à direita
Um pouco fora do tópico, eu acho, mas ainda acho que é útil.
Se você usar o git para fazer o seu desenvolvimento, você pode facilmente dividir todas as suas alterações em "pedaços" menores, que incorporam um recurso a cada. Você acaba com um commit por recurso e pode usar o git-format-patch
do git para criar (e até assinar e atribuir corretamente) patches, eu delineei como fazer isso aqui
Meu Suse tem splitdiff
util que funciona assim:
$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002
Você pode usar este para dividir o grande patch em partes menores (por arquivo ou cada pedaço) e, em seguida, se você precisar mesclar, use o combinediff do pacote patchutils mencionado em Agenda do P. Uzel