emacs完美的C++的自动补全
来源:优易学  2011-12-22 19:26:02   【优易学:中国教育考试门户网】   资料下载   IT书店
  1,CVS cedet的最新代码,1.04代码补全很慢。
  cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P cedet
  2,命令行运行
  touch `find -name "Makefile"`//(注意是左引号)
  make bootstrap
  3,命令行运行
  g++ -E -v -P dummy.cpp
  会找到很多头文件,dummy.cpp是个空文件,然后
  4,在.emacs加入
  (eval-after-load "semantic-c" ;;e:/emacs/home 是我的 $HOME
  ’(dolist (d (list "/usr/include/c++/4.1.0"
  "/usr/include/c++/4.1.0/x86_64-suse-linux"
  "/usr/include/c++/4.1.0/backward"
  "/usr/local/include"
  "/usr/lib64/gcc/x86_64-suse-linux/4.1.0/include"
  "/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/include"
  "/usr/include"
  ))
  (semantic-add-system-include d)))
  ;;下面配置一下semantic分析结果文件的存放目录。注意这个目录是要自己建立的。
  (setq semanticdb-default-save-directory
  (expand-file-name "~/.emacs.d/semanticdb"))
  ;;头文件的查找目录定义好了,下面对 c-mode 做一些小小的定义:
  (add-hook ’c-mode-common-hook
  ’(lambda()
  (require ’cedet)
  (ede-minor-mode t)
  ;;;;以下3个按机器适用的强劲程度排列,最下面的对机器需求最低。三选一。
  ;; (semantic-load-enable-gaudy-code-helpers)
  ;; (semantic-load-enable-code-helpers)
  (semantic-load-enable-minimum-features)
  ;;;;这三个按键绑定按个人喜欢启用,除了第一个可以修改成自己喜欢的按键之外,青年人网提示另外两个都没有修改的意义。
  ;;;;反正主要的补全就靠 semantic-complete-analyze-inline了,以后偷摸骗抢都靠它了。
  ;;;;semantic-complete-self-inset也是调用semantic-complete-analyze-inline的。
  (local-set-key (kbd "M-/") ’semantic-complete-analyze-inline)
  (local-set-key "." ’semantic-complete-self-insert)
  (local-set-key ">" ’semantic-complete-self-insert)
  (c-toggle-auto-hungry-state 1)
  (c-set-style "K&R")))
  OK,在代码中可以尝试一下了。M-/补全,或者在结构体后输入.或->也会有代码提示出来,非常方便。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训