Sous Emacs, il est possible d'accrocher des actions � chaque �v�nement (ouverture d'un fichier, sauvegarde, lancement d'un mode, etc).
La biblioth�que autoinsert utilise cette fonctionnalit� : lorsque vous ouvrez un nouveau fichier sous Emacs, cette biblioth�que ins�re, selon le type de ce fichier, une ent�te standard.
Dans notre cas, cette ent�te standard pourrait bien �tre la partie qui d�clare le type de document (LinuxDoc), le titre, l'auteur et la date.
Je vais d�crire ici deux fa�ons d'ins�rer une telle ent�te. Soit en ins�rant un fichier que vous aurez pr�alablement �crit, soit en lan�ant une routine �crite en elisp.
Il faut tout d'abord pr�ciser � Emacs d'ex�cuter la commande
auto-insert
� l'ouverture d'un fichier, puis lire la biblioth�que
autoinsert qui d�clare la liste auto-insert-alist
qu'il
nous faut modifier, cette derni�re d�finissant pour chaque type de fichier
l'ent�te � ins�rer. Le fichier � ins�rer doit par d�faut se trouver dans le
r�pertoire ~/insert/
, mais il est possible de red�finir la variable
auto-insert-directory
si l'on veut le placer ailleurs.
Voici les lignes � rajouter � votre .emacs
pour ins�rer le fichier
~/emacs/sgml-insert.sgml
� l'ouverture d'un nouveau fichier
SGML :
(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))
Vous pouvez alors �crire dans le fichier ~/emacs/sgml-insert.sgml
votre ent�te personnalis�e, puis relancer Emacs et ouvrir un fichier
toto.sgml
. Emacs devrait alors vous demander de confirmer
l'insertion automatique, et dans l'affirmative ins�rer votre ent�te.
Cela fonctionne un peu comme pr�c�demment, mais au lieu de pr�ciser dans la
variable auto-insert-alist
un fichier � ins�rer, il faut pr�ciser
une fonction � ex�cuter. Voici comment proc�der, en supposant que l'on
�crive cette fonction dans un fichier ~/emacs/sgml-header.el
(inutile d'encombrer votre .emacs
avec cette fonction qui peut se r�v�ler
assez longue) :
(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))
Vous pourrez trouver en
appendice un
exemple de cette fonction insert-sgml-header
.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31