您的位置:首页 > 其它

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

2013-08-03 21:02 507 查看
EMACS下 弹出窗口式的 Auto-Complete 自动补全工具简单介绍

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




 





简单介绍一下安装和使用.

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)
再次重启EMACS,然后还是没效果,就手动启动了一下 auto-complete,也就是在emacs 里执行如下命令 :

15
  
:group 'auto-complete)
1
Alt-x auto-complete-mode
这下终于生效了,就是前面的效果图。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: