我只是想:!python %
运行我在 vim 中使用的文件,但明显的冲突是我无法区分 python2 和 python3,因为同时包含它们$PATH$
会导致两个实例python.exe
。
有没有什么优雅的解决方案?我只想快速运行我正在处理的工作。
答案1
您可以定义两个自定义命令,例如:
:command! Python2 !C:\python2\python %
:command! Python3 !C:\python3\python %
另外,如果每个项目的 Python 版本不同,我会使用以下之一本地 vimrc插件设置缓冲区局部变量(例如b:python_version
),并在自定义命令中检查:
:command! Python execute '!C:\python' . b:python_version . '\python %'
答案2
没有明显的冲突,因为无论python.exe
你有多少个 s PATH
,仅第一个会被执行.PATH
从左到右进行工作 - 一旦找到可执行文件,就会调用该过程并停止搜索。
所以如果你C:\python27\
以前有过C:\python3\
,你会总是执行 python2。
维基百科
当在命令 shell 中输入命令或程序进行系统调用来执行程序时,系统首先搜索当前工作目录,然后搜索路径,从左到右检查每个目录,查找与给定命令名匹配的可执行文件名。可执行程序的文件扩展名为 EXE 或 COM,批处理脚本的文件扩展名为 BAT 或 CMD。其他可执行文件扩展名也可以在系统中注册。一旦找到匹配的可执行文件,系统就会生成一个新进程来运行它。
为了解决这个问题,我同意@IngoKarkat的解决方案 - 但是,我会把它放在我的~/.vimrc
。