论坛社区 活跃维护

ohmyzsh

ohmyzsh/ohmyzsh

🙃 一个由社区驱动(拥有 2,500 名贡献者)的愉快框架,用于管理你的 zsh 配置。包含 300 个可选插件(rails、git、macOS、hub、docker、homebrew、node、php、python 等)、140 个主题让你的早晨更有趣,以及一个自动更新工具,使你轻松跟上社区的最新更新。

190055
Stars 标星
28791
Forks 分支
2689
Watchers 关注
305
Open Issues
Shell
主要语言
MIT
开源协议
14.0 MB
仓库大小
10 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:ohmyzsh/ohmyzsh
git clone https://github.com/ohmyzsh/ohmyzsh.git
git clone git@github.com:ohmyzsh/ohmyzsh.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

Oh My Zsh 是一个开源、社区驱动的框架,用于管理你的 zsh 配置。

听起来很无聊。我们再试一次。

Oh My Zsh 不会让你成为 10 倍速开发者……但你可能会感觉像是一个。

安装后,你的终端 shell 将成为城中话题 否则退款! 在命令提示符中的每一次按键,你都将利用数百个强大的插件和美观的主题。陌生人会在咖啡馆走过来问你,“太棒了!你是某种天才吗?”

最后,你将开始获得你一直觉得自己应得的关注……或者你会利用节省下来的时间更经常地使用牙线。😬

要了解更多,请访问 ohmyz.sh,在 X(原 Twitter)上关注 @ohmyzsh,并加入我们的 Discord 社区。

目录

入门

操作系统兼容性

操作系统 状态
安卓 ✅
FreeBSD ✅
LCARS 🛸
Linux ✅
macOS ✅
OS/2 Warp ❌
Windows (WSL2) ✅

先决条件

  • 应该安装 Zsh(v4.3.9 或更高版本也可以,但我们推荐 5.0.8 及以上)。如果未预装(运行 zsh --version 以确认),请按照以下维基说明操作:安装 ZSH
  • 应安装 curl 或 wget
  • 应安装 git(推荐 v2.4.11 或更高版本)

基本安装

通过在终端运行以下命令之一即可安装 Oh My Zsh。您可以通过命令行使用 curl、wget 或其他类似工具进行安装。

方法 命令
curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
wget sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fetch sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

另外,安装程序也在 GitHub 之外有镜像。如果你所在的国家(如中国或印度,对于某些互联网服务提供商)屏蔽了 raw.githubusercontent.com,则可能需要使用此 URL:

方法 命令
curl sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
wget sh -c "$(wget -O- https://install.ohmyz.sh/)"
fetch 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

插件

Oh My Zsh 附带了大量插件供您使用。您可以查看 plugins 目录和/或 wiki 了解当前可用的插件。

启用插件

一旦发现您想在 Oh My Zsh 中使用的插件(或多个插件),您需要在 .zshrc 文件中启用它们。您可以在 $HOME 目录下找到 zshrc 文件。使用您喜欢的文本编辑器打开它,您会看到一个用于列出所有要加载的插件的地方。

vi ~/.zshrc

例如,这可能开始看起来像这样:

plugins=(
  git
  bundler
  dotenv
  macos
  rake
  rbenv
  ruby
)

注意插件之间用空格(空格、制表符、新行等)分隔。不要用逗号分隔,否则会出错.

使用插件

每个内置插件都包含一个 README 文件,记录其内容。这个 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 主题。

打开一个新的终端窗口,你的提示符应该看起来像这样:

如果你没有找到适合你需要的主题,请查看维基以获取更多主题。

如果你心情很好,你可以让电脑在每次打开新终端窗口时为你随机选择一个主题。

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 安装脚本,可以向 install.sh 脚本传递 --unattended 参数。这样做的效果是不会尝试更改默认 shell,并且在安装完成后也不会运行 zsh。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended

如果你在中国、印度或其他屏蔽 raw.githubusercontent.com 的国家,你可能需要将其替换为 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 克隆 (git@github.com:user/project.git),可以使用此设置。

    注意:此设置与 REPO 变量设置不兼容。此设置将优先。

  • BRANCH(默认:master):如果你想更改克隆仓库时检出默认分支,可以使用此设置。这对于测试 Pull Request 或者使用除 master 以外的分支可能有用。

例如:

REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh

手动安装

1. 克隆仓库
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
2. 可选地,备份你现有的 ~/.zshrc 文件
cp ~/.zshrc ~/.zshrc.orig
3. 创建一个新的 Zsh 配置文件

你可以通过复制我们为你提供的模板来创建一个新的 zsh 配置文件。

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
4. 更改你的默认 Shell
chsh -s $(which zsh)

您必须退出您的用户会话并重新登录才能看到此更改。

5. 初始化您的新 Zsh 配置

一旦你打开一个新的终端窗口,它应该会加载带有 Oh My Zsh 配置的 zsh。

安装问题

如果你在安装时遇到任何问题,这里有一些常见的解决方法。

  • 如果在切换到 oh-my-zsh 后找不到某些命令,你_可能_需要修改 ~/.zshrc 中的 PATH。
  • 如果你是手动安装或者更改了安装位置,请检查 ~/.zshrc 中的 ZSH 环境变量。

