oh-my-zsh-好看好用的shell-windows
上一级页面:index-windows
前言
但是比起主题受限的 PowerShell,我想可能还是 zsh 更加有吸引力;
Git Bash —— 一个基于 MinGW64 环境的仿 Linux 环境的终端,但是很多功能还是被删减了
我们先安装git和git bash,git-安装-配置
我们最终目的只是在Windows上跑一个完整的zsh,所以这里有两套方案,选择其中一套就可以了
一套是选择git提供的git sdk for windows:git-sdk安装与配置
另外一套是选择cygwin,cygwin-构建最小系统
两套方案各有优劣,这里给出基于git sdk的方案:
在git sdk上安装zsh
一套方案是在git sdk上安装zsh
安装 Git SDK , Git SDK安装配置见git-sdk安装与配置
Git SDK 自带一个包管理器pacman,使用pacman安装 zsh。
运行git sdk,更新pacman源信息,首次更新可能需要重启;
pacman -Syu
pacman -Sy
可以确保软件包最新。pacman -Syu
将所有软件包升级到最新。
安装常用包
可以通过pacman -S <package-name>
安装软件包
pacman -S wget
pacman -S git
安装zsh
首先要安装zsh,然后才能安装 oh-my-zsh:
pacman -S zsh
安装oh-my-zsh
然后,我们安装 oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# ↑ 通过 curl
或者
通过 wget ↓
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
当然,修改 host 文件,设置终端代理过于麻烦;我们可以科学上网后直接访问上述命令中的地址,获得脚本的内容后放到某个文件夹下,再使用 zsh 去执行脚本即可;
设为系统文件 + 隐藏文件
安装后脚本会在 ~
目录下创建 .oh-my-zsh
目录,和 ~/.zshrc
在同一个目录中;这个 ~
目录对应的就是 Windows 的用户文件夹,注意不要删掉它们;如果觉得碍眼可以把它们设为系统文件 + 隐藏文件(cmd 中的 attrib +s+h
或者 PowerShell 中的 $file.Attributes += 'hidden, system'
),就不会在资源管理器中看到它们了;
安装插件
因为 MSYS2 pacman 中的 zsh 似乎没有包含一部分插件,所以若部分插件找不到,可以在这里下载,之后复制到 ~/.oh-my-zsh
文件夹的对应位置中即可;
配置oh-my-zsh
安装完成之后,我们就要将调教好的 zsh 终端增加到工作场景中集成了:
首先不建议将任何 Powerline 终端集成到 Jetbrains 的任何 IDE 中;因为 Windows 上的 Jetbrains IDE 的终端渲染比较的奇特:主要就是行间距太大,导致显示的图标会非常不好看。
配置见配置oh-my-zsh
字体问题(补充
因为 zsh 还是借助 Windows 的 conhost 或者其他终端软件运行,所以并不需要在~/.zshrc
文件中修改字体;
shell字体配置
zsh集成到 Windows Terminal
默认的继承方式是通过 MSYS2 终端的启动脚本来运行 zsh:这个脚本在启动 shell 前会做许多事情,比如创建临时的系统变量空间,加载 rc 文件等,
所以即使你没有将 MSYS2 的二进制文件目录加入到系统变量,shell 也能找到它们:
{
"profiles": {
"defaults": {
"antialiasingMode": "cleartype",
"colorScheme": "One Half Dark",
"cursorShape": "bar",
"font": {
"face": "Menlo for Powerline",
"size": 14
},
"intenseTextStyle": "all",
"startingDirectory": "%USERPROFILE%"
},
"list": [
{
"commandline": "C:\\git-sdk-64\\msys2_shell.cmd -defterm -mingw64 -no-start -here -lic \"exec zsh\"",
"guid": "{A1589A38-7A15-B2A0-D9BD-31D8BC15E38D}",
"name": "win-zsh",
"hidden": false,
"icon": "C:\\git-sdk-64\\mingw64\\share\\git\\git-for-windows.ico"
}
]
}
}
这样没什么坏处,在该脚本初始化过程中会有大量系统变量地址映射
失败会报错,并且产生巨量输出(包括使用 MinTTY 也会产生这些输出),
集成到 VS Code
和上面一样,可以通过 msys2_shell.cmd
启动,也可以直接运行 zsh.exe
启动:
从工具栏中选择 文件 -> 首选项 -> 设置,打开设置页;在 功能 / 终端 中找到任何一个 在 settings.json 中编辑 按钮来打开 vscode 的配置文件;并且加上下面内容:
{
"terminal.integrated.profiles.windows": {
"Git Bash": {
"source": "Git Bash"
},
"win-zsh": {
"path": ["C:\\git-sdk-64\\msys2_shell.cmd"],
"args": [
"-defterm",
"-mingw64",
"-no-start",
"-here",
"-lic",
"cd $PWD; exec zsh"
],
"icon": "git-commit"
}
}
}
上面的配置指定了命令行、参数以及终端字体(可以和文本编辑器使用不同的字体);
命令参数中的 cd $PWD
是切换到当前目录,如果报错也可以不加(似乎还是会跳转到当前目录);
在 VS Code 中也有相当数量的 PL 字体存在行间距过大的问题,似乎也可以通过调整解决;
启动后会直接跳转到你的项目目录下,但是如果没有事先将 C:\git-sdk-64\usr\bin\
增加到系统变量中,输入部分 Linux 命令可能会提示命令未找到错误;
参考、引用、致谢
在 Windows 10 中使用 zsh 作为默认终端 - 七海の参考書 (shiraha.cn)
- zsh+on-my-zsh配置教程指南 本文地址
- WSL + oh my zsh 更好看的 shell - 知乎
- zsh+on-my-zsh配置教程指南(程序员必备)【已备份】 - SegmentFault 思否
- wting/autojump--官方文档
- powerline/fonts
- 终极 Shell macshuo.com!
- Setting up Windows Subsystem for Linux with zsh + oh-my-zsh + ConEmu blog.joaograssi.com!
- Oh-my-zsh's icons don't show correctly · Issue #1517 · microsoft/WSL github.com!
- chinanf-boy/bat-zh: 🇨🇳翻译
- 终极 Shell
- Ubuntu 16.04下安装zsh和oh-my-zsh
- Ubuntu 下安装oh-my-zsh
- 掘金-Shell 中的极品-- Zsh
- CentOS 7下autojump无法使用的可能原因
- oh-my-zsh配置你的zsh提高shell逼格终极选择
- zsh oh-my-zsh 插件推荐
- zsh 全程指南-推荐
- iterm主题下载
- 程序员内功系列--iTerm与Zsh篇
- Mac 下配置终端环境 iTerm2 + Zsh + Oh My Zsh + tmux