file-template插件用法入门

写代码新建文件的时候,常常需要敲入一些固定的代码。比如我新建一个Node.js的源文件后,第一行写入的内容经常是

'use strict';

通过编辑器的模板功能,可以免去这些重复的输入。Emacs有不少插件可以实现模板的功能,file-template正是其中一款。

下载与安装

file-template无法使用Emacs的package-install命令安装,需要到这个页面下载,示例代码为

wget 'http://www.emacswiki.org/emacs/download/file-template.el'

假设下载后的文件绝对路径为/path/to/file-template.el,可以在Emacs配置中添加下列代码安装该插件

(load-file "/path/to/file-template.el")

配置

file-template支持定制,示例代码如下

(autoload 'file-template-auto-insert "file-template" nil t)
(setq file-template-insert-automatically 'ask)
(autoload 'file-template-find-file-not-found-hook "file-template" nil t)
(add-hook 'find-file-not-found-hooks 'file-template-find-file-not-found-hook 'append)

file-template-insert-automatically变量控制着创建新文件时向其中写入模板文件内容的行为,设置为'ask意味着在创建新文件时询问用户。

此外还需要配置新建的文件名模式与相应的模板文件的映射关系,可以通过修改file-template-mapping-alist变量来实现。

以创建org文件的模板为例。我先编写了如下内容

#+STARTUP: indent
#+STARTUP: showall

并保存到了路径为/path/to/template.org的文件中。使用ELisp提供的add-to-list函数可以方便地往列表中添加元素,示例代码如下

(add-to-list 'file-template-mapping-alist
             '("\\.org$" . "/path/to/template.org"))

全文完