grml zsh config 和 oh-my-zsh config 之间的主要区别是什么

pet*_*hka 17 zsh grml oh-my-zsh

现在我在 oh-my-zsh 上,但我不确定它是否是完美的选择。grml zsh config ( github repo ) 和oh-my-zsh config之间的主要区别是什么?在哪种情况下,我应该更喜欢 grml 还是 oh-my-zsh?

J.C*_*ski 17

我无法详细报告它们的差异,但我至少可以提供一个广泛的概述,这可能有助于回答一些基本问题并引导您到可以了解更多信息的地方。

哦-我的-zsh:

grml-zsh:

基本上,两者之间最明显的区别是 oh-my-zsh 的插件/主题系统和自动更新程序。但是,这些功能可以通过使用antigen来添加到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
Run Code Online (Sandbox Code Playgroud)

或者,如果您想使用 grml:

$ ls -s ~/grml.zshrc ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

如果您不想复制您的自定义(这意味着将文件添加到自定义目录哦,我-的zsh和修改前置和GRML本地文件),一个选择是你的自定义添加.zshrc.pre,并.zshrc.local在然后他们源你的oh-my-zsh.zshrc文件底部像这样:

source $HOME/.zshrc.pre
source $HOME/.zshrc.local
Run Code Online (Sandbox Code Playgroud)

此外,如果您决定使用抗原,您可以将其添加到您的.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
Run Code Online (Sandbox Code Playgroud)