欢迎来到风尚网
风尚网首页 > 首页 > 阅读 > Debian下Vim的编译

Debian下Vim的编译

作者:匿蟒 2016-02-19 03:12 来源:简书 编辑:美朵

文章摘要
在我新安装的Debianv8.3中,自带一个简陋的Vim。自带vi的version情况这种惨不忍睹的feature支持,任何一个Vimer都是不可能忍受的。而apt安装的,也会有一些问题,比如不支持clipboard(想想Vim和系统剪切板不通的那些痛)。因此,任何一个Vimer在配置新系统时,都需要从源码编译安装。本文介绍从一个刚安装的Debian系统(窗口为gnome3),如何编译一个feature丰富的Vim(以及gVim)。源码下载确保Git已经安装(sudoapt-getinstallgit),

在我新安装的Debian v8.3中,自带一个简陋的Vim。

自带vi的version情况

这种惨不忍睹的feature支持,任何一个Vimer都是不可能忍受的。而apt安装的,也会有一些问题,比如不支持clipboard(想想Vim和系统剪切板不通的那些痛)。

因此,任何一个Vimer在配置新系统时,都需要从源码编译安装。

本文介绍从一个刚安装的Debian系统(窗口为gnome3),如何编译一个feature丰富的Vim(以及gVim)。

源码下载

确保Git已经安装(sudo apt-get install git),然后可以从GitHub上下载到最新源码。

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

编译准备

一个新的Debian系统是没有gcc的,需要安装build-essential

而编译Vim也需要额外的一个特殊库,否则会在编译时出现以下提示:

You need to install a terminal library; for example ncurses.

现在通常用libncurses5-dev来提供这项编译支持。

sudo apt-get install build-essential libncurses5-dev

这样,编译Vim可以正常完成了,简单使用./configure && make && sudo make install,就可以编译安装一个最新的Vim。

但这只是个基础版本,仍然不支持很多feature,比如python。

编译参数

./configure -h中,可以看到许多的编译配置选项。

经过仔细研究后,我分行写到一个文件中。并且,在每次执行./configure之前,都清理上次配置的文件,避免干扰。

反复执行这个文件,就可以反复编译Vim。(相信我,你一定会反复编译Vim的。)

make clean
git clean -fdx

./configure 
    --prefix=/usr/local/ 
    --with-features=huge 
    --enable-multibyte 
    --enable-cscope=yes 
    --enable-perlinterp=yes 
    --enable-rubyinterp=yes 
    --with-ruby-command=/usr/bin/ruby 
    --enable-luainterp=yes 
    --enable-pythoninterp=yes 
    --enable-python3interp=yes 
    --enable-tclinterp=yes 
    --enable-gui=auto 
    --enable-gnome-check 
    --enable-sniff 
    --enable-xim 
    --enable-fontset 
    --with-x 
    --with-compiledby=$USER

make && src/vim --version

简要解释下部分参数。--with-features=huge是Vim必备的,要求最多的feature;--enable-gui=auto是要求同时编译一个gVim,至于用什么图形库则取决于窗口(我是gnome3),这里选auto比较完全;--enable-multibyte是对多字节语言支持,包括中文;--prefix是指明安装目录,影响后面make install的位置,在没有root权限的环境下,可以选择--prefix=~/--with-compiledby可有可无,那是指定编译显示的,用$USER则是调用用户名。

make后,编译开始。一般情况下都会编译成功,但是别高兴太早,编译Vim最大的坑来了!

src/vim --version看看新编译出来的Vim,不出意外地话,可以看到python、ruby、lua、clipboard等诸多feature都是减号,而且连gVim也没编译出来!

再次进入编译准备

上次编译准备,只是确保Vim的编译能正常完成,不能保证所需feature能够成功被编译。如果这些feature依赖的库没有被安装,那么编译成功后也是没有那个加号的。(不会编译失败或给出其它提示。

)而且,第一次编译的小白、不明真相的群众(比如说以前的我),往往会认为是自己的编译配置有误,去改./configure后面的参数,然后屡受挫折、备受折磨(上次我直接跪安了)。

究竟哪些额外的库,对应哪些feature,是这个问题的难点,也是本文的最大价值。通过反复编译多次的尝试后,总结出了以下对应关系。

configure feature dependency
--enable-pythoninterp python python-dev
--enable-python3interp python3 python3-dev
--enable-rubyinterp ruby ruby-dev
--enable-luainterp lua liblua5.2-dev
--enable-perlinterp perl libperl-dev
--enable-tclinterp tcl libtcl8.6
--enable-gui gVim libgnomeui-dev
clipboard libx11-dev libxt-dev
xpm libxpm-dev

把它们都安装好,然后再去编译Vim,就可以成功了。

sudo apt-get install 
    python-dev 
    python3-dev 
    ruby-dev 
    liblua5.2-dev 
    libperl-dev 
    libtcl8.6 
    libgnomeui-dev 
    libx11-dev 
    libxt-dev 
    libxpm-dev

编译安装

编译好的Vim信息

看到这一排排的加号,仿佛感到努力得到了回报。除了几个低频甚至不用的feature,比如ebcdic编码、sun_workshop、一些鼠标支持等,其它基本上都具备了。

(xfontset是一个遗憾,一开始都是可以的,添加了x那些库后反而就不行了。以后有用到再来。

确认编译无误后,就可以执行sudo make install安装到之前指定的prefix了。我是在/usr/local/,所以不用在PATH里添加路径。

使用准备

先下载一个Vim的包管理器,我是用Vundle.vim,然后用它管理插件。

mkdir -p ~/.vim/bundle/
cd ~/.vim/bundle/
git clone https://github.com/VundleVim/Vundle.vim.git

然后进入Vim,用它下载其它插件。

此外,还有些环境需要给Vim准备,这些不会影响Vim的编译,但是会影响使用。

sudo apt-get install 
    exuberant-ctags 
    cscope 
    libcanberra-gtk-module

添加gVim进GNOME程序选择界面

调出alacarte界面(即Main Menu),在某个位置(我是在Programming)选择【New Item】。

名称(name)填gVim,命令(command)填gvim,注释(comment)随便填。图标那里可选系统的/usr/share/icons/hicolor/48x48/apps/vim.png,也可选编译位置的vim/runtime/vim48x48.png

添加gVim到Main Menu

此后就可以按Win(Super)键输入gVim来调用了。

小主,按键盘右方向键 → 翻页可以跳过片头呢

  

上一篇:Debian下安装搜狗拼音输入法

  

下一篇:说说2016的猴年央视春晚

  

本文标题:Debian下Vim的编译

原文链接:http://i.she.vc/27646.html

和本文相似的内容:

点击排行