如何从源代码一步步编译Vim 8.0

从源代码编译 Vim 实际上并不那么困难。下面是你所要做的:

1、首先,安装包括 Git 在内的所有必备的库。对于一个 Debian 类的 Linux 发行版,例如 Ubuntu,命令如下:


  1. sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ 
  2.     libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ 
  3.     libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \ 
  4.     python3-dev ruby-dev lua5.1 lua5.1-dev libperl-dev git 

在 Ubuntu 16.04 上,lua 开发包的名称是 liblua5.1-dev 而非 lua5.1-dev。

如果你知道你将使用哪种语言,可随意删去你不需要的包。例如:Python2 python-dev 或者是 Ruby ruby-dev。这一原则适用于本文的大部分内容。

对于 Fedora 20,将是以下命令:


  1. sudo yum install -y ruby ruby-devel lua lua-devel luajit \ 
  2.     luajit-devel ctags git python python-devel \ 
  3.     python3 python3-devel tcl-devel \ 
  4.     perl perl-devel perl-ExtUtils-ParseXS \ 
  5.     perl-ExtUtils-XSpp perl-ExtUtils-CBuilder \ 
  6.     perl-ExtUtils-Embed 

在 Fedora 20 上需要这一步来纠正安装 XSubPP 时出现的问题:


  1. ### 从 /usr/bin 到 perl 目录做个 xsubpp (perl) 的符号链接 
  2. sudo ln -s /usr/bin/xsubpp /usr/share/perl5/ExtUtils/xsubpp  

2、 如果你已经安装了 vim,删掉它。


  1. sudo apt-get remove vim vim-runtime gvim 

如果是 Ubuntu 12.04.2,你或许也需要同时删除下面这些软件包:


  1. sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox 

3、 一旦上述内容都被安装好之后,获取 vim 源代码很容易。

注意:如果你使用 python,你的配置目录或许有一个特定的机器名 (例如 config-3.5m-x86_64-linux-gnu)。检查 /usr/lib/python[2/3/3.5] 目录来找到你的 python 配置目录,据此更改 python-config-dir 和/或 python3-config-dir的参数。

添加/删除下面的编译参数以适合您的设置。例如,如果您不打算写任何 Lua 脚本,您可以删去 enable-luainterp。

同时,如果你使用的不是 vim 8.0,请确认下面 VIMRUNTIMEDIR 参数设置正确(例如,如果使用 vim 8.0a, 就用 /usr/share/vim/vim80a)。记住,一些 vim 安装是直接安装在 /usr/share/vim 下的;调整好参数以适应你的系统:


  1. cd ~ 
  2. git clone https://github.com/vim/vim.git 
  3. cd vim 
  4. ./configure --with-features=huge \ 
  5.     --enable-multibyte \ 
  6.     --enable-rubyinterp=yes \ 
  7.     --enable-pythoninterp=yes \ 
  8.     --with-python-config-dir=/usr/lib/python2.7/config \ 
  9.     --enable-python3interp=yes \ 
  10.     --with-python3-config-dir=/usr/lib/python3.5/config \ 
  11.     --enable-perlinterp=yes \ 
  12.     --enable-luainterp=yes \ 
  13.     --enable-gui=gtk2 --enable-cscope --prefix=/usr 
  14. make VIMRUNTIMEDIR=/usr/share/vim/vim80 

在 Ubuntu 16.04 上,由于同时开启了 Python2 和 Python3,Python 支持将不工作。 阅读 chirinosky 的回答 以获取变通的处理方法。

如果你想将来轻松卸载 vim,可以使用 checkinstall 来安装 。


  1. sudo apt-get install checkinstall 
  2. cd ~/vim 
  3. sudo checkinstall 

否则,可以使用 make 来安装。


  1. cd ~/vim 
  2. sudo make install 

要让 vim 成为你默认的编辑器,请使用 update-alternatives。


  1. sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1 
  2. sudo update-alternatives --set editor /usr/bin/vim 
  3. sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1 
  4. sudo update-alternatives --set vi /usr/bin/vim 

4、 再检查下,通过查看 vim --version 输出来确认确实在运行新的 Vim 应用程序版本。

如果你的 gvim 不工作(在 ubuntu 12.04.1 LTS 上),试着把 --enable-gui=gtk2 参数变为 --enable-gui=gnome2。

如果你遇到问题,仔细检查在步骤 3 开始提到的,使用正确的 Python 配置目录配置 configure。

