Next
Previous
Contents
Emacs allows you to hook some actions to any event
(opening of a file, saving, running a new mode, etc).
The autoinsert library uses this feature: when you open a
new file under Emacs, this library inserts, according to the type of the
file, a standard header.
In our case, this standard
header could well be the part declaring
the document type (LinuxDoc), the title, the author, and the date.
I will describe here two ways to insert such a header. You could
insert a template file containing the information to insert, or you could run
an elisp routine.
by inserting a file
You must first tell Emacs to run the auto-insert when
opening a file, then to read the autoinsert library which
declares the auto-insert-alist list which we need to change. This
list defines the header to insert for each file type. By default, the
file to insert must be in the ~/insert/ directory, but it is
possible to redefine the auto-insert-directory variable
if you want to put it somewhere else.
Add the following lines to your .emacs file to insert the
~/emacs/sgml-insert.sgml file each time you open a new SGML
file:
(add-hook 'find-file-hooks 'auto-insert)
(load-library "autoinsert")
(setq auto-insert-directory "~/emacs/")
(setq auto-insert-alist
(append '((sgml-mode . "sgml-insert.sgml"))
auto-insert-alist))
You can then write in the ~/emacs/sgml-insert.sgml file
your customised header, then re-run Emacs and open some
foobar.sgml file. Emacs should ask you to confirm the automatic
insertion, and if you answer yes, insert your header.
by running a routine
This works like before, but instead of setting the
auto-insert-alist to a file to insert, you need to set it to a
function to execute. This is how to proceed, taking for granted you want
to write this function in a file named ~/emacs/sgml-header.el .
(there's no need to burden your .emacs file with such a
function, as it may turn out to be quite long):
(add-hook 'find-file-hooks 'auto-insert)
(load-library "autoinsert")
(add-to-list 'load-path "~/emacs")
(load-library "sgml-header")
(setq auto-insert-alist
(append '(((sgml-mode . "SGML Mode") . insert-sgml-header))
auto-insert-alist))
You will find in
appendix an
example of insert-sgml-header function.
Next
Previous
Contents
|