因為 CentOS7 在默認情況下,通過 yum 安裝的 vim-X11.x86_64 版本為 7.x 版本,對 Youcompleteme 支持不好。故需要升級到 8.x 版本。
以下記錄 gvim 源碼安裝過程:
0. 卸載原始的安裝包 vim-X11
$ sudo yum remove vim-X11.x86_64
1. 安裝必要的軟件包 (主要是為了支持 X,首先可用 $ rpm -qa xxx 查看是否這些包已經安裝)
$ sudo yum install ncurses-devel.x86_64 $ sudo yum install libXt-devel.x86_64 $ sudo yum install gtk2-devel.x86_64
2. clone 源碼包
$ git clone https://github.com/vim/vim.git
3. 進入源碼目錄進行編譯前配置 (可用 $ ./configure --help 查看可用的編譯選項)
$ ./configure --prefix=/usr/local --enable-pythoninterp=yes --enable-gui=auto --enable-cscope --enable-multibyte --enable-xim --enable-fontset --with-features=huge --with-x
4. 編譯
$ make
5. 安裝
$ sudo make install
6. 問題
github 最新的 vim8.1 可能出現在 GUI 情況下 Ctrl + F 不能正確翻頁的問題,Linux 下解決方法如下,
打開文件: /usr/local/share/vim/vim81/mswin.vim
把如下的黃色部分注釋掉即可,
if has("gui") "" CTRL-F is the search dialog "noremap <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/" "inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/" "cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/" " CTRL-H is the replace dialog, " but in console, it might be backspace, so don't map it there nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>" inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>" cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>" endif
完。