Com o Magit, você pode abrir o buffer de status do magit, pressionar TAB
para expandir o diff (ou RET
abrir um buffer de diff separado), marcar partes de um pedaço e pressionar s
ou u
para encenar / desestabilizar a região. Muito legal.
Gostaria de saber se é possível:
- editar um arquivo
- selecione uma região, pedaço ou vários pedaços dentro do buffer de arquivo
- encenar / desfilar a região selecionada ou o pedaço ao redor do ponto
s
. Mas você também pode encenar apenas parte do pedaço, marcando partes dele (da mesma maneira que faria em um buffer de visita a arquivos) e depois encenar exatamente isso.Respostas:
Não, o Magit não suporta isso. Versões futuras podem, no entanto. O Git-Gutter suporta isso agora. O comando é nomeado
git-gutter:stage-hunk
.fonte
Como mencionado anteriormente, o git-gutter é uma extensão projetada para mostrar informações git diretamente em seu arquivo e operar a partir daí, enquanto o magit se concentra em operar em diffs.
Esse recurso não está planejado para o git gutter tão cedo ( https://github.com/syohex/emacs-git-gutter/issues/91 )
No entanto, é o tipo de coisa que o emacs lisp deve ser muito bom em limpar (passar pelos pedaços de uma região e encená-los uma vez). Tentando fazer isso sozinho, esse foi quase o caso, o único problema foi o git-gutter iniciar um processo em segundo plano depois que você monta um pedaço e não espera que ele termine, então tive que adicionar um pouco de mágica hacky para lidar com isso.
A seguinte função emacs lisp deve fazer o que você deseja. Você pode querer vinculá-lo a algumas chaves.
fonte