我正在寻找一个插件来为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中可以吗?谢谢
这取决于您的自动完成和 CEDET 设置。看起来自动完成设置是为了仅在输入几个字符后才显示可能的完成。您可以检查变量的值ac-auto-start- 如果这是一个数字,则在该字符数之后将调用自动完成功能。另一件重要的事情是变量中的内容ac-sources- 为了使用 CEDET,您需要使用ac-source-semantic-raw或ac-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++ 的文章吗?