Emacs C++智能提示

Jouen 2011-09-18

Emacs中的C++程序智能提示是个不容易的活。我使用的是auto-completion插件。该插件依赖clang编译器进行代码分析,当然还依赖其他的emacs插件。下面是我的Emacs配置文件。

  1. ;;------------------------------------------------------------------------------  
  2. ;; auto complete  
  3. ;;------------------------------------------------------------------------------  
  4. ;;(load-file (expand-file-name "/opt/emacs_plugins/c++/auto-complete-1.3.1")  
  5. ;;(add-to-list 'load-path "/opt")  
  6. ;;(require 'auto-complete-config)  
  7. ;;(add-to-list 'ac-dictionary-directories "/opt/ac-dict")  
  8. ;;(ac-config-default)  
  9. (add-to-list 'load-path "/opt/emacs_plugins/c++/auto-complete-1.3.1")  
  10. (require 'auto-complete-config)  
  11. (add-to-list 'ac-dictionary-directories "/opt/ac-dict")  
  12.   
  13.   
  14.   
  15.   
  16. ;;------------------------------------------------------------------------------  
  17. ;; yasnippet  
  18. ;;------------------------------------------------------------------------------  
  19. ;;sudo apt-get install yasnippet  
  20. (add-to-list 'load-path "/opt/emacs_plugins/c++")  
  21. (add-to-list 'ac-dictionary-directories "/opt/emacs_plugins/c++")  
  22. (require 'yasnippet-bundle)  
  23.   
  24.   
  25.   
  26.   
  27. ;;------------------------------------------------------------------------------  
  28. ;; clang for c++  
  29. ;;------------------------------------------------------------------------------  
  30. (load-file "/opt/emacs_plugins/c++/brianjcj-auto-complete-clang-9db79f4/auto-complete-clang.el")  
  31. (require 'auto-complete-clang)  
  32. (setq ac-auto-start nil)  
  33. (setq ac-quick-help-delay 0.5)  
  34. (define-key ac-mode-map  [(control tab)] 'auto-complete)  
  35. (defun my-ac-config ()  
  36.   (setq ac-clang-flags (split-string "-I/usr/local/gcc-4.6.1/include/c++/4.6.1 -I/usr/src/boost_1_47_0"))  
  37.   (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))  
  38.   (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)  
  39.   ;;(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)  
  40.   (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)  
  41.   (add-hook 'css-mode-hook 'ac-css-mode-setup)  
  42.   (add-hook 'auto-complete-mode-hook 'ac-common-setup)  
  43.   (global-auto-complete-mode t))  
  44. (defun my-ac-cc-mode-setup ()  
  45.   (setq ac-sources (append '(ac-source-clang ac-source-yasnippet) ac-sources)))  
  46. (add-hook 'c-mode-common-hook 'my-ac-cc-mode-setup)  
  47. ;; ac-source-gtags  
  48. (my-ac-config)  

需要提示的时候,就按下Ctrl+Tab键。

相关推荐