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

Emacseries pour typo française



Ci-joint le boulot de Patrice, remis en forme dans un fichier Lisp. Y
compris la gestion du point-virgule.....

Objectif : aider à mieux entrer la bonne typo française quand on tape
du texte. 

Le fichier joint met cela en service pour le mode texte simple et pour
le mode "post".

-- 
Christian Perrier
Debian geneweb and lifelines packages maintainer


;;========================================================================
;; redéfinition des touches
;;From: Patrice Karatchentzeff <p.karatchentzeff@free.fr>
;;Date: Wed, 30 Apr 2003 16:28:55 +0200
;;To: debian-l10n-french@lists.debian.org

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

(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-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-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)
  (define-key text-mode-map "$" 'skeleton-pair-insert-maybe)
  (define-key text-mode-map ";" 'my-point-virgule)
  (define-key text-mode-map "{" 'my-double-accolade)
  (define-key text-mode-map "(" 'my-double-parenthese)
  (define-key text-mode-map "[" 'my-double-crochet)
  (define-key text-mode-map "?" 'my-point-interrogation)  
  (define-key text-mode-map "!" 'my-point-exclamation)
  (define-key text-mode-map ":" 'my-double-point)
  (define-key text-mode-map 'guillemotleft 'my-french-guill))

(add-hook 'text-mode-hook 'my-double-keys)
(add-hook 'post-mode-hook 'my-double-keys)
;;========================================================================

Reply to: