VIM omnicppcomplete对函数参数不起作用
VIM omnicppcomplete does not work for function parameters
我试图在VIM中使用omnicppcomplete,我无法让它为传递给函数的变量工作。例如,输入以下
function1( MyObject obj ) {
obj.|
}
导致"——Omni补全(^O^N^ p)模式未找到"
如果我在函数中定义了一个局部变量:
function1 ( MyClass obj) {
MyClass obj2;
obj2.|
}
它工作得很好,我得到一个成员的弹出列表。它也可以很好地用于全局对象,但似乎无法确定作为函数参数传递的变量是什么。
My .vimrc包含:
set tags+=~/.vim/tags/cpp
set tags+=~/Projects/myproject/Software/tags
" OmniCppComplete
let OmniCpp_NamespaceSearch = 2
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
let OmniCpp_LocalSearchDecl = 1 " use local search function, bracket on 1st column
let OmniCpp_DisplayMode = 1
au BufNewFile,BufRead,BufEnter *.cpp,*.hpp set omnifunc=omni#cpp#complete#Main
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
set completeopt=menuone,menu,longest,preview
map <F8> :!/usr/bin/ctags -R --exclude=backups --language-force=C++ --sort=yes -c++-kinds=+pl --fields=+iaS --extra=+q -f ~/Software/tags ~/Software .<cr>
不幸的是,omnicppcomplete依赖于标签,这对于c++的理解并不是很有效。
你应该看看clang_complete。
相关文章:
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- 我正在开发服务器,ip作为参数传递不起作用
- G++ C++17 类模板参数推导在非常特殊的情况下不起作用
- 类中的虚拟布尔函数参数不起作用
- 模板 ctor 类型推导不起作用(没有匹配的构造函数用于初始化 ...)与函数<>参数
- 我的代码在作为参数传入 .begin() 时不起作用,但在我将 .begin() 转换为迭代器后工作
- 为什么重载运算符>在参数声明 const 时不起作用?
- 为什么当我提供一些模板参数时,C++17 模板类推导不起作用?
- 为什么static_assert在带有 const 参数的成员函数中不起作用?
- 将参考类型作为嵌套模板结构中的模板参数作为模板参数不起作用
- C++ 数组参数不起作用
- sscanf 格式参数不起作用
- 我无法正确获取这些变量声明...为什么这些参数不起作用?我只是将 n 值设置为数组长度
- DrawImage高度参数不起作用
- C++ 默认函数参数不起作用
- 输入参数不起作用
- 处理C++中的参数不起作用
- 以双精度数除以双精度数来获得循环中的余数和char参数不起作用
- VIM omnicppcomplete对函数参数不起作用
- 模板模板参数不起作用