我正在使用 Emacs 和 CEDET 并自动完成代码完成。最初我设置了 CEDET,所以它每次在 Emacs 启动时加载。
但是,这花了很长时间,所以我认为在需要时加载它会很聪明,即 - 在我的情况下 - 在进入 C++ 模式时。
因此,我将原始函数移到了lambda
进入 C++ 模式时调用的函数中:
; 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++-mode时,代码补全不能正常工作。但如果 Emacs 第二次进入 C++ 模式,一切正常。
有人知道我做错了什么吗?