Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Emacs et les raccourcis clavier

14 réponses
Avatar
Franck Joncourt
--bCsyhTFzCvuiizWE
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Bonjour,

Je suis en train de m'amuser avec emacs, et j'aimerais reussir a
associer une sequence de touches a une fonction particuliere.

En d'autres termes, j'aimerais pouvoir ajouter un fichier "header"
dans le buffer courant a l'endroit ou se trouve le curseur.

J'y arrive sans probleme en faisant *C-x i* et en specifiant le fichier
a ajouter, mais ce serait mieux avec quelque chose comme *C-i f* sans
avoir a specifier le nom du fichier.

Le but final est de pouvoir ajouter un en-tete de fichier, de fonction
rapidement.

Je fouille actuellement ici :

http://www.gnu.org/software/emacs/manual/html_node/

Quelqu'un aurait il un exemple qui pourrait s'apparenter a ce que je
veux faire ?

Merci.

--=20
Franck Joncourt
http://www.debian.org
http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

--bCsyhTFzCvuiizWE
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGTydRxJBTTnXAif4RAttWAJ965v9wQNujSxYSMQ3YCBC3MSQc6ACffKcG
6xfBkWTEdaZ/3HD7Dd7bqM0=
=uSAi
-----END PGP SIGNATURE-----

--bCsyhTFzCvuiizWE--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

4 réponses

1 2
Avatar
Remi Vanicat
Franck Joncourt 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 ?

Sinon, je suis persuader que ce que tu essais de faire, d'autre l'on
fait... Par exemple on trouve l'autyping dans Emacs :
http://www.cs.cmu.edu/cgi-bin/info2www?(autotype)Top et d'autre chose
comme http://www.kazmier.com/computer/snippet.el qui permet de faire
quelque chose de similaire à ce que tu veux faire pour les fonctions,
mais en utilisant les abbrevs.

Note, que j'ai pas vraiment tester ni l'un ni l'autre, je ne sais pas
ce que ça donne pour de vrai.

--
Rémi Vanicat


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Franck Joncourt
--tKy6e3LXpfmanBFM
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, May 20, 2007 at 04:56:17PM +0200, Remi Vanicat wrote:
Franck Joncourt 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.

Un tonnerre d'applaudissements : j'ai trouve.

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.

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/Li nuxDoc+Emacs+Ispell-HOWTO-6.html

Je vais adopter celle-ci pour l'ouverture de fichiers vierges.

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.

et cette methode pour mes en-tetes de fonctions

Encore merci a tous.

--
Franck Joncourt
http://www.debian.org - http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

--tKy6e3LXpfmanBFM
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGUHJgxJBTTnXAif4RAjZzAJ45BnmGbMRbSU/qPo2fzTpu/sIEhQCfVXm6
vQTvxC4EeurjVQLOidIPAPQ =Ezoy
-----END PGP SIGNATURE-----

--tKy6e3LXpfmanBFM--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
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 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


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Franck Joncourt
--Bn2rw/3z4jIqBvZU
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, May 20, 2007 at 10:11:35PM +0200, Jacques L'helgoualc'h wrote:
Franck Joncourt a écrit, dimanche 20 mai 2007, à 18:08 :

Attention aussi à la syntaxe des séquences de touches, pour « C-c i »
c'est, entre autres,

(kbd "C-c i")
"C-ci"



Ah oui, j'avais pas fait bien attention. C'est sur que ca peu poser des
problemes.

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 » afficher a la représentation de
celle-ci, à mettre entre double-quotes comme argument de kbd...




La ca me fait beaucoup de raccourcis, il va falloir pratiquer :p! Mais
ca ne devrait pas etre un probleme.

> 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 to to.c » (Sarge)
me fait le même coup ;



Moi de mon cote avec ta commande, il ne me demande plus si je veux
inserer le header dans le fichier (auto-insert)

> 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-HOWT O/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.



Pour l'instant sur help-gnu-emacs (at) gnu.org, on m'a souffler de
regarder par la :

http://www.emacswiki.org/cgi-bin/wiki/AutomaticFileHeaders

J'ai pas encore entierement compris comment cela fonctionnait, mais je
regarderais quand j aurais le temps de reflechir un peu plus.

> 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 es t 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 !



Oh ca fait beaucoup d'un coup la. Je vais le garder sous le coude quand
j'aurais essaye le lien que l'on ma fourni sur la liste emacs.

Merci bien.

--
Franck Joncourt
http://www.debian.org - http://smhteam.info/wiki/
GPG server : pgpkeys.mit.edu
Fingerprint : C10E D1D0 EF70 0A2A CACF 9A3C C490 534E 75C0 89FE

--Bn2rw/3z4jIqBvZU
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGU1xBxJBTTnXAif4RAjV1AJ95xJXaNfWiMcZbrp3Yato1lML+CwCdHRLB
96EVufArh2HJsj/oGrBZcBM =kUGo
-----END PGP SIGNATURE-----

--Bn2rw/3z4jIqBvZU--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2