从源码构建Vim

引言

事件是介样滴,因为我是个Vim 重度使用者了差不多。。

但在大部分零碎上能装置到的或者自带的都是比拟老的版本,可能是7.x 之类的。也或者是你须要应用到Vim 的某些个性或者性能,但他人帮你Build 好的程序并没有启用,这就很难堪了。

所以,咱们要从源代码自已构建自已的Vim.

步骤

下载运行时及源码

首先是要装置编译必要的库,这里你们看状况,有报错缺啥就补也成。

可能须要这些(我自已不必装就能够了):

sudo apt install ncurses-dev# orsudo apt install libncurses-dev# orsudo apt install libncurses5-dev \                libgtk2.0-dev \                libatk1.0-dev \                libcairo2-dev \                python-dev \                python3-dev \                git

而后是下载源码:

cd ~ && git clone https://github.com/vim/vim.git && cd vim/src

配置Vim

因为Vim 反对的性能十分多,所以你能够自已选须要的性能关上或者敞开。能够参看这里

也能够通过这个命令查看你以后的Vim 版本及性能的状况:

$ vim --version | lessVIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 19 2021 18:24:53)macOS version - x86_64Included patches: 1-2375Compiled by HomebrewHuge version without GUI.  Features included (+) or not (-):+acl               -farsi             +mouse_sgr         +tag_binary+arabic            +file_in_path      -mouse_sysmouse    -tag_old_static+autocmd           +find_in_path      +mouse_urxvt       -tag_any_white+autochdir         +float             +mouse_xterm       -tcl-autoservername    +folding           +multi_byte        +termguicolors-balloon_eval      -footer            +multi_lang        +terminal+balloon_eval_term +fork()            -mzscheme          +terminfo-browse            +gettext           +netbeans_intg     +termresponse++builtin_terms    -hangul_input      +num64             +textobjects+byte_offset       +iconv             +packages          +textprop+channel           +insert_expand     +path_extra        +timers+cindent           +ipv6              +perl              +title-clientserver      +job               +persistent_undo   -toolbar+clipboard         +jumplist          +popupwin          +user_commands+cmdline_compl     +keymap            +postscript        +vartabs+cmdline_hist      +lambda            +printer           +vertsplit+cmdline_info      +langmap           +profile           +virtualedit+comments          +libcall           -python            +visual+conceal           +linebreak         +python3           +visualextra+cryptv            +lispindent        +quickfix          +viminfo+cscope            +listcmds          +reltime           +vreplace+cursorbind        +localmap          +rightleft         +wildignore+cursorshape       +lua               +ruby              +wildmenu+dialog_con        +menu              +scrollbind        +windows+diff              +mksession         +signs             +writebackup+digraphs          +modify_fname      +smartindent       -X11-dnd               +mouse             -sound             -xfontset-ebcdic            -mouseshape        +spell             -xim+emacs_tags        +mouse_dec         +startuptime       -xpm+eval              -mouse_gpm         +statusline        -xsmp+ex_extra          -mouse_jsbterm     -sun_workshop      -xterm_clipboard+extra_search      +mouse_netterm     +syntax            -xterm_save   system vimrc file: "$VIM/vimrc"     user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc"      user exrc file: "$HOME/.exrc"       defaults file: "$VIMRUNTIME/defaults.vim"  fall-back for $VIM: "/usr/local/share/vim"

下面第一行就写了版本号,而那些所有的个性就列在了上面,带 + 的是启用的了, - 号的是没启用。

如果没错的话当初咱们在 vim/src 这个目录里了。

通过这个命令能够根本开启全功能:

./configure \    --with-features=huge \    --enable-multibyte \    --enable-rubyinterp \    --enable-perlinterp \    --enable-luainterp \    --enable-pythoninterp \    --with-python-config-dir=/usr/lib/python2.7/config-arm-linux-gnueabihf/ \    --enable-python3interp \    --with-python3-config-dir=/usr/lib/python3.7/config-3.7m-arm-linux-gnueabihf/ \    --enable-gui=gtk2 \    --enable-cscope \    --prefix=/usr

留神:外面两个Python 门路替换成你机器上的理论状况!

或者,你想敞开某个默认是开启的性能也能够用这样关掉:

./configure --enable-multibyte=no --enable-cscope=yes

间接写xxx=no 会敞开而xxx=yes 会开启,下面这条例子咱们关了enable-multibyte, 而开启了enable-cscope.

命令运行后程序会跑很多checking, 急躁期待它跑完就行。

装置

在运行完configure 后,配置就设置好了,接下来就能够间接装置了。

makesudo make install

你想要也能够指定地位:

sudo make VIMRUNTIMEDIR=/usr/local/share/vim/vim82

或者指定最多可运行多少jobs 以避免小机器受不了,因为不限度它会轻易开:

make -j 4

在跑完make 和install 命令后,vim 应该就曾经装置好了。再次查看一下版本应该就是最新的了。

如果没有变动的话,可能是因为shell 的缓存机制导致的,能够另开一个shell 或者用上面的命令更新一下缓存:

hash vim

功败垂成~