Vin*_*Pii 3 c++ vim stl autocomplete
我有omnicppcomplete插件和繁琐的ctags,我使用以下命令为项目生成标签:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
Run Code Online (Sandbox Code Playgroud)
我想要实现的是让Vim在通过STL容器访问它时识别对象的类型,为我提供适当的自动完成建议列表.
例如,假设IntWrapper对象有一个getTheInt()方法,我有一个向量IntWrappers:
std::vector<IntWrapper> wrappers;
Run Code Online (Sandbox Code Playgroud)
如果我有以下代码:
for (size_t i = 0; i < wrappers.size(); i++) {
wrappers[i].<VIM Cursor is here>
}
Run Code Online (Sandbox Code Playgroud)
我希望VIM理解wrapper [i]是类型的,IntWrapper并且给我getTheInt()作为第一个自动完成选择的方法以及文档,就像我直接在IntWrappers对象上操作一样.
为了弄清楚我的期望,下面的第一个截图是当我要求对向量自动完成时会发生什么,第二个是当我直接访问对象时会发生什么,以及即使使用stl容器我也想要实现的.

(上面用红色突出显示的句子表示未找到表达式)

有没有插件(我不关心CPU昂贵)这样做?
非常感谢.
实际上,我认为omnicomplete无法处理上下文问题,因此您无法将其用于您的目的.一种做C++/STL自动完成的方法是使用clang_complete(或这里).
虽然性能似乎很成问题(请看这里:如何提高clang_complete的完成速度?).
关于这个主题的一个很好的教程(为C++ STL完成配置vim + clang)可以在这里找到:http://zwiener.org/vimautocomplete.html
参考:
注意:另一个选择是使用gccsense,这是一个使用GCC代码分析器的独立工具.以下是项目主页的链接:http://cx4a.org/software/gccsense/ 以及有关其使用的两个SO问题:
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |