以前安裝YouCompleteMe的時候遇到vim版本不兼容的問題,看網上說是須要將vim版本提高到8.0及以上,而後就開始安裝最新版本的vim,安裝過程當中的遇到了很多問題主要集中在配置方面和缺乏插件,在這裏把最終的安裝方法貼出來,但願能幫到須要的朋友,也是考慮到本身之後可能還要用到。python
爲了使vim支持ruby、lua、perl、python二、python3編寫的插件,在正式編譯安裝vim以前須要在系統中安裝好相關插件,不然編譯vim會出錯。git
sudo yum install ruby ruby-devel lua lua-devel luajit \ luajit-devel ctags git python python-devel \ python36 python36-devel tcl-devel \ perl perl-devel perl-Extutils-ParseXS \ perl-ExtUtils-XSpp perl-ExtUtils-CBuilder \ perl-ExtUtils-Embed libX* ncurses-devel gtk2-devel
若是系統中有可用的python2.7或者python3.6則將上面安裝項中的python和python36去除。github
卸載已有的vimshell
yum -y remove vim
下載vim的項目源碼vim
git clone https://github.com/vim/vim.git
下載好後進入到vim目錄下進行配置、編譯、安裝ruby
配置bash
./configure --with-features=huge \ --enable-gui=gtk2 \ --with-x \ --enable-fontset \ --enable-cscope \ --enable-multibyte \ --enable-pythoninterp \ --with-python-config-dir=/usr/lib64/python2.7/config \ --enable-python3interp \ --with-python3-config-dir=/usr/lib64/python3.6/config \ --enable-luainterp \ --enable-rubyinterp \ --enable-perlinterp \ --enable-multibyte \ --prefix=/usr/local/vim \ --with-compiledby="brooksj"
參數說明以下:python2.7
–with-features=huge:支持最大特性工具
–enable-rubyinterp:啓用Vim對ruby編寫的插件的支持字體
–enable-pythoninterp:啓用Vim對python編寫的插件的支持
-enable-python3interp:啓用對python3編寫的插件的支持
–enable-luainterp:啓用Vim對lua編寫的插件的支持
–enable-perlinterp:啓用Vim對perl編寫的插件的支持
–enable-multibyte:多字節支持 能夠在Vim中輸入中文
--enable-fontset:支持字體設置
–enable-cscope:Vim對cscope支持 ,cscope是一款優秀的代碼瀏覽工具
–enable-gui=gtk2:gtk2支持,也可使用gnome,表示生成gvim
-–with-python-config-dir 指定 python配置 路徑
--with-python3-config-dir 指定python3配置路徑
–-prefix:編譯安裝路徑
--with-compiledby:編譯者
配置很關鍵,這直接關係到你之後vim的功能使用,這裏建議最好按照上面我所給出的的配置方案來配置,以避免後續出現問題。
編譯
make
若是編譯錯誤則多是缺乏相關插件,回過頭去查看上面那些插件是否都已安裝上。
安裝
make install
設置系統環境變量,把vim的bin目錄添加到path中,在/etc/bashrc末尾添加
# 注意/usr/local換成你的vim安裝路徑 export PATH=/usr/local/vim/bin:$PATH
source /etc/bashrc或者從新打開一個終端就可使用vim和gvim來打開文件了。下圖是我安裝好以後執行vim --version的輸出截圖
<div align="center"> <img src="https://raw.githubusercontent.com/tracy-talent/Notes/master/imgs/vim_version.png"> </div>