emacs配置c代码补全整理,太辛酸鸟~~

参考文章

1、http://blog.csdn.net/cherylnatsu/article/details/7670445

2、http://blog.csdn.net/hengrjgc/article/details/43231327

3、http://blog.csdn.net/booirror/article/details/8120896

经过了几天的折腾终于把emacs中C语言的智能代码提示功能完成了。

第一部下载主要插件

llvm

clang

popup.el

cl-lib.el (这个还没用到)

auto-complete-clang

auto-complete

yasnippet

其中llvm,clang在ubuntu下直接用sudo apt install 命令安装即可

popup.el https://github.com/auto-complete/popup-el/

cl-lib.el https://github.com/emacs-mirror/emacs/blob/master/lisp/emacs-lisp/cl-lib.el

auto-complete https://github.com/auto-complete/auto-complete

auto-complete-clang https://github.com/brianjcj/auto-complete-clang

yasnippet https://github.com/joaotavora/yasnippet

git@gitee.com:auto-complete/popup-el.git

git@gitee.com:auto-complete/auto-complete.git

git@gitee.com:brianjcj/auto-complete-clang.git

git@gitee.com:joaotavora/yasnippet.git

把这些文件git clone 到 ~/.emacs.d目录下.

把popup.el (cl-lib.el )复制到auto-complete中。

这一步就是一个巨坑,在这里坑了好长时间,去他妹妹的~~

如果 不把这个文件复制 到那里,会出现各种问题 =w=

通过这个命令找出

 echo "" | g++ -v -x c++ -E -  

/usr/include/c++/5
 /usr/include/i386-linux-gnu/c++/5
 /usr/include/c++/5/backward
 /usr/lib/gcc/i686-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/i686-linux-gnu/5/include-fixed
 /usr/include/i386-linux-gnu
 /usr/include


找出上面需要的文件,可能 与此外不同。

(require 'package)
(add-to-list 'package-archives 
             '("elpy" . "https://jorgenschaefer.github.io/packages/")) 

(package-initialize)
;(elpy-enable)
;;
(global-linum-mode t)
(column-number-mode t)

;;把下面的目录填到与你所下载的文件目录对应好(此句可以删除)

;;加载auto-complete插件
(add-to-list 'load-path "~/.emacs.d/auto-complete")
(require 'auto-complete-config)(ac-config-default)

;;加载yasnippet插件
(add-to-list 'load-path "~/.emacs.d/yasnippet")
(require 'yasnippet)(yas/global-mode 1)

;;加载auto-complete-clang插件
(add-to-list 'load-path "~/.emacs.d/auto-complete-clang")
(require 'auto-complete-clang) 
(setq ac-auto-start t)
(setq ac-quick-help-delay 0.5)
 ;; (ac-set-trigger-key "TAB") 
;; (define-key ac-mode-map [(control tab)] 'auto-complete)
 (define-key ac-mode-map [(control tab)] 'auto-complete)
 (defun my-ac-config () (setq ac-clang-flags (mapcar(lambda (item)(concat "-I" item))
 (split-string " 
/usr/include/c++/5 
/usr/include/i386-linux-gnu/c++/5
/usr/include/c++/5/backward
/usr/lib/gcc/i686-linux-gnu/5/include 
/usr/local/include 
/usr/lib/gcc/i686-linux-gnu/5/include-fixed 
/usr/include/i386-linux-gnu /usr/include 
"))) 
(setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers)) 
(add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup) 
;; (add-hook 'c-mode-common-hook 'ac-cc-mode-setup) 
(add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
(add-hook 'css-mode-hook 'ac-css-mode-setup) 
(add-hook 'auto-complete-mode-hook 'ac-common-setup) 
(global-auto-complete-mode t)) 
(defun my-ac-cc-mode-setup ()
(setq ac-sources (append '(ac-source-clang ac-source-yasnippet) ac-sources))) 
(add-hook 'c-mode-common-hook 'my-ac-cc-mode-setup) 
;; ac-source-gtags 
(my-ac-config) 




编译的话,M+x 运行 shell

之后 就正常的gcc -o a a.c

运行 ./a

git clone git@gitee.com:mengtianwxs/popup-el.git
git clone git@gitee.com:mengtianwxs/yasnippet.git
git clone git@gitee.com:mengtianwxs/auto-complete.git



;;------------------------------------------
;;插件添加
;;-----------------------------------------
;;自动补全
(add-to-list 'load-path "~/.emacs.d/auto-complete/")
(require 'auto-complete-config)
(ac-config-default)

;;添加yasnippet
(add-to-list 'load-path "~/.emacs.d/yasnippet")
(require 'yasnippet)
(yas/global-mode 1)
;;------------------------------------------
;;插件添加结束
;;------------------------------------------
;;use hotkey alt-p RET TAB

(define-key ac-mode-map (kbd "M-p") 'auto-complete)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值