Vim + Vundle + YouCompleteMe 配置

本文介绍了如何通过安装高版本vim及Vundle来配置YouCompleteMe插件的过程,包括源码编译vim、安装Vundle及YouCompleteMe等步骤。
动机:

为了安装YouCompleteMe插件,需要安装vim 较高版本,并使用Vundle安装YouCompleteMe,详细的可以参考github上的ReadMe

1. vim 安装

http://www.vim.org/git.php

git clone https://github.com/vim/vim.git
cd src
make distclean  # if you build Vim before
make
sudo make install
2.Vundle 安装

https://github.com/VundleVim/Vundle.vim

git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

在vimrc中写入:

filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
filetype plugin indent on
3. YouCompleteMe 安装

在vimrc中加入一行:

Plugin 'Valloric/YouCompleteMe'

重新进入vim并输入命令:PluginInstall

后续还有好多问题,现在继续解决。 重新申请了一个云主机,重新进行配置。
https://github.com/Valloric/YouCompleteMe#ubuntu-linux-x64

1. 源码编译vim

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
修改config参数:

./configure --with-features=huge \
            --enable-multibyte \
            --enable-pythoninterp=yes \
            --with-python-config-dir=/usr/lib/python2.7/config \
            --prefix=/usr

终于编译成功了
这里写图片描述

2.接下来就是安装Vundle

首先我们从github上找了一个比较好的vimrc配置文件
https://github.com/vgod/vimrc

接下来安装Vundle
https://github.com/VundleVim/Vundle.vim#about
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

set nocompatible              " be iMproved, required
filetype off                  " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
"Plugin 'L9'
Plugin 'git://git.wincent.com/command-t.git'
"Plugin 'file:///home/gmarik/path/to/plugin'
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
"Plugin 'ascenator/L9', {'name': 'newL9'}
call vundle#end()            " required
filetype plugin indent on    " required

这里我们注释了一些

3.添加YouCompleteMe
Plugin 'Valloric/YouCompleteMe'

Launch vimand run :PluginInstall
https://github.com/VundleVim/Vundle.vim#about

还需要 执行

apt-get install build-essential cmake
apt-get install python-dev python3-dev
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

正常到这儿救可以了,但是cmake我这apt-get版本低了所以需下载cmake源码安装

wget https://cmake.org/files/v3.7/cmake-3.7.1.tar.gz
tar zxvf cmake-3.7.1.tar.gz
./bootstrap && make && make install

Success!
重新运行./install.py --clang-completer
妈的还是有问题, 直接删除了YouCompleteMe文件夹,重新来一遍。

发现了问题,是因为boost和gcc 4.版本的问题,先安装上gcc 4.8在说 。