自定义插件和主题

如果你想覆盖任何默认行为,只需在 custom/ 目录中添加一个新文件(以 .zsh 结尾)。

如果你有许多相互搭配的函数,可以将它们放在 custom/plugins/ 目录下的 XYZ.plugin.zsh 文件中,然后启用该插件。

如果你想覆盖 Oh My Zsh 分发的插件功能,请在 custom/plugins/ 目录中创建一个同名插件,它将被加载,而不是 plugins/ 目录中的插件。

在 macOS 和 FreeBSD 系统中启用 GNU ls

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/* 文件中定义的)或插件别名,你可以在 ~/.zshrc 文件中使用以下设置,在加载 Oh My Zsh 之前。请注意,根据你的需求,有多种不同方式可以跳过别名。

# 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)。

它目前也无法识别作为函数定义的“别名”。例如 gccd。
来自 git 插件的 ggf 或 ggl 函数。

异步 git 提示

异步提示函数是一项实验性功能(于 2024 年 4 月 3 日引入),允许 Oh My Zsh 异步渲染提示信息。这可以提升提示渲染的性能,但在某些设置下可能无法正常工作。我们希望这不会成为问题,但如果你在使用该新功能时遇到问题,可以通过在 .zshrc 文件中,在加载 Oh My Zsh 之前设置以下内容来关闭它:

zstyle ':omz:alpha:lib:git' async-prompt no

如果你的问题是 git 提示符突然不再显示,你可以尝试在 oh-my-zsh.sh 被加载之前设置以下配置来强制显示它。如果仍然不起作用,请针对你的情况提交一个问题。

zstyle ':omz:alpha:lib:git' async-prompt force

获取更新

默认情况下,你将每两周被提示检查一次更新。你可以通过在 ~/.zshrc 文件中添加一行来选择其他更新模式,在加载 Oh My Zsh 之前:

  1. 自动更新而不显示确认提示:

    zstyle ':omz:update' mode auto
  2. 每隔几天提醒一次,如果有可用的更新:

    zstyle ':omz:update' mode reminder
  3. 要完全禁用自动更新:

    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

默认情况下,更新总是会拉取最新的更改。如果你更愿意让别人先测试一下再让更新到达你的机器,你可以设置一个冷却时间(以天为单位)。你仍然会得到所有内容——只是会晚一些:

# Only apply updates that are at least 10 days old
zstyle ':omz:update' cooldown 10

omz update 会遵循此设置。如果你直接调用 upgrade.sh,请使用 -c 传递相同的值,因为该脚本不会读取你的 .zshrc:

$ZSH/tools/upgrade.sh -c 10

更新详细程度

您还可以通过以下设置限制更新的详细程度:

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

[!注意]
如果你想在脚本中自动化这个过程,你应该直接调用 upgrade 脚本,如下所示:

$ZSH/工具/upgrade.sh

在 常见问题:我如何更新 Oh My Zsh? 中查看更多选项。

omz update --unattended 的使用已被移除,因为它有副作用。

魔法!🎉

卸载 Oh My Zsh

Oh My Zsh 并不适合所有人。我们会想念你,但我们希望让这次分手变得简单。

如果你想卸载 oh-my-zsh,只需在命令行中运行 uninstall_oh_my_zsh。它会自动删除自身并恢复你之前的 bash 或 zsh 配置。

我如何为 Oh My Zsh 做出贡献?

在加入我们愉快的社区之前,请阅读 行为准则。

我远不是一名 Zsh 专家,并且怀疑有许多改进的方法——如果你有让配置更易维护(更快速)的想法,不要犹豫,去 Fork 并提交 Pull Request!

我们还需要有人测试 Pull Requests。请浏览 未解决的问题 并在你能帮忙的地方提供帮助。

更多详情请参见 贡献指南。

请勿向我们发送主题

目前我们已有(超过)足够的主题。请将你的主题添加到 外部主题 维基页面。

关注我们

我们在社交媒体上:

  • 在 X(原 Twitter)上关注 @ohmyzsh。你应该关注它。
  • 在 Facebook 上戳我们。
  • 在 Instagram 上在你的帖子中标记我们,展示 Oh My Zsh!
  • 加入 Discord 与我们聊天!

商品

我们有贴纸、衬衫和咖啡杯可供选择,让你展示你对 Oh My Zsh 的喜爱。再次提醒,你将成为全场焦点!

许可

Oh My Zsh 以 MIT 许可证 发布。

关于阿尔贡星

Oh My Zsh 由 Planet Argon 团队发起,这是一个 Ruby on Rails 开发机构。查看我们的 其他开源项目。

本站来源与版权声明
  • 本文标题:ohmyzsh - 🙃 一个由社区驱动(拥有 2
  • 本文链接:https://www.cn121.com/forum/ohmyzsh-ohmyzsh.html
  • 原项目:ohmyzsh/ohmyzsh 版权归原作者 ohmyzsh 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 ohmyzsh/ohmyzsh。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。