Come si sposta il puntatore verso l'alto o verso il basso più righe con Emacs?
-
27-09-2019 - |
Domanda
posso spostare la mia puntatore su e giù una riga con la mia freccia bene in Emacs, quindi mi piacerebbe ridefinire C-n e C-p per spostarsi in alto e verso il basso 5 righe alla volta.
Sto solo cominciando a imparare a utilizzare Emacs, e elisp è molto estraneo a me. Ho provato ad utilizzare il riferimento GNU Emacs Lisp , ma non potevo' t trovare il modo di associare un tasto per più comandi.
Ecco quello che ho finora (concentrandosi sulla definizione in movimento verso l'alto):
(global-set-key "\C-p" '(loop for i in '(1 2 3 4 5) do ('previous-line)))
Ma, questo porta in primo piano un messaggio di errore quando ho colpito C-p, "argomento di tipo sbagliato".
Qualche suggerimento?
Grazie!
Soluzione
Quelli funzione (credo next-line
e previous-line
) accetta un argomento Optionnal con C-u, quindi penso che (next-line 5)
sarebbe fare quello che vuoi.
Modifica: così ho appena provato e che sarebbe
(global-set-key (kbd "C-n")
(lambda () (interactive) (next-line 5)))
E lo stesso con C-p e previous-line
.
(Fiew non semplice per scrivere il codice in una textarea con una tastiera telefonica ^^)
Altri suggerimenti
secondo l'avviso della mia emacs di configurazione, e il commento di Peter Ajtai, propongo la versione che utilizza forward-line
dal mio init.el
(global-set-key (kbd "C-n")
(lambda () (interactive) (forward-line 5)))
(global-set-key (kbd "C-p")
(lambda () (interactive) (forward-line -5)))
Naturalmente c'è anche forward-char
, funziona allo stesso modo, solo in una direzione diversa.
L'unica cosa che manca è un complex-forward
che richiede un numero complesso come argomento, e può essere utilizzato per navigare in 4 direzioni: P