Utilisation de deux chemins python pour vim sous Windows

0

Je voulais simplement :!python %pour exécuter le fichier im en utilisant vim, mais le conflit évident est qu’il m’est impossible de distinguer python2 et python3, car l’inclusion de ces deux éléments $PATH$aboutirait à deux instances de python.exe.

Y a-t-il une solution élégante à cela? Je veux juste un moyen rapide d'exécuter ce sur quoi je travaille.

2c2c
la source

Réponses:

2

Vous pouvez définir deux commandes personnalisées, par exemple:

:command! Python2 !C:\python2\python %
:command! Python3 !C:\python3\python %

Sinon, au cas où la version de Python diffère d’un projet à l’autre, j’utiliserais l’un des plugins vimrc locaux pour définir une variable tampon locale (par exemple, b:python_version) et vérifierais cela dans une commande personnalisée:

:command! Python execute '!C:\python' . b:python_version . '\python %'
Ingo Karkat
la source
0

Il n’ya pas de conflit évident, peu importe le nombre de python.exes que vous avez dans votre fichier PATH, seul le premier sera exécuté . Les PATHtravaux de gauche à droite - une fois l'exécutable trouvé, le processus est appelé et la recherche est interrompue.

Donc, si vous avez C:\python27\déjà utilisé auparavant C:\python3\, vous exécuterez toujours python2.

Wikipedia
Lorsqu'une commande est saisie dans un shell de commande ou qu'un appel système est exécuté par un programme pour exécuter un programme, le système commence par rechercher le répertoire de travail en cours, puis le chemin, en examinant chaque répertoire de gauche à droite, en recherchant un exécutable. nom de fichier qui correspond au nom de la commande donnée. Les programmes exécutables ont des extensions de nom de fichier EXE ou COM, et les scripts de traitement par lots ont des extensions de BAT ou CMD. D'autres extensions de noms de fichiers exécutables peuvent également être enregistrées avec le système.

Une fois qu'un fichier exécutable correspondant est trouvé, le système génère un nouveau processus pour l'exécuter.

Pour résoudre ce problème, je serais d’accord avec la solution de @IngoKarkat - mais je le mettrais dans mon cas ~/.vimrc.

nerdwaller
la source
Il existe déjà une :python3commande intégrée (lors de la compilation avec le support Python 3); dans tous les cas, les commandes personnalisées doivent commencer par une lettre majuscule.
Ingo Karkat