Как использовать Zsh с msysGit

msysGit поставляется с расширением оболочки Explorer, отображающим Git Bash Here в контекстном меню папки, которая открывает приглашение Bash в выбранной папке.

Как я могу использовать Zsh вместо Bash в качестве оболочки для этого командного окна?

Ответ 1

Встроенный Bash, который предоставляет msysGit, построен поверх conhost.exe. Это делает его ужасным по сравнению, например, с xterm (буфер обмена, ввод/вывод текста, история и т.д.).

Обходной путь, который я сейчас использую, когда в Windows я использую последнюю версию msysGit + Cygwin mintty с Bash. Это дает мне приличную оболочку с недавним и быстрым Git. При таком подходе вы можете использовать другие оболочки, например Zsh. Помните, что компромисс включает в себя то, что Git не может использовать ваш PAGER (мне пришлось псевдоним таких вещей, как git log - git log|less).

Ответ 2

MsysGit не поддерживает другие оболочки, чем встроенный Bash.

Вы можете использовать Cygwin - если вы не можете жить без Zsh (я понимаю вас) - который также предоставляет git -package.

К сожалению, этот пакет довольно старый (v1.7.9 с января 12), что может вызвать проблемы во взаимодействии с более новыми репозиториями.

Ответ 3

Babun - это вариант, который легко настроить. Он основан на Cygwin, предоставляет Zsh (включая Oh My Zsh) и Git, готовый к использованию "из коробки".

Технически, он не использует Zsh с msysGit, так как Babun включает свою собственную версию Git. Кроме того, Babun занимает примерно вдвое больше места, необходимого msysGit (включая Git Bash). Однако он может стать жизнеспособной альтернативой благодаря простой настройке и дальнейшим возможностям использования по сравнению с msysGit.

Обновление: проект Babun прекращен. В Windows 10 вместо этого вы можете использовать WSL и установить все запрошенное программное обеспечение (например, Git и Zsh), используя менеджер пакетов выбранного дистрибутива Linux.

Ответ 4

Вы должны сначала установить pacman. Вы можете установить msys, а затем скопировать следующие файлы в git для директории установки Windows.

./etc/pacman.conf
./etc/pacman.d/gnupg/.gpg-v21-migrated
./etc/pacman.d/gnupg/crls.d/DIR.txt
./etc/pacman.d/gnupg/gpg-agent.conf
./etc/pacman.d/gnupg/gpg.conf
./etc/pacman.d/gnupg/openpgp-revocs.d/95B7E06B8C47127F398481080BDA45A606729940.rev
./etc/pacman.d/gnupg/private-keys-v1.d/1124CC687F416E4D7C43EB618BECDD023E787046.key
./etc/pacman.d/gnupg/pubring.gpg
./etc/pacman.d/gnupg/pubring.gpg~
./etc/pacman.d/gnupg/secring.gpg
./etc/pacman.d/gnupg/tofu.db
./etc/pacman.d/gnupg/trustdb.gpg
./etc/pacman.d/mirrorlist.mingw32
./etc/pacman.d/mirrorlist.mingw64
./etc/pacman.d/mirrorlist.msys
./usr/bin/pacboy
./usr/bin/paccache
./usr/bin/pacdiff
./usr/bin/paclist
./usr/bin/paclog-pkglist
./usr/bin/pacman-conf.exe
./usr/bin/pacman-db-upgrade
./usr/bin/pacman-key
./usr/bin/pacman-rec-filename-grep
./usr/bin/pacman.exe
./usr/bin/pacscripts
./usr/bin/pacsearch
./usr/bin/pacsort.exe
./usr/bin/pactoys

Я просто копирую все двоичные файлы, начинающиеся с pac, из /usr/bin/dir. Теперь у вас есть Pacman. установите команду zsh с помощью команды pacman -S zsh.

см учебник из https://medium.com/@borekb/zsh-via-msys2-on-windows-3964a943b1ce