Vim技能修炼教程(17) - 编译自己的Vim

时间:2022-04-04 13:58:05

编译自己的Vim

前面我们已经对Vim有比较丰富的了解了。我们也知道Vim有很多编译时的选项,很多功能依赖于这些编译选项。其中最重要的就是脚本语言的支持,很多发行版本是不全的。为了支持我们所需要的功能,我们需要编译自己的Vim.

首先我们要下载Vim的源代码:

git clone https://github.com/vim/vim.git

Linux上编译Vim

以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 libxt-dev python-dev ruby-dev mercurial

图形化界面支持

GUI已经统治世界了,GUI会给用户带来方便,我们后面也会讲菜单的用法。首先,我们需要能编译出带GUI的版本。

enable-gui支持下面一些选项:
* auto: 由vim自动选择
* no: 没有gui
* gtk2
* gtk3
* gnome2
* motif
* athena
* neXtaw
* photon
* carbon

我们首先试试使用motif库的效果:

Vim技能修炼教程(17) - 编译自己的Vim

实现步骤:
1. 首先安装motif库。
2. 然后安装motif-dev库。
3. configure –enable-gui=motif

如何安装motif库呢,我们以ubuntu 12.04为例,首先启动vim,执行下面的命令

:read !apt-cache search motif

然后我们在结果里面看到了libmotif4和libmotif-dev,分别用:!sudo apt-get install去安装它们就好。
然后执行:

configure --enable-gui=motif
make

运行src/vim -g,就可以看到motif界面的vim啦。

同样的方法,我们可以用来生成gtk2,gtk3, gnome2等界面风格。

扩展语言的支持

Vim目前一共支持7种扩展语言:
* lua: Lua语言
* perl:Perl语言
* python:Python语言2.x版本
* python3:Python语言3.x版本
* tcl:Tcl语言。
* ruby: Ruby语言
* mzscheme: Racket语言,是Scheme语言的一种方言。

支持这些语言需要三步曲:
1. 安装语言本身。要支持一门语言,连语言都不安装说不过去哈
2. 安装语言的开发包。vim需要头文件和开发库
3. configuration打开支持选项

对于需要指定语言路径的,可能还需要第4步。

我们以perl为例来说明:
第一步,安装perl:

sudo apt-get install perl

sudo apt-get install perl6

第二步,安装perl的开发库:

sudo apt-get install libperl-dev

第三步,重新配置并编译

./configure --enable-perlinterp

这些都配好了之后,我们就可以编译出一版基本上全功能的版本了:

Vim技能修炼教程(17) - 编译自己的Vim

编译命令示例:

./configure --enable-gui=gtk3 --enable-python3interp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-mzschemeinterp --enable-perlinterp --with-vim-name=vim8

Mac上编译vim

在Mac上,我们需要一个定制的版本MacVim:https://github.com/macvim-dev/macvim

enable-gui时不用指定,默认就好。
命令例:

./configure --enable-gui --enable-pythoninterp --enable-python3interp --enable-perlinterp --enable-mzschemeinterp --enable-rubyinterp --enable-cscope --enable-tclinterp --enable-luainterp --with-lua-prefix=/usr/local/Cellar/lua/5.2.4_4/

编译之后会生成Vim.app,带图形界面:

Vim技能修炼教程(17) - 编译自己的Vim

在mac上缺什么模块就用Homebrew来安装,一般不用指定,都可找到。