YouCompleteMe C/C++ VIM CMake 工程 代码提示不可用问题

YouCompleteMe介绍 如果安装完YouCompleteMe并配置好后(本站有过程记录,点击这里查看),就可以使用单文件来检测代码提示效果了。但是,当S&E打开他的C/C++工程时,却发现代码提示、跳转等功能不能正常使用。在查阅文档后,S&E发现原来是YouCompleteMe相关的索引数据库没有建立,相关的编译选项并不正确,所以YouCompleteMe所使用的的clangd就不能将多个源文件联系起来。 建立 C/C++ VIM 代码提示索引的方法 如果是使用CMake建立工程,则可以在CMakeList.txt中加入 set( CMAKE\_EXPORT\_COMPILE\_COMMANDS ON ) 或者在命令行cmake后加上-DCMAKE_EXPORT_COMPILE_COMMANDS=ON也行 建立索引的原理 YouCompleteMe读取由构建系统CMake生成的编译数据库(通常名字叫做compile_commands.json),这样就可以完成对于工程文件的索引。而编译数据库包含项目中每个编译单元的编译器调用。YouCompleteMe会寻找打开文件所在目录中的compile_commands.json,如果没找到会递归地向上查找这个文件。如果在它找到.ycm_extra_conf.py之前,找到了compile_commands.json,那么它就会停止搜索,然后,让clangd处理接管并处理该文件中含有的标志。 在完成上述这些操作后,YouCompleteMe的相关功能就可以正常使用了。

二月 6, 2021

Vim 代码提示插件 YouCompleteMe 安装与配置

介绍 对于在Vim下的C/C++程序编写,如果有代码提示插件会大大提高编写效率。大型IDE用的多了,刚回归Vim的S&E比较依赖这个。正好YouCompleteMe能够满足他的相关需求。索性把安装与配置的过程记录在这里,以供下次回忆使用。 除了C/C++,YouCompleteMe支持Java、Go、C#、Objective-C、CUDA等,可以说是比较强大了。但是话说,写Java为什么要用Vim呢?IDEA貌似更好。 使用后发现这插件还支持代码跳转、引用查找、修改函数名和格式调整等操作,挺方便。 Giuhub仓库地址:https://github.com/ycm-core/YouCompleteMe 前置条件 安装最新的YouCompleteMe插件需要满足一些条件 Vim 8.1 以上 并且启用了Python3扩展支持(本站有过程记录,点击这里查看) GCC 8 以上 或者 Clang 7 以上 Python3.6以上编译的时候有–enable-shared选项(一般包管理器安装都带有) 对于Debian 10, 通过包管理器安装的Gcc版本为8.3.0。 然后可以通过以下命令查看编译器版本 % cc -v 对于python3的版本,使用以下命令查看 % python3 --version 对于Vim版本,使用执行以下命令查看 % vim --version 检查完以上依赖后,也执行一下以下命令确认安装相关依赖 % sudo apt install build-essential cmake vim-nox python3-dev 安装 先确认用过了Vim插件管理器安装了YouCompleteMe,推荐使用Vundle。 确认安装了YouCompleteMe后,进行下面的步骤 如果你想要安装所有的功能,包括Java(JDK 8),Go、C#等代码提示功能,可以直接执行以下命令安装 % cd ~/.vim/bundle/YouCompleteMe % python3 install.py --clangd-completer 如果你只想使用C/C++代码提示功能,则执行以下命令 % cd ~/.vim/bundle/YouCompleteMe % python3 install.py --clangd-completer

二月 6, 2021

Vim主题 spf13-vim.sh 的安装与使用

Vim主题介绍 我经常使用vim为在Linux下的主要的代码编辑器。每当SSH进入一个新的开发系统环境,为了编写方便,他总是需要手动安装Vim并配置各类常用插件。spf13-vim.sh是一个使用于Vim的插件和相关资源的发行版。一条命令,即可以自动安装常用的配套的插件环境。 Github仓库地址:https://github.com/spf13/spf13-vim 心得 S&E感觉这个就好像快速安装了一个以Vim为核心的IDE(可以类比Vscode)。然后,spf13-vim.sh产生一个比较规范的vim配置文件层次结构,方便后来再添加其他插件,也避免无规划地手动添加插件产生的杂乱的配置文件。而且,把相关插件的优化和配置工作丢给它后,省心了不少。 安装 前置条件: git curl vim 7.3以上 本站有安装Vim 8.2的相关过程记录:点击这里查看 对于Debian 10可以简单地执行以下命令安装git和curl % sudo apt install git curl 然后对于Unix/Linux、Mac OS等,执行以下命令一键安装spf13-vim.sh % curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh (对于Windows系统,请参考Github仓库中的ReadME.md) 更新方法 可以通过执行以下命令一键更新 % curl https://j.mp/spf13-vim3 -L -o - | sh 个性化定制 spf13-vim.sh是一个配套的常用插件发行版,并没有安装YouCompleteMe这类的插件,这就需要我后期加上去。可以在当前用户主目录下,执行以下命令添加一个个性化配置文件: % touch ~/.vimrc.local 然后,可以编辑这个文件加入自己的配置。 对于需要预先执行的一些配置,则可以执行以下命令下入对应的配置文件 % ~/.vimrc.before.local 添加插件 比如说要添加spf13/vim-colors这款插件,按照ReadME.md中的实例是这样的 % echo Bundle \\'spf13/vim-colors\\' >> ~/.vimrc.bundles.local 移除插件 移除插件只要在上面的命令中的Bundle前面加一个Un即可 % echo UnBundle \\'AutoClose\\' >> ~/.vimrc.bundles.local 常用插件的使用 以下介绍一些常用插件的使用操作方法,这里就不写全了,根据我的使用慢慢加上。 NERDTree 通过Crtl-E调出菜单

二月 6, 2021

Vim 8.2 源码编译安装 添加Python3扩展

介绍 为了安装YouCompleteMe这类插件,需要将Vim升级至比较高的版本并且启用Python3扩展。所以,这里提供的是通过源码安装Vim最新版本的过程记录。 这里使用到的Vim源代码仓库地址:https://github.com/vim/vim/ 编译安装默认版本 在编译安装之前先要安装相关的工具以及依赖 % sudo apt install git make clang libpython3-dev 选择适当的目录执行克隆命令 % git clone https://github.com/vim/vim.git 克隆成功后会出现vim目录,进入该目录下的src目录 % cd vim/src 执行编译(为了加快速度可以替换执行% make -j4来并行编译) % make 执行测试 % make test 默认安装到/usr/local目录下 % sudo make install ``` 开启Python3扩展支持 ------------- 在上述操作完成后,打开该目录下的Makefile文件,找到`"CONF_OPT_PYTHON3 = --enable-python3interp"`并取消注释该行,保存。 执行命令更新编译参数`make reconfig`

二月 6, 2021