Emacs CEDET/semantic中的键盘自动完成

5
在查看CEDET语义(从Bazaar存储库中获取的最新版本)中不同的完成方法时,我发现以下选项(键盘绑定建议来自他的配置文件):
  • C-c ? (semantic-ia-complete-symbol)
  • C-return (semantic-ia-complete-symbol-menu)
  • C-c , l (semantic-analyze-possible-completions)
然而,似乎没有一种方式可以方便地使用键盘在可能的完成之间进行选择
例如,(semantic-ia-complete-symbol-menu)打开一个菜单,我可以在不同的选项之间进行选择,但据我所知,需要使用鼠标(我尝试了C-n, C-p, M-n, M-p通过菜单导航,但没有成功)。
另一方面,(semantic-ia-complete-symbol)打开另一个缓冲区以显示选项。我也可以使用鼠标选择所需的自动完成,但我想改用键盘。
此外,在先前的CEDET版本中,有一个变量(semantic-complete-inline-analyzer-displayor-class),允许我在自动完成之间选择几个选项(例如(semantic-displayor-ghost)或更优雅的覆盖层作为工具提示),但是这个变量似乎不再存在。
如果有影响的话,我主要使用C++文件。
更新:
唯一似乎允许我循环自动完成的方法是C-c , space (semantic-complete-analyze-inline),在其中可以使用TAB进行自动完成,但它不会显示一个可以选择的菜单

1
你可能想要看一下自动完成+gtags/clang。目前它还有一些不完善的地方,如果你想使用最新的1.4版本,可以从git上获取,但它可以直接满足你在这里所需求的功能。至于问题,尝试描述一些关键映射,也许你需要使用C-n/C-p来在菜单中导航,而不是光标键(也可以尝试M-n/M-p)。 - Piotr Kalinowski
1个回答

1
在新版本的CEDET中,建议使用自动完成或类似的软件包。您可以将ac-semantic添加到ac-sources中,然后自动完成将使用Semantic作为完整性数据源。 Emacs/CEDET的新版本文章提到了这个设置,并显示了必要的代码。 请尝试它。

我已经配置了自动完成以与CEDET一起使用,但它提供的信息不如“semantic-ia-complete-symbol”(即成员函数所需参数的数量等)丰富。此外,自动完成菜单会在找到任何可完成的内容时打开,而不仅仅是像CEDET那样解析类对象。当尝试在声明某些内容后向下箭头浏览文件时,光标没有移动,自动完成弹出非常烦人。我尝试了很多方法来解决这两个问题,但都没有成功。在我能够解决这些问题之前,我和OP处于同样的境地。 - SullX
1
对于C/C++模式,我使用手动调用的自动完成(ac-auto-start等于nil)。关于评论的第一部分 - 我认为可以扩展 ac-semantic 以从Semantic获取更多信息并将其公开为文档 - ac-mode具有相应的功能,但不是所有源都实现了它... - Alex Ott

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接