Respuestas:
C-u
es el argumento del prefijo universal. A menudo se usa para comandos que solo tienen dos estados (con y sin argumento), aunque también se puede interpretar como un prefijo numérico (4).
En este caso, al mirar el código fuente org-toggle-inline-images
, veo que solo verifica si el argumento está configurado, por lo que el valor específico que pasa no importa.
Puede definir una función que llame (org-toggle-inline-images t)
. Para hacerlo con una lambda:
(define-key org-mode-map (kbd "<f12>")
(lambda () (interactive) (org-toggle-inline-images t)))
Esto une F12 en modo org, dejando el enlace global en su lugar para otros modos.
Para obtener más información sobre las asociaciones de teclas, esta es una buena lectura: Dominar las asociaciones de teclas en Emacs . Y, por supuesto, hay muchos detalles en el manual de Emacs Lisp .
La respuesta en general es mirar el código que define el comando. En particular (pero no necesariamente solo) la interactive
especificación.
Lo que busca es lo que hace la función con un prefijo arg. Y luego define un comando que hace lo mismo.
Por lo general, el prefijo arg se usa para definir algún valor que luego se pasa en el código a otra función. Entonces solo necesita llamar a esa otra función, pasándole el argumento que se habría proporcionado a través del prefijo arg en el comando original. IOW, normalmente puede usar el mismo código, simplemente pasando un valor en lugar del valor que se determinaría a partir del prefijo arg.
C-u
. No es apropiado si el comando tiene un comportamiento diferente en función de si llano C-u
se utiliza o no (por ejemplo, la distinción de C--
o C-3
, o C-u C-u
de sólo C-u
Mi consejo es comprobar siempre cómo el comando que se trata de un prefijo arg..
'(4)
al comando (sin molestarte call-interactively
). (Pero eso no funcionará, por ejemplo, si el comando no tiene un parámetro que corresponda al prefijo arg, sino que se prueba current-prefix-arg
en el cuerpo del comando.)
C-u
prefijo con esto:(let ((current-prefix-arg '(4))) (call-interactively #'whatever-command))
. Eso podría ser útil si no puede averiguar qué está haciendo el comando que está llamando con su argumento.