CentOS7 升级 gvim 到 8.x 版本

因为 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

完。

 

原文地址:https://www.cnblogs.com/gaowengang/p/10546815.html