Oh My Zsh 是一个开源的、社区驱动的框架,用于管理您的 zsh 配置。
听起来很无聊。让我们再试一次。
Oh My Zsh 不会让你成为 10 倍的开发者……但你可能会觉得自己像这样。
一旦安装,您的终端外壳将成为人们谈论的话题,否则您将获得退款!在命令提示符中每次击键,您都将利用数百个强大的插件和漂亮的主题。陌生人会在咖啡馆里走过来问你: “太棒了!你是天才吗?”
最后,你将开始得到你一直认为自己应得的关注。 ...或者您可能会利用节省下来的时间开始更频繁地使用牙线。 ?
要了解更多信息,请访问 ohmyz.sh,在 X(以前称为 Twitter)上关注 @ohmyzsh,并加入我们的 Discord。
操作系统 | 地位 |
---|---|
安卓 | ✅ |
自由BSD | ✅ |
LCARS | ? |
Linux | ✅ |
macOS | ✅ |
OS/2 变形 | |
Windows(WSL2) | ✅ |
zsh --version
进行确认),请在此处检查以下 wiki 说明:安装 ZSHcurl
或wget
git
(推荐v2.4.11或更高版本)Oh My Zsh 是通过在终端中运行以下命令之一来安装的。您可以使用curl
、 wget
或其他类似工具通过命令行安装它。
方法 | 命令 |
---|---|
卷曲 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
获取 | sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
拿来 | sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
或者,安装程序也镜像到 GitHub 外部。如果您位于中国或印度(对于某些 ISP)等阻止raw.githubusercontent.com
国家/地区,则可能需要使用此 URL:
方法 | 命令 |
---|---|
卷曲 | sh -c "$(curl -fsSL https://install.ohmyz.sh/)" |
获取 | sh -c "$(wget -O- https://install.ohmyz.sh/)" |
拿来 | sh -c "$(fetch -o - https://install.ohmyz.sh/)" |
请注意,任何以前的.zshrc
将被重命名为.zshrc.pre-oh-my-zsh
。安装后,您可以将要保留的配置移至新的.zshrc
中。
检查您还不知道的项目中的安装脚本是个好主意。您可以通过首先下载安装脚本,浏览它以便一切看起来正常,然后运行它来做到这一点:
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh
如果上述 URL 超时或失败,您可能必须将该 URL 替换为https://install.ohmyz.sh
才能获取脚本。
Oh My Zsh 附带了大量插件供您使用。您可以查看插件目录和/或 wiki,了解当前可用的内容。
一旦您发现想要与 Oh My Zsh 一起使用的一个(或多个)插件,您需要在.zshrc
文件中启用它们。您将在$HOME
目录中找到 zshrc 文件。使用您最喜欢的文本编辑器打开它,您将看到一个列出您要加载的所有插件的位置。
vi ~ /.zshrc
例如,这可能看起来像这样:
plugins=(
git
bundler
dotenv
macos
rake
rbenv
ruby
)
请注意,插件由空格(空格、制表符、换行符...)分隔。请勿在它们之间使用逗号,否则会损坏。
每个内置插件都包含一个README ,对其进行记录。此自述文件应显示别名(如果插件添加了任何别名)以及该特定插件中包含的额外功能。
我们会承认的。在 Oh My Zsh 世界的早期,我们可能对主题有点太高兴了。我们现在捆绑了一百五十多个主题。其中大多数在 wiki 上都有屏幕截图(我们正在努力更新!)。检查一下!
Robby 的主题是默认主题。这不是最奇特的。这不是最简单的。这正是(对他来说)正确的选择。
找到想要使用的主题后,您将需要编辑~/.zshrc
文件。您将在其中看到一个环境变量(全部大写),如下所示:
ZSH_THEME= " robbyrussell "
要使用不同的主题,只需更改该值以匹配所需主题的名称即可。例如:
ZSH_THEME= " agnoster " # (this is one of the fancy ones)
# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
笔记
您会多次看到 zsh 主题的屏幕截图,并尝试一下,然后发现它看起来与您不太一样。
这是因为许多主题需要安装 Powerline 字体或 Nerd 字体才能正确渲染。如果没有它们,这些主题将呈现奇怪的提示符号。查看常见问题解答以获取更多信息。
另外,请注意主题仅控制提示的外观。这是您在光标之前或之后看到的文本,您可以在其中键入命令。主题不控制终端窗口的颜色(称为配色方案)或终端的字体等内容。这些是您可以在终端模拟器中更改的设置。有关更多信息,请参阅什么是 zsh 主题。
打开一个新的终端窗口,您的提示符应如下所示:
如果您没有找到适合您需求的主题,请查看 wiki 以获取更多主题。
如果您感觉精力充沛,可以让计算机在每次打开新的终端窗口时为您随机选择一个。
ZSH_THEME= " random " # (...please let it be pie... please be some pie..)
如果您想从您最喜欢的主题列表中随机选择主题:
ZSH_THEME_RANDOM_CANDIDATES=(
" robbyrussell "
" agnoster "
)
如果您只知道不喜欢哪些主题,则可以将它们添加到忽略列表中:
ZSH_THEME_RANDOM_IGNORED=(pygmalion tjkirch_mod)
如果您还有其他疑问或问题,您可以在我们的常见问题解答中找到解决方案。
如果你是那种喜欢亲自动手的人,这些部分可能会引起共鸣。
某些用户可能想要手动安装 Oh My Zsh,或更改安装程序接受的默认路径或其他设置(这些设置也记录在安装脚本的顶部)。
默认位置是~/.oh-my-zsh
(隐藏在您的主目录中,您可以使用cd ~/.oh-my-zsh
访问它)
如果您想使用ZSH
环境变量更改安装目录,可以在安装之前运行export ZSH=/your/path
,或者在安装管道结束之前设置它,如下所示:
ZSH= " $HOME /.dotfiles/oh-my-zsh " sh install.sh
如果您将 Oh My Zsh 安装脚本作为自动安装的一部分运行,则可以将--unattended
标志传递给install.sh
脚本。这将不会尝试更改默认 shell,并且在安装完成后也不会运行zsh
。
sh -c " $( curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh ) " " " --unattended
如果您位于中国、印度或其他阻止raw.githubusercontent.com
国家/地区,则可能需要将 URL 替换为https://install.ohmyz.sh
才能安装。
安装脚本还接受这些变量以允许安装不同的存储库:
REPO
(默认: ohmyzsh/ohmyzsh
):采用owner/repository
的形式。如果您设置此变量,安装程序将在https://github.com/{owner}/{repository}
查找存储库。
REMOTE
(默认: https://github.com/${REPO}.git
):这是 git 存储库克隆的完整 URL。如果您想从 GitHub 之外的分支安装(GitLab、Bitbucket...),或者您想使用 SSH 而不是 HTTPS 进行克隆 ( [email protected]:user/project.git
),则可以使用此设置。
注意:它与设置REPO
变量不兼容。此设置将优先。
BRANCH
(默认: master
):如果您想更改克隆存储库时要检出的默认分支,可以使用此设置。这对于测试拉取请求,或者如果您想使用master
以外的分支可能很有用。
例如:
REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh
git clone https://github.com/ohmyzsh/ohmyzsh.git ~ /.oh-my-zsh
~/.zshrc
文件cp ~ /.zshrc ~ /.zshrc.orig
您可以通过复制我们为您提供的模板来创建新的 zsh 配置文件。
cp ~ /.oh-my-zsh/templates/zshrc.zsh-template ~ /.zshrc
chsh -s $( which zsh )
您必须从用户会话中注销并重新登录才能看到此更改。
打开新的终端窗口后,它应该使用 Oh My Zsh 的配置加载 zsh。
如果您在安装时遇到任何问题,这里有一些常见的修复方法。
oh-my-zsh
后无法找到某些命令,您可能需要修改~/.zshrc
中的PATH
。~/.zshrc
中的ZSH
环境变量。如果您想覆盖任何默认行为,只需在custom/
目录中添加一个新文件(以.zsh
结尾)即可。
如果您有许多可以很好配合的功能,您可以将它们作为XYZ.plugin.zsh
文件放在custom/plugins/
目录中,然后启用此插件。
如果您想覆盖随 Oh My Zsh 分发的插件的功能,请在custom/plugins/
目录中创建一个同名的插件,它将被加载,而不是plugins/
中的插件。
Oh My Zsh 中的默认行为是在 macOS 和 FreeBSD 系统中使用 BSD ls
。如果安装了 GNU ls
(作为gls
命令),您可以选择使用它。为此,您可以在获取oh-my-zsh.sh
之前使用基于 zstyle 的配置:
zstyle ' :omz:lib:theme-and-appearance ' gnu-ls yes
注意:这与DISABLE_LS_COLORS=true
不兼容
如果您想跳过默认的 Oh My Zsh 别名(在lib/*
文件中定义的别名)或插件别名,您可以在加载 Oh My Zsh 之前在~/.zshrc
文件中使用以下设置。请注意,根据您的需要,有许多不同的方法可以跳过别名。
# Skip all aliases, in lib files and enabled plugins
zstyle ' :omz:* ' aliases no
# Skip all aliases in lib files
zstyle ' :omz:lib:* ' aliases no
# Skip only aliases defined in the directories.zsh lib file
zstyle ' :omz:lib:directories ' aliases no
# Skip all plugin aliases
zstyle ' :omz:plugins:* ' aliases no
# Skip only the aliases from the git plugin
zstyle ' :omz:plugins:git ' aliases no
您可以通过其他方式组合这些,并考虑到更具体的范围优先:
# Skip all plugin aliases, except for the git plugin
zstyle ' :omz:plugins:* ' aliases no
zstyle ' :omz:plugins:git ' aliases yes
此功能的先前版本使用以下设置,该设置已被删除:
zstyle ' :omz:directories ' aliases no
相反,您现在可以使用以下内容:
zstyle ' :omz:lib:directories ' aliases no
该功能目前正处于测试阶段,将来可能会发生变化。目前它也不兼容 zpm 或 zinit 等插件管理器,它们不提供实现此功能的初始化脚本 (
oh-my-zsh.sh
)。
目前还不知道定义为函数的“别名”。例如 git 插件中的
gccd
、ggf
或ggl
函数。
异步提示函数是一项实验性功能(于 2024 年 4 月 3 日包含),允许 Oh My Zsh 异步呈现提示信息。这可以提高即时渲染性能,但可能不适用于某些设置。我们希望这不是问题,但如果您发现此新功能存在问题,您可以在 Oh My Zsh 来源之前通过在 .zshrc 文件中设置以下内容来关闭它:
zstyle ' :omz:alpha:lib:git ' async-prompt no
如果您的问题是 git 提示符刚刚停止出现,您可以尝试在获取oh-my-zsh.sh
之前强制它设置以下配置。如果仍然不起作用,请针对您的案例提出问题。
zstyle ' :omz:alpha:lib:git ' async-prompt force
默认情况下,系统会提示您每 2 周检查一次更新。在加载 Oh My Zsh 之前,您可以通过在~/.zshrc
文件中添加一行来选择其他更新模式:
自动更新,无确认提示:
zstyle ' :omz:update ' mode auto
如果有可用更新,只需每隔几天提醒一次即可:
zstyle ' :omz:update ' mode reminder
要完全禁用自动更新:
zstyle ' :omz:update ' mode disabled
注意:您可以使用以下设置控制 Oh My Zsh 检查更新的频率:
# This will check for updates every 7 days
zstyle ' :omz:update ' frequency 7
# This will check for updates every time you open the terminal (not recommended)
zstyle ' :omz:update ' frequency 0
您还可以使用以下设置限制更新详细程度:
zstyle ' :omz:update ' verbose default # default update prompt
zstyle ' :omz:update ' verbose minimal # only few lines
zstyle ' :omz:update ' verbose silent # only errors
如果您想在任何时间点更新(也许有人刚刚发布了一个新插件,而您不想等待一周?)您只需要运行:
omz update
魔法! ?
Oh My Zsh 并不适合所有人。我们会想念你的,但我们想让这次分手变得轻松。
如果您想卸载oh-my-zsh
,只需从命令行运行uninstall_oh_my_zsh
即可。它将自行删除并恢复您之前的bash
或zsh
配置。
在加入我们令人愉快的社区之前,请阅读行为准则。
我远不是一名 Zsh 专家,并且怀疑有很多方法可以改进 - 如果您有关于如何使配置更容易维护(并且更快)的想法,请毫不犹豫地分叉并发送拉取请求!
我们还需要人们测试拉取请求。因此,请仔细查看未解决的问题并尽可能提供帮助。
有关更多详细信息,请参阅贡献。
目前我们有(超过)足够的主题。请将您的主题添加到外部主题 wiki 页面。
Oh My Zsh 拥有一个充满活力的社区,由快乐的用户和令人愉快的贡献者组成。如果没有我们的贡献者的所有时间和帮助,它不会这么棒。
太感谢了!
我们在社交媒体上:
我们提供贴纸、衬衫和咖啡杯供您展示您对 Oh My Zsh 的热爱。再一次,你将成为城里的话题!
Oh My Zsh 是在 MIT 许可下发布的。
Oh My Zsh 是由 Ruby on Rails 开发机构 Planet Argon 的团队创建的。查看我们的其他开源项目。