OVH Cloud OVH Cloud

renommer les touches de fonctions

2 réponses
Avatar
cnamdb
Bonsoir,

Comment renommer les touches de fonctions F1,F2.... de telle sorte que
lorque que j'appuie sur F 1 par exemple cela ouvre un fichier ect... ?
Dois-je voir le fichier .emacs ?


merci

2 réponses

Avatar
Jean Pierre Lemue
Ça se fait avec, par exemple: global-set-key.

(defun ma-commande ()
(interactive)
(find-file "/tmp/ect"))

(global-set-key [f1] 'ma-commande)

On peut faire aussi, pour des touches locales à un mode précis.
ici, une touche redéfinie en mode latex, qui


permet les abbréviations.

(add-hook 'LaTeX-mode-hook
(lambda()
(local-set-key (quote [f11]) (quote abbrev-mode))))

Je suis tout fier, je viens juste de trouver çà (par hasard ou
inadvertance), bien que je ne saisisse ni les subtilités de la fonction
lambda, ni la puissance des hooks. Je suis épaté de voir que les
"mode-hooks" semblent définis tous seuls, sans iintervention apparente.
Mystère et beauté d'emacs.
Avatar
Pascal Bourguignon
"Jean Pierre Lemue" writes:

> Ça se fait avec, par exemple: global-set-key.
>
> (defun ma-commande ()
> (interactive)
> (find-file "/tmp/ect"))
>
> (global-set-key [f1] 'ma-commande)
>
> On peut faire aussi, pour des touches locales à un mode précis.
> ici, une touche redéfinie en mode latex, qui
permet les abbréviations.

(add-hook 'LaTeX-mode-hook
(lambda()
(local-set-key (quote [f11]) (quote abbrev-mode))))

Je suis tout fier, je viens juste de trouver çà (par hasard ou
inadvertance), bien que je ne saisisse ni les subtilités de la fonction
lambda, ni la puissance des hooks. Je suis épaté de voir que les
"mode-hooks" semblent définis tous seuls, sans iintervention apparente.
Mystère et beauté d'emacs.



Ce n'est pas la peine de quoter un vecteur:

(show (type-of [f11]) (length [f11]) (type-of (aref [f11] 0)))
==> (vector 1 symbol)


lambda permet de définir une fonction anonyme. C-h f lambda RET

(show ( (lambda (x y) (+ x y)) 1 2 ) )
==> 3

C'est comme de dire: ((x,y)|-->x+y) (1,2) = 3

au lieu de: f: RxR ----> R
(x,y)|---> x+y

f(1,2) = 3

Ça simplifie...





(defun show (&rest x)
"Insert the formated value X."
(unless (= (point) (progn (beginning-of-line) (point)))
(end-of-line)
(insert "n"))
(insert (format "==> %Sn"
(if (= 1 (length x)) (car x) x)))
(if (= 1 (length x)) (car x) x)
);;show

--
__Pascal_Bourguignon__ . * * . * .* .
http://www.informatimago.com/ . * . .*
* . . / () . *
Living free in Alaska or in Siberia, a . . / . . * .
grizzli's life expectancy is 35 years, .*. / * . .
but no more than 8 years in captivity. . /* o .
http://www.theadvocates.org/ * '''||''' .
SCO Spam-magnet: ******************