从源码构建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
功败垂成~