Ich verwende Emacs mit CEDET und Auto-Vervollständigen für die Code-Vervollständigung. Ursprünglich habe ich CEDET aufgebaut, damit es bei Emacs jedes Mal hochfährt.Emacs: Verwenden und Initialisieren von CEDET
Das dauerte allerdings ziemlich lange, daher dachte ich, es wäre schlau, es nur bei Bedarf zu laden, d. H. In meinem Fall in den C++ - Modus.
Also zog ich die ursprüngliche Funktion in eine lambda
, dass bei der Eingabe von C++ genannt wird - Modus:
; 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)
)
)
Es gibt keine Fehler, aber ich habe folgendes Problem: Wenn Emacs C tritt ++ - Modus für die erste Zeit, Code-Vervollständigung funktioniert nicht richtig. Aber wenn Emacs zum zweiten Mal in den C++ - Modus wechselt, funktioniert alles gut.
Weiß jemand, was ich falsch mache?
Vielen Dank für die Antwort. Also ersetzt CEDET den ursprünglichen C++ - Mode-Hook, oder? – phimuemue