Atualização 2010-2011:
zumalifeguard 's solução (upvoted) é mais simples do que o original, uma vez que não mais precisa de um shell invólucro script.
Como explico em " Como posso configurar um editor para trabalhar com o Git no Windows? ", Prefiro um wrapper, pois é mais fácil tentar alternar entre editores ou alterar o caminho de um editor, sem precisar registrar a alteração. com um git config
novamente .
Mas isso sou só eu.
Informações adicionais : a solução a seguir funciona com Cygwin , enquanto a solução do zuamlifeguard não.
Resposta original.
Os seguintes:
C:\prog\git>git config --global core.editor C:/prog/git/npp.sh
C:/prog/git/npp.sh:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
funciona. Esses comandos são interpretados como shell script, daí a ideia de agrupar qualquer conjunto de comandos do Windows em um sh
script.
(Como Franky comenta : "Lembre-se de salvar seu .sh
arquivo com finais de linhas no estilo Unix ou receber mensagens de erro misteriosas!")
Mais detalhes sobre a questão da SO Como posso configurar um editor para trabalhar com o Git no Windows?
Observe a -multiInst
opção ' ', para garantir uma nova instância do notepad ++ para cada chamada do Git.
Observe também que, se você estiver usando Git no Cygwin (e quiser usar o Notepad ++ da Cygwin ), a scphantm explica em " usando o Notepad ++ para Git no Cygwin " que você deve estar ciente de que:
git
está passando um cygwin
caminho e npp
não sabe o que fazer com ele
Portanto, o script nesse caso seria:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Várias linhas para facilitar a leitura:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Com "$(cygpath -w "$*")"
sendo a parte importante aqui.
Val comentou (e depois excluiu) que você não deve usar a -notabbar
opção:
Não é bom desativar a guia durante o rebase, mas prejudica bastante a usabilidade geral do Bloco de Notas, pois -notab
se torna a configuração padrão e você deve Settings>Preferences>General>TabBar> Hide>uncheck
sempre que iniciar o bloco de notas após o rebase. Isso é o inferno. Você recomendou o inferno.
Então use:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Isso é:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Se você deseja colocar o script ' npp.sh
' em um caminho com espaços (como em ' c:\program files\...
',), você tem três opções:
Tente citar o caminho (aspas simples ou duplas), como em:
git config --global core.editor 'C:/program files/git/npp.sh'
ou tente a notação de nome abreviado (sem provas):
git config --global core.editor C:/progra~1/git/npp.sh
ou local (meu favorito) ' npp.sh
' em um diretório que faz parte da sua %PATH%
variável de ambiente. Você não precisaria especificar nenhum caminho para o script.
git config --global core.editor npp.sh
Steiny relata nos comentários que precisam fazer:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'