Vim& Syntastic:是否可以为每个项目切换Python版本?

时间:2017-02-01 07:31:21

标签: python python-3.x vim syntastic

我知道可以选择要检查的Python版本,例如在vim.rc as per this SO answer,但我可以按项目进行吗?使用例如virtualenv或配置文件?

1 个答案:

答案 0 :(得分:2)

这一切都取决于你如何定义"这是一个项目"。

我们中的一些人一直在提供本地vimrc插件,其中项目定义是"此目录及其子目录中的所有文件"。有关此主题的更多详细信息和替代解决方案,请参阅此答案:Vim: apply settings on files in directory

请注意,最近我一直在研究一种不同的(并且更轻量级)方式(在大多数情况下)来指定项目是什么:https://github.com/LucHermitte/lh-vim-lib/blob/master/doc/Project.md(这仍然是高度实验性的)。

阅读你已经链接的答案......它只讲述了一个允许调整插件行为的全局变量。如果除了调整此全局选项之外别无其他方法,则需要在本地vimrc或BufEnter自动命令中无条件地重置此全局变量。幸运的是,由于缓冲区局部变量,合成是项目感知 - @ lcd047在这个主题上纠正了我。这意味着不是重置全局变量,而是根据当前目录(或者您可以在自动命令中定义的任何其他启发式)设置缓冲区局部变量 - 如果没有这些插件,您只需要监听BufNewBufRead事件,但这不支持在机器,目录等之间进行迁移。)

请注意,每次输入与该配置文件匹配的缓冲区时,我的local-vimrc插件都会提供当前本地vimrc配置文件。这意味着如果您不添加反重新保护,每次进入已定义的缓冲区时,b:syntastic_python_python_exec都会重置。这不应该是有问题的。另请注意,我不知道替代插件是如何进行的。