emacs完美的C++的自动补全

1,CVS cedet的最新代码,1.04代码补全很慢。
    
  1. cvs -z3 -d:pserver:[email protected]:/cvsroot/cedet co -P cedet
 
2,命令行运行
  1. touch `find -name "Makefile"`//(注意是左引号)
  2. make bootstrap
3,命令行运行
  1. g++ -E -v -P dummy.cpp
会找到很多头文件, dummy.cpp是个空文件,然后

4,在.emacs加入
  1. (eval-after-load "semantic-c" ;;e:/emacs/home 是我的 $HOME
  2. '(dolist (d (list "/usr/include/c++/4.1.0"
  3.  "/usr/include/c++/4.1.0/x86_64-suse-linux"
  4.  "/usr/include/c++/4.1.0/backward"
  5.  "/usr/local/include"
  6.  "/usr/lib64/gcc/x86_64-suse-linux/4.1.0/include"
  7.  "/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/include"
  8.  "/usr/include"
  9. ))
  10. (semantic-add-system-include d)))
  11. ;;下面配置一下semantic分析结果文件的存放目录。注意这个目录是要自己建立的。
  12. (setq semanticdb-default-save-directory
  13. (expand-file-name "~/.emacs.d/semanticdb"))
  14. ;;头文件的查找目录定义好了,下面对 c-mode 做一些小小的定义:
  15. (add-hook 'c-mode-common-hook
  16. '(lambda()
  17. (require 'cedet)
  18. (ede-minor-mode t)
  19. ;;;;以下3个按机器适用的强劲程度排列,最下面的对机器需求最低。三选一。
  20. ;; (semantic-load-enable-gaudy-code-helpers)
  21. ;; (semantic-load-enable-code-helpers)
  22. (semantic-load-enable-minimum-features)
  23. ;;;;这三个按键绑定按个人喜欢启用,除了第一个可以修改成自己喜欢的按键之外,另外两个都没有修改的意义。
  24. ;;;;反正主要的补全就靠 semantic-complete-analyze-inline了,以后偷摸骗抢都靠它了。
  25. ;;;;semantic-complete-self-inset也是调用semantic-complete-analyze-inline的。
  26. (local-set-key (kbd "M-/") 'semantic-complete-analyze-inline)
  27. (local-set-key "." 'semantic-complete-self-insert)
  28. (local-set-key ">" 'semantic-complete-self-insert)
  29. (c-toggle-auto-hungry-state 1)
  30. (c-set-style "K&R")))


OK,在代码中可以尝试一下了。M-/补全,或者在结构体后输入.或->也会有代码提示出来,非常方便




参考文档:
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=vim&Number=687565&page=0&view=collapsed&sb=5&o=0&fpart=

你可能感兴趣的:(c/c++)