import sys; print(sys.version)
如果你要在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
import sys; print(sys.version)如果你要在VIM中增加诸如YouCompleteMe这一类的插件的话,那么你需要VIM有Python的支持,这个是在一开始编译的选项里指定的。我一开始怀着美好的愿望,希望vim能完美支持Python2和Python 3,所以,我在源码编译vim 7.4时加入了对Python这两个版本的支持。另外,我也安装了YouComplete...
在ubuntu14.04下
vim
8.0不
支持
python
,网上看了很多blog大多都是重新编译
vim
源代码,通过编译选项来使得
vim
支持
python
,这种方法比较麻烦一点而且可能很容易出错,所以这里我们会使用另一种方法。这种方法不仅可以
省去编译的步骤,而且可以使得
vim
支持
+
python
和 +
python
3 的切换http://jingyan.baidu.com/article/c1a
#apt-get install
vim
-scripts
#apt-get install
vim
-addon-manager
#
vim
-addons install taglist
4. 安装pydiction(实现代码补全)
#wget http://www.
python
club.org/_media/
Python
-basic/pydiction-1.2.zip
将变量设置为1启用或禁用0 。
例如,要启用所有语法突出显示功能,可以将以下命令添加到~/.config/n
vim
/init.
vim
或~/.
vim
rc :
let g:
python
_highlight_all = 1
如果你要在
VIM
中增加诸如YouCompleteMe这一类的插件的话,那么你需要
VIM
有
Python
的
支持
,这个是在一开始编译的选项里指定的。
我一开始怀着美好的愿望,希望
vim
能
完美
支持
Python
2和
Python
3,所以,我在源码编译
vim
7.4时加入了对
Python
这两个版本的
支持
。
另外,我也安装了YouCompleteMe插件,但是使用
vim
时我看到
vim
的抱怨
但echo has("
python
") 与echo has("
python
3")都返回0.
通过set
python
threedll方法,可以使得echo has("
python
3")返回1。
所以在
vim
rc文件中末尾配置:
set
python
threedll:
python
36.dll
重新打开
vim
,仍然提示上述问题。
确保 configure 有执行权限,它会到 src 中去执行 configure ,确保这个文件也有执行权限。
如果没有 x 那么就用 chmod +x configure 加上执行权限。
然后 运行这个命令
./configure -- enable-pytho
之前花了很多时间搭建了几套平台不一样的
vim
编辑环境,好处也很明显,最起码知道了
vim
编辑器各个模块得配置及调用关系,也明白那句流传很广的话,不要贪多,从简单到高深,有个过程,先把技能一点点捡到自己篮子里才是正理,不然徒增烦恼,浪费时间(这里大多数指下载或copy别人配置,然后拉起来一堆堆的错误~)
注意事项:
1.注意
vim
与
python
版本必须一致,
python
如...