Gostaria de saber se eu poderia selecionar algum código no modo visual e git add
ele?
Eu verifiquei com fugitive.vim, mas não encontrei como fazê-lo.
É possível ? Ou existe algum outro plugin para fazer isso?
fonte
Gostaria de saber se eu poderia selecionar algum código no modo visual e git add
ele?
Eu verifiquei com fugitive.vim, mas não encontrei como fazê-lo.
É possível ? Ou existe algum outro plugin para fazer isso?
Pode haver outras maneiras, mas essa abordagem permite que você faça mais do que adicionar um pedaço, e é por isso que costumo usá-lo bastante.
Executar :Gdiff
comando. Ele abrirá uma divisão com a versão do arquivo atual que está atualmente no índice à esquerda / parte superior da janela original.
Enquanto estiver na janela original (direita ou inferior), faça a seleção visual das alterações que deseja git add
.
Executar :diffput
comando, que pode operar em um intervalo. (a dp
chave não funciona no modo Visual.)
Feche a segunda janela, salvando as alterações para atualizar o arquivo no índice. Aqui você pode editá-lo da maneira que desejar antes de salvar, pois não precisa corresponder exatamente à versão original ou nova do arquivo.
Lembre-se de que :diffput
nem sempre você pode dar o que você esperaria, dependendo da estrutura das mudanças (especialmente se você está cometendo apenas parte do bloco contíguo de mudanças). Portanto, não esqueça de validar o commit. Na maioria das situações práticas, funciona bem.
O Vimcasts tem uma ótima série no Fugitive.vim . O episódio Fugitive.vim - trabalhar com o índice git seria o mais útil para sua pergunta.
Você pode usar :Gdiff
para preparar apenas partes de um arquivo. A execução :Gdiff
mostrará o arquivo atual "diff-ed" com o estágio / índice. Você pode simplesmente usar comandos diff do Vim ( dp
, do
, :diffput
e :diffget
) para mover o galã ao palco / index. Então você escreve o arquivo de estágio / índice como faria com qualquer outro buffer, :w
/ :x
.
:Gstatus
+D
para fazer o mesmo com o fugitivo. Dessa forma, também posso escolher o arquivo em que estou operando na lista de arquivos que foram modificados.Como você perguntou especificamente sobre soluções que usam outros plug-ins, observarei que você também pode organizar seleções visuais usando o vimagit , que é um plug-in Git (baseado no popular plugin Magit do outro editor ), centrado em visualizar, preparar e confirmar alterações.
Para preparar uma seleção visual usando o Vimagit:
Execute o
:Magit
comando para abrir um novo buffer que exibe todos os blocos alterados no seu repositório (não apenas em um arquivo),Localize as linhas que você deseja preparar e faça sua
visual
seleção,Pressione o mapeamento "palco":
S
.fonte
Estágio Hunks completos ou parciais com
vim-gitgutter
Estágio Completo
<Leader>hs
ou:GitGutterStageHunk
Encenar parte de um pedaço só de adições (desde 8/2019)
Modo visual
{Visual}<Leader>hs
:'<,'>GitGutterStageHunk
(
'<,'>
estão sempre inseridos para você)Alcance
:42,45GitGutterStageHunk
Encenar parte de qualquer pedaço através da janela de visualização (desde 8/2019)
<Leader>hp
:wincmd P
<Leader>hs
ou:GitGutterStageHunk
Atualizado: 17.8.2019 devido a recentes confirmações bc1d28d e b036fcf
fonte