YouCompleteMe的安装及配置(一):使用clangd进行语义的补全

安装好vim后及插件管理器

前提:安装了python3.6以上的版本,否则无法执行install.py脚本,最新版本的YCM插件需要vim支持python3

1、进入插件目录:cd ~/.vim/bundle

2、下载ycm:https://github.com/ycm-core/YouCompleteMe.git

3、更新依赖模块:git submodule update --init --recursive

4、安装:./install.py --clanged-completer   # --all  安装所有的补全(目前最新版本的YCM已经不需要额外下载llvm+clang来编译了),编译完成后的结果如下图所示:

     

比以前方便了很多,clang已经放到了.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clangd/output目录了,并且已经启用了,不用再配置复杂的.ycm_extra_conf.py文件了

关于YCM的说明、配置都在:https://github.com/ycm-core/YouCompleteMe#c-family-semantic-completion

你可以找到任何关于ycm的信息,不过可能需要花一点时间。

5、.vimrc的配置:

     

    Plugin 'Valloric/YouCompleteMe'
        let g:ycm_key_list_select_completion=['<c-n>']
        let g:ycm_key_list_previous_completion=['<c-p>']

        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 " 从第1个键入字符就开始罗列匹配项
        let g:ycm_cache_omnifunc=0 " 禁止缓存匹配项,每次都重新生成匹配项

        let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全
         nnoremap <F5> :YcmForceCompileAndDiagnostics<CR> "force recomile with syntastic
        "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 "注释和字符串中的文字也会被收入补全

        let g:ycm_max_num_identifier_candidates = 50
        let g:ycm_auto_trigger = 1

        let g:ycm_error_symbol = '>>'
        let g:ycm_warning_symbol = '>'


        "highlight Pmenu ctermfg=4 ctermbg=0 guifg=#ffffff guibg=#000000  "提示不再是粉红色(pink)
        highlight Pmenu ctermfg=4 ctermbg=8 guifg=#ffffff guibg=#000000  "提示不再是粉红色(pink)

6、效果如下:

 

 

 

 

 

7、可能的问题:

      7.1、YouCompleteMe unavailable: unable to load Python.

                安装:sudo yum install vim-gtk-syntax

 

<think>好的,我现在需要帮助用户解决在虚拟机环境中实现代码补全的问题。根据用户提供的引用资料,特别是引用[2]和[3],我应该重点整理这些信息并结合自己的知识给出步骤。首先,用户提到了Ubuntu下配置VScode的C++自动补全,这可能涉及到安装插件和配置设置。另外,引用[3]提到了vim配置,可能需要覆盖不同编辑器的配置方法,比如Vim和VSCode。 接下来,我需要确保回答结构清晰,分步骤说明。可能需要包括以下几个方面:安装代码补全插件、配置开发环境、检查语言服务器、安装必要工具链、虚拟机性能优化。每个步骤需要详细说明,并引用相关的参考资料。同时,用户可能需要知道不同编辑器(如VSCode和Vim)的具体配置方法,所以需要分开说明。 需要验证引用内容是否正确。例如,引用[2]提到在Ubuntu 16.04中配置VSCode的C++补全,可能需要安装C++扩展和配置c_cpp_properties.json。而引用[3]提到vim的三大模式,配置代码补全可能需要安装YouCompleteMe等插件,但用户引用中并没有直接提到,可能需要结合通用知识补充。 另外,虚拟机性能可能影响代码补全的流畅度,引用[1]提到虚拟机的基本操作环境配置,可能需要建议分配足够资源,安装增强工具等。 最后,生成相关问题,考虑用户可能进步想知道其他编辑器的配置、性能优化方法或特定语言的补全设置。需要确保问题相关且有参考价值。 总结回答结构:分步骤说明配置方法,涵盖VSCode和Vim,虚拟机优化建议,并附上相关问题。确保每个部分都有对应的引用支持,如VSCode配置引用[2],vim模式引用[3],虚拟机设置引用[1]。</think>在虚拟机环境中实现代码补全,需根据开发工具和编程语言进行针对性配置。以下是分步指南: ### 、VSCode代码补全配置(C++示例) 1. **安装扩展** 打开VSCode,安装官方$C/C++$扩展包[^2] ```bash # 通过VSCode扩展市场搜索安装使用命令行 code --install-extension ms-vscode.cpptools ``` 2. **配置智能感知** 创建/修改`.vscode/c_cpp_properties.json`,指定编译器路径: ```json { "configurations": [{ "name": "Linux", "includePath": ["/usr/include/c++/5"], "compilerPath": "/usr/bin/g++" }] } ``` 3. **安装语言服务器** ```bash sudo apt install clangd # 使用Clangd提供语义分析 ``` ### 二、Vim代码补全配置 1. **进入插入模式** 按$i$键从正常模式切换至插入模式编写代码[^3] 2. **安装YouCompleteMe** ```bash git clone https://github.com/ycm-core/YouCompleteMe.git ~/.vim/bundle/ cd ~/.vim/bundle/YouCompleteMe python3 install.py --clang-completer ``` ### 三、虚拟机环境优化 1. **分配足够资源** 建议CPU≥2核,内存≥4GB,硬盘≥20GB[^1] 2. **安装增强工具** VMware/VirtualBox均需安装对应增强包提升性能: ```bash sudo apt install open-vm-tools # VMware环境 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ztenv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值