Usando dois caminhos python para o vim no Windows

0

Eu queria simplesmente :!python % para executar o arquivo que estou usando no vim, mas o conflito óbvio é que não há como distinguir python2 e python3, já que incluir ambos em $PATH$ resultaria em duas instâncias de python.exe .

Existe uma solução elegante para isso? Eu só quero uma maneira rápida de executar o que estou trabalhando.

    
por 2c2c 12.12.2013 / 13:29

2 respostas

2

Você pode definir dois comandos personalizados, por exemplo:

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

Como alternativa, caso a versão do Python seja diferente por projeto, eu usaria um dos plug-ins local vimrc para definir uma variável local do buffer (digamos, b:python_version ), e verifique isso um comando personalizado:

:command! Python execute '!C:\python' . b:python_version . '\python %'
    
por 12.12.2013 / 13:53
0

Não há conflito óbvio porque não importa quantos python.exe s você tem em PATH , somente o primeiro será executado . O PATH funciona da esquerda para a direita - assim que o executável é encontrado, o processo é invocado e a pesquisa é interrompida.

Portanto, se você tiver C:\python27\ antes de C:\python3\ , você sempre executará python2.

Wikipedia
When a command is entered in a command shell or a system call is made by a program to execute a program, the system first searches the current working directory and then searches the path, examining each directory from left to right, looking for an executable filename that matches the command name given. Executable programs have filename extensions of EXE or COM, and batch scripts have extensions of BAT or CMD. Other executable filename extensions can be registered with the system as well.

Once a matching executable file is found, the system spawns a new process in which to run it.

Como uma solução para isso, eu concordaria com a solução @IngoKarkat - no entanto, eu colocaria no meu ~/.vimrc .

    
por 12.12.2013 / 14:06