这似乎是一个比较常见的问题,但我尝试了各种方法,但都无法从源代码编译 Vim。我最近得到了一个 AWS EC2 Linux 实例,我一直在摆弄它。以下是一些基本操作系统统计数据:
$ cat /proc/version
Linux version 4.14.104-95.84.amzn2.x86_64 (mockbuild@ip-10-0-1-219) (gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)) #1 SMP Sat Mar 2 00:40:20 UTC 2019
$ cat /etc/*release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Amazon Linux release 2 (Karoo)
$ uname -a
Linux ip-172-31-22-73.us-east-2.compute.internal 4.14.104-95.84.amzn2.x86_64 #1 SMP Sat Mar 2 00:40:20 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
问题是我尝试将 vim 升级到 8.1 版本,但每当我将 vim 转换为任何内容时,我都会看到:
您需要使用 Python 2.6、2.7 或 3.2 及更高版本编译的 vim 才能使 Powerline 正常工作。请参阅文档了解更多详细信息。
这让我检查了一下vim --version
,发现:
+comments +libcall -python +visualextra
+conceal +linebreak -python3 +viminfo
你会注意到实际上没有 Python 支持。但是,我已配置了以下内容:
./configure --enable-python3interp --with-python3-config-dir=/usr/lib64/python3.7/config-3.7m-x86_64-linux-gnu --enable-rubyinterp --enable-gui=no --without-x --enable-cscope --enable-multibyte --prefix=/usr
配置输出显示如下:
checking Python version... (cached) 3.7
checking Python is 3.0 or better... yep
checking Python's abiflags... (cached) m
checking Python's install prefix... (cached) /usr
checking Python's execution prefix... (cached) /usr
(cached) checking Python's configuration directory... (cached) /usr/lib64/python3.7/config-3.7m-x86_64-linux-gnu
(cached) checking Python3's dll name... (cached) libpython3.7m.so.1.0
checking if -pthread should be used... yes
checking if compile and link flags for Python 3 are sane... yes
checking if -fPIE can be added for Python3... yes
这让我相信,vim 升级的所有设置都应该正确。运行该./configure
命令后,我运行sudo make
然后sudo make install
- 我认为这是正确的工作流程。我仍然看到相同的 vim 投诉。
有人有什么想法吗?以下链接对我来说是很好的起点。
https://github.com/powerline/powerline/issues/432 https://vi.stackexchange.com/questions/11526/how-to-enable-python-feature-in-vim
答案1
经典。当然,经过一天的尝试,我在发布帖子 5 分钟后看到了这个: https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
请注意,--prefix
我尝试的命令 ( /usr
) 与 Valloric 建议的命令 ( /usr/local
) 有所不同。
指定此配置命令:
sudo ./configure --enable-python3interp --with-python3-config-dir=/usr/lib64/python3.7/config-3.7m-x86_64-linux-gnu --enable-rubyinterp --enable-gui=no --without-x --enable-cscope --enable-multibyte --prefix=/usr/local
实际上确实解决了这个问题。但是,我不确定为什么前缀标志应该指向本地目录而不是文件/usr
夹。