我正在尝试在emacs 23中使用cedet 1.1。据我所知,我已经安装了它,当我加载emacs时,它会加载cedet,但是我正在将emacs与-nw选项一起使用。当我键入。或->我没有完成任何代码。 (C ++文件,位于std :: vector对象上)。例如,当我键入:

vec_map.


要么

vec_map->


什么都不做,其中vec_map是std :: vector的实例。

我假设它可以在emacs的命令行版本中完成代码。

另外,我的.emacs文件是(并且加载得很好):

(load-file "~/cedet-1.1/common/cedet.el")
(global-ede-mode 1)                      ; Enable the Project management system
(semantic-load-enable-code-helpers)      ; Enable prototype help and smart completion
(global-srecode-minor-mode 1)            ; Enable template insertion menu

最佳答案

默认情况下,应通过semantic-ia-complete-symbol-menusemantic-ia-complete-symbol命令显式调用CEDET中的自动完成功能,或者应通过以下方式在自动插入时配置完成功能:

(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)


但是正如评论中提到的那样,最好从bzr中获取最新的Emacs和/或CEDET-自1.1版本以来已修复了许多错误。

10-08 01:12