C++技巧:emacs完美的C++的自動(dòng)補(bǔ)全

字號(hào):

1,CVS cedet的最新代碼,1.04代碼補(bǔ)全很慢。
    cvs -z3 -d:pserver:anonymous@cedet.cvs.sourceforge.net:/cvsroot/cedet co -P cedet
    2,命令行運(yùn)行
    touch `find -name "Makefile"`//(注意是左引號(hào))
    make bootstrap
    3,命令行運(yùn)行
    g++ -E -v -P dummy.cpp
    會(huì)找到很多頭文件,dummy.cpp是個(gè)空文件,然后
    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分析結(jié)果文件的存放目錄。注意這個(gè)目錄是要自己建立的。
    (setq semanticdb-default-save-directory
    (expand-file-name "~/.emacs.d/semanticdb"))
    ;;頭文件的查找目錄定義好了,下面對(duì) c-mode 做一些小小的定義:
    (add-hook ’c-mode-common-hook
    ’(lambda()
    (require ’cedet)
    (ede-minor-mode t)
    ;;;;以下3個(gè)按機(jī)器適用的強(qiáng)勁程度排列,最下面的對(duì)機(jī)器需求最低。三選一。
    ;; (semantic-load-enable-gaudy-code-helpers)
    ;; (semantic-load-enable-code-helpers)
    (semantic-load-enable-minimum-features)
    ;;;;這三個(gè)按鍵綁定按個(gè)人喜歡啟用,除了第一個(gè)可以修改成自己喜歡的按鍵之外,考試,大提示另外兩個(gè)都沒(méi)有修改的意義。
    ;;;;反正主要的補(bǔ)全就靠 semantic-complete-analyze-inline了,以后偷摸騙搶都靠它了。
    ;;;;semantic-complete-self-inset也是調(diào)用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-/補(bǔ)全,或者在結(jié)構(gòu)體后輸入.或->也會(huì)有代碼提示出來(lái),非常方便。