Re: Emacs et les raccourcis clavier
Franck Joncourt a écrit, dimanche 20 mai 2007, à 18:08 :
> On Sun, May 20, 2007 at 04:56:17PM +0200, Remi Vanicat wrote:
> > Franck Joncourt <franck.joncourt@wanadoo.fr> writes:
> >
> > > ; definition du hook personnel
> > > (defun my-hook ()
> > > (define-key cc-mode-map "\C-c i" 'insert-cfile-header))
_________________________________^^^^!^
> > [...]
> > >
> > > (global-set-key (kbd "\C-c i") 'insert-cfile-header)
> >
> > donc si tu essais
> > (defun my-hook ()
> > (define-key cc-mode-map (kbd "\C-c i") 'insert-cfile-header))
> >
> > il se passe quoi ?
>
> Il ne se passait rien. Aucun raccourci n'etait attribue.
Attention aussi à la syntaxe des séquences de touches, pour « C-c i »
c'est, entre autres,
(kbd "C-c i")
"\C-ci"
En positionnant le curseur à la fin d'une des deux lignes ci-dessus, et
en tapant « C-x C-e », Emacs va afficher « "^Ci" », où ^C représente un
seul caractère, Control-C ; on peut d'ailleurs le taper directement avec
« C-q C-c ». La méthode kbd me semble préférable --- il suffit de taper
la séquence voulue, puis « C-h l » affichera la représentation de
celle-ci, à mettre entre double-quotes comme argument de kbd...
> Un tonnerre d'applaudissements : j'ai trouve.
Bravo.
> C'est pas cc-mode mais c-mode pour un fichier ".c". Mais je ne comprends
> pas pourquoi il me chargeait cc-mod et ne lui associait pas le
> raccourci, car c'est pourtant ce que j avais ecrit.
Ah, ce n'est pas de ta faute, « emacs -q --no-site-file toto.c » (Sarge)
me fait le même coup ; mais c'est pervers, le « c-mode » est chargé par
le fichier ... « cc-mode.el » :
M-x apropos RET c-mode RET
... Entrée sur c-mode =>
c-mode is an interactive autoloaded Lisp function in `cc-mode'.
Au pif, je dirais que le fichier cc-mode a remplacé un vieux c-mode ?
> Donc, j'ai teste deux methodes :
>
> 1/ Auto insert : comme il m'avait ete souligne dans un mail :
> emacs + auto-insert avec google me donne une solution
>
> http://www.docmirror.net/fr/linux/howto/misc/LinuxDoc+Emacs+Ispell-HOWTO/LinuxDoc+Emacs+Ispell-HOWTO-6.html
>
> Je vais adopter celle-ci pour l'ouverture de fichiers vierges.
Ça doit marcher, mais demande sur news:fcae ce qui est utilisé maintenant.
> 2/
> - Creation d'une fonction pour inserer un fichier
> - Creation d'un hook (1) avec association de la dite fonction et un
> raccourci clavier
> - Ajout du hook (1) au hook du mode pour lequel on veut mettre en place
> le raccourci clavier.
Ça s'exécutera à chaque appel de la fonction c-mode, il est plus élégant
d'utiliser
(eval-after-load "cc-mode" ; le nom du fichier, sans chemin ni extension
'(ta-fonction-c-mode-setup))
pour ne définir qu'une fois la c-mode-map(*) et les fonctions associées.
(*) et pas cc-mode-map !
--
Jacques L'helgoualc'h
Reply to: