Aktualizacja 2010-2011:
zumalifeguard „s rozwiązanie (upvoted) jest prostszy niż oryginalne, gdyż nie trzeba już powłoki otoki skrypt.
Jak wyjaśniam w temacie „ Jak skonfigurować edytor do pracy z Git w systemie Windows? ”, Wolę opakowanie, ponieważ łatwiej jest przełączać edytory lub zmieniać ścieżkę jednego edytora bez konieczności rejestrowania wspomnianej zmiany. z git config
ponownie .
Ale to tylko ja.
Informacje dodatkowe : poniższe rozwiązanie działa z Cygwin , a rozwiązanie zuamlifeguard nie.
Oryginalna odpowiedź.
Następujące:
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 "$*"
działa. Te polecenia są interpretowane jako skrypt powłoki, stąd pomysł zawinięcia dowolnego zestawu poleceń systemu Windows w sh
skrypt.
(Jak komentuje Franky : „Pamiętaj, aby zapisać plik z zakończeniami linii w stylu uniksowym lub otrzymać tajemnicze komunikaty o błędach!”).sh
Więcej informacji na temat pytania SO Jak skonfigurować edytor do pracy z Git w systemie Windows?
Zwróć uwagę na -multiInst
opcję „ ”, aby zapewnić nowe wystąpienie notatnika ++ dla każdego połączenia z Git.
Zauważ też, że jeśli używasz Git na Cygwin (i chcesz używać Notepad ++ z Cygwin ), to scphantm wyjaśnia w „ używaniu Notepad ++ dla Git wewnątrz Cygwin ”, że musisz zdawać sobie sprawę, że:
git
przechodzi cygwin
ścieżkę i npp
nie wie, co z tym zrobić
W takim przypadku skrypt byłby następujący:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Wiele linii dla czytelności:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Będąc "$(cygpath -w "$*")"
tutaj ważną częścią.
Val skomentował (a następnie usunął), że nie należy używać -notabbar
opcji:
Nie ma sensu wyłączanie karty podczas zmiany bazy, ale ma duży wpływ na ogólną użyteczność Notatnika, ponieważ -notab
staje się ustawieniem domyślnym i musisz za Settings>Preferences>General>TabBar> Hide>uncheck
każdym razem uruchamiać notatnik po zmianie bazy. To jest piekło. Poleciłeś piekło.
Więc użyj raczej:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
To jest:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Jeśli chcesz umieścić skrypt „ npp.sh
” w ścieżce ze spacjami (jak w „ c:\program files\...
”,), masz trzy opcje:
Spróbuj zacytować ścieżkę (pojedyncze lub podwójne cudzysłowy), jak w:
git config --global core.editor 'C:/program files/git/npp.sh'
lub wypróbuj zapis krótkiej nazwy (nie jest głupi):
git config --global core.editor C:/progra~1/git/npp.sh
lub (moje ulubione) miejsce ' npp.sh
' w części katalogu %PATH%
zmiennej środowiskowej. Nie trzeba wtedy określać ścieżki do skryptu.
git config --global core.editor npp.sh
Steiny informuje w komentarzach, że musi:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'