打造高效mac终端:oh-my-zsh与插件配置
# 写在文章开头
mac自带的zsh终端开箱即用,但默认配置下没有命令提示、没有语法高亮,切换目录也只能一层层cd,日常使用效率并不高。本文将在原生终端(系统默认的terminal或者iTerm2)的基础上配置oh-my-zsh,并引入5款实用插件,实现如下高效操作:
- 历史命令自动提示与一键补全
- 指令正误实时高亮
- 目标路径快速跳转
- 文件与历史命令模糊搜索
- 任意格式压缩包一键解压
SharkChili · 禅与计算机程序设计的艺术
开源贡献
- mini-redis:教学级 Redis 精简实现 · https://github.com/shark-ctrl/mini-redis
关注公众号,回复 【加群】 加入技术社群
# 详解oh-my-zsh安装步骤
# 基本配置安装
首先我们键入如下指令在terminal下完成oh-my-zsh的下载安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
如果上述指令因为网络问题无法访问raw.githubusercontent.com,可以改用gitee镜像完成安装:
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
此时我们打开terminal之后就会发现,终端命令行界面的样式发生了改变,由此可知oh-my-zsh已配置成功:

# zsh-syntax-highlighting(高亮插件)
为了能够更好地查看终端界面的操作和输出内容,笔者这里首先安装了终端高亮插件,该插件的安装依赖于homebrew,对应指令为:
brew install zsh-syntax-highlighting
需要补充说明的是,笔者通过上述指令安装并配置环境变量后插件并未生效,查阅网上的说法是brew没有把高亮插件安装到插件目录下,所以笔者更建议通过下面这条git指令完成插件的下载安装:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
2
完成安装后,我们还需要修改配置文件以激活这个插件,键入如下指令编辑zshrc文件:
vim ~/.zshrc
找到plugins标签,添加高亮插件的名称zsh-syntax-highlighting,同时将对应的激活脚本指令粘贴到zsh配置脚本中,对应配置如下图:

完成后执行source ~/.zshrc使之生效:

可以看到,此时笔者一旦输入错误的指令,终端对应的指令就会显示为红色:

基于zsh-syntax-highlighting,我们可以快速感知指令是否准确,如下图所示,在笔者的配色环境下,若键入错误的指令jave则会显示红色,反之则是黄色:

# zsh-autosuggestions(补全插件)
zsh-autosuggestions会根据历史输入的命令结合当前键入的指令推测出我们可能需要执行的命令并提示,是一个非常实用的插件。安装时笔者同样采用git的方式:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
完成后,将这个插件添加到zshrc配置文件中,并执行source指令使之生效:
plugins=(git
zsh-autosuggestions
autojump
zsh-syntax-highlighting
extract
)
2
3
4
5
6
截图如下:

此时,我们输入曾经执行过的指令的部分前缀,zsh就会模糊提示完整指令。如下所示,笔者曾经通过jstat指令查看java进程的gc情况,本次仅输入jstat,就提示了完整的指令建议,如果明确这是我们需要的指令,直接键入→方向键即可补全:

# autojump(快速跳转)
autojump是一个比较方便的跳转指令,安装后我们只需要执行j并输入目录名称,即可跳转到我们曾经访问过的目录,对应的安装指令如下:
brew install autojump
2
完成后还是老规矩,将该插件名称添加到zsh配置文件中,并添加如下内容:
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh
2
该插件同样需要在zshrc的plugins中添加autojump,这里不多做截图演示。插件生效后,我们就可以基于快捷指令j跳转到曾经访问过的目录,例如笔者通过cd访问jdk11的目录,然后返回家目录,此时我们就可以通过j jdk11快速跳转到jdk11的目录下,如下所示:

# fzf(模糊搜索插件)
fzf在笔者这里主要是用于模糊搜索全局文件、命令等,对应的安装指令为:
brew install fzf
2
brew会直接将fzf可执行文件安装到系统路径下,无需额外配置即可使用。
此时,我们键入fzf即可进行一些简单的模糊搜索了,如下所示,笔者键入fzf后输入jdk11,该指令就会匹配出所有jdk11相关的文件路径,我们可以通过上下方向键选择需要的文件,按回车后选中的路径会输出到终端。
当然,如果我们需要退出的话,也可以直接通过ctrl+c键退出:

同时,fzf指令还支持管道流的方式检索,例如我们想从历史记录中找到jstat指令,就可以通过history | fzf并输入jstat定位到相关指令:

定位到需要的指令后,按回车,选中的命令会输出到终端,我们手动复制即可使用:

# extract(万能解压插件)
最后一个插件是万能解压插件,无论是针对zip、还是tar抑或tar.gz,只需要键入extract 文件名即可快速完成解压。因为oh-my-zsh已经内置了这个插件,所以我们只需要在plugins上补充插件名字并执行source即可直接使用。
以笔者为例,可以看到jdk8的压缩包通过该指令即可快速完成解压缩:

# 小结
以上便是oh-my-zsh的安装与5款插件的配置全过程:zsh-syntax-highlighting让指令正误一眼可辨,zsh-autosuggestions基于历史记录一键补全命令,autojump实现目录快速跳转,fzf提供文件与历史命令的模糊搜索,extract则统一了各类压缩包的解压方式。这些插件配置一次即可长期受益,建议读者按需取用,打造属于自己的高效终端。希望本文对你有帮助。
SharkChili · 禅与计算机程序设计的艺术
开源贡献
- mini-redis:教学级 Redis 精简实现 · https://github.com/shark-ctrl/mini-redis
关注公众号,回复 【加群】 加入技术社群
# 参考
Mac终端利器:Homebrew + iTerm2 + Oh My Zsh 教程:https://juejin.cn/post/7257740918432792632?searchId=20250727214701D6A893AE2032BBE8AF5F#heading-16 (opens new window)
zsh 命令自动补全插件 zsh-autosuggestions 安装和配置:https://www.jianshu.com/p/43c1b6e40c69 (opens new window)
fzf 教程:终端中的模糊查找器:https://www.jianshu.com/p/bcbeb192ce0c (opens new window)
快速安装oh-my-zsh的插件autojump:https://blog.csdn.net/shenhonglei1234/article/details/106674554 (opens new window)
oh-my-zsh插件 zsh-autosuggestion自动补全 和 zsh-syntax-highlighting语法高亮:https://cloud.tencent.com/developer/article/2349569 (opens new window)
安装zsh插件失败的解决方法:https://www.jianshu.com/p/7228ff48442d (opens new window)
解决oh-my-zsh plugin 'zsh-autosuggestions' not found 与 plugin 'zsh-syntax-highlighting' not found问题:https://blog.bktus.com/archives/2759/ (opens new window)
oh-my-zsh + tmux 配置完美终端环境:https://zhuanlan.zhihu.com/p/539566646?share_code=B4EpUA0o0XYS&utm_psn=1933152856363468741 (opens new window)
- 02
- 详解AI时代下生产力最佳实践—Iterm2+zsh06-12
- 03
- Linux与macOS下Git安装及SSH配置教程06-10