自從将 <CTRL> 與 <CAPS> 按鍵調換後,控 emacs 的心又回來了。再也不用 vim 小打小鬧了。
auto-complete本身就是一款在 emacs 下非常強大的代碼補全插件,可是受不了 cedet 的補全速度,隻能幹着急。衆裡尋她千百度,重要找到了一款在 emacs 下相當不錯的代碼補全插件,auto-compete-clang,速度快,配置簡單,提示優美~
如下圖
很漂亮吧~
貼一份 .emacs 檔案吧
;; 開啟 auto-complete
(add-to-list 'load-path "~/.emacs.d/el-get/auto-complete/")
(require 'auto-complete)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/el-get/auto-complete/ac-dict/")
(add-to-list 'ac-user-dictionary-files "~/.emacs.d/el-get/auto-complete/dict/guotf.dict")
(require 'auto-complete-config)
;; 結束
;; 開啟 auto-complete-clang
(add-to-list 'load-path "~/.emacs.d/el-get/auto-complete-clang/")
(require 'auto-complete-clang)
;;(setq ac-clang-auto-save t)
;; 設定不自動啟動
(setq ac-auto-start nil)
;; 設定響應時間 0.5
(setq ac-quick-help-delay 0.5)
;;(ac-set-trigger-key "TAB")
;;(define-key ac-mode-map [(control tab)] 'auto-complete)
;; 提示快捷鍵為 M-/
(define-key ac-mode-map (kbd "M-/") 'auto-complete)
(defun my-ac-config ()
(setq ac-clang-flags
(mapcar(lambda (item)(concat "-I" item))
(split-string
"
/usr/include/c++/4.6
/usr/include/c++/4.6/i686-linux-gnu/.
/usr/include/c++/4.6/backward
/usr/lib/gcc/i686-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
/usr/include/i386-linux-gnu
/usr/include
"
)))
(setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
(add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
(add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
(add-hook 'css-mode-hook 'ac-css-mode-setup)
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
(global-auto-complete-mode t))
(defun my-ac-cc-mode-setup ()
(setq ac-sources (append '(ac-source-clang ac-source-yasnippet) ac-sources)))
(add-hook 'c-mode-common-hook 'my-ac-cc-mode-setup)
;; ac-source-gtags
(my-ac-config)
(ac-config-default)
;; 結束
詳細的配置方式還是自己摸索比較好!可以參考一下兩篇
這裡 、還有這裡