这些 configure 和 make 命令假设你是一个 Debian 发行版,Vim 的运行库文件目录放在 /usr/share/vim/vim80/,这不是 vim 的默认路径。 在 configure 命令中的 --prefix=/usr 也是如此。这些参数或许对一个不是基于 Debian 的 Linux 发行版来说是有所不同的,在这种情况下,试着移除 configure 命令中的 --prefix 变量和 make 命令中的 VIMRUNTIMEDIR (换句话说,使用这些参数的默认值)。

如果你遇到麻烦, 这里是一些其它编译 Vim 的有用的信息。

作者:Val Markovic

来源:51CTO

时间: 2024-08-22 17:27:57

如何从源代码一步步编译Vim 8.0的相关文章

从源代码编译 Vim 8.0

从源代码编译 Vim 实际上并不那么困难.下面是你所要做的: 1.首先,安装包括 Git 在内的所有必备的库.对于一个 Debian 类的 Linux 发行版,例如 Ubuntu,命令如下: sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev lib

linux下源代码包的编译安装

linux下源代码包的编译安装其实没那么复杂. 我是win7系统装的虚拟机,就简单说下: 举个简单的例子: http://www.openssl.org/ 这是openssl的官网,下载openssl包(官网肯定是安全的)要是其他的网上下载的--scripts看清包的脚本在玩,别最后安装不成一卸掉发现 "/"没了. 然后上传到你的虚拟机,要是都不知道怎么上传上去,那就别学了. 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/

《深入理解Android:Telephony原理剖析与最佳实践》一2.2 Android源代码下载及编译过程

2.2 Android源代码下载及编译过程 前面完成了Ubuntu.JDK.Android SDK的安装和配置,接着开始下载和编译Android 4.0源代码,这个过程简单但花费的时间比较长,请读者先有个心理准备. Android 4.0的代号为Ice Cream Sandwich,简称ICS,中文名称冰淇淋三明治. 2.2.1 工作目录设置 本书采用ICS名称的文件夹作为Android 4.0源代码的根目录,在用户根目录下新建代码根目录ICS文件夹,并设置此目录为工作目录,在.bashrc中增

Vim 8.0 取得不错进展

早在今年4月宣布 Vim 8.0 的特性的时候,Vim 7.4.1689 中就已经初步实现 8.0的几大重要特性的实现了,经过了 3个月的稳定,共计修复了 323项缺陷,到如今的 7.4.2012 中,所有功能基本都已经准备就绪,Vim 8.0 正在做最后的收尾工作,接下来将以一个新 tag的形式发布出来. Vim 的作者 Bram Moolenaar 说道:"在过去的几个月中 Vim 8.0 的所有新功能都已经被实现并稳定,包括异步通信,任务系统,时钟系统等.大量报上来的 BUG也被逐一解决.

图像处理-cmake编译的opencv3.0.0生成的工程无法通过编译

问题描述 cmake编译的opencv3.0.0生成的工程无法通过编译 我在windows下用cmake-gui编译opencv3.0(联合opencv contrib master), 生成的工程Opencv.sln在build的时候出现了许多下列类似的错误: 请问这是什么原因呢? 系统是windows10,vs2013 解决方案 http://www.opencv.org.cn/archiver/?tid-35547.html 解决方案二: http://www.nmtree.net/201

ubuntu15.10 64位编译Android 5.0源码

问题描述 ubuntu15.10 64位编译Android 5.0源码 使用的是ubuntu15.10 64 bit的,下载了Android 5.0的源码在, 准备编译,编译过程报如下错误: Install: out/host/linux-x86/bin/acp Yacc: aidl <= frameworks/base/tools/aidl/aidl_language_y.y prebuilts/misc/linux-x86/bison/bison -d -o out/host/linux-x

mac os x-mac下编译GTK+3.0的“Hello,World”程序出错

问题描述 mac下编译GTK+3.0的"Hello,World"程序出错 我用homebrew下载安装好了gtk+3,然后试着编译了一个网上的示例代码: #include <stdio.h> #include <stdlib.h> #include <gtk/gtk.h> static gboolean delete_event(GtkWidget * widget, GdkEvent * event, gpointer data) { gtk_ma

ubuntu 64位编译hadoop-2.6.0失败,网上看了好久,都没解决,大神速来解救

问题描述 ubuntu 64位编译hadoop-2.6.0失败,网上看了好久,都没解决,大神速来解救 [exec] CMake Error at /usr/local/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake:52 (MESSAGE): [exec] Could NOT find ZLIB [exec] Call Stack (most recent call first): [exec] /usr/local/sha

CentOS 64位上编译 Hadoop2.6.0

由于hadoop-2.6.0.tar.gz安装包是在32位机器上编译的,64位的机器加载本地库.so文件时会出错,比如: java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V  所以需要重新编译 1.编译环境 yum install cmake lzo-devel zlib-devel