4

在 clang_complete.txt(帮助文件)中,它在 clang_complete-compl_kinds 中显示了这些:

2.Completion kinds                  *clang_complete-compl_kinds*
Because libclang provides a lot of information about completion, there are
some additional kinds of completion along with standard ones (see >
 :help complete-items for details):

'+' - constructor
'~' - destructor
'e' - enumerator constant
'a' - parameter ('a' from "argument") of a function, method or template
'u' - unknown or buildin type (int, float, ...)
'n' - namespace or its alias
'p' - template ('p' from "pattern")

问题是:
1. 我无法访问完整的项目(没有这个文件)
2. 有人可以告诉我如何使用参数 '+' 'a' 等等。
3. 或者你能告诉我在输入 ( 时如何显示函数参数吗?

谢谢!
(原谅我糟糕的英语)

4

1 回答 1

1

已经很久了,但我会回答以帮助未来的访客。

我不完全理解你的问题,但我会回答第三个问题。Clang complete 仅在编写 '.'、'->' 或 '::' 时启动自动建议/完成,但您可以手动启动它。

我用这种方式。在这个来源:

#include <iostream>
using namespace std;

void ExampleFunc (float foo, int &bar)
{
    cout << foo;
    bar++;
}

int main (int argc, char **argv)
{
    int a(0);
    Exa[cursor here]

    return 0;
}

写“Exa”你可以按下<C-X><C-U>,你会得到一个预览窗口:

Example (float foo, int &bar)

和一个完成窗口(在插入模式下按<C-N>(CTRL-N) 时出现的相同):

Example f void Example(float foo, int &bar)

如果有多个匹配项,您可以使用<C-N>或向下或向上移动<C-P>并使用<CR>(enter) 完成。

完成并不完美,但它应该适用于许多其他情况,例如(如您所述)模板:

#include <vector>
using namespace std;

int main (int argc, char **argv)
{
    struct MyType {int asdf; float qwer;};
    vector<MyType> vec;
    ve  // suggestions after <C-X><C-U>: 
        //     "vec v vector<MyType> vec" v is for variable
        //     "vector p vector<Typename _Tp>" p is for pattern (template)
        //     constructors with its parameters, etc.

    vec.    // auto-fired suggestions: all std::vector methods
    vec[0]. // auto-fired suggestions: "asdf", "qwer" and MyType methods

    return 0;
}

如果这些示例对您不起作用,则说明您没有正确安装插件。

顺便说一句,您可以映射<C-X><C-U>到其他快捷方式。

于 2014-02-01T16:35:31.017 回答