Ohmyzsh: Complementos: ¿puedo cargarlos de forma asíncrona o bajo demanda?

Creado en 6 sept. 2017  ·  3Comentarios  ·  Fuente: ohmyzsh/ohmyzsh

Los complementos oh-my-zsh como pyenv o rbenv son geniales, pero muchas veces me veo obligado a no usar un complemento porque puede acelerar el tiempo de inicio de mi shell. Es por eso que tenemos problemas como #6017.

¿Es posible cargar algunos complementos de forma asincrónica, de modo que mi indicador de shell no se bloquee hasta que se inicien todos los complementos? Si esto falla, ¿puedo cargar complementos a pedido?

init Feature

Comentario más útil

No puedo responder la parte sobre la carga asincrónica, pero para la carga manual podría agregar una función a su .zshrc que haga eso.

Un ejemplo básico (solo capaz de manejar un complemento, sin verificación de errores)

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

Luego ejecute load-plugin pyenv , siempre que lo necesite.

Todos 3 comentarios

No puedo responder la parte sobre la carga asincrónica, pero para la carga manual podría agregar una función a su .zshrc que haga eso.

Un ejemplo básico (solo capaz de manejar un complemento, sin verificación de errores)

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

Luego ejecute load-plugin pyenv , siempre que lo necesite.

Solo quería comentar que hay un problema muy similar con NVM (administrador de versiones de Node.js) en este momento: https://github.com/creationix/nvm/issues/1277.

@crenwick ideó una excelente manera de cargar NVM a pedido:

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'

Espero que se pueda hacer lo mismo con pyenv:

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

@awinecki gracias por esa información.

Me hace preguntarme si podemos tener otra variable de shell lazy_plugins que se pueda usar para definir automáticamente alias como el anterior, o tal vez usar zsh autoload para que se incurra en el costo de cargar el complemento. cuando el usuario intenta usar el complemento, en lugar de en el momento del inicio del shell.

Me encantaría saber qué piensan los expertos en secuencias de comandos sobre esta idea.

¿Fue útil esta página
0 / 5 - 0 calificaciones