El valor predeterminado de la combinación de teclas C-a/C-e
es solo para una cosa, mover al principio / final de la línea, ¿hay algún paquete que pueda hacer que Emacs actúe así?
- Si no estoy al final de una línea,
C-e
iré al final de la línea, de lo contrario, iré al final de la siguiente línea - Si no estoy al comienzo de una línea,
C-a
iré al comienzo de la línea, de lo contrario iré al comienzo de la siguiente línea.
El punto es que puedes seguir golpeando C-a/e
para ir al principio / final de cada línea sin mover el dedo para alcanzar C-n/p
.
Y con un prefijo ( C-u
) irán al principio / final de la línea en la dirección opuesta.
key-bindings
line-break
motion
CodyChan
fuente
fuente
C-a
"subir" yC-e
"bajar"? En otras palabras, ¿el significado de "línea siguiente" es el mismo en los ítems 1 y 2?C-a
para arriba yC-e
para abajo" problema cuando he publicado esta pregunta, pero luego pensé que si alguien le diodefun
solución como usted, nadie sabría qué hacer si le gustaC-a
a "arriba" ..Respuestas:
No conozco un paquete que permita este comportamiento, pero aquí hay una forma de hacerlo.
Presione
C-h k C-a
para descubrir queC-a
está obligado amove-beginning-of-line
; esta es la función que necesitamos modificar --- o simplemente usar para implementar la parte "mover al principio". Del mismo modo, conC-h k
I can findforward-line
, que se usará para subir / bajar.Para poder vincular una función a una tecla, debemos convertirla en un comando , por lo que debemos usar el
interactive
formulario especial (consulte Uso de Interactive ). Para tomar elC-u
argumento prefijo necesitamos el"P"
carácter del código.Combinando esto con
bolp
(verifique si al principio de una línea) yeolp
(verifique si está al final de una línea), podemos escribir:Ahora podemos volver a vincular
C-a
yC-e
llamar a estos:Alternativamente, uno podría agregar consejos a
move-beginning-of-line
ymove-end-of-line
.fuente
my-move-beginning-of-line
función. ¿Debería ser(previous-line (if arg -1 1))
o(forward-line (if arg 1 -1))
(1 y -1 conmutado)?C-a
oC-e
.C-a
"subir".La biblioteca
misc-cmds.el
siempre ha tenido esta característica.Estos son los comandos relevantes y los enlaces de teclas sugeridos (estos enlaces se hacen en
setup-keys.el
).Aquí está lo que
C-h f end-of-line+
dice, como un ejemplo:fuente
Las siguientes dos funciones realizan las acciones deseadas.
fuente