我想安装一个vim插件,该插件需要+python功能,因此当我打开vim并键入:version时,它会显示-python。如何启用它?

谢谢。

#1 楼

您需要自己编译Vim或获取使用Python支持编译的预构建Vim软件包。

如果您使用的是基于Debian的系统,最简单的方法是从apt(例如apt install vim-gtk)下载vim-gnome或vim-gtk软件包。其他发行版可能具有类似的内置python支持的软件包。

如果您希望自己编译Vim,请下载Vim存储库并像这样传递--enable-pythoninterp

cd /tmp && git clone https://github.com/vim/vim.git && cd vim
./configure --enable-pythoninterp --prefix=/usr
make && sudo make install


在Windows上,您可以从此处获取Gvim软件包,其中包括Python支持。

评论


谢谢。我也在vi.stackexchange.com/questions/10242/vim-8-0-python-support找到了

– Enrique GF
17-2-24的3:47

对于您自己的已编译软件包,应将其安装在/ usr / local下而不是/ usr下。这可能会弄乱软件包管理器中已安装的内容。安装依赖项的最佳方法是apt build-dep vim-nox

– wbkang
17年8月25日在16:35



如今,似乎vim-gtk安装了Python 3(正如人们希望的那样!)。当:echo has('python')仍返回0时,我感到困惑,直到我意识到:echo has('python3')返回1。希望我要使用的插件对此感到满意。 (我正在运行FWIW的Mint 19 Cinnamon。)

–迈克尔·谢珀(Michael Scheper)
20/07/17在21:26

#2 楼

解决方案1:



安装vim-gtk软件包

sudo apt install vim-gtk   



将Vim设置为默认编辑器<解决方案2:

否则,您需要从源代码编译Vim(假设您使用的是基于Debian的系统)

准备系统




安装

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim.gtk 1   
sudo update-alternatives --set editor /usr/bin/vim.gtk   
sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim.gtk 1  
sudo update-alternatives --set vi /usr/bin/vim.gtk   
sudo update-alternatives --install /usr/bin/vi vim /usr/bin/vim.gtk 1  
sudo update-alternatives --set vim /usr/bin/vim.gtk    



删除如果您已经有Vim,请配置并制作


sudo apt install libncurses5-dev \
libgtk2.0-dev libatk1.0-dev \
libcairo2-dev python-dev \
python3-dev git

使用以下方法准备Deb软件包:检查安装




并安装该软件包

sudo apt remove vim vim-runtime gvim  


或者,如果要创建一个软件包使用带有checkinstall的--install=no选项

将Vim设置为默认编辑器

cd /usr && sudo git clone https://github.com/vim/vim.git && cd vim  

sudo ./configure --with-features=huge \
--enable-multibyte \
--enable-pythoninterp=yes \
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ \  # pay attention here check directory correct
--enable-python3interp=yes \
--with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/ \  # pay attention here check directory correct
--enable-gui=gtk2 \
--enable-cscope \ 
--prefix=/usr/local/

sudo make VIMRUNTIMEDIR=/usr/local/share/vim/vim81 


通过查看<

cd /usr/vim && sudo checkinstall


参考:
-从源代码构建Vim
-checkinstall

评论


与其链接到随机Internet站点上的某些deb,不如建议从具有+ python可用功能的Debian软件包中安装官方Vim。我相信这应该是vim-gtk

–克里斯蒂安·布拉班特(Christian Brabandt)
18-09-26在14:31

感谢@ChristianBrabandt的评论,我将更新我的答案。

– Finn
18-09-26在21:50

@ChristianBrabandt我相信当前默认Debian软件包vim-gtk3和vim-gtk的python选项不再包含在内。

–雅各布
19年4月27日15:57



@jacob是指当前的debian不再包含+ python吗?难道是debian改用python3吗?

–克里斯蒂安·布拉班特(Christian Brabandt)
19年4月27日在16:07

#3 楼

对于Windows,您始终可以在此处获取针对最新外部库编译的Vim 8.x的最新修补版本:Vim下载

发布最新版本时:

最新编译更新:2017年2月23日

Vim版本:8.0.0363官方补丁日志

使用的库:Perl 5.24.1,Python 2.7.12,Python 3.6.0,Racket 6.7,Ruby 2.4.0,Lua 5.3.3,Tcl 8.6.4和libXpm

#4 楼

