Ubuntu 18.04 下编译安装 vim 8.1

版权声明:转载请注明作者及出处. https://blog.csdn.net/Asdfffy/article/details/81417432

1. 删除系统自带 Vim


  把查询到有关 vim 的都卸载了,实际查询结果可能有些小出入,记不太清了。。。

dpkg -l | grep vim
sudo apt-get remove vim vim-runtime vim-tiny vim-common 

 

2. 安装 Vim 8.1


  从 github 下载源码

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

  安装依赖库  

sudo apt-get install libncurses5-dev python-dev python3-dev libgtk3.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev

  编译&&安装

sudo ./configure --with-features=huge --enable-multibyte --enable-rubyinterp --enable-pythoninterp --enable-python3interp --enable-luainterp --enable-cscope --enable-gui=gtk3 --enable-perlinterp --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ --with-python3-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ --prefix=/usr/local/vim
sudo make
sudo make install

  编译时相关参数说明 :

--with-features=huge:支持最大特性
--enable-rubyinterp:打开对 ruby 编写的插件的支持
--enable-pythoninterp:打开对 python 编写的插件的支持
--enable-python3interp:打开对 python3 编写的插件的支持
--enable-luainterp:打开对 lua 编写的插件的支持
--enable-perlinterp:打开对 perl 编写的插件的支持
--enable-multibyte:打开多字节支持,可以在 Vim 中输入中文
--enable-cscope:打开对cscope的支持
--enable-gui=gtk3 表示生成采用 GNOME3 风格的 gvim
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ 指定 python 路径
--with-python3-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ 指定 python3路径
--prefix=/usr/local/vim:指定将要安装到的路径

  需要 vim 支持 ruby perl 等语言似乎还要指定相关语言的路径,我在安装了 ruby-dev 后在 vim --version 中发现并不支持 ruby

 

3. 安装相关插件


  安装 vim 的插件管理器 vundle:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

  编辑 ~/.vimrc 文件 添加:

" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'derekwyatt/vim-fswitch'
Plugin 'kshenoy/vim-signature'
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/DfrankUtil'
Plugin 'vim-scripts/vimprj'
Plugin 'dyng/ctrlsf.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'scrooloose/nerdcommenter'
Plugin 'vim-scripts/DrawIt'
Plugin 'SirVer/ultisnips'
Plugin 'Valloric/YouCompleteMe'
Plugin 'derekwyatt/vim-protodef'
Plugin 'scrooloose/nerdtree'
Plugin 'fholgado/minibufexpl.vim'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'suan/vim-instant-markdown'
Plugin 'lilydjwg/fcitx.vim'
Plugin 'iCyMind/NeoSolarized'
" 插件列表结束
call vundle#end()
filetype plugin indent on

  安装插件:

  进入 vim 输入

:PluginInstall

4.配置&&界面美化


  此时的 vim 似乎并不怎么好看,需要进行一些简单的配置:

  编辑 ~/.vimrc :

"开启真彩色支持
set termguicolors
"开启256色支持
set t_Co=256

" 定义快捷键前缀 <Leader>
let mapleader=";"

" 开启文件类型侦测
filetype on
" 根据不同文件类型加载不同插件
filetype plugin on

" 定义快捷键到行首和行尾
nmap LB 0
nmap LE $
" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <Leader>y "+y
" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <Leader>p "+p
" 定义快捷键关闭当前分割窗口
nmap <Leader>q :q<CR>
" 定义快捷键保存当前窗口内容
nmap <Leader>w :w<CR>
" 定义快捷键保存所有窗口内容并退出 vim
nmap <Leader>WQ :wa<CR>:q<CR>
" 不做任何保存,直接退出 vim
nmap <Leader>Q :qa!<CR>
" 依次遍历子窗口
nnoremap nw <C-W><C-W>
" 跳转至右方的窗口
nnoremap <Leader>lw <C-W>l
" 跳转至左方的窗口
nnoremap <Leader>hw <C-W>h
" 跳转至上方的子窗口
nnoremap <Leader>kw <C-W>k
" 跳转至下方的子窗口
nnoremap <Leader>jw <C-W>j
" 定义快捷键在结对符之间跳转
nmap <Leader>M %

" 开启实时搜索功能
set incsearch
" 搜索时大小写不敏感
set ignorecase
" 关闭兼容模式
set nocompatible
" vim 自身命令行模式智能补全
set wildmenu

" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'derekwyatt/vim-fswitch'
Plugin 'kshenoy/vim-signature'
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
Plugin 'majutsushi/tagbar'
Plugin 'vim-scripts/indexer.tar.gz'
Plugin 'vim-scripts/DfrankUtil'
Plugin 'vim-scripts/vimprj'
Plugin 'dyng/ctrlsf.vim'
Plugin 'terryma/vim-multiple-cursors'
Plugin 'scrooloose/nerdcommenter'
Plugin 'vim-scripts/DrawIt'
Plugin 'SirVer/ultisnips'
Plugin 'Valloric/YouCompleteMe'
Plugin 'derekwyatt/vim-protodef'
Plugin 'scrooloose/nerdtree'
Plugin 'fholgado/minibufexpl.vim'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'suan/vim-instant-markdown'
Plugin 'lilydjwg/fcitx.vim'
Plugin 'iCyMind/NeoSolarized'
" 插件列表结束
call vundle#end()
filetype plugin indent on

" 配色方案
set background=dark
colorscheme NeoSolarized

" 总是显示状态栏
set laststatus=2
" 显示光标当前位置
set ruler
" 开启行号显示
set number

