Update w latach 2010-2011:
zumalifeguard „s solution (upvoted) jest prostszy niż oryginalne, gdyż nie potrzebuje już skrypt powłoki powłoki.
Jak wyjaśniam w „How can I set up an editor to work with Git on Windows?” Wolę owijkę, gdyż łatwiej jest spróbować przełączyć redaktorów lub zmienić ścieżkę jednego edytora, bez konieczności rejestracji wspomnianą zmianę z git config
ponownie.
Ale to tylko ja.
Dodatkowe informacje: poniższe rozwiązanie działa z Cygwin, podczas gdy rozwiązanie zuamlifeguard nie robi.
odpowiedź oryginalny.
Poniższy:
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ł zawijania dowolnego zestawu okien poleceń w skrypcie sh
.
(Jak Frankycomments: „Pamiętaj, aby zapisać plik .sh
z Unix zakończeń linii styl lub odbierać tajemnicze komunikaty o błędach!”)
Więcej szczegółów na tak pytanie How can I set up an editor to work with Git on Windows?
Uwaga Opcja „-multiInst
” dla zapewnienie nowej instancji notatnika ++ dla każdego połączenia z Git.
Należy również zauważyć, że w przypadku korzystania z Git na Cygwin (i chcą use Notepad++ from Cygwin), następnie scphantm wyjaśnia w „using Notepad++ for Git inside Cygwin”, że trzeba mieć świadomość, że:
git
przechodzi mu cygwin
ścieżka i npp
nie wie, co z nim zrobić
Więc skrypt w tym przypadku byłoby:
#!/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 "$*")"
Z "$(cygpath -w "$*")"
będące ważną częścią tutaj.
Valcommented (a następnie usunięty), że nie należy używać -notabbar
opcję:
to sprawia, że nie jest dobre, aby wyłączyć kartę podczas rebase, ale sprawia, że wiele szkody dla ogólnej Notatnika użyteczność od -notab
staje się domyślne ustawienie i musisz za każdym razem uruchamiać Notatnik po podbiciu. To jest piekło. Poleciłeś piekło.
więc używać raczej:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Czyli:
#!/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:
Albo spróbuj podać ścieżkę (pojedyncze lub podwójne cudzysłowy), na przykład:
git config --global core.editor 'C:/program files/git/npp.sh'
lub spróbować (nie oszukać impregnowane) shortname notation:
git config --global core.editor C:/progra~1/git/npp.sh
lub (moje ulubione) "npp.sh
" w części katalogu twojej zmiennej środowiskowej %PATH%
. Nie musiałbyś wtedy podawać żadnej ścieżki do skryptu.
git config --global core.editor npp.sh
Steiny raporty in the comments konieczności zrobić:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'
ewentualne komunikaty o błędach? Czy próbowałeś ustawić zmienną środowiskową EDITOR? – csl
Sprawdź tutaj: http://stackoverflow.com/questions/10564/how-can-i-set-up-an-editor-to-work-with-git-on-windows – JasonTrue
Po prostu dodałem kilka informacji o ścieżce skryptu, w tym spacje, zgodnie z żądaniem. – VonC