Mac 配置 zsh
mingzaily / 2024-02-05
1. 使用 zsh 作为默认 shell
从 macOS Catalina 版开始,您的 Mac 将使用 zsh 作为默认登录 Shell 和交互式 Shell。您还可以在较低版本的 macOS 中将 zsh 设置为默认 Shell。
chsh -s /bin/zsh
2. 安装 oh-my-zsh
自动安装
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
也可以手动安装:
手动安装
下载 oh-my-zsh
git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
备份原有 ~/.zshrc(如果有)
cp ~/.zshrc ~/.zshrc.bak
从模板创建 zsh 配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
3. 更改 zsh 主题
主题样式 这里 查看。
vi ~/.zshrc
# 找到
ZSH_THEME="robbyrussell"
# 例如修改为
ZSH_THEME="ys"
注:主题文件在 ~/.oh-my-zsh/themes
目录
修改配置后,通过
source ~/.zshrc
或者退出重新登录使配置生效。
4. 别名 alias
我们看下 git 的别名:
cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh
......
alias g='git'
alias ga='git add'
alias gaa='git add --all'
alias gapa='git add --patch'
alias gau='git add --update'
alias gav='git add --verbose'
alias gap='git apply'
alias gapt='git apply --3way'
......
自定义别名,在 ~/.zshrc
中,最下面直接写即可。
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias ll='ls -lahFT'
5. 命令自动补全
内置自动补全功能
默认 oh-my-zsh 命令自动补全功能如下:
自动列出目录
输入 cd 按 tab 键,目录将自动列出,在按 tab 可以切换
自动目录名简写补全
要访问
/usr/local/bin
这个长路径,只需要cd /u/l/b
按 tab 键自动补全自动大小写更正 (sysin)
要访问 Desktop 文件夹,只需要
cd de
按 tab 键自动补全,或者查看 README.md,只需要cat rea
自动更正补全自动命令补全
输入
kubectl
按 tab 键即可看到可用命令自动补全命令参数
输入
kill
按 tab 键会自动显示出进程的 process id
小技巧:
可以忽略 cd
命令,输入 ..
或者 ...
和当前目录名都可以跳转。
上述功能不需要额外的插件。
另外还有一些插件来增强命令补全,可根据需要启用:
zsh-completions
额外的自动补全功能,用于补充 zsh 中尚不支持的命令补全,该项目将在完善时合并到 zsh。
比如 Homebrew 的补全功能:可以解决 brew 及 brew 安装的(部分)指令仍然没有补全功能的问题。
Clone the repository inside your oh-my-zsh repo:
git clone --depth=1 https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
Add it to
FPATH
in your.zshrc
by adding the following line beforesource "$ZSH/oh-my-zsh.sh"
:fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
Note: adding it as a regular Oh My ZSH! plugin will not work properly (see #603).
zsh-autosuggestions
作用是根据历史输入命令的记录即时的提示(建议补全),然后按 → 键即可补全。
git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-autosuggestions
编辑 ~/.zshrc
,找到 plugins=(git) 这一行,修改为:
plugins=(
git
# other plugins...
zsh-autosuggestions
)
Incremental completion on zsh
增强的实时自动命令补全插件:Incremental completion on zsh
该插件对性能似乎有一点点影响,请根据需要启用。
作用如图:
mkdir $ZSH_CUSTOM/plugins/incr
curl -fsSL https://mimosa-pudica.net/src/incr-0.2.zsh -o $ZSH_CUSTOM/plugins/incr/incr.zsh
echo 'source $ZSH_CUSTOM/plugins/incr/incr.zsh' >> ~/.zshrc
source ~/.zshrc
6. 语法高亮插件
作用:命令错误会显示红色,直到你输入正确才会变绿色,另外路径正确会显示下划线 (sysin)。
安装:
git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
配置启用插件:
编辑 ~/.zshrc
,以下部分添加插件的名字
plugins=([plugins...] zsh-syntax-highlighting)
7. 相关网站
- Zsh 官网
- oh-my-zsh 官网
- oh-my-zsh github
- oh-my-zsh 主题样式
- [macOS Zsh 使用 oh-my-zsh 打造高效便捷的 shell 环境](https://sysin.org/blog/macos-zsh/)