在deepin上安装YouCompleteMe

Posted 木夕木火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在deepin上安装YouCompleteMe相关的知识,希望对你有一定的参考价值。

详细安装步骤在github上有,https://github.com/Valloric/YouCompleteMe,我这里是自己总结的简化版安装步骤。

步骤1.安装Vundle

       首先,clone到本地

  • git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  • 把以下内容复制到.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
    
      " The following are examples of different formats supported.
      " Keep Plugin commands between vundle#begin/end.
      " plugin on GitHub repo
      Plugin tpope/vim-fugitive
      " plugin from http://vim-scripts.org/vim/scripts.html
      " Plugin ‘L9‘
      " Git plugin not hosted on GitHub
      Plugin git://git.wincent.com/command-t.git
      " git repos on your local machine (i.e. when working on your own plugin)
      "Plugin ‘file:///home/gmarik/path/to/plugin‘
      " The sparkup vim script is in a subdirectory of this repo called vim.
      " Pass the path to set the runtimepath properly.
      Plugin rstacruz/sparkup, {rtp: vim/}
      " Install L9 and avoid a Naming conflict if you‘ve already installed a
      " different version somewhere else.
      " Plugin ‘ascenator/L9‘, {‘name‘: ‘newL9‘}
    
      " 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
      "
      " Brief help
      " :PluginList       - lists configured plugins
      " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
      " :PluginSearch foo - searches for foo; append `!` to refresh local cache
      " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
      "
      " see :h vundle for more details or wiki for FAQ
      " Put your non-Plugin stuff after this line
  • Install Plugins: 打开vim执行:PluginInstall 或者直接输入命令sudo vim +PluginInstall +qall

步骤2.安装工具和cmake

  • sudo apt-get install build-essential cmake

步骤3.安装python-dev,python3-dev

  • sudo apt-get install python-dev python3-dev

步骤4.安装clang

  • sudo apt-get install clang

步骤5.编译

  • cd ~/.vim/bundle/YouCompleteMe
  • ./install.py --clang-completer
  • 如果编译出错执行:git submodule update --init --recursive

步骤6.复制以下内容到.vimrc中

  "----------------------------"
  "------ YouCompleteMe -------"
  "----------------------------"
  let g:ycm_global_ycm_extra_conf = ~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py
    
    
  " YouCompleteMe
  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 = [<c-n>, <Down>]  " 映射按键, 没有这个会拦截掉tab, 导致其他插件的tab不能用.
  let g:ycm_key_list_previous_completion = [<c-p>, <Up>]
  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 <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" |            " 回车即选中当前项
  nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|     " 跳转到定义处
  "let g:ycm_min_num_of_chars_for_completion=2                 " 从第2个键入字符就开始罗列匹配项

步骤7.出现的错误

我安装完以后,出现了以下错误:

YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+)

解决办法:编译安装vim8.0,添加python支持

 

网址:在deepin上安装YouCompleteMe

以上是关于在deepin上安装YouCompleteMe的主要内容,如果未能解决你的问题,请参考以下文章

Fedora 27安装vim插件YouCompleteMe

Fedora 29安装vim插件YouCompleteMe

Fedora 29安装vim插件YouCompleteMe

Ubuntu14.04 32位安装Youcompleteme

Windows 10环境安装VIM代码补全插件YouCompleteMe

VIM 代码自动补全, YouCompleteMe安装及配置