Git Bash Hier in Console2?


47

MSysGit installiert ein Kontextmenüelement, das eine Git Bash-Eingabeaufforderung für den aktuell ausgewählten Ordner öffnet. Dies öffnet jedoch ein cmd.exe-Fenster und ich möchte, dass es stattdessen in Console2 geöffnet wird.

Welche Änderungen muss ich vornehmen, damit dies funktioniert?

Hinweis: Ich habe diese verwandte Frage gesehen , aber die Antwort ist veraltet. MSysGit verwendet jetzt ein VBA-Skript, um die Bash-Eingabeaufforderung aufzurufen. Außerdem wird nicht explizit angegeben, wie Sie mit Console2 arbeiten können.

Update: Möglicherweise möchten Sie dies auch mit ConEmu , einem hervorragenden Nachfolger von Console, tun . Siehe hier: Git Bash Here in ConEmu

Antworten:


44

Folgendes habe ich getan (Ihre Wege variieren mit ziemlicher Sicherheit):

  1. Erstellen Sie eine neue Registerkarte in der Konsole mit den folgenden Werten:
    • Titel: Git Bash
    • Symbol: C:\Program Files\Git\etc\git.ico
    • Schale "C:\Program Files\Git\bin\sh.exe" --login -i
    • Startverzeichnis: %HOMEDRIVE%%HOMEPATH%
  2. Erstellen Sie einen neuen HKEY_CLASSES_ROOT\Directory\shell\aufgerufenen Schlüssel git_shell2mit einem Datenwert vonGit Console Here
  3. Erstellen Sie einen neuen HKEY_CLASSES_ROOT\Directory\shell\git_shell2\aufgerufenen Schlüssel commandmit einem Datenwert von"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

Das macht den Trick.

Anstatt die obigen Schritte 2 und 3 auszuführen, können Sie einfach Folgendes in eine .reg-Datei kopieren (die Pfade zuerst an Ihre eigene Konfiguration anpassen) und dann in die Registrierung importieren.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2]
@="Git Console Here"

[HKEY_CLASSES_ROOT\Directory\shell\git_shell2\command]
@="\"C:\\Users\\charlesr\\My Dropbox\\Software\\Console2\\Console.exe\" -t \"Git Bash\" -d \"%1\""

Nur ein Hinweis für andere, die dies später finden, stellen Sie sicher, dass Sie die 32-Bit-Version von Console2 verwenden, da dies sonst fehlschlägt.
Coderanger

Beachten Sie, dass sich das Symbol im neuesten msysgit jetzt in C: \ msysgit \ share \ resources \ git.ico befindet
Kevin Berridge

1
Danke Charles, aber warum die Schritte 2 und 3 ausführen? Es funktioniert einwandfrei, wenn Sie nur Schritt 1 ausführen und sich nicht sicher sind, warum die Repository-Einstellungen geändert werden müssen.
Mark Kadlec

2
Sehr gepflegt. Hinweis : Sie können auch Kontextmenü hinzufügen , wenn im „Hintergrund“ eines Ordners (den weißen Teil, nicht auf ein Symbol) klicken gist.github.com/4048138
Ozh

Ich habe dieses Setup für eine Weile verwendet, aber es scheint die unglückliche Einschränkung zu haben, dass ich keine .batSkripte ausführen kann (ohne zu einer anderen Registerkarte zu wechseln, ohne zu arbeiten Cmd.exe). Hat jemand irgendwelche Einsichten dazu?
Eoin

7

Das VBA-Skript startet nur die Git Bash-Verknüpfung im selben Verzeichnis. Ändern Sie einfach diese Verknüpfung, damit sie auf die ausführbare Datei von Console2 verweist, und konfigurieren Sie Console2 so, dass MSysGits sh als Shell verwendet wird.


AKTUALISIERT

Gehen Sie näher auf die Details ein, da ich sie auf einem neuen Computer nur noch einmal ausführen musste:

  • Console2 konfigurieren

    1. hat einen neuen Tab namens "git" hinzugefügt
    2. Setze das Icon auf C:\Program Files (x86)\Git\etc\git.ico
    3. Setzen Sie die Shell auf C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Die Verknüpfung von Git Bash anpassen

    1. Ändern Sie das Verknüpfungsziel in C:\Tools\Console2\Console.exe -t git -d .(wo sich Ihre Console2-Binärdatei befindet).
    2. Viel Spaß beim Starten von Console2 mit "Git Bash Here"!

Der Trick ist das "-d". Option an Console2 übergeben: Das Git Bash.vbsSkript ändert das aktuelle Verzeichnis auf den Punkt, auf den die Maus zeigt, bevor die Verknüpfung gestartet wird.

Ich hoffe, das hilft.


5

Für den Fall, dass jemand darauf stößt, MinGW Bash verwenden zu wollen, habe ich eine Lösung dafür gefunden.

  1. Console2, Bearbeiten, Einstellungen, Registerkarten, Hinzufügen
  2. Titel = Bash
  3. Shell = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. Registrierung bearbeiten

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. Erstellen Sie ~/.profilemit den folgenden:

    cd -
    

cd Man Page

Dies funktioniert mit 64-Bit- und 32-Bit-Console2, nicht sicher, um welchen Coderanger es sich handelt.


Es gibt verschiedene Probleme mit diesem Befehl, die dazu führen, dass die Konsole einen Fehler zurückgibt. Erstens HKCR\...\commandsollte nicht mit Anführungszeichen eingeschlossen werden. Als Nächstes möchten \-dSie den /dParameter übergeben, um die Daten für den neuen Registrierungseintrag anzugeben. Außerdem müssen Sie den Datenwert in doppelte Anführungszeichen setzen, und der -tParameter bewirkt, dass Console.exe überhaupt nicht geöffnet wird. Schließen Sie dies also aus. Es sollte so aussehen:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy

Aus Ihren Kommentaren geht hervor, dass Sie immer noch verwenden cmd.exe, da Bash die Verwendung von einfachen und doppelten Anführungszeichen für Zeichenfolgen ermöglicht. Sie sollten ein Upgrade auf Bash in Betracht ziehen.
Steven Penny

0

Angenommen, Sie haben eine Console2-Registerkarte mit dem Namen "bash":

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash]
@="Bash here (Console2)"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2_bash\command]
@="\"C:\\Program Files (x86)\\Console2\\Console.exe\" -t Bash -d \"%V\"\\"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.