分类: LINUX
2010-06-28 16:28:56
auto-insert是一个十分有用的功能, 比如我们在写一个C语言的头文 件时, 一般会加入下面的代码
#ifndef XXX_H
#define XXX_H
#endif /* XXX_H */
auto-insert就方便了我们, 不用每次都要手工输入这些代码, 新建 一个头文件时, 它会询问是否要加入这些自动生成的代码, 下面来看一下 auto-insert如何使用
`M-x auto-insert'会根据当前的mode在新建的文 件插入一些预定的文本, 如果想在打开文件时自动插入的话, 将下面的代 码加入~/.emacs中
(add-hook 'find-file-hooks 'auto-insert)
修改`auto-insert-alist'可以定制插入的模板, 可以使用`defint-auto-insert'来加入或者修改 `auto-insert-alist'
变量`auto-insert'用来定制自动插入时的动作类 型
`nil' 什么都不作, 即不执行插入动作
`t'根据auto-insert-alist和当前的 mode执 行对应的插入动作
其他值 同`t', 但是自动插入文本后, 不置 文档修改标志
变量`auto-insert-query'定义自动插入文本前是 否询问, `Non-nil'表示自动插入文本前要询问.
变量`auto-insert-prompt'设定询问的语句, 如 果有%s, 则将被替换为执行插入的条件
变量`auto-insert-directory'设定模板的路径, 注意必须以`/'结尾
下面是一个比价完整的配置
(setq auto-insert t)
(setq auto-insert-query t)
(add-hook 'find-file-hooks 'auto-insert)
(setq auto-insert-directory "~/insert/")
(define-auto-insert '("^build\\.xml\\'" . "Ant编译脚本") "build.xml")
常见问题, auto-insert-directory的值必须以`/'结尾, 否则就不能 正常工作