私は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)
)
)
エラーはありませんが、次の問題があります。Emacsが初めてC ++モードに入ると、コードの完了が正しく機能しません。しかし、Emacsが2回目にC ++モードに入ると、すべてが正常に機能します。
誰かが私が間違っていることを知っていますか?