Linux 下源码编译安装 vim 8.1
前言
目前 linux 的各個發(fā)行版基本上都是帶了一個 vi 編輯器的,而本文要說的 vim 編輯器對 vi 做了一些優(yōu)化升級,更好用。當(dāng)我們需要遠(yuǎn)程操作一臺 linux 服務(wù)器的時候,只能使用命令行,這意味著如果你需要編輯文本,就只能用命令行編輯器。流行的編輯器有 vim 、emacs、nano,其中最簡單易用的是 nano ,vim 次之,最困難的是 emacs。如果說誰最好用,那沒有的,編輯器沒有好不好用的說法,只有使用者是否習(xí)慣它的思維,編輯器是真的有它自己的想法的,你得順著它的思路走。
背景
那為什么非得從源碼編譯安裝 vim 呢?原因是 vim 可以支持很多特性,可以自由開啟和關(guān)閉,但這只能是從源碼編譯安裝才可以做到。而操作系統(tǒng)自帶的 vim 往往只開啟了很少的特性,無法滿足我們?nèi)粘W兂傻男枨?#xff0c;比如我需要它開啟支持 python 3 的特性,那我只能先卸載操作系統(tǒng)自帶的 vim ,然后自己編譯安裝。
下面展示一些示例,給大家看一下。
首先是我的服務(wù)器上的自帶 vim :
其次是我自己的日常 vim
任務(wù)
完美地從源碼編譯安裝 vim 8.1
安裝
聲明:本文所述的安裝方法參考自 Google 開源項目 YouCopleteMe,在它的 wiki 頁可以找到。地址:
https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
本文所述的安裝方法已經(jīng)可滿足絕大多數(shù)的日常 vim 使用需求了
環(huán)境:
- 操作系統(tǒng):archlinux
- shell:zsh
- 適用于 archlinux、debian/ubuntu、centos/fedora (注意:都是最新或者接近最新的版本,不討論遠(yuǎn)古系統(tǒng))
- mac 用戶推薦使用 homebrew
第一步:徹底卸載操作系統(tǒng)自帶的 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
其他發(fā)行版用戶,可自行搜索卸載命令
執(zhí)行完卸載命令之后,強(qiáng)烈建議全局查找包含 vim 字樣的文件和文件夾,手動刪除,以免有漏網(wǎng)之魚。如果卸載不干凈,之后編譯安裝完了之后,很可能某種特性開啟失敗,導(dǎo)致又要重裝,在任意文件夾下執(zhí)行:
sudo find / -name "*vim*" > ~/find_vim_result
查找的結(jié)果都會在 ~/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
如果大量操作系統(tǒng)文件被誤刪,很有可能你需要重裝系統(tǒng),千萬注意。
第二步:克隆 vim 源代碼
在任意文件夾下執(zhí)行
git clone https://github.com/vim/vim.git
進(jìn)入 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 這個目錄換成你自己的,就是你的操作系統(tǒng)自帶的 python3 的 config 目錄,/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu 這個是我的目錄,跟你的可能不一樣,請自行查找
強(qiáng)烈建議你把這一條命令先復(fù)制到某個編輯器中,然后修改完路徑之后,再粘貼到終端里面去執(zhí)行
在這個命令中,我們開啟的主要是 ruby、python3、perl、lua,我建議你只開啟 python3,如果你覺得有必要,那就只開啟 python2,如果同時開啟 python3 和 python2 會產(chǎn)生很多沖突,這個配置可以滿足絕大多數(shù)的 python、go 的開發(fā)任務(wù)了。
第五步:make
make VIMRUNTIMEDIR=/usr/local/share/vim/vim81
第六步:安裝到系統(tǒng)中
sudo make install
第六步:查看特性是否已經(jīng)開啟
vim --version
第七步:額外說明
建議使用 terminal 版本的 vim ,不建議使用 gvim、macvim 之類的 gui
我日常使用的 vim 都是按照這個流程來走的,滿足了絕大多數(shù)的開發(fā)需求,外加裝了很多插件和自己寫的插件,開發(fā) python、go 足夠了,并且還可以完美的書寫 markdown ,勝任了一切編輯工作。但是如果要開發(fā) .net 還是建議使用宇宙第一 IDE visual studio 或者編輯器 visual studio code
vim 其實真不是個好東西,你會發(fā)現(xiàn)自己越來越懶,懶到什么程度呢?
以前在 windows 下做開發(fā),用 visual studio ,好多快捷鍵再配合鼠標(biāo)好方便。自從熟練使用 vim 之后,每次瀏覽 web 的時候一拿鼠標(biāo),我都覺得怎么這么煩!又要碰鼠標(biāo)。還有最毒的一個地方:H J K L
vim 徹底地把這四個鍵妖魔化了,以前不熟練的時候,我覺得明明上下左右四個箭頭更快啊。后來熟練 H J K L了之后,有時候不得不按上下左右鍵的時候,我會覺得好煩啊!我的手腕又要動了!又浪費(fèi)了我 0.5 秒!我現(xiàn)在感覺,如果我的手指需要離開字母按鍵區(qū)域就是在浪費(fèi)力氣! 我很想把Backspace 鍵給它扣掉!
最神奇的一個按鍵:ESC
這個鍵離得最遠(yuǎn),但是我竟然對它一點(diǎn)都不排斥,反而覺得這個距離竟然剛剛好!每天不按它上萬遍就渾身難受,這是怎么回事!
我的公眾號
名字:曼妮小代碼
微信號:MannyCoder
二維碼:
轉(zhuǎn)載于:https://www.cnblogs.com/JoiT/p/build_from_source_for_linux_vim.html
總結(jié)
以上是生活随笔為你收集整理的Linux 下源码编译安装 vim 8.1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv 设置视频帧的分辨率“无效”
- 下一篇: linux查看系统的日志的一些实用操作