從源碼構建Vim

從源碼構建Vim

引言

事情是介樣滴,因為我是個Vim 重度使用者了差不多。。

但在大部分系統(tǒng)上能安裝到的或者自帶的都是比較老的版本,可能是7.x 之類的。也或者是你需要使用到Vim 的某些特性或者功能,但別人幫你Build 好的程序并沒有啟用,這就很尷尬了。

所以,我們要從源代碼自已構建自已的Vim.

步驟

下載運行時及源碼

首先是要安裝編譯必要的庫,這里你們看情況,有報錯缺啥就補也成。

可能需要這些(我自已不用裝就可以了):

sudo apt install ncurses-dev

# or

sudo apt install libncurses-dev

# or

sudo 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 支持的功能非常多,所以你可以自已選需要的功能打開或者關閉??梢詤⒖?a target="_blank">這里

也可以通過這個命令查看你當前的Vim 版本及功能的情況:

$ vim --version | less
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 19 2021 18:24:53)
macOS version - x86_64
Included patches: 1-2375
Compiled by Homebrew
Huge 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 后,配置就設置好了,接下來就可以直接安裝了。

make
sudo make install

你想要也可以指定位置:

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

或者指定最多可運行多少jobs 以防止小機器受不了,因為不限制它會隨便開:

make -j 4

在跑完make 和install 命令后,vim 應該就已經安裝好了。再次查看一下版本應該就是最新的了。

如果沒有變化的話,可能是因為shell 的緩存機制導致的,可以另開一個shell 或者用下面的命令更新一下緩存:

hash vim

大功告成~

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容