2009-10-27 14 views
204

Jak używać programu Notatnik ++ (lub innego edytora oprócz vima) z programem msysgit?Jak używać programu Notepad ++ (lub innego) z programem msysgit?

Próbowałem wszystkie następujące bezskutecznie:

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 
+1

ewentualne komunikaty o błędach? Czy próbowałeś ustawić zmienną środowiskową EDITOR? – csl

+4

Sprawdź tutaj: http://stackoverflow.com/questions/10564/how-can-i-set-up-an-editor-to-work-with-git-on-windows – JasonTrue

+0

Po prostu dodałem kilka informacji o ścieżce skryptu, w tym spacje, zgodnie z żądaniem. – VonC

Odpowiedz

73

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"' 
    
+0

Mam to do pracy, umieszczając npp.sh w katalogu głównym mojego napędu (np. - C:/npp.sh). Za każdym razem, gdy staram się kierować na folder ze spacjami (tj. - D:/Program Files (x86) /Git/npp.sh) w nim się nie udaje, jaki jest właściwy sposób na ucieczkę spacji i/lub sprawdzenie, czy działa? – PHLAK

+0

umieścić cytaty wokół niego. Widzisz, jak cytuje całą rzecz w swoim przykładzie? – Fred

+2

Odpowiedź przez zumalifeguard zadziałała dla mnie. Nie wymaga opakowania skryptu powłoki. – wbinford

6

To działa na mnie

git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe 
+0

Zrobiłem to samo .. teraz, jak otworzyć notatnik ++, aby zatwierdzić z wiadomością ?? co to jest commad? proszę podać przykład: –

+2

Dodanie opcji '-multiInst' ma tu kluczowe znaczenie, podobnie jak w przypadku innych odpowiedzi. – blubberdiblub

+0

To nie jest dobre z dwóch powodów. Po pierwsze, jeśli wolumin C: NTFS z opcją 8.3 filename jest wyłączony, w ogóle nie ma żadnego 'C: \ Progra ~ 1'.Po drugie, może istnieć wiele katalogów 'C: \ Progra *', więc przyrostek "~ 1" niekoniecznie jest poprawny. – kkm

415
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" 

Albo, dla 64-bitowych systemów Windows oraz 32- instalacja bitowa Notepad ++:

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

Lub następujące polecenia mogą być wydane w wierszu poleceń w 32-bitowym lub 64-bitowym systemie Windows. Będzie to ciągnąć lokalizację Notepad ++ exe z rejestru i skonfigurować git aby używać go automatycznie.

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" 

Jeśli chcesz umieścić wyżej od .bat lub.plik CMD należy zastąpić% A z %% A i B z %%% B

+9

działa również w rozszerzeniach git. pamiętaj, że dla 64-bitowych okien wpis to "C:/Program Files (x86)/Notepad ++/notepad ++. exe" -multiInst -notabbar -nosession -noPlugin' –

+15

Głupie jest to, że -nieabbar wyłączy pasek kart na stałe, nie tylko na tę sesję. Kiedy launchin notepad ++ normalnie, musisz przejść do okna ustawień i ponownie włączyć pasek zakładek. –

+4

Musiałem użyć: 'git config --global core.editor" c \:/Program \ Files \ \ (x86 \)/Notepad ++/notepad ++. Exe -multiInst -nosession -noPlugin "' ... nie wiem dlaczego. –

0

Oto rozwiązanie z Cygwin:

#!/bin/dash -e 
if [ "$1" ] 
then k=$(cygpath -w "$1") 
elif [ "$#" != 0 ] 
then k= 
fi 
Notepad2 ${k+"$k"} 
  1. Jeśli żadna ścieżka, nie przechodzą ścieżkę

  2. Jeśli ścieżka jest pusta, należy podać pustą ścieżkę

  3. Jeśli ścieżka nie jest pusta, należy przekonwertować ją do formatu Windows.

Potem ustawić te zmienne:

export EDITOR=notepad2.sh 
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh' 
  1. Edytor umożliwia skrypt do pracy z Git

  2. GIT_EDITOR pozwala skrypt do pracy z Hub commands

Source

3

Używam podejścia ze zmienną PATH. Ścieżka do Notepad ++ dodaje do zmiennej PATH systemu, a następnie core.editor jest ustawione jak następuje:

git config --global core.editor notepad++ 

Ponadto, można dodać kilka dodatkowych parametrów dla Notepad ++:

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

(jak opisano w " Git core.editor for Windows ")

Tutaj możesz znaleźć kilka opcji, których możesz użyć, podając Notepad ++ Command Line Options.

0

UPDATE 2015

Jeśli rozpakować/install Notepad ++ do c:\utils\npp\ i zmienić Notepad ++. Exe do npp.exe dla uproszczenia, to wszystko co musisz zrobić, to

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

Brak skrypty wrapper lub inne oszustwo. Nie trzeba mieć Notepad ++ w PATH.

+0

Nie działa, jeśli notatnik ++ jest już otwarty. –

0

Postępuj zgodnie z poniższymi instrukcjami,

  1. Najpierw upewnij się, że notepad++ zainstalowane w systemie i że jest to domyślny program do otwierania plików .txt.

  2. Następnie zainstaluj gitpad w swoim systemie. Zauważ, że ostatnio sprawdziłem, czy link do pobierania został zerwany, więc pobierz go z here jako explained.

Następnie, wykonując polecenie, powinien pojawić się twój ulubiony edytor tekstu.

5
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\"" 
+0

To mi się udało! Następnie .gitconfig wygląda następująco: [core] \t editor = \ "c: \\ Program Files (x86) \\ Notepad ++ \\ notepad ++. Exe \" -multiInst -nosession -noPlugin – AtliB

+0

Zobacz najwyższą głosowaną odpowiedź, która zawiera to (nie czytałem wystarczająco daleko) – AtliB

0

Użyłem rozwiązania starikovs. Zacząłem z oknem bash i dał Komendy

cd ~ 
touch .bashrc 

Potem znalazłem plik .bashrc w Windows Explorer, otworzył je z Notepad ++ i dodał

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

więc, że bash wie, gdzie znaleźć Notepad ++. (Uwzględniając Notepad ++ w PATH bash to przydatna rzecz na własną rękę!) Potem wklejony swą linię

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

w oknie bash. Zaczęłam nowe okno bash dla repozytorium git do zbadania rzeczy z poleceniem

git rebase -i HEAD~10 

i plik otwarty w Notepad ++, jak się spodziewano.

Powiązane problemy