2017-02-01 138 views
1

我知道可以选择要检查的Python版本在vim.rcas per this SO answer,但我可以做到每个项目?使用例如virtualenv还是配置文件?Vim&Syntastic:是否可以为每个项目切换Python版本?

+2

从[FAQ](https://github.com/vim-syntastic/syntastic#faqpython):从'virtualenv'或'pyenv'运行Vim。在虚拟环境中安装相关的短绒。 –

+0

@SatoKatsura谢谢。我结束了使用这个。如果您将其添加为答案,我会接受它。 – geckon

回答

2

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

我们几个人一直在提供本地vimrc插件,其中项目定义是“此目录及其子目录中的所有文件”。看到这个答案关于这一主题的详细信息和替代方案:Vim: apply settings on files in directory

注意,最近我一直工作在不同的(和更轻巧)的方式(在大多数情况下)来指定哪些项目是:https://github.com/LucHermitte/lh-vim-lib/blob/master/doc/Project.md(此仍然是高度实验性的)。

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

请注意,每当我们输入一个匹配该配置文件的缓冲区时,我的local-vimrc插件就会生成当前的本地vimrc配置文件。这意味着如果您没有添加防止重新加入保护措施,每次您输入已定义的缓冲区时,都会重置b:syntastic_python_python_exec。这里不应该有这个问题。还请注意,我不知道替代插件如何进行。

+2

_不幸的是,它是另一个插件,认为我们从来不需要在需要不同设置的多个项目上工作._ - 现在,如果只有人在做出像这样的权威性陈述之前阅读手册,我们将生活在一个更美好的世界中。 Synthetic _does_注意一个局部变量'b:syntastic_python_python_exec'。不过,现在@SatoKatsura在评论中提到的解决方案是首选,因为它适用于所有跳棋,而不仅仅适用于“python”。 – lcd047

+1

@ lcd047,那我的错误。我从另一篇文章中得出了不正确的结论。我会编辑我的消息。感谢您的更正。 –

相关问题