phi*_*mue 6 emacs hook elisp cedet
我正在使用带有CEDET的Emacs并自动完成代码完成.最初我设置了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)
)
)
Run Code Online (Sandbox Code Playgroud)
没有错误,但我有以下问题:当Emacs第一次进入C++模式时,代码完成无法正常工作.但如果Emacs第二次进入C++模式,一切正常.
有人知道我做错了什么吗?
CEDET初始化设置它自己的C和C++模式钩子.如果它在运行相同的钩子时安装它的钩子,那么它将不会运行,并且你的第一个缓冲区将不会被初始化.
你可以做的是在启动时加载CEDET,然后在C模式钩子中初始化代码助手.这样C++模式将使用mode-local进行初始化,但是在钩子运行后将安装额外的函数,这样就可以了.我自己没试过.
我认为EDE模式并不慢,所以在初始化时也可以这样做.
| 归档时间: |
|
| 查看次数: |
1616 次 |
| 最近记录: |