centos/fedora编译安装vim8并支持python3和剪贴板

一 准备安装环境 (下面这些依赖是编译过程中所需要的,最好全都安装一下)

  sudo yum install epel-release
  sudo yum install -y python3-devel ncurses-devel libzip bzip2
  sudo yum install libXt-devel.x86_64
  sudo yum install llvm
  sudo yum install clang
  sudo yum install cmake

  安装好以上依赖后就可以准备安装vim8了

  cd /home

  wget ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2   (下载vim8源码)

  下载完成后就可以进入下一步解压

  tar -jxf vim-8.0.tar.bz2 (解压缩包)

  cd vim80 (进入上一步解压缩后产生的文件夹)

  make clean

  sudo ./configure --prefix=/opt/vim8 --enable-fail-if-missing --enable-python3interp --enable-multibyte --enable-fontset --enable-gnome-check --with-x --enable-gui=auto --with-features=huge | grep gui (注意我这里是安装到/opt/vim8目录,如果你想要安装到其他地方直接改为那个地址就行)

  make

  sudo make install (上一步编译成功后就可以安装vim8了)

  /opt/vim8/bin/vim --version  (查看已经安装好的vim8支持的功能+表示支持)

  sudo ln -s /opt/vim8/bin/vim /usr/bin/vim (给vim添加软连接以便可以在终端直接敲vim使用)

  sudo cp /opt/vim8/share/vim/vim80/vimrc_example.vim /opt/vim8/share/vim/vimrc  (安装完成之后就可以准备配置工作了)

  sudo mkdir /opt/vim8/share/vim/bundle(这一步是要安装bundle这个插件,使用bundle可以方便的为vim添加和删除插件)

  cd /opt/vim8/share/vim/bundle

  git clone https://github.com/VundleVim/Vundle.vim.git /opt/vim8/share/vim/bundle/Vundle.vim (从github上下载bundle)  

  sudo vim /opt/vim8/share/vim/vimrc (修改vim的配置文件以后要添加或者删除插件等也都在这里进行修改)

  粘贴以下内容,先把原来的内容删掉

  

     "去除VI一致性,必须
  set nocompatible
  "必须
  filetype off

  "设置Vundle的运行路径
  set rtp+=/opt/vim8/share/vim/bundle/Vundle.vim
  "设置插件的安装路径,vundle插件起始标志
  call vundle#begin('/opt/vim8/share/vim/bundle')

  "让vundle管理插件版本
  Plugin 'VundleVim/Vundle.vim'

  "你的所有插件需要在下面这行之前
  call vundle#end()
  "加载vim自带和插件相应的语法和文件类型相关脚本
  filetype plugin indent on

   粘贴以上内容后就可以退出然后在终端重新输入

  sudo vim

  进入vim后直接输入

  :PluginInstall

  就开始安装vundle插件,当提示安装完成即process变为done后在退出vim

  

  重新配置vimrc文件

  sudo vim /opt/vim8/share/vim/vimrc

  同样是把文件里的内容删除后,粘贴以下内容

 

  set nocompatible " required
  filetype off " required

 

  "设置Vundle的运行路径
  set rtp+=/opt/vim8/share/vim/bundle/Vundle.vim
  "设置插件的安装路径,vundle插件起始标志
  call vundle#begin('/opt/vim8/share/vim/bundle')
  "让vundle管理插件版本
  Plugin 'VundleVim/Vundle.vim'
  "添加nerdtree插件
  Plugin 'scrooloose/nerdtree'
  "使用tab键切换窗口与目录树
  Plugin 'jistr/vim-nerdtree-tabs'
  "python语法检测
  Plugin 'scrooloose/syntastic'
  "添加PEP8代码风格检查
  Plugin 'nvie/vim-flake8'
  "配色方案
  Plugin 'jnurmine/Zenburn'
  Plugin 'altercation/vim-colors-solarized'
  "代码折叠插件
  Plugin 'tmhedberg/SimpylFold'
  "自动缩进
  Plugin 'vim-scripts/indentpython.vim'
  "在vim的normal模式下搜索文件
  Plugin 'kien/ctrlp.vim'
  "Powerline状态栏
  Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
  "添加jedi-vim代码补全插件
  "Plugin 'davidhalter/jedi-vim'
  Plugin 'Valloric/YouCompleteMe'
  "你的所有插件需要在下面这行之前
  call vundle#end()

 

  "设置分割窗口
  set splitbelow
  set splitright
  "设置窗口移动快捷键
  nnoremap <C-J> <C-W><C-J>
  nnoremap <C-K> <C-W><C-K>
  nnoremap <C-L> <C-W><C-L>
  nnoremap <C-H> <C-W><C-H>

 

  "设置按F2启动NerdTree
  map <F2> :NERDTreeToggle<CR>

 

  "youcompleteme 默认tab s-tab 和自动补全冲突
  ""let g:ycm_key_list_select_completion=['<c-n>']
  let g:ycm_key_list_select_completion = ['<Down>']
  "let g:ycm_key_list_previous_completion=['<c-p>']
  let g:ycm_key_list_previous_completion = ['<Up>']
  "关闭加载.ycm_extra_conf.py提示
  let g:ycm_confirm_extra_conf=0
  " 开启 YCM 基于标签引擎
  let g:ycm_collect_identifiers_from_tags_files=1
  " 从第2个键入字符就开始罗列匹配项
  let g:ycm_min_num_of_chars_for_completion=2
  " 禁止缓存匹配项,每次都重新生成匹配项
  let g:ycm_cache_omnifunc=0
  " 语法关键字补全
  let g:ycm_seed_identifiers_with_syntax=1
  "force recomile with syntastic
  nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
  "nnoremap <leader>lo :lopen<CR> "open locationlist
  "nnoremap <leader>lc :lclose<CR> "close locationlist
  inoremap <leader><leader> <C-x><C-o>
  "在注释输入中也能补全
  let g:ycm_complete_in_comments = 1
  "在字符串输入中也能补全
  let g:ycm_complete_in_strings = 1
  "注释和字符串中的文字也会被收入补全
  let g:ycm_collect_identifiers_from_comments_and_strings = 0

 

  "隐藏目录树种的.pyc文件
  let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree

 

  "设置主题颜色,以及设置快捷键F5
  if has('gui_running')
  set background=dark
  colorscheme solarized
  else
  colorscheme zenburn
  endif
  call togglebg#map("<F5>")

 

  "开启代码折叠
  set foldmethod=indent
  set foldlevel=99
  "设置快捷键为空格
  noremap <space> za
  "显示折叠代码的文档字符串
  let g:SimpylFold_docstring_preview=1

 

  "python代码缩进PEP8风格
  au BufNewFile,BufRead *.py,*.pyw set tabstop=4
  au BufNewFile,BufRead *.py,*.pyw set softtabstop=4
  au BufNewFile,BufRead *.py,*.pyw set shiftwidth=4
  au BufNewFile,BufRead *.py,*.pyw set textwidth=79
  au BufNewFile,BufRead *.py,*.pyw set expandtab
  au BufNewFile,BufRead *.py,*.pyw set autoindent
  au BufNewFile,BufRead *.py,*.pyw set fileformat=unix

 

  "对其他文件类型设置au命令
  au BufNewFile,BufRead *.js, *.html, *.css set tabstop=2
  au BufNewFile,BufRead *.js, *.html, *.css set softtabstop=2
  au BufNewFile,BufRead *.js, *.html, *.css set shiftwidth=2

 

  "高亮显示行伟不必要的空白字符
  highlight Whitespace ctermbg=red guibg=red
  au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match Whitespace /\s\+$\ \+/

 

  "设置行号显示
  set nu

 

  "设置utf-8编码
  set encoding=utf-8

 

  let python_highlight_all=1
  syntax on

 

  filetype plugin indent on

 

  将以上内容粘贴到vimrc中 后

  sudo vim

  进入vim后再次输入

  :PluginInstall 

  回车后即可看见有一列的插件需要安装,这里安装时间较长可能在30分钟以上或者更久

  

   其中需要注意的是最后一个插件youcompleteme安装时间很长,并且在安装好后还需要进行配置
  cd /opt/vim8/share/vim/bundle/YouCompleteMe/
  sudo python3 install.py --clang-completer
  至此教程全部结束

  

 

posted @ 2018-07-30 18:09  夜消沉  阅读(343)  评论(0编辑  收藏  举报