oh-my-zsh plugin seperti pyenv
atau rbenv
sangat bagus, tetapi sering kali saya terpaksa tidak menggunakan plugin karena dapat membuat waktu peluncuran shell saya merangkak. Itu sebabnya kami mendapatkan masalah seperti #6017 .
Apakah mungkin memuat beberapa plugin secara tidak sinkron, jadi Shell Prompt saya tidak diblokir sampai semua plugin diluncurkan? Jika gagal, dapatkah saya memuat plugin sesuai permintaan?
Saya tidak dapat menjawab bagian tentang pemuatan asinkron, tetapi untuk pemuatan manual Anda dapat menambahkan fungsi ke .zshrc Anda yang melakukan itu.
Contoh dasar (hanya dapat menangani satu plugin, tidak ada pemeriksaan kesalahan)
function load-plugin() {
source $ZSH/plugins/"$1"/"$1".plugin.zsh
}
Kemudian jalankan load-plugin pyenv
, kapan pun Anda membutuhkannya.
Hanya ingin mengatakan bahwa ada masalah yang sangat mirip dengan NVM (pengelola versi Node.js) sekarang: https://github.com/creationix/nvm/issues/1277.
@crenwick datang dengan cara yang bagus untuk memuat NVM sesuai permintaan:
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'
Saya berharap hal yang sama dapat dilakukan dengan pyenv:
alias load_pyenv='eval "$(pyenv init -)"'
alias pyenv='unalias pyenv && load_pyenv && pyenv'
@awinecki terima kasih atas infonya.
Itu membuat saya bertanya-tanya apakah kita dapat memiliki variabel shell lain lazy_plugins
yang dapat digunakan untuk mendefinisikan alias secara otomatis seperti di atas, atau mungkin menggunakan zsh autoload
sehingga biaya untuk memuat plugin benar-benar dikeluarkan ketika pengguna mencoba menggunakan plugin, bukan pada waktu startup shell.
Akan sangat senang mendengar pendapat para ahli scripting tentang ide ini.
Komentar yang paling membantu
Saya tidak dapat menjawab bagian tentang pemuatan asinkron, tetapi untuk pemuatan manual Anda dapat menambahkan fungsi ke .zshrc Anda yang melakukan itu.
Contoh dasar (hanya dapat menangani satu plugin, tidak ada pemeriksaan kesalahan)
Kemudian jalankan
load-plugin pyenv
, kapan pun Anda membutuhkannya.