先安装emacs (>24) ubuntu默认是23版本的,会缺少cl-lib
yasnippet是一个代码片段补全工具,可以用来补全大段的常用的代码片段
auto-complete是一个补全的前端,可以与许多补齐的后端工具配合
首先安装yasnippet,由于是装最新的build版本,所以先clone它到~/.emacs.d/plugins/中去,如果没有.emacs.d文件夹,那么先自己创建一个(mkdir .emacs.d),输入以下命令:
- cd ~/.emacs.d/plugins
- git clone https://github.com/capitaomorte/yasnippet.git
然后再到配置文件中加入下面内容:
- (add-to-list 'load-path
- "~/.emacs.d/plugins/yasnippet")
- (require 'yasnippet)
- (yas/global-mode 1)
再安装auto-complete,auto-complete需要先编译,与前面类似,先clone到本地:
- cd ~/.emacs.d/plugins
- git clone https://github.com/auto-complete/auto-complete.git
- emacs -batch -l etc/install.el #(要选择安装路径,不能和当前路径重复了)
- 安装成功后在配置文件中加入如下几行
- (add-to-list 'load-path "~/.emacs.d") ; This may not be appeared if you have already added.
- (require 'auto-complete-config)
- (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
- (ac-config-default)
出现没有popup的错误,安装popup
git clone https://github.com/auto-complete/popup-el 下载以后取其下popup.el放入~/.emacs.d/plugins/
更改.emacs,添加(popup.el在plugins目录下,require后面是popup.el的前缀,参考这里)
(add-to-list 'load-path "~/.emacs.d/plugins")
(require 'popup)
这些东西弄好后,会有一个问题,就是自动补全只能补全c或者c++的关键字或者你已经在buffer中输入过的东西(可能描述不是很清楚,总之用了就知道,补全不是你想要的效果)。那么怎么办呢?其实这是因为auto-complete只是一个补全前端,你可以自己再安装一个补全后端,以达到理想的补齐效果,比较出名的后端补齐有cedet中的semantics,不过它速度好像比较慢,所以就没有使用。还有gccsence,gccsence弄了很久也没弄好,而且gccsence不能马上补齐,因为他是基于gcc一些编译的信息,所以要使用补全功能,必须先编译一次代码,所以也不是我想要的效果。于是换另外一个叫做auto-complete-clang的,不过auto-complete-calng的话,按照官方的文档设置,总是出现问题不能补全,可能和最新版本的auto-complete不兼容吧。后来发现了另外一个补齐工具,是基于auto-complete-clang的
下载地址,https://github.com/brianjcj/auto-complete-clang
将auto-complete-clang.el复制到plugins下,配置路径
(add-to-list 'load-path "~/.emacs.d/plugins")