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.
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.
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.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |