sor*_*bet 18 windows shell msys
我想将 MSYS2 的默认 shell 从 更改bash
为zsh
.
我试过chsh
- 在 MSYS2 中不可用。
编辑/etc/passwd
什么都不做。它似乎被忽略了。
我查看了 MSYS2 根目录中的批处理脚本,并bash
进行了硬编码。我将每个都更改/usr/bin/bash
为/usr/bin/zsh
,效果很好,直到我尝试使用 MinGW。
如果可能的话,我在哪里可以(正确)更改 MSYS2 的外壳?
Ala*_*rce 28
我使用较新的 msys2-launcher 遇到了这个问题,它提供了.exe
启动器而不是批处理文件。
为此,只需更改.ini
Msys2 根目录中的启动器旁边的文件(对于 64 位安装,它可能包含msys2.ini
,mingw32.ini
和mingw64.ini
)。对于每个 ini 文件,添加一行来设置 shell:
SHELL=/usr/bin/zsh
Run Code Online (Sandbox Code Playgroud)
小智 9
我刚刚遇到了这个问题。为了让 zsh 运行,我这样做了:
mingw32_shell.bat
pacman -Syu
pacman -Sy zsh curl
exit
-我没有zsh
在安装后立即运行。start %WD%mintty -i /msys2.ico /usr/bin/bash --login %*
为:(
start %WD%mintty -i /msys2.ico /usr/bin/zsh --login %*
截至 2015-09-23 的第 39 行)mingw32_shell.bat
0
创建 .zshrc 文件。配置完成后,我看到:
zsh-newuser-install:1119: command not found: rm
Run Code Online (Sandbox Code Playgroud)
这看起来不正确......因为rm
在健康的 *nix 系统上永远不会发现网络(我猜这是 MSYS2 的 zsh 包的一个错误),但在那之后一切都运行良好。
当我第一次尝试这个时,我打开了一个批处理文件来创建一个新会话,我收到了一个关于 zsh 的内存空间已经被占用的错误。为了解决这个问题,我关闭了所有打开的 MinTTY 窗口并autorebase.bat
在 MSYS2 安装目录中运行该文件。之后一切正常。
然后我安装了 oh-my-zsh。使用:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
MSYS2 开发人员显然不断改变他们的设置,因为在最新的安装中,msys2_shell
Windows 中安装的用于启动 MSYS2 环境的命令接受一个-shell
参数。
因此,要使用不同的 shell,您可以编辑 MSYS2 / MinGW 32 / MinGW 64 的一个或多个启动器的属性,并更新目标以添加-shell zsh
或其他内容。(如果 shell 适用$PATH
于 MSYS 环境就足够了,则不需要完整路径。)
因此,例如我的 Win7 开始菜单上“MSYS2 64bit”中的“MSYS2 MinGW 64-bit”启动器:
目标:C:\msys64\msys2_shell.cmd -mingw64
目标:C:\msys64\msys2_shell.cmd -mingw64 -shell zsh
这似乎是永久切换的最简单且最兼容的方法,因为您的更改不会因升级或其他原因而消失。
奇怪的是,启动器不尊重任何环境变量、注册表项等。除非-shell
在命令行上传递来覆盖它,否则LOGINSHELL=bash
将使用它最初强制的默认值。
归档时间: |
|
查看次数: |
19092 次 |
最近记录: |