为 Zsh 添加主题和插件

通过使用 Oh My Zsh 安装的主题和插件扩展 Z-shell 的功能。
166 位读者喜欢这篇文章。
GitHub launches Open Source Friday 

Opensource.com

在我之前的文章中,我解释了如何开始使用 Z-shell (Zsh)。对于某些用户来说,Zsh 最令人兴奋的功能是它能够采用新的主题。对 Zsh 进行主题化非常容易,这既归功于为 shell 设计视觉效果的活跃社区,也归功于 Oh My Zsh 项目,该项目使得安装主题变得轻而易举。

主题化是您立即注意到的变化之一,因此如果您在安装 Zsh 时没有感觉到您更换了 shell,那么一旦您采用了 Oh My Zsh 捆绑的 100 多个主题之一,您肯定会感受到变化。然而,Oh My Zsh 的功能远不止漂亮的主题;还有数百个插件可以为您的 Z-shell 环境添加功能。

安装 Oh My Zsh

ohmyz.sh 网站鼓励您通过从您的计算机通过互联网运行脚本来安装框架。虽然 Oh My Zsh 项目几乎可以肯定是值得信赖的,但盲目地在您的系统上运行脚本通常是不明智的。如果您想运行安装脚本,您可以下载它、阅读它,并在您确信自己了解它的作用后运行它。

如果您下载并阅读该脚本,您可能会注意到安装过程只有三个步骤

1. 克隆 oh-my-zsh

首先,将 oh-my-zsh 仓库克隆到一个名为 ~/.oh-my-zsh 的目录中

% git clone http://github.com/robbyrussell/oh-my-zsh ~/.oh-my-zsh

2. 切换配置文件

接下来,备份您现有的 .zshrc 文件,并将默认文件从 oh-my-zsh 安装移动到其位置。您可以使用 mv-b(备份)选项在一个命令中完成此操作,只要您的 mv 命令版本包含该选项

% mv -b \
~/.oh-my-zsh/templates/zshrc.zsh-template \
~/.zshrc

3. 编辑配置

默认情况下,Oh My Zsh 的配置非常平淡,因此您可能希望将您的自定义 ~/.zshrc 重新集成到 .oh-my-zsh 配置中。为此,请使用 cat 命令 将您的旧配置附加到新配置的末尾

% cat ~/.zshrc~ >> ~/.zshrc

要查看默认配置并了解它提供的一些选项,请在您喜欢的文本编辑器中打开 ~/.zshrc。该文件注释良好,因此它是了解可能性的绝佳方式。

例如,您可以更改 .oh-my-zsh 目录的位置。在安装时,它位于您的主目录的根目录中,但现代 Linux 约定(由 Free Desktop 规范定义)是将扩展应用程序功能的目录放在 ~/.local/share 目录中。您可以在 ~/.zshrc 中编辑以下行来更改它

# Path to your oh-my-zsh installation.
export ZSH=$HOME/.local/share/oh-my-zsh

然后将目录移动到该位置

% mv ~/.oh-my-zsh \
$HOME/.local/share/oh-my-zsh

如果您使用的是 MacOS,则规范不太明确,但可以说目录最合适的位置是 $HOME/Library/Application\ Support

重新启动 Zsh

编辑配置后,您必须重新启动您的 shell。在您执行此操作之前,请确保您已完成任何正在进行的配置更改;例如,不要更改 .oh-my-zsh 的路径,然后忘记将目录移动到其新位置。如果您不想重新启动您的 shell,您可以 source 配置文件,就像您可以使用 Bash 一样

% source ~/.zshrc
➜  .oh-my-zsh git:(master) ✗ 

您可以忽略任何关于缺少更新文件的警告;它们将在重新启动时解决。

更改您的主题

安装 Oh My Zsh 会将您的 Z-shell 主题设置为 robbyrussell,这是项目维护者的主题。此主题的更改非常少,主要涉及提示符的颜色。

