Comment déplacer le pointeur vers le haut ou vers le bas plusieurs lignes avec Emacs?
-
27-09-2019 - |
Question
Je peux bouger mon pointeur vers le haut et vers le bas d'une ligne avec ma flèche très bien dans Emacs, donc je voudrais redéfinir C-n et C-p pour monter et descendre 5 lignes à la fois.
Je commence à apprendre à utiliser Emacs et elisp est très étranger à moi. J'ai essayé d'utiliser le GNU Emacs de référence, mais je ne pourrais pas » t trouver comment lier une séquence de touches de commandes multiples.
Voici ce que j'ai jusqu'à présent (se concentrer sur le déplacement jusqu'à la définition):
(global-set-key "\C-p" '(loop for i in '(1 2 3 4 5) do ('previous-line)))
Mais, cela soulève un message d'erreur quand je frappe C-p, "argument de type incorrect."
Toutes les suggestions?
Merci!
La solution
Les fonctions (je crois next-line
et previous-line
) acceptent un argument avec C-optionnel u, donc je pense que (next-line 5)
ferait ce que vous voulez.
Edit: donc je viens d'essayer et ce serait
(global-set-key (kbd "C-n")
(lambda () (interactive) (next-line 5)))
Et même avec C-p et previous-line
.
(Fiew pas simple à écrire du code dans une zone de texte avec un clavier de téléphone ^^)
Autres conseils
selon l'avertissement dans ma config emacs, et le commentaire de Peter Ajtai, je propose la version que les utilisations forward-line
de mon init.el
(global-set-key (kbd "C-n")
(lambda () (interactive) (forward-line 5)))
(global-set-key (kbd "C-p")
(lambda () (interactive) (forward-line -5)))
Bien sûr, il y a aussi forward-char
, fonctionne de la même, juste dans une autre direction.
La seule chose qui manque est un complex-forward
qui prend un nombre complexe comme argument, et peut être utilisé pour naviguer dans les 4 directions: P