现在我使用 oh-my-zsh,但我不确定它是完美的选择。之间的主要区别是什么grml zsh 配置(github 仓库) 和哦我的 zsh 配置?在哪种情况下我应该选择 grml 还是 oh-my-zsh?
答案1
我无法详细报告它们之间的差异,但我至少可以提供一个广泛的概述,这可能有助于回答一些基本问题并引导您了解更多信息。
哦我的zsh:
- 内置插件/主题系统
- 核心、插件和主题的自动更新程序
- 默认行为很容易被覆盖或扩展
- 广泛流行(这意味着社区活跃)
grml-zsh:
- 有据可查
- 提供许多有用的内置别名和函数(pdf)
- 默认行为被覆盖或扩展与
.zshrc.pre
和.zshrc.local
文件 - 积极开发但不如 oh-my-zsh 流行
基本上,两者之间最明显的区别是 oh-my-zsh 的插件/主题系统和自动更新程序。但是,可以使用以下命令将这些功能添加到 grml-zsh 中抗原,这是一个受 oh-my-zsh 启发的 zsh 插件管理器。
Antigen 允许您定义要使用的插件和主题,然后自动下载并包含它们。但讽刺的是,大多数插件和主题都是从 oh-my-zsh 的库中提取的,这意味着为了让它们工作,抗原必须首先加载 oh-my-zsh 核心。因此,这种方法或多或少会以迂回的方式重新创建 oh-my-zsh。但是,如果您更喜欢 grml 的配置而不是 oh-my-zsh 的配置,那么这是一个有效的选项。
最重要的是,我相信您只需要尝试两种方法,看看哪一种最适合您。您可以通过创建以下文件来来回切换:oh-my-zsh.zshrc
(oh-my-zsh 安装的默认文件)、grml.zshrc
(默认 grml zshrc)、.zshrc.pre
和.zshrc.local
。
那么如果你想使用 oh-my-zsh:
$ ln -s ~/oh-my-zsh.zshrc ~/.zshrc
或者,如果你想使用 grml:
$ ln -s ~/grml.zshrc ~/.zshrc
如果您不想重复您的自定义设置(即将文件添加到 oh-my-zsh 的自定义目录并修改 grml 的预文件和本地文件),一种选择是将您的自定义项添加到 ,.zshrc.pre
然后.zshrc.local
从文件底部oh-my-zsh.zshrc
如下所示:
source $HOME/.zshrc.pre
source $HOME/.zshrc.local
另外,如果您决定使用抗原,您可以将其添加到您的.zshrc.local
文件中,然后在其周围添加条件以确保 oh-my-zsh 不会运行它,如下所示:
# if not using oh-my-zsh, then load plugins with antigen
# <https://github.com/zsh-users/antigen.git>
if [[ -z $ZSH ]]; then
source $HOME/.dotfiles/zsh/antigen/antigen.zsh
antigen-lib
antigen-bundle vi-mode
antigen-bundle zsh-users/zsh-syntax-highlighting
antigen-bundle zsh-users/zsh-history-substring-search
antigen-theme blinks
antigen-apply
fi