Linux 下源碼編譯安裝 vim 8.1


前言

目前 linux 的各個發行版基本上都是帶了一個 vi 編輯器的,而本文要說的 vim 編輯器對 vi 做了一些優化升級,更好用。當我們需要遠程操作一台 linux 服務器的時候,只能使用命令行,這意味着如果你需要編輯文本,就只能用命令行編輯器。流行的編輯器有 vim 、emacs、nano,其中最簡單易用的是 nano ,vim 次之,最困難的是 emacs。如果說誰最好用,那沒有的,編輯器沒有好不好用的說法,只有使用者是否習慣它的思維,編輯器是真的有它自己的想法的,你得順着它的思路走。

背景

那為什么非得從源碼編譯安裝 vim 呢?原因是 vim 可以支持很多特性,可以自由開啟和關閉,但這只能是從源碼編譯安裝才可以做到。而操作系統自帶的 vim 往往只開啟了很少的特性,無法滿足我們日常變成的需求,比如我需要它開啟支持 python 3 的特性,那我只能先卸載操作系統自帶的 vim ,然后自己編譯安裝。

下面展示一些示例,給大家看一下。

首先是我的服務器上的自帶 vim :

其次是我自己的日常 vim

任務

完美地從源碼編譯安裝 vim 8.1

安裝

聲明:本文所述的安裝方法參考自 Google 開源項目 YouCopleteMe,在它的 wiki 頁可以找到。地址:
https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source

本文所述的安裝方法已經可滿足絕大多數的日常 vim 使用需求了

環境:

  • 操作系統:archlinux
  • shell:zsh
  • 適用於 archlinux、debian/ubuntu、centos/fedora (注意:都是最新或者接近最新的版本,不討論遠古系統)
  • mac 用戶推薦使用 homebrew

第一步:徹底卸載操作系統自帶的 vim

archlinux 用戶:

sudo pacman -Rsn vi vim-tiny vim vim-runtime gvim vim-common vim-gui-common vim-nox

debian/ubuntu 用戶:

sudo apt-get remove --purge vi vim-tiny vim vim-runtime gvim vim-common vim-gui-common vim-nox

其他發行版用戶,可自行搜索卸載命令

執行完卸載命令之后,強烈建議全局查找包含 vim 字樣的文件和文件夾,手動刪除,以免有漏網之魚。如果卸載不干凈,之后編譯安裝完了之后,很可能某種特性開啟失敗,導致又要重裝,在任意文件夾下執行:

sudo find / -name "*vim*" > ~/find_vim_result

查找的結果都會在 ~/find_vim_result 中記錄,你需要對照着這個記錄,一個個手動去刪除,但是要注意,有些是不可刪除的文件,比如:

/usr/share/libquvi-scripts/0.9.20131130/media/vimeo.lua
/usr/lib/modules/4.18.3-arch1-1-ARCH/kernel/drivers/media/platform/vimc/vimc_sensor.ko.xz
/usr/lib/modules/4.18.3-arch1-1-ARCH/kernel/drivers/media/platform/vimc/vimc-debayer.ko.xz
/usr/lib/modules/4.18.3-arch1-1-ARCH/kernel/drivers/media/platform/vimc/vimc_scaler.ko.xz

如果大量操作系統文件被誤刪,很有可能你需要重裝系統,千萬注意。

第二步:克隆 vim 源代碼

在任意文件夾下執行

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

進入 vim 項目文件夾

cd ./vim

第三步:安裝依賴庫

archlinux 用戶:

無需安裝任何依賴

debian/ubuntu 用戶:

sudo apt 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 liblua5.1-dev libperl-dev git

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

然后

sudo ln -s /usr/bin/xsubpp /usr/share/perl5/ExtUtils/xsubpp

第四步:configure vim

./configure --with-features=huge \
    --enable-multibyte \
    --enable-rubyinterp=yes \
    --enable-python3interp=yes \
    --with-python-config-dir=/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu \
    --enable-perlinterp=yes \
    --enable-luainterp=yes \
    --enable-gui=gtk2 \
    --enable-cscope \
    --prefix=/usr/local

請注意:把 python3-config-dir 這個目錄換成你自己的,就是你的操作系統自帶的 python3 的 config 目錄,/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu 這個是我的目錄,跟你的可能不一樣,請自行查找

強烈建議你把這一條命令先復制到某個編輯器中,然后修改完路徑之后,再粘貼到終端里面去執行

在這個命令中,我們開啟的主要是 ruby、python3、perl、lua,我建議你只開啟 python3,如果你覺得有必要,那就只開啟 python2,如果同時開啟 python3 和 python2 會產生很多沖突,這個配置可以滿足絕大多數的 python、go 的開發任務了。

第五步:make

make VIMRUNTIMEDIR=/usr/local/share/vim/vim81

第六步:安裝到系統中

sudo make install

第六步:查看特性是否已經開啟

vim --version

第七步:額外說明

建議使用 terminal 版本的 vim ,不建議使用 gvim、macvim 之類的 gui

我日常使用的 vim 都是按照這個流程來走的,滿足了絕大多數的開發需求,外加裝了很多插件和自己寫的插件,開發 python、go 足夠了,並且還可以完美的書寫 markdown ,勝任了一切編輯工作。但是如果要開發 .net 還是建議使用宇宙第一 IDE visual studio 或者編輯器 visual studio code

vim 其實真不是個好東西,你會發現自己越來越懶,懶到什么程度呢?

以前在 windows 下做開發,用 visual studio ,好多快捷鍵再配合鼠標好方便。自從熟練使用 vim 之后,每次瀏覽 web 的時候一拿鼠標,我都覺得怎么這么煩!又要碰鼠標。還有最毒的一個地方:H J K L

vim 徹底地把這四個鍵妖魔化了,以前不熟練的時候,我覺得明明上下左右四個箭頭更快啊。后來熟練 H J K L了之后,有時候不得不按上下左右鍵的時候,我會覺得好煩啊!我的手腕又要動了!又浪費了我 0.5 秒!我現在感覺,如果我的手指需要離開字母按鍵區域就是在浪費力氣! 我很想把Backspace 鍵給它扣掉!

最神奇的一個按鍵:ESC

這個鍵離得最遠,但是我竟然對它一點都不排斥,反而覺得這個距離竟然剛剛好!每天不按它上萬遍就渾身難受,這是怎么回事!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM