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
Foi útil?

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 caminho cygwin e npp 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ê deve Settings>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:

 enter descrição da imagem aqui

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,

  1. Primeiro certifique-se de ter notepad ++ instalado no seu sistema e que é o programa padrão para arquivos .txt abertos.

  2. 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"}
  1. Se nenhum caminho, passar nenhum caminho

  2. Se o caminho está vazio, passar o caminho vazio

  3. 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'
  1. EDITOR permite script para trabalhar com Git

  2. GIT_EDITOR permite script para trabalhar com Hub comandos

Fonte

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top