要查看所有可用的主题,请列出 .oh-my-zsh 主题目录的内容

➜  .oh-my-zsh git:(master) ✗ ls \
~/.local/share/oh-my-zsh/themes
3den.zsh-theme
adben.zsh-theme
af-magic.zsh-theme
afowler.zsh-theme
agnoster.zsh-theme
[...]

要在尝试主题之前查看主题的屏幕截图,请访问 Oh My Zsh wiki。要获得更多主题,请访问 外部主题 wiki 页面。

大多数主题都很容易设置和使用。只需更改 .zshrc 中主题名称的值并重新加载配置

➜ ~ sed -i \
's/_THEME=\"robbyrussel\"/_THEME=\"linuxonly\"/g' \
~/.zshrc
➜ ~ source ~/.zshrc
seth@darkstar:pts/0->/home/skenlon (0) ➜

其他主题需要额外的配置。例如,要使用 agnoster 主题,您必须首先安装 Powerline 字体。这是一个开源字体,如果您运行的是 Linux,它可能在您的软件仓库中。使用以下命令安装它

➜ ~ sudo dnf install powerline-fonts

在配置中设置您的主题

➜ ~ sed -i \
's/_THEME=\"linuxonly\"/_THEME=\"agnoster\"/g' \
~/.zshrc

然后重新启动(简单的 source 将不起作用)。重新启动后,您将看到新主题

agnoster theme

安装插件

Oh My Zsh 附带 200 多个插件,您可以通过查看 .oh-my-zsh/plugins 来查看它们。每个插件目录都有一个 README 文件,解释了插件的作用。

一些插件相对简单。例如,dnfubuntubrewmacports 插件是别名的集合,用于简化与 DNF、Apt、Homebrew 和 MacPorts 包管理器的交互。

其他插件更复杂。默认情况下处于活动状态的 git 插件会检测您何时在 Git 仓库 中工作,并更新您的 shell 提示符,以便它列出当前分支,甚至指示是否存在未合并的更改。

要激活插件,请将其添加到 ~/.zshrc 中的插件设置中。例如,要添加 dnfpass 插件,请在您喜欢的文本编辑器中打开 ~/.zshrc

plugins=(git dnf pass)

保存您的更改并重新加载您的 Zsh 会话

% source ~/.zshrc

这些插件现在已激活。您可以通过使用它提供的别名之一来测试 dnf 插件

% dnfs fop
====== Name Exactly Matched: fop ======
fop.noarch : XSL-driven print formatter

不同的插件做不同的事情,因此您可能希望一次只安装一两个插件,以帮助您了解 shell 的新功能。

作弊

一些 Oh My Zsh 插件非常通用。如果您查看一个声称是 Z-shell 插件的插件,并且代码也与 Bash 兼容,那么您可以在您的 Bash shell 中使用它。一些插件需要 Z-shell 特定的功能,因此这不适用于所有插件。但是您可以使用 source 加载您选择的插件,将 dnfubuntufirewalld 和其他插件加载到 Bash shell 中。例如

if [ -d $HOME/.local/share/oh-my-zsh/plugins ]; then
	source $HOME/.local/share/oh-my-zsh/plugins/dnf/dnf.plugin.zsh
fi

用 Z 还是不用 Z

Z-shell 是一个功能强大的 shell,这既归功于其内置功能,也归功于其充满热情的社区贡献的插件。无论您将其用作您的主要 shell,还是仅在周末或假期访问的 shell,您都应该尝试一下。

您最喜欢的 Z-shell 主题和插件是什么?请在评论中告诉我们!

接下来阅读

Zsh 入门

通过从 Bash 升级到 Z-shell 来提升您的 shell 技能。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时从事这两个行业。

3 条评论

很棒的系列!我考虑 zsh 很久了,但一直坚持使用 bash... 也许是时候切换了!!

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.