【问题标题】:Autocompletion from the keyboard in Emacs CEDET/semantic从 Emacs CEDET/语义中的键盘自动完成
【发布时间】:2012-10-09 02:18:36
【问题描述】:

查看 CEDET 语义 (fresh version from the Bazaar repository) 中完成的不同方法,我发现我有以下选项(his config file 中 Alex Ott 建议的键盘绑定)

  • 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) 打开一个菜单,我可以在其中选择不同的选项,但据我所知,它需要我使用鼠标(我试过 Cn, Cp, Mn, Mp 导航菜单失败)。

另一方面 (semantic-ia-complete-symbol) 打开另一个带有选项的缓冲区。我也可以使用鼠标来选择所需的自动完成,但我想改用键盘。

此外,在 CEDET 的早期版本中,有一个变量 (semantic-complete-inline-analyzer-displayor-class) 允许我在多个自动完成选项之间进行选择(例如 (semantic-displayor-ghost),或者作为 工具提示的更优雅的叠加层),但这个变量似乎不存在了。

如果重要的话,我主要使用 C++ 文件。

更新:

似乎允许我循环自动完成的唯一方法是 Cc , space (semantic-complete-analyze-inline),我可以在其中使用 TAB 来自动完成,但它没有'不显示可供我选择的可能自动完成的菜单

【问题讨论】:

  • 你可能希望看看自动完成 + gtags/clang。如果您想使用来自 git 的绝对最新版本 1.4,它目前有一些粗糙的边缘,但它可以满足您在此处要求的开箱即用。至于问题,请尝试描述一些键盘映射,也许您需要使用 C-n/C-p 在菜单中导航而不是光标键(也可以尝试 M-n/M-p)。

标签: emacs autocomplete cedet


【解决方案1】:

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

【讨论】:

  • 我已将自动完成配置为与 CEDET 一起使用,但它提供的信息不如“semantic-ia-complete-symbol”(即成员函数采用的参数数量等) )。此外,自动完成的菜单会在找到可以完成的内容时打开,而不仅仅是 CEDET 等已解析的类对象。在声明某些内容后尝试向下箭头浏览文件时非常烦人,而不是光标移动,而是弹出自动完成。我已经尝试了很多方法来解决这两个问题,但都没有运气。在我弄清楚这些之前,我和 OP 的情况一样。
  • 对于 C/C++ 模式,我使用手动调用的自动完成(ac-auto-start 等于 nil)。关于评论的第一部分 - 我认为,可以扩展 ac-semantic 以从语义获取更多信息并将其公开为文档 - ac-mode 具有相应的功能,但并非所有来源都实现它...
猜你喜欢
  • 2014-08-08
  • 1970-01-01
  • 2011-05-03
  • 2011-05-04
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多