简介
个人搭建的vim C++开发环境, 使用coc.nvim框架 + ccls 提供补全服务。实现基本的语意补全、跳转,查找引用等功能。原则是尽量不修改vim原生按键功能。
仓库地址:https://github.com/skywb/vim-config
简介于教程后续有时间更新….
安装
依赖
- 需要提前安装ccls或其它ls
- nodejs > 10
- python3
安装
直接将github仓库克隆到本地, 并更新submodule,覆盖~/.vim 文件夹。 请自行备份原来的文件夹
创建一个软连接.vimrc
指向.vim/vimrc
1 | cd ~ |
第一次启动是默认会安装几个插件
基本使用
项目配置
ccls
根目录
ccls 会向上查找根目录,标志文件为
[".ccls", "compile_commands.json", ".git/"]
可以通过 :CocConfig 命令打开配置文件,自行设置 rootParrerns 参数
补全设置
ccls依赖compile_commands.json检索对应关键字
cmake 可以在构建是指定宏
-DCMAKE_EXPORT_COMPILE_COMMANDS=YES
生成若只使用make的老项目,可以通过bear工具生成
bear make -j$(nproc)
基本功能
补全
默认开启语意补全,输入前两个字母或者.
->
等触发。
触发补全列表时, 可通过方向键、<C-n>
下一个,<C-p
上一个等选择候选
按键说明约定:
与vim官方文档表示相同。
表示 ctrl + 某按键, 例如 表示 ctrl + n
键可以自行设置,默认是 \
表示回车
跳转
- gd 跳转到定义 (一般都是跳转到实现)
- gc 跳转到声明
- gi 跳转到实现 (不怎么用,gd更顺手)
- gf 跳转到文件
- gr 跳转到引用
查找文件
默认配置了leaderF, 并设置快捷键
<leader>ff
Coc配置安装了 coc-lists, 包含files功能,可以搜索文件, 可以通过
:CocList fiels
或<C-l>
换起 coclist选择files唤起 但是files不支持仅匹配文件名,当路径很长时,体验不太好,我更喜欢leaderF
snippet
通过代码块快速生成代码模板
默认加载 https://github.com/skywb/snippets
的仓库, 目前只有c++ 代码模板,可以加载其它仓库 例如: https://github.com/honza/vim-snippets
、https://github.com/SirVer/ultisnips
触发
当输入snippet 的key是,默认触发补全列表,选中后
<C-y>
展开如需要更多snippet文件,可直接添加到
.vim/snippet
下即可
CocList 功能补充
- files 查找文件
- outline 当前文件下所有方法、类、变量等
- commands 所有支持的命令,可以自定义添加。详情请阅读coc.nvim 文档
- 其他
Command
快捷键补充
拓展a和i的能力
- if 整个方法内部
- af 整个方法
- ic class内部
- ac 整个class
gp
选中刚刚粘贴的内容技巧:
当存他处赋值了代码,粘贴后 gp= 可快速格式化
参考连接: