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