切换到python3时需要一些vim建议

时间:2015-04-23 21:57:27

标签: python python-3.x vim

我使用Vim作为我所有Django项目的主编辑器/ IDE。使用YouCompleteMe,syntastic和其他几个插件。经历太棒了。

我决定用python3开始所有新项目,因为世界正在转向Py3K。但是对于这两个版本的python,vim并没有正确播放。

我用两个版本的python编译。

vim --version | grep python
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      +python3/dyn     +vreplace

YouCompleteMe还不支持python3。 jedi-vim适用于这两个版本,但我不仅仅是正确的。

通常没有任何插件我可以调用任何py / py3命令。但启用jedi-vim会自动调用系统python2。

我使用Vundle作为vim插件管理器。

如果您愿意分享您的vimrc /其他配置/解决方法,请将vim用于python3开发(或两个版本),这对我非常有用。

感谢。

2 个答案:

答案 0 :(得分:5)

正如其他人在评论中指出的那样,为了切换到Python3,你不需要在Vim配置方面做太多改变。你需要做的是识别使用嵌入式Python的插件,找出哪些插件支持Python2和Python3,并告诉他们更喜欢Python3,并逐步淘汰只适用于Python2的插件。

对于我正在使用的插件:

  • gundo:let g:gundo_prefer_python3 = 1
  • jedi:let g:jedi#force_py_version = 3
  • syntastic:let g:syntastic_python_python_exec = 'python3',并安装所有检查器的Python3版本
  • python-mode:let g:pymode_python = 'python3'
  • YouCompleteMe:不适用于Python3。

另外,如果您计划使用pypy3命令编辑VimL文件,那就太好了:安装优秀的SyntaxRange,并将其添加到after/syntax/vim.vim

<德尔> call SyntaxRange#Include('\C\v<py\%(thon)?3?\s+\<\<\s*[A-Z]{3,}\zs$', '\C\v^[A-Z]{3,}$', 'python')

答案 1 :(得分:0)

对于那些仍然需要切换到Python 3的人来说,这就是我的发现。

Vim可以在Python 2和Python 3的支持下进行编译,但是它将动态加载仅Python的1个版本,以先到者为准。这意味着如果您有一些需要Python的插件,则第一个会要求使用特定的Python版本。

那么我们如何才能强制将要加载vim的Python版本?我们将这些行放在.vimrc

的顶部,然后再加载其他任何插件
if has('python3')
endif

这样做需要您自担风险,因为它可能会破坏您的插件。