您需要在系统上以与vim相同的位数(32位或64位)安装Python版本。 Python必须位于您的PATH中。如果可以通过在命令提示符下键入python来运行它,那么您应该会在这方面做得很好。最后,需要编译vim以支持python,但以我的经验来看,大多数都是。用:version检查并查找python/dyn。它前面必须有一个加号。

#5 楼

为了支持python-mode,您需要具有+ python AND + python3。这应该可以帮助您(至少在macOS上):

./configure --prefix=/opt/local --with-features=huge --enable-pythoninterp --enable-python3interp

make

sudo make install


#6 楼

由于启用python3功能可能会误解这一点,因此我认为根据您的需要针对安装进行安装时提到此链接非常有用。

以下是* nix和windows的优秀指南。

注意:请注意./configure指令中的每个字符,并在进行操作之前仔细阅读(好像会弄糟)。并读到最后,没有办法迷路

您应该将其添加到./configure:

--enable-fail-if-missing


避免同时启用python 2和3

花点时间这是一个非常详细的过程。感谢Valloric

#7 楼

在Mac OS X上,可以使用homebrew先安装python,然后再安装vim,该vim将支持python。

我使用MBP,vim支持通过上述方式安装的python/dyn,但不包括python3


#删除错误的答案2017.2.28 10:38 AM#

评论


我不确定我是否阅读正确,但是请注意,在帮助页面中,您的Vim是否真正支持+ python或-python,您将看不到。您必须研究:version

–克里斯蒂安·布拉班特(Christian Brabandt)
17年2月27日在15:08

@ChristianBrabandt你是对的。感谢您的回复。

– qingchen
17-2-28的2:20

#8 楼

对于没有GUI的服务器安装,请改用vim-nox

apt install vim-nox

#9 楼

对于使用anaconda python的用户,需要进行一些其他修改。他们可能还希望编译vim,特别是如果您想完成代码。这是配置命令:

为anaconda修改的configure命令:

 ./configure --enable-terminal --enable-gui=auto \
      --with-features=huge \
      --enable-multibyte \
       --enable-cscope --enable-terminal --enable-gui=auto  \
      --prefix=/XXX/SOFTWARE/VIM8/install3 \
   --enable-python3interp \
   --with-python3-config-dir=/XXX/anaconda2/envs/py36/bin/python3.6-config \
   --includedir=/XXX/anaconda2/envs/py36/include  \
   --includedir=/XXX/anaconda2/envs/py36/include/python3.6m \
   LDFLAGS=" -L/XXX/anaconda2/envs/py36/lib -L/XXX/anaconda2/envs/py36/lib/python3.6/config-3.6m-x86_64-linux-gnu"


在这里,正在使用蟒蛇的anaconda环境将vim安装到/XXX/SOFTWARE/VIM8/install3 3.6安装在/XXX/anaconda2/envs/py36

#10 楼

如果像我一样尽管编译了支持vimpython3,但仍然收到缺少python3支持的错误,请确保它加载了正确的dll

检查功能是否存在

:version


...
+python3/dyn
...


运行时缺少Python3

:echo has('python3')


0


不正确使用的DDL

:verbose set pythondll?


libpython2.7.so.1.0


此注释值得推荐此选项。

解决方案

在.vimrc中添加set pythondll=libpython3.8.so通过告诉vim在需要dll时使用该python3来解决了该问题。 Vim的:help python-dynamic对此进行了解释

The 'pythondll' or 'pythonthreedll' option can be used to specify the Python       
shared library file instead of DYNAMIC_PYTHON_DLL or DYNAMIC_PYTHON3_DLL file      
what were specified at compile time.  The version of the shared library must       
match the Python 2.x or Python 3 version Vim was compiled with.


我找不到一种明确的方法来查询DYNAMIC_PYTHON3_DLL在编译时的值。在撰写本文时,我假设它是系统的版本。

什么是python3-dynamic(python3 / dyn)

对于那些好奇的人,此函数包含在:help python-dynamic中,也是。

On MS-Windows and Unix the Python library can be loaded dynamically.  The :version output then includes +python/dyn or +python3/dyn.                      

This means that Vim will search for the Python DLL or shared library file only  
when needed.  When you don't use the Python interface you don't need it, thus   
you can use Vim without this file.  


评论


欢迎来到Vi和Vim!

– D. Ben Knoble♦
20年2月9日在13:18