OhMyZsh 配置完全指南¶
预计阅读时长 : 11 分钟
oh my zsh
是目前最流行的终端 zsh 的优化版本,拥有对使用者更友好的交互样式,以及通过插件实现的丰富附加功能。
快速安装¶
通过以下命令,可以快速安装 oh my zsh ⧉。
Oh My Zsh 安装完毕之后,会将相关的配置写入 ~/.zshrc
文件中,包括之后的插件管理和其他配置也会写入到这个文件中。
不过,我们暂时不去管它,先继续下面的教程,了解相关的配置,并安装对应的工具。
看完之后,记得使用 .zshrc 文件内容替换掉 ~/.zshrc
文件,并重启终端,即可完整体验文中提到的各项功能。
插件管理¶
Oh My Zsh 配置的核心工作是配置各种插件。虽然 Oh My Zsh 可以自行管理插件,但是为了增强可迁移性,我们接下去会使用 zgenom
这个插件管理器来管理插件。
通过以下命令,可以快速安装 zgenom ⧉。
注意
安装 oh my zsh
和 zgenom
时都可能会遇到某些目录不安全或者没有访问权限的问题,可以使用以下的命令进行处理。
配置文件中使用的插件列表,详见上面提供的配置文件。如果除了这些之外,还有个性化的需要,可以参考 官方插件列表 ⧉ 进行添加。
主题配置¶
既然都开始折腾 Oh My Zsh 了,那么不在主题上花点心思,实在是不能称之为一个合格的颜值党。
官方主题¶
Oh My Zsh 自带有多种Theme ⧉。通过在 ~/.zshrc
配置文件中,将 ZSH_THEME
属性值修改为对应的 Theme 名称并重启终端即可启用。
不过,更加建议使用接下去介绍的 Powerlevel10k ⧉ 主题,相对于自带的主题,美观程度那是炸裂级别的提升。
安装 Powerlevel10k 主题¶
首先,通过以下命令安装 Powerlevel10k 模版。
然后,在 ~/.zshrc
文件中,将 ZSH_THEME
的属性值修改为 powerlevel10k/powerlevel10k
。重启终端,将自动进入 powerlevel10k 的配置流程,根据引导选择自己喜欢的样式即可。对于老用户而言,也可以使用 p10k configure
重新进行配置。
在选择了合适的主题、配色、字体和提示后,最终的终端展现效果如下图所示。
替代选择
如果还是不满意,oh-my-posh ⧉ 也是一个不错的选择。
核心功能¶
结合 oh my zsh
自带的插件,以及一些单独安装的应用,我们可以打造一个更加智能、更加高效的终端。
快捷操作¶
在使用终端的时候,输入时难免有需要修改的场景,强烈建议掌握以下七个快捷操作,可以大幅提升效率。
- 移动光标
- Option+Left : 往左移动一个单词
- Option+Right : 往右移动一个单词
- Cmd+Left : 移动光标到开头
- Cmd+Right : 移动光标到结尾
- 删除字符
- Ctrl+W / Option+Del : 往回删除一个单词,光标放在最末尾
- Ctrl+U : 删除光标以前的字符
- Ctrl+K : 删除光标以后的字符
- Ctrl+L : 清屏
- 取消输入
- Ctrl+C : 取消输入的命令
- Ctrl+Z : 撤回上一个输入
- Ctrl+Y : 恢复上一个输入
- 命令补全
- Ctrl+R : 搜索历史命令
- Esc : 修正错误命令
- Tab : 补全命令
列表展示¶
对于最常用的 ls
命令,可以使用 eza ⧉ 工具进行替代。
通过配置别名 lst
和 lsg
,可以方便的展示目录树状结构和文件列表。
此外,我们还会在后面提到的交互式补全中,使用这个工具来提升交互体验。
自动补全¶
通过配合使用多个插件,以及进行个性化定制,可以实现目录、文件、命令、路径等各种场景下的自动补全。
其中,核心工具 fzf ⧉ 是一个通用的命令行模糊搜索工具,配合 fzf-tab
插件可以实现各种交互式补全体验。
首先,通过以下命令安装 fzf 工具:
然后,启用 fzf-tab ⧉ 插件,并使用 Tab 键,即可在各种场景下实现交互式补全。
历史指令¶
进入终端之后,只需要使用上下方向键,即可在最近使用过的命令之间进行切换。
然后,输入命令的开始部分,就会自动匹配最近使用过的命令。此时,还可以继续使用上下方向键在模糊匹配的基础上进行切换。
通过 mcflly ⧉ 工具,可以替代默认的 Ctrl+R 快捷键,优化历史记录查询功能,交互式的查找匹配的历史指令。
自动纠错¶
thefuck ⧉ 是一个自动纠正错误命令的插件,对于还不太熟悉命令行的初学者而言是一个非常有帮助的功能。
对于输入错误的命令,只需要按两次 Esc 即可自动纠正为正确的命令。
路径跳转¶
z ⧉ 是一个可以快速跳转至曾经访问过的目录的插件。
在输入 z
之后,接着输入目录名称的部分内容,即可快速跳转至对应的目录。
进程管理¶
至于进程展示 top
命令, 则推荐使用 btop ⧉
Docker 管理¶
lazydocker ⧉ 是一个可以方便管理 docker 的工具,支持懒加载,启动速度非常快。
路径管理¶
除了常规的 PATH 路径外,作为一个开发者,还需要对 Python 和 Node 的路径进行更精细化的管理。
在使用 Pyenv 和 Poetry 管理 Python 版本和项目依赖的基础上,还增加了在终端中,自动激活所在目录或上级目录的 Python 虚拟环境的功能。