Ohmyzsh: Plugins : puis-je les charger de manière asynchrone ou à la demande ?

Créé le 6 sept. 2017  ·  3Commentaires  ·  Source: ohmyzsh/ohmyzsh

Les plugins oh-my-zsh comme pyenv ou rbenv sont géniaux, mais je suis souvent obligé de ne pas utiliser de plugin car cela peut ralentir le temps de lancement de mon shell. C'est pourquoi nous avons des problèmes comme #6017 .

Est-il possible de charger certains plugins de manière asynchrone, afin que mon invite de shell ne soit pas bloquée tant que tous les plugins ne sont pas lancés ? A défaut, puis-je charger des plugins à la demande ?

init Feature

Commentaire le plus utile

Je ne peux pas répondre à la partie sur le chargement asynchrone, mais pour le chargement manuel, vous pouvez ajouter une fonction à votre .zshrc qui le fait.

Un exemple de base (capable de gérer un seul plugin, pas de vérification d'erreur)

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

Ensuite, exécutez load-plugin pyenv , chaque fois que vous en avez besoin.

Tous les 3 commentaires

Je ne peux pas répondre à la partie sur le chargement asynchrone, mais pour le chargement manuel, vous pouvez ajouter une fonction à votre .zshrc qui le fait.

Un exemple de base (capable de gérer un seul plugin, pas de vérification d'erreur)

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

Ensuite, exécutez load-plugin pyenv , chaque fois que vous en avez besoin.

Je voulais juste dire qu'il y a un problème très similaire avec NVM (gestionnaire de versions Node.js) en ce moment : https://github.com/creationix/nvm/issues/1277.

@crenwick a trouvé un excellent moyen de charger NVM à la demande :

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'

J'espère que la même chose pourrait être faite avec pyenv:

alias load_pyenv='eval "$(pyenv init -)"'
alias pyenv='unalias pyenv && load_pyenv && pyenv'

@awinecki merci pour cette info.

Cela me fait me demander si nous pouvons avoir une autre variable shell lazy_plugins qui peut être utilisée pour définir automatiquement des alias comme ci-dessus, ou peut-être utiliser zsh autoload afin que le coût de chargement du plugin soit encouru lorsque l'utilisateur tente d'utiliser le plug-in, plutôt qu'au démarrage du shell.

J'aimerais entendre ce que les experts en script pensent de cette idée.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

victorsenam picture victorsenam  ·  3Commentaires

mrgaolei picture mrgaolei  ·  3Commentaires

Cabbagec picture Cabbagec  ·  3Commentaires

2Dou picture 2Dou  ·  3Commentaires

nimmoadam picture nimmoadam  ·  3Commentaires