tutorial source para mac descargar code emacs elisp

source - emacs para mac



¿Hay un(repeat-last-command) en Emacs? (8)

Con frecuencia, busqué apropos y docs buscando algo como lo siguiente solo para darme por vencido y poder volver a la tarea en cuestión:

(repeat-last-command)

hacer el último comando C- o M- que acabo de ejecutar (para rebotar en una tecla fn)

o a veces lo relacionado:

(describe-última-función)

¿Qué golpe de teclado acabo de emitir erróneamente, cuyo efecto me gustaría añadir a mi bolsa de trucos? describe-key está cerca, pero requiere saber lo que escribí.

¿Simplemente estoy pidiendo demasiado a mi fiel compañero?


Repita el último comando

Cx z

Una vez que lo presionó, solo presione z después de eso y se repetirá (sin tener que presionar Cx de nuevo).


Además, Mx view-lossage te muestra los últimos cien (?) Mx view-lossage teclado que ingresaste. Entonces, podrás ver dónde está el comando. Es lo que usé hasta que recién ahora me enteré Mx command-history que creo que Ch w con Ch w ahora.


La funcionalidad de repetición es proporcionada por el paquete repeat.el Emacs Lisp, que se incluye con las distribuciones estándar de Emacs. De la documentación de repeat.el :

Este paquete define un comando que repite el comando anterior, sea lo que sea, incluidos sus argumentos, sean lo que sean. Este comando está conectado a la clave Cx z. Para repetir el comando anterior una vez, escriba Cx z. Para repetirlo una segunda vez inmediatamente después, escriba solo z. Al escribir z una y otra vez, puede repetir el comando una y otra vez.

Para ver información adicional sobre el comando de repetición, escriba Ch F repeat RET desde dentro de Emacs.


No estoy muy seguro, pero tal vez estás buscando este?

El comando Cx z ( repeat ) proporciona otra forma de repetir un comando Emacs muchas veces. Este comando repite el comando Emacs anterior, sea lo que fuere. La repetición de un comando usa los mismos argumentos que se usaron antes; no lee nuevos argumentos cada vez.

Manual de Emacs, 8.11 Repetir un comando


Personalmente, encontré útil la idea de Sebastian. Aquí hay una versión de trabajo

(global-set-key "/C-r" #''(lambda () (interactive) (eval (car command-history))))


Puede repetir comandos con Cx z , y presionar z para seguir repitiendo.

Un poco impactante, nadie mencionó repeat-complex-command , disponible desde la combinación de teclas Cx ESC ESC .


Puede ser que esto ayude también ... De la ayuda de emacs textualmente:

C-x M-ESC runs the command repeat-complex-command which is an interactive compiled Lisp function in `simple.el''. It is bound to <again>, <redo>, C-x M-:, C-x M-ESC. (repeat-complex-command ARG) Edit and re-evaluate last complex command, or ARGth from last. A complex command is one which used the minibuffer. The command is placed in the minibuffer as a Lisp form for editing. The result is executed, repeating the command as changed. If the command has been changed or is not the most recent previous command it is added to the front of the command history. You can use the minibuffer history commands M-n and M-p to get different commands to edit and resubmit.


con respecto a '' describe-última función '':

Hay un last-command variable que se establece en un símbolo representativo de lo último que hiciste. Por lo tanto, este fragmento de elisp - (describe-function last-command) - debe mostrar la documentación de lo que sucedió inmediatamente.

Entonces podrías hacer una función trivial de describe-last-function como tal

(defun describe-last-function() (interactive) (describe-function last-command))

Pon esa elisp en .emacs o equivalente, y tendrás una función de descripción de Mx .

Si ha golpeado algunas teclas o ha hecho algo que modificó el último comando desde lo que le interesa, la función de command-history podría ser de su interés. Puedes obtener eso por el historial de comandos de Mx