Welcome 微信登录

首页 / 操作系统 / Linux / Emacs C++智能提示

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键。