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

摘要:随着我们的vim知识越来越丰定,我们已经可能需要编译自己的vim了

编译自己的Vim

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

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

gitclonehttps://github.com/vim/vim.git

Linux上编译Vim

以Ubuntu为例,首先要安装一些库的开发包,例:

sudoapt-getinstalllibncurses5-devlibgnome2-devlibgnomeui-devlibgtk2.0-devlibatk1.0-devlibbonoboui2-devlibcairo2-devlibx11-devlibxpm-devlibxt-devpython-devruby-devmercurial

图形化界面支持

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

enable-gui支持下面一些选项:

auto:由vim自动选择

no:没有gui

gtk2

gtk3

gnome2

motif

athena

neXtaw

photon

carbon

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

motif

实现步骤:

1.首先安装motif库。

2.然后安装motif-dev库。

3.configure--enable-gui=motif

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

:read!apt-cachesearchmotif

然后我们在结果里面看到了libmotif4和libmotif-dev,分别用:!sudoapt-getinstall去安装它们就好。

然后执行:

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:

sudoapt-getinstallperl

sudoapt-getinstallperl6

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

sudoapt-getinstalllibperl-dev

第三步,重新配置并编译

./configure--enable-perlinterp

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

gtk3

编译命令示例:

./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,带图形界面:

![macvim](https://yqfile.alicdn.com/625c9bf33baab9476ee975cdaa2c3a66bdd7ed81.png)

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

相关推荐