如何從源代碼一步步編譯Vim 8.0
從源代碼編譯 Vim 實(shí)際上并不那么困難。下面是你所要做的:
1、首先,安裝包括 Git 在內(nèi)的所有必備的庫(kù)。對(duì)于一個(gè) Debian 類的 Linux 發(fā)行版,例如 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 \
- python3-dev ruby-dev lua5.1 lua5.1-dev libperl-dev git
在 Ubuntu 16.04 上,lua 開發(fā)包的名稱是 liblua5.1-dev 而非 lua5.1-dev。
如果你知道你將使用哪種語(yǔ)言,可隨意刪去你不需要的包。例如:Python2 python-dev 或者是 Ruby ruby-dev。這一原則適用于本文的大部分內(nèi)容。
對(duì)于 Fedora 20,將是以下命令:
- sudo yum install -y ruby ruby-devel lua lua-devel luajit \
- luajit-devel ctags git python python-devel \
- python3 python3-devel tcl-devel \
- perl perl-devel perl-ExtUtils-ParseXS \
- perl-ExtUtils-XSpp perl-ExtUtils-CBuilder \
- perl-ExtUtils-Embed
在 Fedora 20 上需要這一步來糾正安裝 XSubPP 時(shí)出現(xiàn)的問題:
- ### 從 /usr/bin 到 perl 目錄做個(gè) xsubpp (perl) 的符號(hào)鏈接
- sudo ln -s /usr/bin/xsubpp /usr/share/perl5/ExtUtils/xsubpp
2、 如果你已經(jīng)安裝了 vim,刪掉它。
- sudo apt-get remove vim vim-runtime gvim
如果是 Ubuntu 12.04.2,你或許也需要同時(shí)刪除下面這些軟件包:
- sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox
3、 一旦上述內(nèi)容都被安裝好之后,獲取 vim 源代碼很容易。
注意:如果你使用 python,你的配置目錄或許有一個(gè)特定的機(jī)器名 (例如 config-3.5m-x86_64-linux-gnu)。檢查 /usr/lib/python[2/3/3.5] 目錄來找到你的 python 配置目錄,據(jù)此更改 python-config-dir 和/或 python3-config-dir的參數(shù)。
添加/刪除下面的編譯參數(shù)以適合您的設(shè)置。例如,如果您不打算寫任何 Lua 腳本,您可以刪去 enable-luainterp。
同時(shí),如果你使用的不是 vim 8.0,請(qǐng)確認(rèn)下面 VIMRUNTIMEDIR 參數(shù)設(shè)置正確(例如,如果使用 vim 8.0a, 就用 /usr/share/vim/vim80a)。記住,一些 vim 安裝是直接安裝在 /usr/share/vim 下的;調(diào)整好參數(shù)以適應(yīng)你的系統(tǒng):
- cd ~
- git clone https://github.com/vim/vim.git
- cd vim
- ./configure --with-features=huge \
- --enable-multibyte \
- --enable-rubyinterp=yes \
- --enable-pythoninterp=yes \
- --with-python-config-dir=/usr/lib/python2.7/config \
- --enable-python3interp=yes \
- --with-python3-config-dir=/usr/lib/python3.5/config \
- --enable-perlinterp=yes \
- --enable-luainterp=yes \
- --enable-gui=gtk2 --enable-cscope --prefix=/usr
- make VIMRUNTIMEDIR=/usr/share/vim/vim80
在 Ubuntu 16.04 上,由于同時(shí)開啟了 Python2 和 Python3,Python 支持將不工作。 閱讀 chirinosky 的回答 以獲取變通的處理方法。
如果你想將來輕松卸載 vim,可以使用 checkinstall 來安裝 。
- sudo apt-get install checkinstall
- cd ~/vim
- sudo checkinstall
否則,可以使用 make 來安裝。
- cd ~/vim
- sudo make install
要讓 vim 成為你默認(rèn)的編輯器,請(qǐng)使用 update-alternatives。
- sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 1
- sudo update-alternatives --set editor /usr/bin/vim
- sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim 1
- sudo update-alternatives --set vi /usr/bin/vim
4、 再檢查下,通過查看 vim --version 輸出來確認(rèn)確實(shí)在運(yùn)行新的 Vim 應(yīng)用程序版本。
如果你的 gvim 不工作(在 ubuntu 12.04.1 LTS 上),試著把 --enable-gui=gtk2 參數(shù)變?yōu)? --enable-gui=gnome2。
如果你遇到問題,仔細(xì)檢查在步驟 3 開始提到的,使用正確的 Python 配置目錄配置 configure。
這些 configure 和 make 命令假設(shè)你是一個(gè) Debian 發(fā)行版,Vim 的運(yùn)行庫(kù)文件目錄放在 /usr/share/vim/vim80/,這不是 vim 的默認(rèn)路徑。 在 configure 命令中的 --prefix=/usr 也是如此。這些參數(shù)或許對(duì)一個(gè)不是基于 Debian 的 Linux 發(fā)行版來說是有所不同的,在這種情況下,試著移除 configure 命令中的 --prefix 變量和 make 命令中的 VIMRUNTIMEDIR (換句話說,使用這些參數(shù)的默認(rèn)值)。
如果你遇到麻煩, 這里是一些其它編譯 Vim 的有用的信息。