grml zsh config 和 oh-my-zsh config 之間的主要區別是什麼
現在我在使用 oh-my-zsh,但我不確定它是否是完美的選擇。grml zsh config ( github repo ) 和oh-my-zsh config之間的主要區別是什麼?在哪種情況下,我應該更喜歡 grml 還是 oh-my-zsh?
我無法詳細報告它們之間的差異,但我至少可以提供一個廣泛的概述,這可能有助於回答一些基本問題並引導您了解更多資訊。
哦,我的zsh:
- 內置外掛/主題系統
- 核心、外掛和主題的自動更新程序
- 預設行為很容易被覆蓋或擴展
- 廣受歡迎(這意味著一個活躍的社區)
grml-zsh:
- 非常有據可查
- 提供許多有用的內置別名和函式(pdf)
- 使用
.zshrc.pre
和.zshrc.local
文件覆蓋或擴展預設行為- 積極開發但不如 oh-my-zsh 流行
基本上,兩者之間最明顯的區別是 oh-my-zsh 的外掛/主題系統和自動更新程序。然而,這些功能可以通過使用antigen添加到grml-zsh ,這是一個受oh-my-zsh啟發的zsh外掛管理器。
Antigen 允許您定義您希望使用的外掛和主題,然後自動為您下載並包含它們。然而,具有諷刺意味的是,大多數外掛和主題都是從 oh-my-zsh 的庫中提取的,這意味著為了讓它們工作,antigen 必須首先載入 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 的 pre 和本地文件),一種選擇是添加您的自定義
.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