EMACS下 弹出窗口式的 Auto-Complete 自动补全工具简单介绍

EMACS下 弹出窗口式的 Auto-Complete 自动补全工具简单介绍

auto-complete 是一个很不错的自动补全工具,弹出窗口显示补全列表,比较不错的是自定义的函数,只要在这个编辑缓冲区出现过短语,也会自动识别,下面第一个例子是系统关键字,第二个例子是自定义的关键字:

EMACS下 弹出窗口式的 Auto-Complete 自动补全工具简单介绍_第1张图片

 

EMACS下 弹出窗口式的 Auto-Complete 自动补全工具简单介绍_第2张图片

简单介绍一下安装和使用.
1、下载对应版本
MS WINDOWS系统下载这个 http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.zip
其他LINUX/UNIX/OSX系统下载这个 http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.tar.bz2

2、解压到本地目录,我的解压目录是这个 “F:\Downloads\auto-complete-1.3.1\”

3、在准备安装的位置手工新建一个目录,我新建的目录在这里 “F:\lispbox-0.9\emacs-24.2\lisp\auto-complete-1.3.1\“

4、启动 emacs ,在EMACS里执行安装文件 INSTALL.el  具体操作为在EMACS 启动后输入:

1 Alt+x  load-file
接下来会提示你输入要加载的文件,也就是那个INSTALL.el 文件,记得要带全路径,输入如下:
1 F:\Downloads\auto-complete-1.3.1\etc\instll.el
然后就会提示你输入要安装的目录,输入如下:
1 F:\lispbox-0.9\emacs-24.2\lisp\auto-complete-1.3.1\
一般来说就自动安装成功了,然后EMACS会跳出一个新缓冲区,里面有几行配置代码,需要你拷贝到自己的 EMACS 配置文件中,我的是如下内容:
1 (add-to-list 'load-path "f:/lispbox-0.9/emacs-24.2/lisp/auto-complete-1.3.1/")
2 (require 'auto-complete-config)
3 (add-to-list 'ac-dictionary-directories "f:/lispbox-0.9/emacs-24.2/lisp/auto-complete-1.3.1/ac-dict")
4 (ac-config-default)

把这几行手动拷贝到你的EMACS初始化配置文件中(一般来说都是用户目录下的 .emacs ,不过我的环境是自己组装的 LISPBOX,初始化配置文件是 F:\lispbox-0.9\emacs-24.2\site-lisp\lispbox.el )。

把这几行命令拷贝过去之后,重新启动EMACS,再打开一个编辑缓冲区应该就可以使用 auto-complete 的自动补全功能了,可惜悲催的是它就是没效果,只好再返回去读它的说明文档,然后查看源代码 auto-complete.el,发现没有提供 LISP-MODE 只提供了EMACS-LISP-MODE 和 LISP-INTERACTIVE-MODE ,就自己加了一句 LISP-MODE 。

【小知识】话说EMACS下有3种LISP模式:

第一种是 EMACS-LISP-MODE,就是但凡编辑以 .el  和 .emacs 为后缀的文件,以及文件名为 _emacs 的文件都会自动启动EMACS-LISP-MODE;
第二种是 LISP-MODE,所有以 .lisp 或 .l  或 .lsp 或 .ml 为后缀的文件,都会对应到 LISP-MODE,这种模式就是开发LISP程序要用到的;
最后一种是 LISP-INTERACTIVE-MODE ,就是LISP 交互模式。

修改的代码如下:

01 (defcustom ac-modes
02   '(emacs-lisp-mode
03     lisp-mode
04     lisp-interaction-mode
05     c-mode cc-mode c++-mode
06     java-mode clojure-mode scala-mode
07     scheme-mode
08     ocaml-mode tuareg-mode
09     perl-mode cperl-mode python-mode ruby-mode
10     ecmascript-mode javascript-mode js-mode js2-mode php-mode css-mode
11     makefile-mode sh-mode fortran-mode f90-mode ada-mode
12     xml-mode sgml-mode)
13   "Major modes `auto-complete-mode' can run on."
14   :type '(repeat symbol)
15   :group 'auto-complete)

再次重启EMACS,然后还是没效果,就手动启动了一下 auto-complete,也就是在emacs 里执行如下命令 :
1 Alt-x auto-complete-mode
这下终于生效了,就是前面的效果图。

你可能感兴趣的:(Emacs+Lisp)