Git Bash tutaj w Console2?


47

MSysGit instaluje element menu kontekstowego, który otwiera monit Git Bash w aktualnie wybranym folderze; otwiera to jednak okno cmd.exe i chciałbym, aby otworzyło się ono w Console2 .

Jakie modyfikacje muszę wprowadzić, aby to działało?

Uwaga: widziałem podobne pytanie , ale odpowiedź jest nieaktualna - MSysGit używa teraz skryptu vba do wywołania monitu bash. Co więcej, nie wyjaśnia, w jaki sposób uzyskać pracę z Console2.

Aktualizacja: możesz być zainteresowany zrobieniem tego samego z ConEmu , raczej doskonałym następcą konsoli . Zobacz tutaj: Git Bash tutaj w ConEmu

Odpowiedzi:


44

Oto co zrobiłem (twoje ścieżki prawie na pewno się różnią):

  1. Utwórz nową kartę w konsoli z następującymi wartościami:
    • Tytuł: Git Bash
    • Ikona: C:\Program Files\Git\etc\git.ico
    • Muszla "C:\Program Files\Git\bin\sh.exe" --login -i
    • Katalog startowy: %HOMEDRIVE%%HOMEPATH%
  2. Utwórz nowy klucz HKEY_CLASSES_ROOT\Directory\shell\wywołany git_shell2o wartości danych równejGit Console Here
  3. Utwórz nowy klucz HKEY_CLASSES_ROOT\Directory\shell\git_shell2\wywołany commando wartości danych równej"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

To załatwia sprawę.

Zamiast wykonywać powyższe kroki 2 i 3, możesz po prostu skopiować następujące elementy do pliku .reg (najpierw zmodyfikować ścieżki, aby odpowiadały własnej konfiguracji), a następnie zaimportować do rejestru.

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\""

Uwaga dla innych, którzy znajdą to później, upewnij się, że używasz 32-bitowej wersji Console2, inaczej to się nie powiedzie.
coderanger

Zauważ, że w najnowszym msysgit ikona jest teraz w C: \ msysgit \ share \ resources \ git.ico
Kevin Berridge

1
Dzięki Charles, ale po co biegać kroki 2 i 3? Działa dobrze, wykonując krok 1, nie wiesz, dlaczego trzeba zmienić ustawienia repozytorium?
Mark Kadlec

2
Bardzo schludny. Uwaga: możesz również dodać menu kontekstowe, klikając „tło” folderu (biała część, nie ikona) gist.github.com/4048138
Ozh

Używam tej konfiguracji od jakiegoś czasu, ale wydaje się, że ma to niefortunne ograniczenie, że nie mogę wykonywać .batskryptów (bez przełączania się na inną kartę, uruchamianie zwykłego Cmd.exe). Czy ktoś ma jakieś spostrzeżenia na ten temat?
Eoin

7

Skrypt vba po prostu uruchamia skrót Git Bash w tym samym katalogu; po prostu zmień ten skrót, aby wskazywał na plik wykonywalny Console2 i skonfiguruj Console2, aby używał sh MSysGit jako swojej powłoki.


AKTUALIZACJA

Wchodząc w więcej szczegółów, ponieważ musiałem to zrobić ponownie na nowym komputerze:

  • Konfigurowanie konsoli 2

    1. dodano nową kartę o nazwie „git”
    2. ustaw ikonę na C:\Program Files (x86)\Git\etc\git.ico
    3. ustaw powłokę na C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Ulepszenie skrótu Git Bash

    1. zmień cel skrótu na C:\Tools\Console2\Console.exe -t git -d .(dobrze tam, gdzie znajduje się twój plik binarny Console2)
    2. ciesz się nowym „Git Bash Here” uruchamiającym Console2!

Sztuką jest „-d”. opcja przekazana do Console2: Git Bash.vbsskrypt zmienia bieżący katalog do punktu wskazywanego przez mysz przed uruchomieniem skrótu.

Mam nadzieję, że to pomaga.


5

Na wypadek, gdyby ktoś natknął się na to, chcąc skorzystać z MinGW Bash, znalazłem rozwiązanie tego problemu.

  1. Console2, Edycja, Ustawienia, Zakładki, Dodaj
  2. Tytuł = Bash
  3. Shell = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. Edytuj rejestr

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. Utwórz ~/.profileza pomocą następujących elementów:

    cd -
    

cd Strona man

Działa to z 64-bitową i 32-bitową konsolą2, nie jestem pewien, o czym był program kodujący .


Istnieje kilka problemów z tym poleceniem, które powodują, że konsola zwraca błąd. Po pierwsze, HKCR\...\commandnie powinny być ujęte w cytaty. Następnie uważam, że \-dmasz na myśli przekazanie /dparametru w celu określenia danych dla nowego wpisu rejestru. Ponadto potrzebujesz podwójnych cudzysłowów wokół wartości danych, a -tparametr powoduje, że Console.exe w ogóle się nie otwiera, więc wyklucz to. Powinno to wyglądać tak:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
David Kennedy

Z twoich komentarzy wynika, że ​​nadal używasz cmd.exe, ponieważ Bash pozwala na stosowanie pojedynczych i podwójnych cudzysłowów dla ciągów. Powinieneś rozważyć aktualizację do wersji Bash.
Steven Penny,

0

Zakładając, że masz kartę Console2 o nazwie „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\"\\"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.