Atualização em setembro de 2015 (6 anos depois)
A última versão do git-for-Windows (2.5.3) agora inclui:
Ao configurar git config core.editor notepad
, os usuários agora podem usar notepad.exe
como editor padrão .
A configuração git config format.commitMessageColumns 72
será escolhida pelo wrapper do bloco de notas e alinhará a mensagem de confirmação após a edição do usuário.
Veja commit 69b301b de Johannes Schindelin ( dscho
) .
E o Git 2.16 (primeiro trimestre de 2018) mostrará uma mensagem para informar ao usuário que está aguardando o término da edição ao gerar um editor, caso o editor seja aberto em uma janela oculta ou em algum lugar obscuro e o usuário se perca.
Consulte commit abfb04d (07 dez 2017) e commit a64f213 (29 nov 2017) por Lars Schneider ( larsxschneider
) .
Ajudado por: Junio C Hamano ( gitster
) .
(Mesclado por Junio C Hamano - gitster
- na confirmação 0c69a13 , 19 de dezembro de 2017)
launch_editor()
: indica que o Git aguarda a entrada do usuário
Quando uma gráfica GIT_EDITOR
é gerada por um comando Git que abre e aguarda a entrada do usuário (por exemplo, " git rebase -i
"), a janela do editor pode ser obscurecida por outras janelas.
O usuário pode ficar olhando a janela do terminal original do Git sem perceber que precisa interagir com outra janela antes que o Git possa prosseguir. Para este usuário, o Git aparece suspenso.
Imprima uma mensagem informando que o Git está aguardando a entrada do editor no terminal original e se livre dela quando o editor retornar, se o terminal suportar apagar a última linha
Resposta original
Acabei de testar com a versão 1.6.2.msysgit.0.186.gf7512 do git e o Notepad ++ 5.3.1
Eu prefiro não ter que definir uma variável EDITOR, então tentei:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
Isso sempre dá:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
Se eu definir um npp.bat, incluindo:
"c:\Program Files\Notepad++\notepad++.exe" %*
e eu digito:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
Apenas funciona a partir da sessão do DOS, mas não a partir do shell git .
(não que, com o mecanismo de configuração core.editor, um script com " start /WAIT...
" não funcione, mas apenas abra uma nova janela do DOS)
A resposta de Bennett menciona a possibilidade de evitar a adição de um script, mas de referenciar diretamente o próprio programa entre aspas simples . Observe a direção das barras! Use /
NÃO \
para separar pastas no nome do caminho!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Ou se você estiver em um sistema de 64 bits:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Mas prefiro usar um script (veja abaixo): dessa forma, posso jogar com caminhos diferentes ou opções diferentes sem precisar me registrar novamente a git config
.
A solução real (com um script) foi perceber que: o
que você se refere no arquivo de configuração é na verdade um /bin/sh
script shell ( ) , não um script DOS.
Então, o que funciona é:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
com C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
ou
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
Com essa configuração, eu posso fazer ' git config --global --edit
' a partir do DOS ou Git Shell, ou eu posso fazer ' git rebase -i ...
' a partir do DOS ou Git Shell.
Os comandos bot acionam uma nova instância do bloco de notas ++ (daí a -multiInst
opção ') e aguardam o fechamento dessa instância antes de continuar.
Observe que eu uso apenas '/', não \
'. E instalei o msysgit usando a opção 2. (Adicione o git\bin
diretório à PATH
variável de ambiente, mas sem substituir algumas ferramentas internas do Windows)
O fato de o wrapper do bloco de notas ++ ser chamado .bat não é importante.
Seria melhor chamá-lo de 'npp.sh' e colocá-lo no [git]\cmd
diretório (ou em qualquer diretório referenciado pela sua variável de ambiente PATH).
Veja também:
lightfire228 acrescenta nos comentários :
Para quem tem um problema em que o N ++ apenas abre um arquivo em branco e o git não aceita sua mensagem de confirmação, consulte " Anulando a Confirmação Devido à Mensagem Vazia ": altere seu arquivo .bat
ou .sh
para dizer:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Isso instruirá o bloco de notas ++ a abrir o arquivo de confirmação temporária, em vez de um novo em branco.