Aggiornamento 2010-2011:
zumalifeguard s' soluzione (upvoted) è più semplice di quella originale, in quanto non ha più bisogno di una shell wrapper script.
Come spiego in " Come posso impostare un editor per lavorare con Git su Windows? ", Preferisco un wrapper, in quanto è più facile provare a cambiare editor o cambiare il percorso di un editor, senza dover registrare detto cambiamento con un git config
nuovo .
Ma sono solo io.
Ulteriori informazioni : la seguente soluzione funziona con Cygwin , mentre la soluzione di zuamlifeguard no.
Risposta originale.
Il seguente:
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 "$*"
funziona. Tali comandi sono interpretati come script di shell, quindi l'idea di avvolgere qualsiasi set di comandi di Windows in uno sh
script.
(Come Franky commenta : "Ricorda di salvare il tuo .sh
file con terminazioni di linea in stile Unix o ricevere misteriosi messaggi di errore!")
Maggiori dettagli sulla domanda SO Come posso impostare un editor per lavorare con Git su Windows?
Nota l' -multiInst
opzione ' ', per garantire una nuova istanza di notepad ++ per ogni chiamata da Git.
Nota anche che, se stai usando Git su Cygwin (e vuoi usare Notepad ++ da Cygwin ), allora scphantm spiega in " usando Notepad ++ per Git all'interno di Cygwin " che devi essere consapevole che:
git
sta passando un cygwin
percorso e npp
non sa cosa farne
Quindi la sceneggiatura in quel caso sarebbe:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Linee multiple per leggibilità:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Con l' "$(cygpath -w "$*")"
essere la parte importante qui.
Val ha commentato (e quindi eliminato) che non dovresti usare l' -notabbar
opzione:
Non serve a nulla disabilitare la scheda durante rebase, ma fa molto male all'usabilità del Blocco note generale poiché -notab
diventa l'impostazione predefinita e devi Settings>Preferences>General>TabBar> Hide>uncheck
ogni volta che avvii il Blocco note dopo rebase. Questo è l'inferno. Mi hai raccomandato l'inferno.
Quindi usa piuttosto:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Questo è:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Se vuoi posizionare lo script ' npp.sh
' in un percorso con spazi (come in ' c:\program files\...
',), hai tre opzioni:
Prova a citare il percorso (virgolette singole o doppie), come in:
git config --global core.editor 'C:/program files/git/npp.sh'
oppure prova la notazione con il nome breve (non infallibile):
git config --global core.editor C:/progra~1/git/npp.sh
o (il mio preferito) posizionare ' npp.sh
' in una parte della directory della %PATH%
variabile di ambiente. Non dovresti quindi specificare alcun percorso per lo script.
git config --global core.editor npp.sh
Steiny riporta nei commenti che devono fare:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'