详解vim插件安装及配置
2018-03-15 19:53
99 查看
前言
vim插件依赖项安装:
dnf install python-future
dnf install python-devel
dnf install ncurses
dnf install cmake
dnf install ctags
dnf install cscope
更新vi:dnf update vi
安装vim:dnf install vim
安装g++:dnf install gcc-c++
一、安装插件管理器vundle
1、git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
2、拷贝.vimrc为~/.vimrc,这个文件里指定了vundle路径及vundle要安装哪些插件,拷贝好以后使用vim时会报一些错误,原因是插件还没有安装好,可以先忽略错误提示。
二、安装插件
0、打开~/.vimrc文件,在call vundle#begin()和call vundle#end()之间进行添加和删除要安装的插件
1、打开一个vim, 命令模式运行 :BundleInstall
2、打开一个vim,执行其他命令的作用如下:
更新插件:BundleUpdate
清除不再使用的插件:BundleClean(就是删除Vundle目录中的插件,但是.vimrc中没有添加配置的插件)
列出所有插件:BundleList
查找插件:BundleSearch
三、安装YCM失败的解决方案
1、进入到YouCompleteMe目录,在terminal窗口敲入git submodule update –init –recursive
2、执行./install.sh –clang-completer
如果下载太慢,则可在其他地方下载然后放到/root/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/../clang_archives/clang+llvm-5.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz后在执行该命令。
3、报libtinfo.so.5找不到
ln /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
四、配置及使用插件请看.vimrc
vim插件依赖项安装:
dnf install python-future
dnf install python-devel
dnf install ncurses
dnf install cmake
dnf install ctags
dnf install cscope
更新vi:dnf update vi
安装vim:dnf install vim
安装g++:dnf install gcc-c++
一、安装插件管理器vundle
1、git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
2、拷贝.vimrc为~/.vimrc,这个文件里指定了vundle路径及vundle要安装哪些插件,拷贝好以后使用vim时会报一些错误,原因是插件还没有安装好,可以先忽略错误提示。
二、安装插件
0、打开~/.vimrc文件,在call vundle#begin()和call vundle#end()之间进行添加和删除要安装的插件
1、打开一个vim, 命令模式运行 :BundleInstall
2、打开一个vim,执行其他命令的作用如下:
更新插件:BundleUpdate
清除不再使用的插件:BundleClean(就是删除Vundle目录中的插件,但是.vimrc中没有添加配置的插件)
列出所有插件:BundleList
查找插件:BundleSearch
三、安装YCM失败的解决方案
1、进入到YouCompleteMe目录,在terminal窗口敲入git submodule update –init –recursive
2、执行./install.sh –clang-completer
如果下载太慢,则可在其他地方下载然后放到/root/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/../clang_archives/clang+llvm-5.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz后在执行该命令。
3、报libtinfo.so.5找不到
ln /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
四、配置及使用插件请看.vimrc
" 1、基本设置 " vim比vi支持更多的功能,如showcmd,避免冲突和副作用,最好关闭兼容 set nocompatible " 语法高亮 syntax on " 基于文件类型打开 filetype on " 打开基于文件类型的缩进 filetype indent on " 打开基于文件类型的插件 filetype plugin on " 不使用备份文件 set nobackup set nowritebackup set noswapfile " 显示行号 set number " 按一个tab之后,显示出来的相当于几个空格 set tabstop=4 " 每一级缩进的长度 set shiftwidth=4 set textwidth=80 " 缩进用空格来表示 set expandtab " 设置不折行 " set nowrap " 设置缩进 set autoindent set smartindent set cindent set colorcolumn=81 set hidden " 高亮搜索 set hlsearch " 开启实时搜索功能 set incsearch set ruler set showcmd set title " vim 自身命令行模式智能补全 set wildmenu set wildmode=list:longest,list:full set foldmethod=marker " 忽略大小写 set ignorecase set smartcase " complete opts set completeopt=menu,longest " ignore files inside vcs dirs set wildignore+=*/.git/*,*/.hg/*,*/.svn/* " ignore object code files set wildignore+=*.o,*.obj,*.a,*.so,*.d " 设置支持多语言,解决乱码 set fileencodings=ucs-bom,utf8,cp936,gbk,big5,euc-jp,euc-kr,gb18130,latin1 " Mouse Support if has('mouse') set mouse=a endif " Fonts set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ 11 set guifontwide=WenQuanYi\ Micro\ Hei\ Mono " .bashrc里加上 stty -ixon ,取消C-s和C-q在终端的作用 " map:全模式映射 " nmap:normal模式映射 " vmap:visual模式映射 " imap:insert模式映射 " <leader>:\ " <CR>:回车 " <C>:Ctrl " <C-s>:Ctrl+s " <tab>:Tab " <S>:Shift " <F5>:F5 " <Esc>:Esc " <M>或<A>:Alt,好像不起作用,待解决 " <k0> - <k9>:小键盘数字0-9 " <silent>:不提示执行的命令内容 " 退出 " nnoremap <C-w> :q<CR> " 保存 " nnoremap <C-s> :w<CR> " 全选 " nnoremap <C-a> ggVG " 2、插件安装设置 " Vundle " Install Vundle: " git clone git://github.com/gmarik/vundle.git ~/.vim/bundle/vundle " " Usage: " :BundleList - list configured bundles " :BundleInstall - install(update) bundles " :BundleSearch - search for plugins " :BundleClean - confirm removal of bundles " " see :h vundle for more details or wiki for FAQ set nocompatible " 这是必需的 filetype off " 这是必需的 " 设置运行时路径 set rtp+=~/.vim/bundle/vundle " 插件放到begin与end之间 call vundle#begin() " 从Github进行安装 " 插件管理器vundle Plugin 'gmarik/vundle' " 文件树 Plugin 'scrooloose/nerdtree' " 符号窗口 Plugin 'majutsushi/tagbar' " 状态栏 Plugin 'vim-airline/vim-airline' Plugin 'vim-airline/vim-airline-themes' " 多文件浏览编辑 Plugin 'fholgado/minibufexpl.vim' " 语法分析 Plugin 'scrooloose/syntastic' " 注释插件 Plugin 'scrooloose/nerdcommenter' " 配色插件 Plugin 'tomasr/molokai' " 模糊搜索 Plugin 'ctrlpvim/ctrlp.vim' " 自动补全 Plugin 'Valloric/YouCompleteMe' Plugin 'ervandew/supertab' " 括号匹配 Plugin 'jiangmiao/auto-pairs' " 高亮及高亮搜索 Plugin 'mbriggs/mark.vim' " 从http://vim-scripts.org/vim/scripts.html进行安装 " 调用shell命令插件 Plugin 'Clam' " 回退插件 Plugin 'Gundo' " 高亮 Plugin 'TagHighlight' " 4000 从另一个git软件库进行安装 " Plugin 'git://git.wincent.com/command-t.git' " 从本地文件进行安装 " Plugin 'file:///home/gmarik/path/to/plugin' " 定制其他参数,比如插件的运行时路径,如果你在自行编写插件,或者就想从不是~/.vim的另一个目录来装入它 " Plugin 'rstacruz/sparkup', {'rtp': 'another_vim_path/'} " 如果你有同样名称的插件,可以更名插件,那样它就不会冲突 " Plugin 'user/plugin', {'name': 'newPlugin'} call vundle#end() " 基于文件类型打开 filetype on " 打开基于文件类型的缩进 filetype indent on " 打开基于文件类型的插件 filetype plugin on " 3、插件配置设置 " Cscope and ctags " 源码根目录执行命令生成数据库: " cd /root/work/kbengine-1.1.5; " 使用find命令时-type f 指定查找普通文件,否则如果将链接符号文件也查找出来的话,cscope -bkq 将会提示找不到链接符号文件。 " find `pwd` -type f -name "*.h" -o -type f -name "*.c" -o -type f -name "*.cpp" > cscope.files; " cscope -bkq -i cscope.files; " ctags -R nmap <S-s> :Clam cd /root/work/kbengine-1.1.5;find `pwd` -type f -name "*.h" -o -type f -name "*.c" -o -type f -name "*.cpp" > cscope.files;cscope -bkq -i cscope.files;ctags -R<CR> " 去掉重复加载数据库警告 set nocscopeverbose " 加载数据库 if has("cscope") if filereadable("cscope.out") cs add cscope.out endif endif " 使用cscope " cs find s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方 " g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能 " d: 查找本函数调用的函数 " c: 查找调用本函数的函数 " t: 查找指定的字符串 " e: 查找egrep模式,相当于egrep功能,但查找速度快多了 " f: 查找并打开文件,类似vim的find功能 " i: 查找包含本文件的文 nmap <leader>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <leader>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <leader>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <leader>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <leader>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <leader>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <leader>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <leader>d :cs find d <C-R>=expand("<cword>")<CR><CR> " 将搜索结果输出到quickfix窗口 set cscopequickfix=s-,c-,d-,i-,t-,e- " 打开quickfix窗口 nmap <F2> :copen<CR> " 跳转到上/下一个搜索结果 nnoremap <F3> :cp<CR> nnoremap <F4> :cn<CR> " NERDTree nnoremap <leader>nt :NERDTreeToggle<CR> let NERDTreeWinPos=1 " Tagbar nnoremap <leader>tb :TagbarToggle<CR> let g:tagbar_left = 1 let g:tagbar_width = 25 let g:tagbar_autoclose = 0 let g:tagbar_autofocus = 1 let g:tagbar_autoshowtag = 1 " let tags sorted according to their order int source files let g:tagbar_sort = 0 let g:tagbar_ctags_bin = '/usr/bin/ctags' " let Tagbar start with vim autocmd VimEnter * nested :TagbarOpen " Vim-airline let g:airline_theme = 'dark' let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#buffer_nr_show = 1 " Make airlines appear all the time set laststatus=2 " MiniBufExplorer " <C-Tab> 向前循环切换到每个buffer上,并在但前窗口打开 " <C-S-Tab> 向后循环切换到每个buffer上,并在但前窗口打开 let g:miniBufExplMapCTabSwitchBufs = 1 " <C-h,j,k,l>切换到上下左右的窗口中去 let g:miniBufExplMapWindowNavVim = 1 map <leader><Tab> :bn<CR> map <leader><leader><Tab> :bp<CR> " Color Schemes " .bashrc里要加export TERM=xterm-256color if has("gui_running") " set background=dark colorscheme molokai set guioptions-=T " set guioptions-=m " set guioptions-=r " set guioptions-=L else set t_Co=256 set background=dark colorscheme molokai endif " CtrlP let g:ctrlp_map = '<leader>ff' let g:ctrlp_cmd = 'CtrlP' map <leader>p :CtrlPMRU<CR> let g:ctrlp_custom_ignore = { \ 'dir': '\v[\/]\.(git|hg|svn|rvm)$', \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz|pyc)$', \ } " enable cache for ctrlp let g:ctrlp_clear_cache_on_exit = 0 let g:ctrlp_cache_dir = $HOME.'/.cache/ctrlp' " only search the filename and use regex " let g:ctrlp_by_filename = 1 " let g:ctrlp_regexp = 1 " cancel the limit to max files number let g:ctrlp_max_files = 0 let g:ctrlp_match_window = 'bottom,order:btt,min:1,max:20,results:20' " YouCompleteMe let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' " 自动补全配置 set completeopt=longest,menu " 让Vim的补全菜单行为与一般IDE一致(参考VimTip1228) autocmd InsertLeave * if pumvisible() == 0|pclose|endif " 离开插入模式后自动关闭预览窗口 inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" " 回车即选中当前项 let g:ycm_confirm_extra_conf=0 " 关闭加载.ycm_extra_conf.py提示 let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎 let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项 let g:ycm_cache_omnifunc=0 " 禁止缓存匹配项,每次都重新生成匹配项 let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全 nnoremap <F5> :YcmForceCompileAndDiagnostics<CR> " force recomile with syntastic 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 nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> let g:ycm_key_invoke_completion = '<S-a>' " SuperTab let g:SuperTabRetainCompletionType=1 " mark.vim " <leader>m 高亮或反高亮一个单词 " <leader>n 清除当前的单词高亮(光标处)若光标处无高亮的单词就清除所有的单词高亮显示 " <leader>r 按照输入的正则表达式高亮单词 " <leader>* 跳转到当前高亮的下一个单词 " <leader># 跳转到当前高亮的上一个单词 " <leader>/ 跳转到任一下一个高亮单词 " <leader>? 跳转到任一上一高亮单词 map <F8> <leader>m map <F6> <leader># map <F7> <leader>* " Clam " :Clam<Space>后即可输入shell命令执行 " 执行命令后会有一个新的窗口显示该命令的打印 nnoremap <S-c> :Clam<Space> " Gundo nnoremap <leader>u :GundoToggle<CR> let g:gundo_right = 1 " TagHighlight nnoremap <S-u> :UpdateTypesFile<CR>
相关文章推荐
- Mac/Centos下Vim配置及常用插件安装
- vim配置及插件安装管理(超级详细)
- Vim编辑器插件安装及配置入门
- vim 配置及插件安装管理(超级详细)
- Vim 自动补全插件 YouCompleteMe 安装与配置
- vim配置安装插件错误
- Vim自动补全插件----YouCompleteMe安装与配置
- vim的高级配置与插件安装
- 虚拟机中Ubuntu下安装vim及配置文件和插件之菜鸟初体验
- Eclipse SVN插件Subclipse的安装和配置详解
- Vim 插件的安装与配置
- vim配置和插件安装
- vim配置及插件安装管理(超级详细)
- VIM插件安装和配置
- 【转】Vim自动补全插件----YouCompleteMe安装与配置
- vim插件的安装和配置
- vim配置及插件安装管理(超级详细)
- Vim自动补全插件----YouCompleteMe安装与配置
- vim配置及插件安装管理(超级详细)
- CENTOS6.5中VIM插件配置,重点记录YouCompleteMe的安装 2015-7