Ubuntu20.4安装YouCompleteMe

在Vundle中安装YouCompleteMe

  1. 在.vimrc中添加以下内容

    Plugin 'Valloric/YouCompleteMe'

  2. 然后执行如下

    git clone https://github.com/ycm-core/YouCompleteMe.git ~/.vim/bundle

  3. 在 ~/.vim/bundle/YouCompleteMe 目录下执行

    git submodule update --init --recursive

  4. 安装
    python3 install.py --clang-completer

  5. 修改.vimrc文件
    附上我的配置,可以直接看最后的YouCompleteMe配置部分(从89行起)

    set nocompatible  "required 
    syntax on
    filetype off  "required
    set encoding=utf-8     "utf-8 encode
    set showcmd
    "set clipboard=unnamed.unnamedplus          "copy vim to clipboard
    set mouse=a     "use mouse everywhere
    set hlsearch      "highlite search
    "set incsearch
    "set history=40
    "set ruler "cols and raws
    "setpastetoggle=F3
    "set helplang=cn
    set rtp+=~/.vim/bundle/Vundle.vim
    "set rtp+=~./vim/plugin/clang_complete.vim
    call vundle#begin()  
    "Plugin 'VundleVim/Vundle.vim'    "avoid remove self
    Plugin 'gmarik/Vundle.vim'
    Plugin 'rip-rip/clang_complete'
    Plugin 'tpope/vim-fugitive' 
    Plugin 'vim-airline/vim-airline'
    Plugin 'vim-airline/vim-airline-themes'
    Plugin 'michaelHL/awesome-vim-colorschemes'
    Plugin 'Tagbar'
    Plugin 'Tabular'    
    Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
    Plugin 'Valloric/YouCompleteMe'
    Bundle 'SuperTab'
    "Bundle "scrooloose/syntastic"
    Bundle 'scrooloose/nerdtree'
    call vundle#end()            " required
    filetype plugin indent on     " required
    let g:SuperTabRetainCompletionType=2
    let g:SuperTabDefaultCompletionType="<C-X><C-O>"
    inoremap<C-]>   <C-X><C-]>
    inoremap<C-F>    <C-X><C-F>
    inoremap<C-D>    <C-X><C-D>
    inoremap<C-L>   <C-X><C-L>
    "Bundle "scrooloose/syntastic"
    if has("autocmd")
        au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
    endif
    "<F2>设置是否显示行号
    "nnoremap <silent> <F2> :set number!<CR>
    ""空格打开关闭折叠
    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
    set tags=~/path/tags
    "========indent width=========
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set autoindent
    set cindent
    set  number "linenumber
    "set smartindent"自动识别以#开头的注释,不进行换行
    "switch case align
    set cino=g0,:0
    "===========================选择molokai的模式============================ 
    let g:rehash256 = 1
    let g:molokai_original = 1
    "相较于上一个模式,个人比较喜欢此种模式 
    highlight NonText guibg=#060606 
    highlight Folded  guibg=#0A0A0A guifg=#9090D0 
    set t_Co=256 
    "set background=dark 
    colorscheme  molokai
    "===========================选择solarized的模式==========================
    "solarzed的深色模式  
    "set background=dark "solarized的浅色模式 
    "set background=light
    "colorscheme solarized        "开启背景颜色模式 
    "
    set ofu=syntaxcomplete#Complete
    imap <silent> ` <C-X><C-O>
    "===============NERD Tree==================
    let NERDChristmasTree=0
    let NERDTreeWinSize=35
    let NERDTreeChDirMode=2
    let NERDTreeIgnore=['\~$']
    let NERDTreeShowBookmarks=1
    let NERDTreeWinPos="left"
    " Automatically open a NERDTree if no files where specified
    autocmd vimenter * if !argc() | NERDTree | endif
    " Close vim if the only window left open is a NERDTree 
    autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
    " Open a NERDTree
     nmap <F5> :NERDTreeToggle<cr>
    "YouCompletMe
    " 自动补全配置
    set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
    autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口
    inoremap <expr> <CR>       pumvisible() ? "\<C-y>" : "\<CR>" "回车即选中当前项
    "上下左右键的行为 会显示其他信息
    inoremap <expr> <Down>     pumvisible() ? "\<C-n>" : "\<Down>"
    inoremap <expr> <Up>       pumvisible() ? "\<C-p>" : "\<Up>"
    inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
    inoremap <expr> <PageUp>   pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
    "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_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎
    let g:ycm_min_num_of_chars_for_completion=1 " 从第2个键入字符就开始罗列匹配项
    let g:ycm_cache_omnifunc=0 " 禁止缓存匹配项,每次都重新生成匹配项
    let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
    nnoremap <F5> :YcmForceCompileAndDiagnostics<CR> "force recomile with syntatic
    "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
    nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> 
    let g:clang_library_path='/usr/lib/llvm-10/lib/libclang.so'
    

另一种方法

# 没有尝试
sudo apt-get install vim-youcompleteme
vim-addons install youcompleteme
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值