Page suivantePage pr�c�denteTable des mati�res

6. Pour aller plus loin

6.1 Insertion automatique d'une ent�te

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.

par l'insertion d'un fichier

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.

par l'ex�cution d'une routine

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.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:31