2010-06-19 13 views
6

CEDET ile Emacs kullanıyorum ve kod tamamlandığında otomatik tamamladım. Aslen CEDET'i kurdum, böylece her seferinde Emacs'de yükler. Emacs: CEDET'i kullanma ve başlatma

Ancak bu oldukça uzun bir zaman aldı, bu yüzden onu yüklemek için akıllı olacağını düşündüm sadece gerekirse, yani - benim durumumda - C++ girerken - Mod.

Yani C++ girerken denir bir lambda orijinal işlevi taşındı - modu:

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

hata vardır, ama şu sorun var: Emacs C girdiğinde ++ - modunu ilk için zaman, kod tamamlama düzgün çalışmıyor. Ama Emacs ikinci kez C++ - moduna girerse, her şey iyi çalışır.

Neyi yanlış yaptığımı bilen var mı?

cevap

8

CEDET başlatması, C ve C++ mod kancalarını kendiliğinden ayarlar. Yüklüyse, aynı kanca çalışırken kanca olur, o zaman çalışmayacak ve ilk tamponunuz başlatılmayacak. Yapabileceğin Ne

başlangıçta yük CEDET, ama sonra C modu kanca kod yardımcıları init. Bu şekilde C++ modu mod-local ile başlayacaktır, ancak kanca çalıştıktan sonra ekstra fonksiyonlar yüklenecektir, bu da işe yarayabilir. Kendim denemedim.

EDE modunun yavaş olmadığını düşünüyorum, bu yüzden init zamanda bunu yapmak muhtemelen iyi.

+0

Cevabınız için teşekkür ederiz. Yani CEDET orijinal C++ - mod-kanca yerine geçer, değil mi? – phimuemue