git-bash下默认使用zsh
背景
偶尔需要在windows下使用unity做些工作,
因此也需要设置一下配套的windows操作环境.
虽然也有WSL等,但git-bash无疑是最轻量的解决方案.
而之前的一个难题是,如何在git-bash中默认使用zsh,
目前该问题有了解决方案
zsh的版本
通过scoop安装的zsh,尽管可以切换但还是有些问题
- 无法显示ansi色彩
- 无法运行oh-my-zsh中的一些脚本
因此按照参考网页,从mysys2的仓库中下载(zsh-xx-x86~64~.pkg.tar.xz)
zsh的安装
解压后需要按照linux的方式分别将压缩包中的各个文件夹分别复制到 Git
的安装路径下,
通常 Git
的安装路径在 C:\Program Files\Git
默认加载zsh
此时应该已经可以手动使用 zsh
进入,
然后可以通过脚本控制从bash切换到zsh了.
~/.bashrc
文件中添加
1 | Launch Zsh |
- 如果还没有
.bashrc
,git-bash会自动生成一些其他文件,没有影响
安装oh-my-zsh
按照oh-my-zsh的方法应该就可以
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" |
zsh主题备份
目前简单自定义了 robbyrussell.zsh-theme
主题.
1 | PROMPT="%(?:%{$fg_bold[green]%}➜:%{$fg_bold[red]%}➜)" |
插件问题
常用的插件
- git
- z
- colored-man-pages
开箱可用
第三方插件
- zsh-autosuggestions
- zsh-snytax-highlighting
等可以手动放到 ~/.oh-my-zsh/custom/plugins/
下并配置一下就可用
fzf插件
由于windows的编译版本基本没有绑定快捷键的脚本,
因此需要从其他平台借来对应的脚本文件
Arch Linux下可以是
/usr/share/fzf/key-bindings.zsh
, /usr/share/fzf/completion.zsh
macOS下可以是
/usr/local/Cellar/fzf/0.24.2/shell/key-bindings.zsh
, /usr/local/Cellar/fzf/0.24.2/shell/completion.zsh
注意oh-my-zsh自带的 ~/.oh-my-zsh/lib/key-bindings.zsh
等并不涉及fzf相关内容,因此不能用.
另外这些脚本存放的位置通常是 $FZF_BASE/shell/
,因此还需要配置环境变量,
另外注意如果是使用scoop安装的,不要在 /c/Users/xxx/scoop/shims/
下创建和可执行文件同名的文件夹.
会导致找不到fzf的可执行文件(which fzf
会报错)
目前我将 key-bindings.zsh
放在 /c/Users/xxx/scoop/shims/_fzf/shell/
下
习以为常的快捷键
shell中时常使用的C-a,C-e,C-y等等快捷键,其实也是有配置文件的,
根源上的软件为 GNU readline
,(linux和windows下的git-bash都用了,mac不清楚但并不影响bind和bindkey的使用)
默认配置文件通常是 ~/.inputrc
与 /etc/inputrc
除去配置文件语法,还有一些用于配置的命令,
bash下内置的是 bind
,可以使用 bind -p
查看目前绑定的快捷键和功能列表.
zsh下使用的是 bindkey
,不过使用方法暂时不清楚,fzf自带的 key-bindings
里有一些.
命令的配置会覆盖配置文件,因此也不需要专门unbind了C-t对应的按键.
其他问题
- exa还没有官方支持的windows编译