В чем ключевое отличие между конфигурацией grml zsh и конфигурацией oh-my-zsh

15

Сейчас я нахожусь на ой-мой-zsh, но я не уверен, что это идеальный выбор. В чем ключевое различие между конфигурацией grml zsh ( github repo ) и конфигурацией oh-my-zsh ? В каком случае я должен предпочесть grml или oh-my-zsh?

Петрушка
источник
1
Вот еще одна конфигурация zsh, которая выглядит многообещающе: github.com/sorin-ionescu/prezto . Я знаю, что это не связано с вопросом, но я только что обнаружил его и подумал, что вам может быть интересно.
JC Yamokoski
Относительно презто (но это не вопрос): это много обсуждается, хотя стоит отметить, что последний коммит был 10 месяцев назад, и есть много дискуссий, которые привели к новому репо .
Гриффит Рис

Ответы:

16

Я не могу дать подробный отчет об их различиях, но я могу, по крайней мере, дать общий обзор, который может помочь ответить на некоторые основные вопросы и привести вас в места, где вы можете узнать больше.

о-мой-ЗШ:

GRML-ЗШ:

По сути, наиболее очевидными различиями между ними являются система плагинов / тем oh-my-zsh и автообновление. Однако эти функции могут быть добавлены в grml-zsh с использованием антигена , который является менеджером плагинов для zsh, вдохновленным oh-my-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:

$ ls -s ~/grml.zshrc ~/.zshrc

Если вы не хотите , чтобы дублировать ваши настройки ( это означает добавление файлов в пользовательский каталог для о-мой-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
JC Yamokoski
источник