• 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
      至此教程全部结束

      

     

  • 相关阅读:
    MVC3基础嵌套总结
    List之Union(),Intersect(),Except() 亦可以说是数学中的并集,交集,差集
    sqlserver查询记录数某个区间内记录
    各语言的unix时间戳 【转】
    SQLserver删除某数据库中所有表
    C#日期格式转换大全
    【转】Linq之动态排序(字符传入)
    谈谈Equals和GetHashcode
    JS常用代码收集
    ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(N)
  • 原文地址:https://www.cnblogs.com/mrway/p/9383835.html
Copyright © 2020-2023  润新知