Ohmyzsh: Plugin: dapatkah saya memuatnya secara asinkron, atau sesuai permintaan?

Dibuat pada 6 Sep 2017  ·  3Komentar  ·  Sumber: ohmyzsh/ohmyzsh

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?

init Feature

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)

function load-plugin() {
  source $ZSH/plugins/"$1"/"$1".plugin.zsh
}

Kemudian jalankan load-plugin pyenv , kapan pun Anda membutuhkannya.

Semua 3 komentar

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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat