Pregunta

Me puedo mover el puntero hacia arriba y hacia abajo una línea con mi tecla de flecha muy bien en Emacs, así que me gustaría redefinir C-N y C-p para desplazarse hacia arriba y hacia abajo 5 líneas a la vez.

Me estoy empezando a aprender a usar Emacs, y elisp es muy ajeno a mí. He intentado utilizar el GNU Emacs Lisp referencia, pero no pude t encontrar cómo enlazar una tecla a varios comandos.

Esto es lo que tengo hasta ahora (concentrándose en la definición subiendo):

(global-set-key "\C-p"  '(loop for i in '(1 2 3 4 5) do ('previous-line))) 

Sin embargo, esto trae un mensaje de error cuando golpeo C-p, "argumento de tipo incorrecto."

¿Alguna sugerencia?

Gracias!

¿Fue útil?

Solución

Los función (creo next-line y previous-line) acepta un argumento optionnal con C-u, así que creo que sería (next-line 5) hacer lo que quiera.

Edit: por lo que he intentado y que sería

(global-set-key (kbd "C-n")
    (lambda () (interactive) (next-line 5)))

Y lo mismo con C-py previous-line.

(Fiew no fácil de escribir código en un área de texto con un teclado de teléfono ^^)

Otros consejos

según la advertencia en mi emacs config, y el comentario de Peter Ajtai, propongo la versión que utiliza forward-line de mi init.el

(global-set-key (kbd "C-n")
    (lambda () (interactive) (forward-line  5)))
(global-set-key (kbd "C-p")
    (lambda () (interactive) (forward-line -5)))

Por supuesto, también hay forward-char, funciona de la misma, solo en una dirección diferente.

La única cosa que falta es un complex-forward que toma un número complejo como un argumento, y se puede utilizar para navegar en las 4 direcciones: P

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top