如果你要在VIM中增加诸如YouCompleteMe这一类的插件的话,那么你需要VIM有Python的支持,这个是在一开始编译的选项里指定的。
我一开始怀着美好的愿望,希望vim能完美支持Python2和Python 3,所以,我在源码编译vim 7.4时加入了对Python这两个版本的支持。
另外,我也安装了YouCompleteMe插件,但是使用vim时我看到vim的抱怨

下面是我的调研,Vim的帮助文件中这样描述:
Vim 7.4源码可以用四种方式编译 (:version输出结果): 
1. 无 Python 支持 (-python、-python3) 
2. 只有 Python 2 支持 (+python 或 +python/dyn、-python3) 
3. 只有 Python 3 支持 (-python、+python3 或 +python3/dyn) 
4. Python 2 和 3 支持 (+python/dyn、+python3/dyn)

目前我遇到下面的问题:
vim --version | grep python
得到+python/dyn和+python3/dyn,但是在
:echo has('python')命令行却输出0而非1
:echo has('python3')命令行却输出0而非1

在vim命令模式下面运行
:h python-2-and-3

我们得到下面的说明:

vim中Python2和Python 3不能共存,当它们都支持时,它们必须是动态载入的方式。在Linux/Unix环境中,当导入全局符号时,会导致第二个Python版本崩溃。

所以要么加载global symbols只激活一个Python版本,要么不导入全局符号,这会导致Python导入vim提供的全局符号的相关库的import出错。

结论

最后,没有办法,为了减少麻烦,还是让vim支持Python的一个版本吧

重新编译安装vim

进入vim源码目录,先卸载vim,再清除原有配置

cd vim74/src

make uninstall   //vim卸载了
make clean  
rm -f src/auto/config.cache

重新编译安装,只支持Python 2.7.x

./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=/usr/local/python2710/lib/python2.7/config --enable-rubyinterp --enable-perlinterp --enable-luainterp --with-lua-prefix=/usr --enable-cscope  --enable-multibyte  --enable-gui=auto --enable-xim  --with-x --enable-fontset --enable-sniff --disable-selinux 
make  
make install

验证Python版本支持情况

vim --version | grep python

然后打开一个文件

vim old.vimrc

在命令行输入

:echo has('python')命令行为1
:echo has('python3')命令行为0

这就达到了我们的要求

参考文献
http://www.linuxidc.com/Linux/2015-04/116471.htm
http://tieba.baidu.com/p/2977752030   这个有启发

vim 7.4同时支持python 2.x和3.x问题调研相关推荐

  1. centos 使vim支持+python和+python3

    本文为了给ycm服务,不单独存在. 查看是否支持python vim --version | grep python然后 下载vim8源码: git clone https://github.com/ ...

  2. 如何让vim支持python_无法使vim支持python

    它不支持python和python3.在 因为页面链接似乎假设您有Python2.7,所以我下载了Python2.7.仍然没有成功.在 我跑了yum install python-devel.仍然没有 ...

  3. 支持python开发的环境有哪些特点_Python虚拟环境详细教程,一篇带你入坑

    Python 之所以强大,除了语言本身的特性外,更重要的是拥有无所不及的第三方库.强大的软件库,让开发者将精力集中在业务上,而避免重复造轮子的浪费.但众多的软件库,形成了复杂的依赖关系.今天我们就来了 ...

  4. maya脚本用python还是mel_将vim中的mel和python代码直接发送到Maya里

    相信不管你用什么编辑器,能直接把代码发送到Maya里并执行是十分方便的功能. 要在vim里实现这个功能,你只要安装一个插件就行,但必须的准备工作还是要的. 首先,你需要一个支持python的vim,官 ...

  5. Vim对中文编码的支持[转]

    Vim对中文编码的支持[转] Vim对中文编码的支持 1.支持中文编码的基础 Vim要更好地支持中文编码需要两个特性:+multi_byte和+iconv,可以用|:version|命令检查当前使用的 ...

  6. TF 2.1.0-rc2发布,2020年停止支持Python 2

    作者 | 神经星星 来源 | HyperAI超神经(ID:HyperAI) [导读]2020 年 1 月 1 日,Python 2 停止维护,正式退休.Python 3 全面登场的时刻,TensorF ...

  7. 汉语转拼音工具、新华字典API——两个支持Python的中文资源

    整理 | Jane 出品 | AI科技大本营 [导读]平常为大家推荐的资源中,以英语语言占据大多数.今天 AI科技大本营特别要为大家推荐两个跟中文相关的资源工具.先简单介绍下这两个资源工具都是什么.第 ...

  8. [错误收录] the pyflakes.vim plugin requires Vim to be compiled with +python

    错误提示: the pyflakes.vim plugin requires Vim to be compiled with +python大体上的意思是pyflakes.vim插件需要编译. 解决方 ...

  9. NumPy迎来重大版本更新,新增函数注释、滑动窗口视图功能,仅支持Python 3.7以上版本...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 杨净 发自 凹非寺    来自 | 量子位 最近,NumPy上线了最新版本--NumP ...

最新文章

  1. 红外发送管的角度特性测试
  2. PMcaff微课堂 | 洋葱淘elya妞,前百度UX Leader:独门创业经验,产品秘籍
  3. DataTable 转 Entity
  4. Tornado入门三
  5. 第二天学习Java的笔记
  6. 信号与线性系统分析_什么是线性系统?如何辨别控制系统?控制系统基本要求是什么?...
  7. socket 收不到netty客户端消息_Netty开发 —— 首个demo学习
  8. 网站服务器在境外境内怎么维护,涉黄网站服务器移至境外 境内维护人员将受制裁...
  9. BUAA-OO-2019 第三单元总结
  10. 腾讯丁珂:以“零信任”理念重构产业数字化时代安全防御体系
  11. 所大学生都要学计算机基础吗,大学生计算机基础学期总结.docx
  12. “瘟疫”笼罩下的物联网危与机
  13. python数据存储系列教程——xls文件的读写、追加(xlwt、xlwt、xlutils)
  14. 学游戏设计要什么学历_东莞模具设计培训学模具技术有什么好处为什么学模具技术...
  15. [BZOJ5329] [SDOI2018] 战略游戏
  16. cmd命令生成webservice_生成Webservice客户端的4种方法
  17. eclipse汉化方法取消汉化退回英文版
  18. 使用BMfont制作含有中文图片的.fnt格式字体合图
  19. linux驱动与windows驱动精灵,细说驱动精灵和驱动人生哪个好
  20. latex怎么改字体大小_latex更改字体 latex局部字体大小

热门文章

  1. 2017-2018-1 20155204 《信息安全系统设计基础》第十一周学习总结
  2. 学习笔记:腾讯云--域名解析
  3. Error: The INF file contains Unicode characters that could not be converted correctly
  4. Global.asax中Application_Error无法执行
  5. 试用最新版本的live writer发一篇日志看看
  6. .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  7. html表格联动,html前端基础:table和select操作
  8. 乌鲁木齐网络赛J题(最小费用最大流模板)
  9. usaco Money system
  10. php smarty关闭缓存,php+Smarty的缓存操作