vim的ycm快速配置
今天又再一次重装了linux, 这次依旧装的是debian
系统. 这里关于debian, Ubuntu的版本谈谈我快速装ycm这个插件的过程
安装vim
和python
sudo apt-get install update #更新软件源
sudo apt-get install clang #安装clang
sudo apt-get install cmake #安装cmake
sudo apt-get install vim #安装vim
sudo apt-get install python python-dev #安装Python相关
可能安装会等待一段时间, 接下来就安装YouCompleteMe
插件
sudo apt-get install vim-addon-manager #vim的插件管理器
sudo apt-get install vim-youcompleteme #安装YCM
vim-addons install youcompleteme #将YCM加入addons管理器中
在unbutu
这类的发行版中, 可以直接在安装原进行直接的安装ycm, 特别的方便, 关于centos
系统的, 在这里的就不谈了, 以前在centos装的时候, 实在太痛苦了, 也就没有花时间整理, 就算了。
接下来为了下载我们在.vimrc
中设置好的插件, 我们需要先下载Vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
我将我的vimrc
配置放在文章的最后了. 下载结束后, 我们就可以安装我们在.vimrc
设置的插件.
root@0505:~# vim
然后输入
:PluginInstall
等待下载就完成了.
当遇到图中的红色部分时, 你会发现根本就卡在那里了, 这时, 直接输入多个空格, 之后他会跳过这个插件, 执行下面的, 这一个红色的插件就不用管了.
我的vimrc
配置. 当然, 这个也是我以前在别人的github上找到了, 同时修改了部分插件以及功能.
F2 : 删除空行
F3 : 可以直接出现目录树, 很方便
F5 : 代码运行
F8 : 调试
" Vundle Setting
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"# Plugin 'git://github.com/scrooloose/nerdtree.git'
"# Plugin 'git://github.com/kien/ctrlp.vim.git'
Plugin 'scrooloose/nerdtree'
" Let Vundle manage itself
Plugin 'gmarik/Vundle.vim'
" Plugins
" Plugin 'Valloric/YouCompleteMe'
Plugin 'scrooloose/syntastic'
Plugin 'bling/vim-airline'
Plugin 'SirVer/ultisnips'
Plugin 'edsono/vim-matchit'
Plugin 'elzr/vim-json'
Plugin 'honza/vim-snippets'
Plugin 'justinmk/vim-sneak'
Plugin 'kien/ctrlp.vim'
Plugin 'ludovicchabant/vim-lawrencium'
Plugin 'majutsushi/tagbar'
Plugin 'mhinz/vim-signify'
Plugin 'plasticboy/vim-markdown'
Plugin 'scrooloose/nerdcommenter'
Plugin 'sjl/gundo.vim'
Plugin 'tpope/vim-sleuth'
Plugin 'tpope/vim-surround'
Plugin 'tpope/vim-fugitive'
Plugin 'tyru/open-browser.vim'
Plugin 'vim-scripts/a.vim'
" Color schemes
Plugin 'tomasr/molokai'
Plugin 'flazz/vim-colorschemes'
call vundle#end()
filetype plugin indent on
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => YouCompleteMe 代码自动补全 Begin
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Plugin 'Valloric/YouCompleteMe'
" 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>']
" let g:ycm_confirm_extra_conf=0 " 关闭加载.ycm_extra_conf.py提示
let g:ycm_complete_in_comments = 1 "在注释输入中也能补全
let g:ycm_complete_in_strings = 1 "在字符串输入中也能补全
let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1 "注释和字符串中的文字也会被收入补全
let g:ycm_seed_identifiers_with_syntax=1 "语言关键字补全, 不过python关键字都很短,所以,需要的自己打开
let g:ycm_collect_identifiers_from_tags_files = 1
let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项
" 引入,可以补全系统,以及python的第三方包 针对新老版本YCM做了兼容
" old version
if !empty(glob("~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"))
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py"
endif
" new version
if !empty(glob("~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"))
let g:ycm_global_ycm_extra_conf = "~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py"
endif
"mapping
nmap <leader>gd :YcmDiags<CR>
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR> " 跳转到申明处
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR> " 跳转到定义处
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
" 直接触发自动补全
let g:ycm_key_invoke_completion = '<C-Space>'
" 黑名单,不启用
let g:ycm_filetype_blacklist = {
\ 'tagbar' :