繁体   English   中英

Emacs:使用和初始化CEDET

[英]Emacs: Using and initializing CEDET

我正在使用带有CEDET的Emacs并自动完成代码完成。 最初我设置了CEDET,因此它每次都会在Emacs上启动。

然而,这花了相当长的时间,所以我认为如果需要加载它会很聪明,即 - 在我的情况下 - 进入C ++时 - 模式。

所以我将原始函数移动到进入C ++模式时调用的lambda

; cscope for c(++) programming (finding symbols, etc.)
(require 'xcscope)

; C++ stuff
(add-hook 'c++-mode-hook
      (lambda ()
        (load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el")
        (global-ede-mode 1) ; enable project management system
        (semantic-load-enable-code-helpers) ; enable prototype help and smart completion
        (require 'auto-complete-config)
        (add-to-list 'ac-dictionary-directories "~/elisp/ac-dict")
        (add-to-list 'ac-sources 'ac-source-semantic)
        (local-set-key (kbd "C-:") 'semantic-ia-complete-symbol-menu) ; set shortcut for auto completion.
        (local-set-key (kbd "C-.") 'ac-complete-semantic)
        (ac-config-default)
        )
      )

没有错误,但我有以下问题:当Emacs第一次进入C ++模式时,代码完成无法正常工作。 但如果Emacs第二次进入C ++模式,一切正常。

有人知道我做错了什么吗?

CEDET初始化设置它自己的C和C ++模式钩子。 如果它在运行相同的钩子时安装它的钩子,那么它将不会运行,并且你的第一个缓冲区将不会被初始化。

你可以做的是在启动时加载CEDET,然后在C模式钩子中初始化代码助手。 这样C ++模式将使用mode-local进行初始化,但是在钩子运行后将安装额外的函数,这样就可以了。 我自己没试过。

我认为EDE模式并不慢,所以在初始化时也可以这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM