| L | M | M | J | V | S | D |
| 28 | 29 | 30 | 31 | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Pas d'événements |
| Petites fonctions pour Mew |
|
|
|
| Écrit par Patrick Percot | |||||||
| 03-01-2004 | |||||||
|
Bonjour, et bonne année, Depuis quelques jours, je suis passé à Mew mew. Pas mal ... [1] Mew est un client mail. Ça signifie Messaging in the Emacs World, mais, l’acronyme est juste une excuse pour trouver une signification à ce qui doit se prononcer comme un miaulement de chat. Je lui ai ajouté quelques menues fonctionnalités de mon cru. Ce code sert à supprimer des lignes dans un message auquel on répond, en laissant l’indication du nombre de lignes supprimées. Il suffit de copier le fichier joint dans votre .mew.el. Toutes les fonctions et variables sont préfixées par pp- (j’utilise ce préfixe pour mes petites adaptations personnelles). Il y a une fonction pour supprimer la région sélectionnée (s-e), et une fonction pour supprimer le texte de la position courante jusqu’à la signature(s-z). Cette dernière, si elle est évaluée avec un paramètre (C-u s-z, ne laisse pas d’indication sur la quantité de texte supprimé. Les local-set-key définissent s-z et s-e comme séquences de touches pour les deux fonctions. Comme je suis sous Linux, l’habituellement très inutile [2] touche "Win" me sert de touche super. Pour les utilisateurs qui sont sous Win, il faudra trouver une autre combinaison. Comme je suis un peu fainéant, et que je fais ajouter à Mew automatiquement, par ailleurs, quelques mots devant la signature, ce code recherche ces quelques mots (A+ PP) pour éviter de les supprimer. Mais on peut remplacer :
(setq pp-pre-signature "A+\nPP\n") (setq pp-pre-signature-re "^A\\+\nPP\n")
par :
(setq pp-pre-signature "\n") (setq pp-pre-signature-re "^\n")
ceci impose toutefois d’avoir une ligne vide avant la signature. S’il n’y en a pas, il y a de fortes chances qu’il remonte au début du message, et dans ce cas, vous aurez une valeur négative dans le nombre de caractères supprimés. Cela mériterait sans doute une amélioration :) Voici le code à ajouter dans .mew.el :
;; Signature (setq pp-pre-signature "A+\nPP\n") (setq pp-pre-signature-re "^A\\+\nPP\n") (setq pp-signature-separator "^-- *$") (defun pp-message-zap-region (nbl nbc) (insert (format "\n[..Zappé %d lignes et %d caractères..]\n\n" nbl nbc))) (defun pp-message-kill-to-signature (prefix) "Kills text up to the signature." (interactive "P") (let ((deb (point))) (if (and (re-search-forward pp-signature-separator nil t) (re-search-backward pp-pre-signature-re nil t)) (let ((nbl (count-lines deb (point))) (nbc (- (point) deb))) (delete-region deb (point)) (if prefix (insert "\n") (pp-message-zap-region nbl nbc)))))) (defun pp-message-elide-region (deb end) "Elides the region." (interactive "r") (let ((nbl (count-lines deb end)) (nbc (- end deb))) (delete-region deb end) (pp-message-zap-region nbl nbc))) (add-hook 'mew-draft-mode-hook (function (lambda () (local-set-key [?\s-z] 'pp-message-kill-to-signature) (local-set-key [?\s-e] 'pp-message-elide-region))))
[1] Cet article est également publié sur emacsfr [2] sur mon clavier, son degré d’usure est supérieur à celui de la touche AltGr. gnus-func.el.gz - Les mêmes fonctions pour Gnus, avec quelques subtiles différences.
Powered by !JoomlaComment 3.21
3.21 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
|||||||
| < Précédent | Suivant > |
|---|