Astier a écrit :
Bonjour,
Désolé de "déterrer" ce topic, mais j'ai pris le temps de me mettre les
mains dans le cambouis.
Pour AucTeX, j'ai un raccourci conditionnel :
(define-key LaTeX-mode-map (kbd "C-c f") 'my-frac-or-foot)
[...]
(defun my-frac-or-foot ()
"Insère une fraction ou une footnote selon le contexte"
(interactive)
(if (texmathp)
(my-fraction)
(my-footnote)))
Donc, si je comprends bien, il faudrait que je fasse un truc dans le genre :
#####
(define-key LaTeX-mode-map (kbd "M-\"") 'franguill')
(define-key html-mode-map (kbd "M-\"") 'franguill')
(defun franguill ()
"Insère des guillemets français"
(interactive)
(insert "\\og \\fg{}")
(backward-char 5))
#####
à moins qu'il faille passer par une condition ?
Sinon, une autre solution consisterait à avoir plusieurs .emacs
portant chacun les spécificités des modes ; à moins que cette approche
soit totalement "ridicule" ou inutile ?
Tu peux faire ce que tu veux, avec plusieurs instances spécialisées
d'Emacs au besoin. Par exemple, pour accélérer l'appel de mon Éditeur
favori, j'utilise un Emacs serveur lancé une fois pour toutes, et
l'appelle par gnuclient : j'ai donc dans mon ~/.xsession une ligne
ok, donc, gnuclient appartient au paquet gnuserv que je viens d'installer.
je suppose que le fichier ~/.xsession est chargé lors du lancement d'une
session graphique ? Si c'est bien le cas, comment cela se passe lorsque
l'on travaille dans les tty ?
emacs -iconic -l ~/.elisp21/server.el &
donc on lance un serveur Emacs. Pour lancer emacs par la suite, il
suffit d'appeler emacs ou d'utiliser les lanceurs traditionnels ---
celui de mon tableau de bord correspond à /usr/bin/emacs22 ?
qui charge, après ~/.emacs, le supplément suivant :
,----[ server.el ]
| ;;; serveur de gnuclient
| (when window-system
| (when (fboundp 'gnuserv-start)
| (gnuserv-start)
| (defun adieu ()
| (unless (y-or-n-p "Ça va pas, la tête... ?! ")
| (keyboard-quit)))
| (add-hook 'server-switch-hook
| (lambda ()
| (set-frame-position (make-frame) 0 0)))
| (add-hook 'server-done-hook 'delete-frame)))
`----
et dans mon ~/.emacs, la définition générale d'adieu
(defun adieu ()
(unless (y-or-n-p "Fermer cette instance d'Emacs ?")
(keyboard-quit)))
(add-hook 'kill-emacs-hook
'adieu)
euh... c'est bien un fichier "externe", qui se trouve ici :
~/.elisp21/server.el --- dans mon cas ~/.elisp22/server.el puisque j'ai
emacs22 (ou ça ne change rien) ?
De plus, si je me crée plusieurs ~/.emacs --- par exemple ~/.emacstex et
~/.emacshtml, comment faire pour les appeler au juste ? J'ai regardé
dans le man d'emacs et il ne m'a pas semblé voir d'option permettant de
choisir l'init file.
pour ne pas fermer l'Emacs serveur par inadvertance.
Le « local-set-key » est encore plus spécialisé, il me semble que la
méthode du *-mode-map est mieux adaptée aux raccourcis qui sont définis
une fois pour toutes au premier chargement du mode :
(eval-after-load "latex" '(my-LaTeX-init))
avec mes ajouts de LaTeX-mode-map dans la fonction appelée.
Là j'ai du mal à saisir...
Merci pour vos éclaircissements,
A bientôt.