<think>我们正在配置Vim以支持C++开发。根据用户需求,我们需要安装一些插件配置Vim。通常,这包括语法高亮、代码补全、代码导航等。我们将使用Vim插件管理器(如VundleVim-Plug)来管理插件。 参考引用中提到了编译安装和gcc等,但用户需求是配置Vim,因此我们主要关注Vim配置。 步骤: 1. 安装Vim(如果尚未安装) 2. 安装插件管理器(这里我们选择Vim-Plug,因为它简单易用) 3. 配置.vimrc文件,添加必要的插件和设置 4. 安装插件 常用插件: - YouCompleteMe:代码补全 - ctags 和 tagbar:代码导航 - NERDTree:文件浏览器 - vim-cpp-enhanced-highlight:增强的C++语法高亮 - ale:语法检查 此外,我们还需要安装一些依赖,如cmake、python3-dev等,以便编译YouCompleteMe。 具体步骤: 1. 安装Vim和git(用于安装插件管理器): ```bash sudo apt update sudo apt install vim git ``` 2. 安装Vim-Plug插件管理器: 将以下命令粘贴到终端: ```bash curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` 3. 配置~/.vimrc文件: 创建或编辑~/.vimrc,添加以下内容: ```vim call plug#begin('~/.vim/plugged') " 插件列表 Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clangd-completer' } Plug 'preservim/nerdtree' Plug 'majutsushi/tagbar' Plug 'octol/vim-cpp-enhanced-highlight' Plug 'dense-analysis/ale' call plug#end() " 设置编码 set encoding=utf-8 " 显示行号 set number " 语法高亮 syntax on " 设置缩进 set tabstop=4 set shiftwidth=4 set expandtab " 设置tagbar let g:tagbar_width = 30 let g:tagbar_autofocus = 1 nmap <F8> :TagbarToggle<CR> " 设置NERDTree nmap <F9> :NERDTreeToggle<CR> " 设置YouCompleteMe let g:ycm_global_ycm_extra_conf = '~/.vim/plugged/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py' let g:ycm_show_diagnostics_ui = 0 " 关闭YouCompleteMe的语法检查,使用ale let g:ycm_autoclose_preview_window_after_completion = 1 let g:ycm_autoclose_preview_window_after_insertion = 1 let g:ycm_min_num_of_chars_for_completion = 1 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_seed_identifiers_with_syntax = 1 " 设置ale let g:ale_linters = {'cpp': ['clang', 'clangd', 'cppcheck']} let g:ale_sign_column_always = 1 let g:ale_sign_error = '>>' let g:ale_sign_warning = '--' ``` 4. 安装依赖: 为了编译YouCompleteMe,需要安装cmake、python3-dev等: ```bash sudo apt install build-essential cmake python3-dev ``` 5. 安装插件: 打开Vim,运行: ```vim :PlugInstall ``` 这将会安装所有插件。注意:YouCompleteMe安装可能需要一些时间,因为它会下载并编译一些组件。 6. 配置YouCompleteMe: 在安装过程中,YouCompleteMe安装脚本会自动下载clangd(用于C++的补全),所以我们在Plug配置中已经指定了`--clangd-completer`。 7. 安装ctags(用于tagbar): ```bash sudo apt install universal-ctags ``` 8. 使用: - 打开一个C++文件,使用F8打开tagbar,F9打开NERDTree。 - 补全功能在输入时会自动触发。 注意:YouCompleteMe可能需要额外的配置,例如.ycm_extra_conf.py文件,这个文件可以放在项目根目录或者使用全局配置YouCompleteMe自带了一个示例配置文件,我们已经在.vimrc中指向了它(~/.vim/plugged/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py)。你可以根据需要修改这个文件,比如添加编译选项。 如果遇到问题,可以查看YouCompleteMe的文档:https://github.com/ycm-core/YouCompleteMe 另外,如果需要更高级的补全,可以考虑使用clangd(Language Server Protocol)并配合其他插件,但YouCompleteMe已经集成了clangd。 现在,Vim已经配置为支持C++开发了。 相关问题: 1. 如何配置Vim支持其他语言(如Python)的开发? 2. 除了Vim-Plug,还有哪些Vim插件管理器? 3. 如何更新已安装Vim插件? 4. 在Vim中如何调试C++代码?</think>### 在Ubuntu系统中配置Vim支持C++开发 以下是完整的配置流程,包含必要的插件和工具安装: --- #### 1. **安装基础依赖** ```bash sudo apt update sudo apt install vim git cmake build-essential python3-dev ``` --- #### 2. **安装插件管理器(推荐Vim-Plug)** ```bash # 下载插件管理器 curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` --- #### 3. **配置~/.vimrc文件** 创建或编辑配置文件: ```bash vim ~/.vimrc ``` 添加以下内容: ```vim call plug#begin('~/.vim/plugged') " 语法高亮 Plug 'octol/vim-cpp-enhanced-highlight' " 代码补全引擎 Plug 'ycm-core/YouCompleteMe', { 'do': './install.py --clangd-completer' } " 文件树浏览 Plug 'preservim/nerdtree' " 语法检查 Plug 'dense-analysis/ale' " 标签导航 Plug 'majutsushi/tagbar' call plug#end() " 基础设置 set number " 显示行号 syntax enable " 语法高亮 set tabstop=4 " Tab宽度 set shiftwidth=4 " 自动缩进宽度 set expandtab " Tab转空格 " 快捷键映射 map <F2> :NERDTreeToggle<CR> map <F3> :TagbarToggle<CR> let g:tagbar_type_cpp = { \ 'ctagstype': 'c++', \ 'kinds': [ \ 'd:macros:1', \ 'g:enums', \ 't:typedefs:0:0', \ 'e:enumerators:0:0', \ 'n:namespaces', \ 'c:classes', \ 's:structs', \ 'u:unions', \ 'f:functions', \ 'm:members:0:0', \ 'v:variables:0:0' \ ] \ } " YouCompleteMe设置 let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py' let g:ycm_show_diagnostics_ui = 0 " 禁用YCM诊断(由ALE替代) ``` --- #### 4. **安装Clangd(语言服务器)** ```bash sudo apt install clangd-15 sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-15 100 ``` --- #### 5. **创建YCM配置文件** ```bash cat > ~/.vim/.ycm_extra_conf.py << EOF def Settings(**kwargs): return { "flags": ["-std=c++17", "-Wall", "-Wextra", "-I./include"], "override_filename": True } EOF ``` --- #### 6. **安装插件** 启动Vim执行: ```vim :PlugInstall ``` **注意**:YouCompleteMe编译需要5-10分钟[^1]。 --- #### 7. **验证配置** 测试功能: 1. 打开C++文件:`vim test.cpp` 2. 按`F2`打开文件树,`F3`打开标签导航 3. 输入`std::`测试自动补全 4. 保存时自动语法检查(ALE) --- ### 最终效果 - ✅ 智能补全(YouCompleteMe + Clangd) - ✅ 实时语法检查(ALE) - ✅ 代码导航(Tagbar + Ctags) - ✅ 增强型C++语法高亮 - ✅ 项目文件浏览(NERDTree) --- ### 相关问题 1. 如何在Vim配置C++调试支持? 2. YouCompleteMe插件安装失败如何解决? 3. 如何为Vim添加C++格式化工具(如Clang-Format)? 4. 在Vim中如何高效浏览大型C++项目? [^1]: YouCompleteMe需要编译本地组件,具体耗时取决于硬件性能。 [^2]: 使用`clangd`作为语言服务器提供精准的代码补全和诊断。 [^3]: `.ycm_extra_conf.py`文件允许自定义编译选项和头文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值