Git Bash тут, у Console2?


47

MSysGit встановлює пункт контекстного меню, який відкриває підказку Git Bash у поточно вибраній папці; однак це відкриває вікно cmd.exe, і я хотів би, щоб воно відкрилося в Console2 .

Які зміни потрібно внести, щоб це працювало?

Зауважте, я бачив це пов’язане питання , але відповідь застарів - MSysGit зараз використовує сценарій vba для виклику запиту bash. Плюс до цього не вказано чіткості, як змусити працювати з Console2.

Оновлення: можливо, вам буде цікаво зробити те саме з ConEmu , досить відмінним наступником консолі . Дивіться тут: Git Bash Тут, у ConEmu

Відповіді:


44

Ось що я зробив (ваші шляхи майже напевно різняться):

  1. Створіть нову вкладку в консолі з такими значеннями:
    • Назва: Git Bash
    • Піктограма: C:\Program Files\Git\etc\git.ico
    • Оболонка "C:\Program Files\Git\bin\sh.exe" --login -i
    • Режим запуску: %HOMEDRIVE%%HOMEPATH%
  2. Створіть новий ключ HKEY_CLASSES_ROOT\Directory\shell\називається git_shell2зі значенням данихGit Console Here
  3. Створіть новий ключ HKEY_CLASSES_ROOT\Directory\shell\git_shell2\називається commandзі значенням даних"C:\Users\charlesr\My Dropbox\Software\Console2\Console.exe" -t "Git Bash" -d "%1"

Це робить трюк.

Замість того, щоб робити кроки 2 та 3 вище, ви можете просто скопіювати наступне у файл.

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

Лише примітка для інших, хто знайде це пізніше, переконайтеся, що ви використовуєте 32-бітну версію Console2, інакше це не вдасться.
кодерангер

Зауважте, що в останньому msysgit піктограма тепер знаходиться в C: \ msysgit \ share \ resources \ git.ico
Кевін Беррідж

1
Дякую Чарльзу, але навіщо виконувати кроки 2 і 3? Це добре працює просто виконуючи крок 1, не знаючи, чому потрібно змінювати налаштування сховища?
Марк Кадлец

2
Дуже акуратно. Зверніть увагу , ви можете також додати контекстне меню при натисканні на «тлі» папки (білу частину, а нема на іконку) gist.github.com/4048138
ОЖ

Я користувався цим налаштуванням деякий час, але, здається, є прикро обмеження неможливості виконання .batсценаріїв (без переходу на іншу вкладку, звичайна робота Cmd.exe). Хтось має про це розуміння?
Eoin

7

Сценарій vba просто запускає ярлик Git Bash в тій самій директорії; просто змініть цей ярлик, щоб він вказав на виконуваний файл Console2 і налаштував Console2 так, щоб він використовував sh MSysGit як свою оболонку.


ОНОВЛЕНО

Детальніше, як мені просто потрібно було зробити це знову на новому комп’ютері:

  • Налаштування консолі2

    1. додав нову вкладку під назвою "git"
    2. встановити значок на C:\Program Files (x86)\Git\etc\git.ico
    3. встановити оболонку на C:\Program Files (x86)\Git\bin\sh.exe --login -i
  • Налаштування ярлика Гіта Баша

    1. змінити ціль ярлика на C:\Tools\Console2\Console.exe -t git -d .(добре, де знаходиться ваш двійковий файл Console2)
    2. насолоджуйтесь новим запуском Console2 "Git Bash Here"!

Хитрість - "-d". Опція передається в Console2: Git Bash.vbsскрипт змінює поточний каталог у точку, на яку вказує миша, перш ніж запускати ярлик.

Сподіваюся, що це допомагає.


5

У випадку, якщо хтось наткнеться на це, бажаючи використовувати MinGW Bash, я знайшов для цього рішення.

  1. Console2, Edit, Settings, Tabs, Add
  2. Назва = Bash
  3. Оболонка = C:\MinGW\msys\1.0\bin\sh.exe -l
  4. Редагувати реєстр

    ni hklm:software/classes/directory/shell/bash/command `
      -f -va 'c:/Console2/Console.exe -t Bash -d %v'
    
  5. Створіть ~/.profileіз наступним:

    cd -
    

cd Man Page

Це працює з 64-розрядною і 32-розрядною консоллю2, не впевнений, про який кодранжер був.


Існує кілька проблем з цією командою, яка змушує консоль повернути помилку. По-перше, HKCR\...\commandне слід додавати цитати. Далі, я вважаю, \-dви маєте на увазі передати /dпараметр, щоб вказати дані для нового запису реєстру. Також вам потрібні подвійні лапки навколо значення даних, і -tпараметр змушує Console.exe взагалі не відкриватися, тому виключайте це. Це повинно виглядати так:reg add HKCR\Directory\shell\Bash\command /d "C:\Console2\Console.exe -d \"%V\""
Девід Кеннеді

З ваших коментарів видно, що ви все ще використовуєте cmd.exe, оскільки Bash дозволяє використовувати одинарні та подвійні лапки для рядків. Вам слід розглянути можливість оновлення до Bash.
Стівен Пенні

0

Припустимо, що у вас є вкладка Console2 під назвою "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\"\\"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.