ΠΠ»Π°Π³ΠΈΠ½Ρ oh-my-zsh, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ pyenv
ΠΈΠ»ΠΈ rbenv
, Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· Ρ Π±ΡΠ» Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΎΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠ°ΠΊ # 6017 .
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΏΡΡΡΡΡΡΡ Π²ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ? Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΠΎΠ³Ρ Π»ΠΈ Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ?
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, Π½ΠΎ Π΄Π»Ρ ΡΡΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ²ΠΎΠΉ .zshrc, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ, Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ)
function load-plugin() {
source $ZSH/plugins/"$1"/"$1".plugin.zsh
}
ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ load-plugin pyenv
, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠΎΡΡΠΎ Ρ ΠΎΡΠ΅Π» ΡΠΎΠΎΠ±ΡΠΈΡΡ, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Ρ NVM (ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΉ Node.js): https://github.com/creationix/nvm/issues/1277.
@crenwick ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π³ΡΡΠ·ΠΊΠΈ NVM ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
alias load_nvm='export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"'
alias node='unalias node npm && load_nvm && node'
alias npm='unalias node npm && load_nvm && npm'
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ pyenv:
alias load_pyenv='eval "$(pyenv init -)"'
alias pyenv='unalias pyenv && load_pyenv && pyenv'
@awinecki ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ lazy_plugins
, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΠ±ΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ², ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ Π²ΡΡΠ΅, Π»ΠΈΠ±ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ zsh autoload
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½Π΅ΡΡΠΈ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΏΠ»Π°Π³ΠΈΠ½Π°. ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½, Π° Π½Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ.
Π₯ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ ΠΎΠ± ΡΡΠΎΠΉ ΠΈΠ΄Π΅Π΅ Π΄ΡΠΌΠ°ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΡ ΠΏΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡΠΌ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, Π½ΠΎ Π΄Π»Ρ ΡΡΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ²ΠΎΠΉ .zshrc, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ, Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ)
ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅
load-plugin pyenv
, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.