Ubuntu安装配置YCM自动补全插件


Ubuntu安装配置YCM自动补全插件

参考教程:

前期准备

将源换成国内的
方法:配置网络环境

0. 安装依赖项


 1. sudo apt-get install libncurses5-dev libgnome2-dev 
 2. sudo apt-get install libgnomeui-dev libgtk2.0-dev libatk1.0-dev
   libbonoboui2-dev
 3. sudo apt-get install libcairo2-dev libx11-dev libxpm-dev libxt-dev
    python-dev
 4. sudo apt-get install python3-dev ruby-dev lua5.1 liblua5.1-dev
   libperl-dev git

1. vim安装

  • 卸载默认的所有vim
sudo apt-get remove vim vim-runtime gvim
sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox
  • 直接安装vim -gtk
 sudo apt-get install vim -gtk

2.安装vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

3.安装YCM

YCM GitHub官网:https://github.com/ycm-core/YouCompleteMe

 1. git clone https://github.com/ycm-core/YouCompleteMe.git
    ~/.vim/bundle/YouCompleteMe
 2. cd ~/.vim/bundle/YouCompleteMe  
 3. git submodule update --init --recursive 

安装完成之后,配置.vimrc

  1. 创建.vimrc

 1. cd ~
 2. vi .vimrc

2.配置.vimrc

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin(‘~/some/path/here‘)

" let Vundle manage Vundle, required
Plugin ‘VundleVim/Vundle.vim‘
PluginInstall ‘Valloric/YouCompleteMe‘
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on

3.安装

1.shift+:
2.输入 PluginInstall
3.秒下载完毕

4.添加支持

1 cd ~/.vim/bundle/YouCompleteMe
2 ./install.py --clang-completer

4.配置.ycm_extra_conf.py​ 以及 .vimrc

.ycm_extra_conf.pylu配置:

.ycm_extra_conf.pylu路径:
~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py

也有的人是在:
~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
/***********************************************************************************************/
都可以,vim打开,在
'-x',
'c++',
'-isystem',
'../BoostParts',
下面添加

'-isystem',
'/usr/include',
'-isystem',
'/usr/lib',
'-isystem',
'/usr/local/include',
'-isystem',
'/usr/include/c++/5',
 ‘-isystem‘,
 ‘usr/include/c++/5.4.0‘
 ‘-isystem‘,
 ‘usr/include/x86_64-linux-gnu/c++‘,
 
 /*********************************写好保存,拖到用户目录,方便下次修改************/

.vimrc配置文件,解释见备注

""""""""""""""""""""""""""""""""""""""" YouCompleteMe"""""""""""""""""""""""""""""""""""""""
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'       "配置全局路径
let g:ycm_confirm_extra_conf=0   "每次直接加载该文件,不提示是否要加载
set runtimepath+=~/.vim/bundle/YouCompleteMe
let g:ycm_collect_identifiers_from_tags_files = 1           " 开启 YCM
""基于标签引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1 "
""注释与字符串中的内容也用于补全
let g:syntastic_ignore_files=[".*\.py$"]
let g:ycm_seed_identifiers_with_syntax = 1                  " 语法关键字补全
let g:ycm_complete_in_comments = 1
let g:ycm_confirm_extra_conf = 0
let g:ycm_key_list_select_completion = ['', '']  " 映射按键,
" 没有这个会拦截掉tab, 导致其他插件的tab不能用.
let g:ycm_key_list_previous_completion = ['', '']
let g:ycm_complete_in_comments = 1                          " 在注释输入中也能补全
let g:ycm_complete_in_strings = 1                           " 在字符串输入中也能补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全
""let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_show_diagnostics_ui = 0                           " 禁用语法检查
inoremap  pumvisible() ? "\" : "\" |            " 回车即选中当前项
nnoremap  :YcmCompleter GoToDefinitionElseDeclaration|     " 跳转到定义处
"let g:ycm_min_num_of_chars_for_completion=2                 " 从第2个键入字符就开始罗列匹配项
"

"""""""""""""""""""""""""""""""""""""""基本设置""""""""""""""""""""""""""""""""""""""""
" 设定默认解码 
set fenc=utf-8 
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

set backspace=indent,eol,start

" 支持256色,使得vim配色支持终端
set t_Co=256

" C缩进
set smartindent 
set cindent

" 不要使用vi的键盘模式,而是vim自己的 
set nocompatible 

" history文件中需要记录的行数 
set history=1000 

" 语法高亮
""syntax enable
syntax on 

" 在状态行上显示光标所在位置的行号和列号 
set ruler

" 继承前一行的缩进方式,特别适用于多行注释 
"set autoindent 

" 显示行号
set number

" 制表符为4 
set tabstop=4 

" 统一缩进为4 
set softtabstop=4 
set shiftwidth=4 

" 不要用空格代替制表符 
set noexpandtab 

" 不要换行 
"set nowrap 
"set sidescroll=10
"
" 在行和段开始处使用制表符 
set smarttab

" Ctrl+A全选,Ctrl+C复制,Ctrl+V粘贴
map <C-A> ggvG$ 
imap <C-A> <Esc>ggvG$
vmap <C-C> "+y<Esc>
map <C-V> "+p
imap <C-V> <Esc>"+pa

" 括号等的自动匹配
""inoremap ( ()<Esc>i
""inoremap [ []<Esc>i
""inoremap { {}<Esc>i
""inoremap ' ''<Esc>i
""inoremap " ""<Esc>i

" 设置<leader>和<localleader>
let mapleader = ","
let maplocalleader = "."

" 可以折叠 
set foldenable 
set foldmethod=manual

" 自动更新.vimrc
map <leader>vo <Esc>:vsp ~/.vimrc<CR>

最终效果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值