在emacs中寻找自动完成功能

Con*_*Hui 5 c++ emacs cedet

我正在寻找一个插件来为emacs中的c ++开发做自动完成弹出窗口.我所尝试的是Cedet Semantics和Autocompletion模式,只要我已经有几个单词,它们在完成变量和函数名称方面非常简洁.例如,我有一个名为foo的类和一个返回整数1的函数

class foo{
   int getInt(){return 1};
};
Run Code Online (Sandbox Code Playgroud)

在main方法中,只要我开始输入这个

int main(){
 foo bar;
 bar.get...
}
Run Code Online (Sandbox Code Playgroud)

插件没有问题弹出bar.getInt()等建议.但是,我真正想要的就是在Eclipse中,只要按下"点",就可以为我生成可能的选择.在Emacs中可以吗?谢谢

Ale*_*Ott 2

这取决于您的自动完成和 CEDET 设置。看起来自动完成设置是为了仅在输入几个字符后才显示可能的完成。您可以检查变量的值ac-auto-start- 如果这是一个数字,则在该字符数之后将调用自动完成功能。另一件重要的事情是变量中的内容ac-sources- 为了使用 CEDET,您需要使用ac-source-semantic-rawac-source-semantic完成源。要自动完成,.或者->您可以尝试使用 Semantic 的内置完成功能,例如:

(defun my-c-mode-cedet-hook ()
 (local-set-key "." 'semantic-complete-self-insert)
 (local-set-key ">" 'semantic-complete-self-insert))
(add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)
Run Code Online (Sandbox Code Playgroud)

PS 你看过我关于 CEDET 和 C++ 的文章吗?