Como eu uso o Notepad ++ (ou outro) com msysgit?

Como uso o Notepad ++ (ou qualquer outro editor além do 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 

    Atualizar 2010-2011:

    A solução do zumalifeguard (upvoted) é mais simples que a original, já que não precisa mais de um script de shell wrapper.

    Como explico em ” Como posso configurar um editor para trabalhar com o Git no Windows? “, Prefiro um wrapper, pois é mais fácil tentar alternar editores ou alterar o caminho de um editor, sem ter que registrar a alteração mencionada. com uma git config novamente .
    Mas isso é só eu.


    Informações adicionais : a solução a seguir funciona com o 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 idéia de agrupar qualquer conjunto de comandos do Windows em um script sh .
    (Como Franky comenta : “Lembre-se de salvar seu arquivo .sh com finais de linha estilo Unix ou receber mensagens de erro misteriosas!”)

    Mais detalhes sobre a questão SO Como posso configurar um editor para trabalhar com o Git no Windows?

    Observe a opção ‘ -multiInst ‘, para garantir uma nova instância do notepad ++ para cada chamada do Git.

    Note também que, se você estiver usando o Git no Cygwin (e quiser usar o Notepad ++ da Cygwin ), então o scphantm explica em ” usando o Notepad ++ para o Git dentro do Cygwin ” que você deve estar ciente de que:

    git está passando um caminho cygwin e npp não sabe o que fazer com ele

    Então o script nesse caso seria:

     #!/bin/sh "C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")" 

    Várias linhas para legibilidade:

     #!/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 apagou) que você não deveria usar a opção -notabbar :

    Não adianta desabilitar a guia durante o rebase, mas faz muito mal à usabilidade geral do Notepad, pois -notab se torna a configuração padrão e você deve Settings>Preferences>General>TabBar> Hide>uncheck toda vez que você iniciar o bloco de notas após rebase. Isso é o inferno. Você recomendou o inferno.

    Então use um pouco:

     #!/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ê quiser 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 curto (não à prova de erros):

       git config --global core.editor C:/progra~1/git/npp.sh 
    • ou (meu favorito) coloque ‘ npp.sh ‘ em uma parte do diretório de sua variável de ambiente %PATH% . Você não teria, então, para especificar qualquer caminho para o script.

       git config --global core.editor npp.sh 
    • Steiny relata nos comentários que tem que fazer:

       git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"' 
     git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" 

    Ou, para o Windows de 64 bits e uma instalação de 32 bits 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 no Windows de 32 ou 64 bits. Ele vai puxar a localização do notepad ++. Exe do registro e configurar o 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 o código acima de um arquivo .BAT ou .CMD, você deve replace% A por %% A e% B por %% 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\"" 

    A partir do Git for Windows v2.15.0 (30 de outubro de 2017) , agora é possível configurar o nano ou o Notepad ++ como o editor padrão do Git, em vez do vim .

    Durante a instalação, você verá a seguinte canvas:

    insira a descrição da imagem aqui

    Eu uso a abordagem com a variável PATH. O caminho para o Notepad ++ é adicionado à variável PATH do sistema e, em seguida, o core.editor é definido da seguinte forma:

     git config --global core.editor notepad++ 

    Além disso, você pode adicionar alguns parâmetros adicionais para o Notepad ++:

     git config --global core.editor "notepad++.exe -multiInst" 

    (como detalhado em ” Git core.editor for Windows “)

    E aqui você pode encontrar algumas opções que você pode usar ao declarar as opções de linha de comando do Notepad ++.

    ATUALIZAÇÃO 2015

    Se você descompactar / instalar o Notepad ++ em c:\utils\npp\ e renomear o notepad ++. Exe para npp.exe para simplificar, então tudo que você precisa fazer é

     git config --global core.editor c:/utils/npp/npp.exe 

    Nenhum script de wrapper ou outro truque. Não é necessário ter o Notepad ++ no PATH.

    Siga estas instruções,

    1. Primeiro, verifique se o notepad ++ está instalado no sistema e se é o programa padrão para abrir arquivos .txt.

    2. Em seguida, instale o gitpad no seu sistema. Observe o último que eu verifiquei o link de download foi quebrado, para baixá-lo daqui como explicado .

    Então, enquanto você está cometendo, você deve ver seu editor de texto favorito aparecendo.

    Eu usei a solução da Starikovs. Eu comecei com uma janela bash e dei os comandos

     cd ~ touch .bashrc 

    Então eu encontrei o arquivo .bashrc no Windows Explorer, abri-lo com o notepad ++ e adicionado

     PATH=$PATH:"C:\Program Files (x86)\Notepad++" 

    para que o bash saiba onde encontrar o Notepad ++. (Ter o Notepad ++ no PATH bash é uma coisa útil por si só!) Então eu colei sua linha

     git config --global core.editor "notepad++.exe -multiInst" 

    em uma janela bash. Eu iniciei uma nova janela bash para um repository git para testar coisas com o comando

     git rebase -i HEAD~10 

    e o arquivo aberto no Notepad ++ como esperado.

    Aqui está uma solução com o Cygwin:

     #!/bin/dash -e if [ "$1" ] then k=$(cygpath -w "$1") elif [ "$#" != 0 ] then k= fi Notepad2 ${k+"$k"} 
    1. Se não houver caminho, não passe por caminho

    2. Se o caminho estiver vazio, passe o caminho vazio

    3. Se o caminho não estiver vazio, converta para o formato do Windows.

    Então eu configurei estas variables:

     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 que script trabalhe com comandos do Hub

    Fonte