" 使用 NERDTree 插件查看工程文件。设置快捷键,速记:file list
nmap <Leader>fl :NERDTreeToggle<CR>
" 设置NERDTree子窗口宽度
let NERDTreeWinSize=32
" 设置NERDTree子窗口位置
let NERDTreeWinPos="rigth"
" 显示隐藏文件
let NERDTreeShowHidden=1
" NERDTree 子窗口中不显示冗余帮助信息
let NERDTreeMinimalUI=1
" 删除文件时自动删除文件对应 buffer
let NERDTreeAutoDeleteBuffer=1

" 高亮显示当前行/列
set cursorline
"set cursorcolumn


" 高亮显示搜索结果
set hlsearch

" 设置 gvim 显示字体
set guifont=YaHei\ Consolas\ Hybrid\ 11.5

" 禁止折行
set nowrap

" 设置状态栏主题风格
let g:Powerline_colorscheme='solarized256'


" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on


" 自适应不同语言的智能缩进
filetype indent on
" 将制表符扩展为空格
set expandtab
" 设置编辑时制表符占用空格数
set tabstop=4
" 设置格式化时制表符占用空格数
set shiftwidth=4
" 让 vim 把连续数量的空格视为一个制表符
set softtabstop=4


" 随 vim 自启动
let g:indent_guides_enable_on_vim_startup=1
" 从第二层开始可视化显示缩进
let g:indent_guides_start_level=2
" 色块宽度
let g:indent_guides_guide_size=1
" 快捷键 i 开/关缩进可视化
:nmap <silent> <Leader>i <Plug>IndentGuidesToggle

  之后可以达到这样一个效果

  

强烈建议去看 所需即所获:像 IDE 一样使用 vim 以上配置基本全部来自这里,里面有非常详细的介绍和众多实用插件配置

5. 安装中遇到的问题


  可能是版本的原因,安装过程中遇到了一些小问题,这里总结一下:

  1. Vim 配色异常

  根据上节提供的教程安装完后 Vim 的配色是这样的。。。

      在网上查找了一下似乎是因为 vim 本身没有开启真彩色支持并且 solarized 的版本老旧,对真彩色支持不佳。在使用 “set termguicolors” 开启真彩色支持后,使用了一个经过修改的 solarized 版本 NeoSolarized (个人感觉 solarized 的配色还是很舒服的),如果要使用教程中提到的 “phd” 配色风格还需要在配置文件中添加 "set t_Co=256" 开启256色支持。

  2. 光标闪烁

       教程中采用 "set gcr=a:block-blinkon0"  似乎并没有效果。 网上搜索了一下使用这个命令解决了问题,但是缺点是命令是对 Linux 系统生效的,系统下很多地方的光标都不闪烁了(终端、和现在的编辑界面)没有强迫症的可以尝试使用。 

gsettings set org.gnome.desktop.interface cursor-blink false

 

  3. YCM 无法使用

        根据上述流程安装后 YCM 是无法正常使用的,打开 vim 时会在下方报错:

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). YCM core library not detected; you need to compile YCM before using it. Follow the instructions in the documentation

        解决方法是重新编译 YCM (可以不使用 clang 编译即到达目录下后直接执行 “./install.py”,但本人并未尝试):

cd ~/.vim/bundle/YouCompleteMe  
./install.py --clang-completer --system-libclang

 

  4. 编译安装 llvm+clang

        因为 “YCM 作者强烈建议下载 LLVM 官网的提供预编译二进制文件,以避免各种妖人问题。“ 所以我欣然了接受他的建议,下载安装 llvm 和 clang 。。。。。。

        除上节末尾教程提供的方法外还有一种方案(教程的解决方案比较靠后,当时并未看到。。。也没有尝试,如果有人尝试成功了欢迎在下方留言),具体参考 安装 LLVM 和 Clang,这里有两个选择:

        1)使用 subversion 下载(上述教程的方案): 本人开始使用的是这个方案但不知道是不是因为本人所在地区网络的原因,下载速度奇慢而且还有两个严重的问题...... 首先下载非常不稳定,经常会下着下着连接超时,需要你手动重新下载。这个其实还好最要命的是他的有些部分(libcxx 和 libcxxabi)会频繁拒绝你的请求,在我这里频繁到......根本下不来东西 = =||| 

         2)从 github 下载:中的所有代码在 Unofficial Automated Mirror of LLVM 中都可以找到下载对应部分即可,速度嘛...... 在我这里简直就是 2G 和 4G 的区别,真的......

我在安装完 llvm+clang 后重新编译 YCM 结果还是没法使用,根据提示查看日志:

2018-08-06 21:12:02,082 - ERROR - libclang.so.6: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/home/xzy/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/server_utils.py", line 96, in CompatibleWithCurrentCore
    ycm_core = ImportCore()
  File "/home/xzy/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/server_utils.py", line 88, in ImportCore
    import ycm_core as ycm_core
ImportError: libclang.so.6: cannot open shared object file: No such file or directory

似乎是丢失 libclang.so.6 的问题,结果查找了一下发现这个文件是存在的...... emmm

在经过一番折腾后找到了这个文件 

额...... 确实没有找到这个文件。但观察这些文件的路径发现,这些文件都是位于 /usr/lib 或 /lib 下的,而我的 libclang.so.6 在 /usr/local/lib 下。于是...... 在复制了该文件到上述一个目录下后问题得到了解决......

参考资料:

所需即所获:像 IDE 一样使用 vim  (必看 强烈推荐!!!)

Ubuntu 16.04 使用 vim_plug 安装插件 YouCompleteMe 报错“ycmd server SHUT DOWN”

Youcomplete完全安装

Vim 开启python/python3支持

猜你喜欢

转载自blog.csdn.net/Asdfffy/article/details/81417432