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

Re: [HS] Emacs et les espaces (Re: Espaces doubles après un point)



Frédéric Bothamy écrivait :

[...]

 > Ensuite, il faudrait mettre ça proprement en fonctions Lisp dans le
 > fichier d'initialisation.

Bon, j'ai fini par faire cela proprement, à l'aide de gars sur fcae.

Voilà le résultat : insertion automatique d'espace insécable (et plus,
fort, remplacement à la volée d'espace classique si il est tapé avant
un signe de ponctuation réclamant une espace insécable).

Je l'ai fait pour le mode texte. C'est facile d'ajouter pour les modes
que l'on veut, notamment le bricolage est trivial pour remplacer
l'espace insécable par   en mode psgml par exemple.

;; 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-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-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))
; pour EMacs
; (define-key text-mode-map "\253" 'my-french-guill))

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


PK

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



Reply to: