Respostas:
Começando com v2.1.0
, o Magit usa a biblioteca magit-popup.el
para implementar esses "buffers pop-up" ou "combinações de prefixo-infixo-sufixo". Apesar do nome, essa biblioteca pode ser usada por pacotes não relacionados ao Magit e, portanto, é disponibilizada como um pacote Elpa separado. Ele ainda tem seu próprio manual agora!
Os argumentos padrão agora podem ser definidos diretamente de um buffer pop-up. Para sempre usar --verbose
ao confirmar, faça o seguinte:
--verbose
magit-commit-arguments
)Por padrão, todos os buffers pop-up terminam com uma seção chamada "Comandos comuns". Caso contrário, use C-tpara mostrá-lo. Você provavelmente não deseja ver essa seção o tempo todo e, portanto, deve definir magit-popup-show-common-commands
como nil
.
Obviamente, também é possível definir o valor de magit-commit-arguments
e outras variáveis usando a interface Personalizada setq
, ou add-to-list
. Mas eu recomendo isso, porque isso tornaria impossível alterar os padrões on-the-fly.
Tanto quanto posso dizer, o Magit não controla as opções "padrão", mas podemos fazê- lo "pressionar -v
" toda vez que o buffer de confirmação aparecer:
(advice-add #'magit-key-mode-popup-committing :after
(lambda ()
(magit-key-mode-toggle-option (quote committing) "--verbose")))
Para descobrir qual função aconselhar, abri um magic-status
buffer e pressionei C-h k c
. Isso me levou a magit-key-mode-popup-committing
. Então (com o buffer de confirmação ainda exibido), pressionei C-h k -v
para encontrar o lambda
formulário que o Magit chama quando você pressiona -v
na janela de confirmação .
Atualização: escrevi esta resposta de forma independente, mas consulte Posso ter a opção git-log "--all" inicialmente selecionada? , a resposta dada lá e comentários para essa resposta.
Nas versões do magit que usam transitório (depois de fevereiro de 2019), defina o sinalizador e salve enquanto estiver no buffer transitório.
Portanto, para commit, a sequência de chaves seria algo como
C-x g # start magit
s # to stage changes
c # start commiting
-v # enable verbose
C-x C-s # Save the setting persistently across sessions
c # do the actual commit
Depois disso, da próxima vez que o commit for chamado, o verbose ainda será definido. (Você não precisa concluir a confirmação e pode sair depois de salvar com C-x C-s
.)
O padrão real é salvo em um transient/
diretório em .emacs.d/
.
Consulte o manual transitório https://magit.vc/manual/transient.html#Saving-Values
Embora não seja exatamente o que você deseja (diff no seu buffer de confirmação), você pode definir o magit para expandir as diferenças faseadas na janela de status :
(setq magit-expand-staged-on-commit 'full)
O fluxo de trabalho magit sempre parece ser um buffer de status aberto e, em seguida, é aberto com um buffer de confirmação; você sempre termina com dois buffers exibidos. A configuração acima fará com que o segundo buffer (anteriormente não útil) mostre seu diff.
Você também pode usar t
para expandir apenas os cabeçalhos do diff (para mostrar os números das linhas):
(setq magit-expand-staged-on-commit t)
Enquanto escreve seu diff, você pode alternar para o buffer de status e usá-lo TAB
para expandir (ou dobrar) os diffs.
Como alternativa, você pode usar C-c C-d
o buffer de confirmação para abrir outro buffer com um diff com magit-diff-staged
. (Veja esta edição .)
A partir da magit
versão 2.1
, você pode usar isso em sua configuração:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
é útil quando você tem projetos que usam git hooks (use com cuidado, obviamente).