Wie verwende ich Notepad ++ (oder andere) mit msysgit?

Wie verwende ich Notepad ++ (oder einen anderen Editor außer vim) mit msysgit?

Ich habe alles Folgende vergebens versucht:

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 

   

    Update 2010-2011:

    Zumalifeguards Lösung (upvoted) ist einfacher als die ursprüngliche, da sie kein Shell Wrapper mehr benötigt.

    Wie ich in ” Wie kann ich einen Editor für die Arbeit mit Git unter Windows einrichten? “, Bevorzuge ich einen Wrapper, da es einfacher ist, Editoren zu wechseln oder den Pfad eines Editors zu ändern, ohne die Änderung zu registrieren mit einer git config wieder .
    Aber das bin nur ich.


    Zusatzinformation : Die folgende Lösung funktioniert mit Cygwin , während die Lösung des zuamlifeguard nicht funktioniert.


    Ursprüngliche Antwort.

    Folgende:

     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 "$*" 

    funktioniert. Diese Befehle werden als Shell-Skript interpretiert, daher die Idee, alle Windows-Befehle in ein sh Skript zu schreiben.
    (Wie Franky Kommentare : “Denken Sie daran, Ihre .sh Datei mit Zeilenenden Unix-Stil zu speichern oder mysteriöse Fehlermeldungen zu erhalten!”)

    Weitere Informationen zur SO-Frage Wie kann ich einen Editor für die Arbeit mit Git unter Windows einrichten?

    Beachten Sie die ‘ -multiInst ‘ Option, um eine neue Instanz von Notepad ++ für jeden Aufruf von Git zu gewährleisten.

    Beachten Sie auch, dass, wenn Sie Git auf Cygwin verwenden (und Notepad ++ von Cygwin verwenden möchten), Scophantm in ” Notepad ++ für Git in Cygwin verwenden ” erklärt, dass Sie Folgendes beachten müssen:

    git gibt es einen cygwin Pfad und npp weiß nicht, was damit zu tun ist

    Also wäre das Skript in diesem Fall:

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

    Mehrere Zeilen für Lesbarkeit:

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

    Mit "$(cygpath -w "$*")" ist der wichtige Teil hier.

    Val hat kommentiert (und dann gelöscht), dass Sie die Option -notabbar nicht verwenden -notabbar :

    Es ist nicht sinnvoll, die Registerkarte während der Rebase zu deaktivieren, aber die allgemeine Benutzerfreundlichkeit von Notepad wird -notab beeinträchtigt, da -notab zur Standardeinstellung wird und Sie unter Settings>Preferences>General>TabBar> Hide>uncheck Voreinstellungen Settings>Preferences>General>TabBar> Hide>uncheck jedes Mal nach dem Reboot den Editor deaktivieren müssen. Das ist die Hölle. Du hast die Hölle empfohlen.

    Also verwende eher:

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

    Das ist:

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

    Wenn Sie das Skript ‘ npp.sh ‘ in einem Pfad mit Leerzeichen platzieren möchten (wie in ‘ c:\program files\... ‘,), haben Sie drei Möglichkeiten:

    • Versuchen Sie, den Pfad (einfache oder doppelte Anführungszeichen) anzugeben, z. B .:

       git config --global core.editor 'C:/program files/git/npp.sh' 
    • oder versuchen Sie die Kurznotation (nicht idiotensicher ):

       git config --global core.editor C:/progra~1/git/npp.sh 
    • oder (mein Favorit) platziere ‘ npp.sh ‘ in einem Verzeichnisteil deiner %PATH% -Umgebungsvariablen. Sie müssten dann keinen Pfad für das Skript angeben.

       git config --global core.editor npp.sh 
    • Steiny berichtet in den Kommentaren zu tun:

       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" 

    Oder für 64-Bit-Windows und eine 32-Bit-Installation von Notepad ++:

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

    Oder Folgendes kann in der Befehlszeile auf 32-Bit- oder 64-Bit-Windows ausgegeben werden. Es wird den Speicherort von notepad ++. Exe aus der Registrierung abrufen und git so konfigurieren, dass es automatisch verwendet wird:

     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" 

    Wenn Sie das Obige aus einer .BAT- oder .CMD-Datei platzieren möchten, müssen Sie% A durch %% A und% B durch %% B ersetzen

    Das funktioniert für mich

     git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe 
     git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\"" 

    Ab Git für Windows v2.15.0 (30. Oktober 2017) ist es jetzt möglich, nano oder Notepad ++ als Standard-Editor von Git anstelle von vim zu konfigurieren .

    Während der Installation sehen Sie den folgenden Bildschirm:

    Bildbeschreibung hier eingeben

    Ich benutze den Ansatz mit PATH-Variable. Der Pfad zu Notepad ++ wird der PATH-Variablen des Systems hinzugefügt, und dann wird core.editor wie folgt festgelegt:

     git config --global core.editor notepad++ 

    Außerdem können Sie einige zusätzliche Parameter für Notepad ++ hinzufügen:

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

    (wie ich in ” Git core.editor für Windows ” core.editor )

    Und hier können Sie einige Optionen finden, die Sie verwenden können, wenn Sie Notepad ++ Befehlszeilenoptionen angeben.

    UPDATE 2015

    Wenn Sie Notepad ++ in c:\utils\npp\ entpacken / installieren und notepad ++. Exe einfach in npp.exe umbenennen, müssen Sie nur noch

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

    Keine Wrapper-Skripte oder andere Tricks. Keine Notwendigkeit, Notepad ++ in PATH zu haben.

    Befolgen Sie diese statementen,

    1. Stellen Sie zuerst sicher, dass Sie notepad ++ auf Ihrem System installiert haben und dass es das Standardprogramm zum Öffnen von .txt-Dateien ist.

    2. Installieren Sie dann gitpad auf Ihrem System. Beachten Sie, dass die letzte Überprüfung des Download-Links fehlgeschlagen ist, laden Sie sie wie hier beschrieben von hier herunter.

    Dann sollten Sie während des Commits Ihren bevorzugten Texteditor sehen.

    Ich habe die Lösung von Starikov verwendet. Ich begann mit einem Bash-Fenster und gab die Befehle

     cd ~ touch .bashrc 

    Dann habe ich die .bashrc Datei im Windows Explorer gefunden, mit Notepad ++ geöffnet und hinzugefügt

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

    so dass Bash weiß, wo Notepad ++ zu finden ist. (Mit Notepad ++ in der Bash PATH ist eine nützliche Sache für sich!) Dann habe ich seine Linie eingefügt

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

    in ein Bash-Fenster. Ich habe ein neues Bash-Fenster für ein Git-Repository gestartet, um Dinge mit dem Befehl zu testen

     git rebase -i HEAD~10 

    und die Datei in Notepad ++ wie erhofft geöffnet.

    Hier ist eine Lösung mit Cygwin:

     #!/bin/dash -e if [ "$1" ] then k=$(cygpath -w "$1") elif [ "$#" != 0 ] then k= fi Notepad2 ${k+"$k"} 
    1. Wenn kein Pfad vorhanden ist, passiere keinen Pfad

    2. Wenn der Pfad leer ist, übergeben Sie den leeren Pfad

    3. Wenn der Pfad nicht leer ist, wandeln Sie in das Windows-Format um.

    Dann setze ich diese Variablen:

     export EDITOR=notepad2.sh export GIT_EDITOR='dash /usr/local/bin/notepad2.sh' 
    1. EDITOR erlaubt Skript mit Git zu arbeiten

    2. GIT_EDITOR ermöglicht das Arbeiten mit Hub-Befehlen

    Quelle