免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 935 | 回复: 0
打印 上一主题 下一主题

使用 template.el 为文件创建默认模 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-22 20:39 |只看该作者 |倒序浏览
使用简介
template.el
可以让你在创建文件的时候为不同类型的文件指定初始化模板,模板可以包含普通文本以及动态扩展的域。例如,你可以在 ~/.templates/ 目录下包含一个 TEMPLATE.h.tpl 文件:
/* author: (>>>USER_NAME>>ISO_DATE>>FILE_UPCASE>>FILE_UPCASE>>POINT>>FILE_UPCASE
那些 (>>>USER_NAMEtemplate-expansion-alist 来定义自己的域。
template.el 查找模板的方式非常智能,让用户可以为不同的工程、不同类型的文件甚至是某一个特殊的文件指定不同的模板,文档里面有一个例子:
  • 你有一个工程目录 ~/proj/ 以及子目录 foo/ 和 bar/ ,他们都包含 .java类型的文件。
  • 你想为工程里面的 .java 文件定义一个一般的模板,同时,为子目录 foo/里面的 .java 文件定义另外一个模板。你还想为工程里面的所有文件名为proj.java 的文件定义一个单独的模板。
  • 为了避免让模板文件把你的工程目录搞得一团糟,你首先创建一个~/proj/Templates/ 目录,并把一般模板的 TEMPLATE.java.tpl 和proj.java.tpl 放到这里面。同时,在 ~/proj/foo/ 目录里面创建用于这个子目录的模板文件 TEMPLATE.java.tpl 。

template.el 还有其他功能,详细可以参见他的文档。
和 ido 一类的包协同工作如果使用 ido 的话,会发现用 ido 的 ido-find-file 来打开文件并不会触发模板扩展,查看文档可以看出,应该修改一下 template-find-file-commands 。可是把 ido-find-file 加到里面并不管用,查看了一下 template 的源代码可以发现,template.el 工作的方式大概是这样的,他通过加入 hook 到find-file-not-found-hooks (事实上,这个变量已经在版本 22.1 里面不鼓励使用了,取而代之的是 find-file-not-found-functions) ,在新建一个文件的时候他提供的 hook 将会被调用,这个时候他判断 this-command ,看他是否在变量 template-find-file-commands 里面,如果在里面,那么就会执行 template的相应工作了。而我跟踪发现 `ido-find-file' 执行之后 this-command 的值事实上是 ido-exit-minibuffer ,因此这儿必须这样设置才会生效:
(add-to-list 'template-find-file-commands
         'ido-exit-minibuffer)
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18458/showart_144343.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP