VIM安装YCM插件
折腾了两天,终于好了 1。配置VIM (1)下载相关插件 sudo apt-get install git sudo apt-get install build-essential cmake ????
libgtk2.0-dev libatk1.0-dev libbonoboui2-dev
????
libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev
????
python3-dev ruby-dev lua5.1 liblua5.1-dev libperl-dev git
(2)安装支持python的VIM 首先保证VIM已经卸载 sudo apt-get remove vim vim-runtime gvim sudo apt-get remove vim-tiny vim-common vim-gui-common vim-nox 然后下载并配置编译,注意路径和自己的匹配 cd ~ git clone https://github.com/vim/vim.git cd vim ./configure --with-features=huge --enable-multibyte --enable-rubyinterp=yes --enable-pythoninterp=yes --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu --enable-python3interp=yes --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64_linux-gnu --enable-perlinterp=yes --enable-luainterp=yes --enable-gui=gtk2 --enable-cscope --prefix=/usr make VIMRUNTIMEDIR=/usr/share/vim/vim81 安装 cd ~/vim
sudo make install
安装完后测试VIM是否支持python 命令模式下输入:echo has("python") || has("python3"),结果是1就代表成功了。 vim --version | grep python显示的python前面确实是加号。 ? 2。安装VIM插件管理工具 pathogen mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim 在.vimrc中添加 execute pathogen#infect()
syntax on
filetype plugin indent on
这时~/.vim的目录结构如下 ├── autoload
│ └── pathogen.vim
└── bundle
autoload存放的pathogen.vim是一个插件(插件的就是一个脚本),.vim中 execute pathogen#infect() 会调用 pathogen.vim, pathogen.vim会调用 bundle中的插件。 我们接下来需要做的就是把需要安装的插件放到 bundle目录下。 ? 3. 下载并安装YCM (1)下载YCM到bundle目录下 git clone --recursive git://github.com/Valloric/YouCompleteMe ~/.vim/bundle 如果执行该命令没报错,就ok了. 但是中途有可能会断掉,可以 cd 到 YouCompleteMe,然后反复用如下命令再次进行下载: git submodule update --init --recursive YCM大概有229M 使用如下命令查看YCM大小 du -sh ~/.vim/bundle/YouCompleteMe (2)安装YCM ./install.py --clang-completer 这个指令只适合64位系统,32位的需要自己下载clang并编译(很麻烦)。 ? 4. 配置YCM .vimrc中输入 " 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个键入字符就开始罗列匹配项 注意这句: let g:ycm_global_ycm_extra_conf=‘~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py‘ 这里需要创建 .ycm_extra_conf.py,并输入 flags = [ ‘-Wall‘,‘-Wextra‘,‘-Werror‘,‘-Wno-long-long‘,‘-Wno-variadic-macros‘,‘-fexceptions‘,‘-DNDEBUG‘,‘-std=c99‘,‘-x‘,‘c‘,‘-I‘,‘/usr/include‘,‘-isystem‘,‘/usr/lib/gcc/x86_64-linux-gnu/5/include‘,‘/usr/include/x86_64-linux-gnu‘,‘-isystem‘ ‘/usr/include/c++/5‘,‘/usr/include/c++/5/bits‘ ] def FlagsForFile(filename): return {‘flags‘: flags} 到此 YCM 可用。 ? 此外.ycm_extra_conf.py很重要,可以参考这个文档:https://github.com/Valloric/YouCompleteMe#option-2-provide-the-flags-manually ? 参考博客: https://www.cnblogs.com/Harley-Quinn/p/6418070.html https://blog.csdn.net/andre617/article/details/53496490#%E8%84%9A%E6%B3%A8 https://github.com/Valloric/YouCompleteMe/issues/2901 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |