[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[HS] Typographie française et Emacs, le cadeau de fin d'année avec le mode po...



Salut,

J'ai enfin réussi - avec l'aide acharnée de fcae - à intégrer « mes »
macros sur la typographie française au mode po (qui est à peine
utilisé ici ;-)).

Voici une solution :

;; redéfinition des touches

(defun my-french-guill ()
  "Insère une paire de guillemets"
  (interactive)
  (insert "«  »");<-- deux espaces insécables
  (backward-char 2))

(defun my-point-interrogation ()
  "Insère un point d'interrogation précédé d'une espace insécable"
  (interactive)
  (if (eq (char-before) ?\ ) ; si espace classique
      (progn
	(backward-delete-char 1)
	(insert " ?"));<-- 1 espace insécable
    (insert " ?")));<-- itou

(defun my-point-exclamation ()
  (interactive)
  (if (eq (char-before) ?\ ) ; si espace classique
      (progn
	(backward-delete-char 1)
	(insert " !"));<-- 1 espace insécable
  (insert " !")));<-- itou

(defun my-double-point ()
  (interactive)
  (if (eq (char-before) ?\ ) ; si espace classique
      (progn
	(backward-delete-char 1)
	(insert " :"));<-- 1 espace insécable
  (insert " :")));<-- itou

(defun my-point-virgule ()
  (interactive)
  (if (eq (char-before) ?\ ) ; si espace classique
      (progn
	(backward-delete-char 1)
	(insert " ;"));<-- 1 espace insécable
  (insert " ;")));<-- itou

(defun my-double-parenthese ()
  (interactive)
  (insert "()")
  (backward-char 1))

(defun my-double-crochet ()
  (interactive)
  (insert "[]")
  (backward-char 1))

(defun my-double-accolade ()
  (interactive)
  (insert "{}")
  (backward-char 1))

(defun my-double-keys ()
  "Touches spécifiques"
  (interactive)
  ;; [...]
  (setq skeleton-pair t)
  (local-set-key "$" 'skeleton-pair-insert-maybe)
  (local-set-key "{" 'my-double-accolade)
  (local-set-key "(" 'my-double-parenthese)
  (local-set-key "[" 'my-double-crochet)
  (local-set-key "?" 'my-point-interrogation)  
  (local-set-key "!" 'my-point-exclamation)
  (local-set-key ":" 'my-double-point)
  (local-set-key ";" 'my-point-virgule)
  (local-set-key 'guillemotleft 'my-french-guill))
; pour Emacs
;  (local-set-key "\253" 'my-french-guill))

(add-hook 'text-mode-hook 'my-double-keys)
(add-hook 'po-subedit-mode-hook 'my-double-keys)

La différence avec la dernière fois réside dans le fait que la
définition des touches ne dépend plus du tout d'un mode (avant,
define-key text-mode-map demandait comme prérequis le mode texte,
maintenant un local-set-key s'en affranchit).

Voilà, en conclusion, joyeuse fête avec ce nouveau joujou (et en
conclusion perso, la doc de Emacs est joyeusement le bordel).

Bonne année,

PK

-- 
      |\      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:p.karatchentzeff@free.fr
     |,4-  ) )-,_. ,\ (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'\_)       



Reply to: