Jaka jest kluczowa różnica między grml zsh config a oh-my-zsh config

15

Teraz jestem na och-my-zsh, ale nie jestem pewien, czy to idealny wybór. Jaka jest kluczowa różnica między grml zsh config ( github repo ) a oh-my-zsh config ? W którym przypadku powinienem preferować grml lub oh-my-zsh?

petRUShka
źródło
1
Oto kolejna struktura konfiguracji zsh, która wygląda obiecująco: github.com/sorin-ionescu/prezto . Wiem, że nie ma to związku z pytaniem, ale właśnie to odkryłem i pomyślałem, że możesz być zainteresowany.
JC Yamokoski,
Jeśli chodzi o prezto (ale tego nie ma w pytaniu): jest dużo dyskutowane, chociaż warto zauważyć, że ostatnie zatwierdzenie miało miejsce 10 miesięcy temu i jest wiele dyskusji, które doprowadziły do ​​nowego repo .
Griffith Rees,

Odpowiedzi:

16

Nie jestem w stanie przedstawić szczegółowego raportu o ich różnicach, ale mogę przynajmniej podać ogólny przegląd, który może pomóc odpowiedzieć na kilka podstawowych pytań i doprowadzić do miejsc, w których można dowiedzieć się więcej.

oh-my-zsh:

grml-zsh:

Zasadniczo najbardziej widoczne różnice między nimi to system wtyczek / motywów oh-my-zsh i auto-aktualizacja. Te funkcje można jednak dodać do grml-zsh za pomocą antygenu , który jest menedżerem wtyczek dla zsh inspirowanym przez oh-my-zsh.

Antigen pozwala zdefiniować wtyczki i motyw, których chcesz użyć, a następnie pobiera i automatycznie dołącza do Ciebie. Jak na ironię, większość wtyczek i motywów jest pobierana z biblioteki oh-my-zsh, co oznacza, że ​​aby mogły zadziałać antygen musi najpierw załadować rdzeń oh-my-zsh. Podejście to prowadzi do mniej lub większego odtworzenia oh-my-zsh w sposób okrężny. Jeśli jednak wolisz konfigurację grml niż oh-my-zsh, to jest to poprawna opcja.

Podsumowując, uważam, że wystarczy wypróbować jedno i drugie i sprawdzić, który z nich będzie dla Ciebie najlepszy. Możesz przełączać się między nimi, tworząc następujące pliki: oh-my-zsh.zshrc(domyślny plik instalowany przez oh-my-zsh), grml.zshrc(domyślny grml zshrc) .zshrc.prei .zshrc.local.

Więc jeśli chcesz użyć oh-my-zsh:

$ ln -s ~/oh-my-zsh.zshrc ~/.zshrc

Lub, jeśli chcesz użyć grml:

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

Jeśli nie chcesz powielać twoje modyfikacje (czyli dodawanie plików do katalogu zwyczaj Oh-my-zsh i modyfikowania przed i lokalnych plików na grml), jedną z opcji jest dodać do dostosowania .zshrc.prei .zshrc.localczym je u źródła spód oh-my-zsh.zshrcpliku tak:

source $HOME/.zshrc.pre
source $HOME/.zshrc.local

Ponadto, jeśli zdecydujesz się użyć antygenu, możesz dodać go do swojego .zshrc.localpliku, a następnie rzucić wokół niego warunek, aby upewnić się, że oh-my-zsh go nie uruchomi, tak:

# 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
źródło