Wie bewegen Sie den Mauszeiger nach oben oder unten über mehrere Zeilen mit Emacs?
-
27-09-2019 - |
Frage
Ich kann meinen Zeiger nach oben und unten einer Zeile mit meinem Pfeil ganz gut in Emacs bewegen, so dass ich neu definieren möchte C-n und C-p zu bewegen, nach oben und unten 5 Zeilen auf einmal.
Ich fange an, nur zu lernen, wie Emacs zu verwenden, und elisp ist sehr fremd für mich. Ich habe versucht, die GNU Emacs Lisp Referenz , aber ich kann nicht‘ t finden, wie ein Tastendruck, um mehrere Befehle zu binden.
Hier ist, was ich bisher (auf der nach oben bewegt Definition konzentriert):
(global-set-key "\C-p" '(loop for i in '(1 2 3 4 5) do ('previous-line)))
Aber das bringt eine Fehlermeldung, wenn ich getroffen C-p, "Wrong Typargument."
Irgendwelche Vorschläge?
Danke!
Lösung
Die Funktion (ich glaube, next-line
und previous-line
) akzeptiert ein Optionnal Argument mit C-u, so dass ich (next-line 5)
denken würde das tun, was Sie wollen.
Edit: so dass ich nur versucht, und das wäre
(global-set-key (kbd "C-n")
(lambda () (interactive) (next-line 5)))
Und das gleiche mit C-p und previous-line
.
(Fiew nicht einfach zu schreiben Code in einem Textfeld mit einer Telefon-Tastatur ^^)
Andere Tipps
nach der Warnung in meinem Emacs config und den Kommentar von Peter Ajtai schlage ich die Version, dass Anwendungen von meinem forward-line
init.el
(global-set-key (kbd "C-n")
(lambda () (interactive) (forward-line 5)))
(global-set-key (kbd "C-p")
(lambda () (interactive) (forward-line -5)))
Natürlich gibt es auch forward-char
ist, funktioniert auf die gleiche, nur in einer anderen Richtung.
Das einzige, was fehlt, ist ein complex-forward
, die eine komplexe Zahl als Argument übernimmt, und kann in allen 4 Richtungen navigiert werden: P