Como faço para usar o Notepad ++ (ou outro) com msysgit?
-
06-07-2019 - |
Pergunta
Como faço para usar o Notepad ++ (ou qualquer outro editor além vim) com msysgit?
Eu tentei todos os seguintes sem sucesso:
git config --global core.editor C:\Program Files\Notepad++\notepad++.exe
git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe"
git config --global core.editor C:/Program Files/Notepad++/notepad++.exe
git config --global core.editor C:\\Program Files\\Notepad++\\notepad++.exe
Solução
Atualização 2010-2011:
zumalifeguard 's solução (upvoted) é mais simples do que o original, uma vez que não precisa mais de um shell invólucro script.
Como eu explico em " Como posso configurar um editor para trabalhar com Git no Windows? ", Eu prefiro um invólucro, uma vez que é mais fácil de tentar e editores de switch, ou alterar o caminho de um editor, sem ter de se inscrever disse que a mudança com uma git config
novamente .
Mas isso é apenas me.
Informações adicionais :. A seguinte solução trabalha com Cygwin , enquanto que a solução do zuamlifeguard não
resposta original.
A seguir:
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 "$*"
não funciona. Esses comandos são interpretados como shell script, portanto, a idéia de envolver todas as janelas conjunto de comandos em um script sh
.
(Como Franky comentários : "Lembre-se de salvar o arquivo .sh
com Unix finais de linha estilo ou receber mensagens de erro misteriosas")
Mais detalhes sobre o SO pergunta Como posso configurar um editor para trabalhar com Git no Windows?
Observe a opção '-multiInst
', para assegurar uma nova instância do bloco de notas ++ para cada chamada do Git.
Note também que, se você estiver usando Git em Cygwin (e querem Notepad ++ uso do Cygwin ), então scphantm explica em " usando o Notepad ++ para Git dentro Cygwin " que você deve estar ciente de que:
git
está passando um caminhocygwin
enpp
não sabe o que fazer com ele
Assim, 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, em seguida, excluído) que você não deve opção -notabbar
usar:?
Não faz nenhum bom para desativar a guia durante rebase, mas faz muito mal a usabilidade geral Notepad desde
-notab
se torna a configuração padrão e você deveSettings>Preferences>General>TabBar> Hide>uncheck
cada vez que você iniciar o bloco de notas depois de rebase. Isso é o inferno. Você recomendou o inferno.
Portanto, use bastante:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Isto é:
#!/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 no
'c:\program files\...
',), você tem três opções:
-
De qualquer tentativa de citar o caminho (simples ou duplas), como em:
git config --global core.editor 'C:/program files/git/npp.sh'
-
ou tentar o abreviado notação (não enganar-prova):
git config --global core.editor C:/progra~1/git/npp.sh
-
ou (meu favorito) lugar '
npp.sh
' em uma parte do diretório do seu variável de ambiente%PATH%
. Você não teria, em seguida, para especificar qualquer caminho para o script.git config --global core.editor npp.sh
-
relatórios Steiny nos comentários ter que fazer:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'
Outras dicas
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Ou, para Windows de 64 bits e de 32 bits instalação do Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Ou, o seguinte pode ser emitido na linha de comando em qualquer de 32 bits ou 64 bits do Windows. Ele vai puxar a localização do bloco de notas ++ exe do registro e configure git para usá-lo automaticamente:.
FOR /F "usebackq tokens=2*" %A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe" /ve`) DO git config --global core.editor "'%B' -multiInst -notabbar -nosession -noPlugin"
Se você deseja colocar a acima de um arquivo .bat ou .cmd, você deve substituir% A com %% A e B% com %% B
Isso funciona para mim
git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""
Como de Git para Windows v2.15.0 (30 de outubro de 2017) agora é possível configure nano
ou Notepad ++ como editor padrão do Git vez de vim
.
Durante a instalação você verá a seguinte tela:
Eu uso a abordagem com a variável PATH. Caminho para o Notepad ++ é adicionado à variável PATH do sistema e, em seguida, core.editor é definido como a seguir:
git config --global core.editor notepad++
Além disso, você pode adicionar alguns parâmetros adicionais para Notepad ++:
git config --global core.editor "notepad++.exe -multiInst"
(como eu detalhado em " Git core.editor
para Windows ")
E aqui você pode encontrar algumas opções que você pode usar ao afirmar Notepad ++ Opções de linha de Comando .
ATUALIZAÇÃO 2015
Se você descompactar / instalar o Notepad ++ para c:\utils\npp\
e renomeação notepad ++. Exe para npp.exe por simplicidade, então tudo que você tem a fazer é
git config --global core.editor c:/utils/npp/npp.exe
roteiros involucrados Nenhum ou outros truques. Não há necessidade de ter Notepad ++ no PATH.
Estou usando o Windows 10 e bloco de notas ++, e eu estava ficando esta mensagem de erro:
line 0: syntax error near unexpected token `(' git windows
Então eu faço a configuração da seguinte maneira:
git config --global core.editor 'C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'
e funciona
Siga estas instruções,
-
Primeiro certifique-se de ter notepad ++ instalado no seu sistema e que é o programa padrão para arquivos .txt abertos.
-
Em seguida, instale gitpad em seu sistema. Observe a última vez que verifiquei o link de download foi quebrado, então baixá-lo aqui como explicou .
Em seguida, ao cometer você deve ver o seu editor de texto favorito aparecendo.
Eu costumava solução starikovs. Comecei com uma janela bash e deu os comandos
cd ~
touch .bashrc
Então eu encontrei o arquivo .bashrc no Windows Explorer, abriu-a com bloco de notas ++ e acrescentou
PATH=$PATH:"C:\Program Files (x86)\Notepad++"
para que o bash sabe onde encontrar Notepad ++. (Ter Notepad ++ no PATH bash é uma coisa útil em sua própria!) Então eu colei sua linha
git config --global core.editor "notepad++.exe -multiInst"
em uma janela bash. Eu comecei uma nova janela do bash para um repositório git para testar as coisas com o comando
git rebase -i HEAD~10
eo arquivo aberto no Notepad ++ como se esperava.
Aqui está uma solução com Cygwin:
#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
-
Se nenhum caminho, passar nenhum caminho
-
Se o caminho está vazio, passar o caminho vazio
-
Se o caminho não estiver vazia, convertido para o formato do Windows.
Então eu definir essas variáveis:
export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
-
EDITOR permite script para trabalhar com Git
-
GIT_EDITOR permite script para trabalhar com Hub comandos