2017-05-25 4 views
0

Comment puis-je déplacer eval "$(pyenv init -)" en .zshrc vers .xonshrc? Quelle est la syntaxe dans xonsh pour faire cela? (

+0

vous devriez publier quelque contexte, p.ex. ajouter un extrait de votre .bashrc contenant la ligne. Cela ne semble pas être un paramètre omniprésent. –

Répondre

0

pyenv (pour le moment) ne prend en charge que les shells conformes POSIX (comme bash ou zsh) ainsi que le shell fish. pyenv n'est pas seulement une enveloppe autour de python, il s'intègre dans la session shell en cours d'exécution afin de fournir de manière transparente le virtualenv désiré.

eval "$(pyenv init -)" 

prend la sortie de pyenv init - et exécute (évalue) dans le contexte de la coquille en cours d'exécution, comme si la sortie, il a été écrit au lieu de la commande eval. En regardant la sortie de pyenv init -, vous pouvez voir qu'il s'agit d'un peu de code shell qui, entre autres, définit la fonction pyenv.

export PATH="/home/adaephon/local/opt/pyenv/shims:${PATH}" 
export PYENV_SHELL=zsh 
source '/home/adaephon/local/opt/pyenv/libexec/../completions/pyenv.zsh' 
command pyenv rehash 2>/dev/null 
pyenv() { 
    local command 
    command="$1" 
    if [ "$#" -gt 0 ]; then 
    shift 
    fi 

    case "$command" in 
    activate|deactivate|rehash|shell) 
    eval "$(pyenv "sh-$command" "[email protected]")";; 
    *) 
    command pyenv "$command" "[email protected]";; 
    esac 
} 

si elle est exécutée dans un code shell fish, pyenv init - rendements qui fait la même chose, mais dans la syntaxe de fish.

-

Pour pyenv travailler avec xonsh il aurait à la sortie xonsh variables -Compatible et définitions fonction. Pour autant que je puisse voir, vous devez au moins éditer les fichiers libexec/pyenv-init et libexec/pyenv-sh-shell (et probablement quelques plugins) pour cela.