Antworten:
C-u
ist das universelle Präfixargument. Es wird häufig für Befehle verwendet, die nur zwei Zustände haben (mit und ohne Argument), kann jedoch auch als numerisches Präfix interpretiert werden (4).
In diesem Fall wird beim Betrachten des Quellcodes org-toggle-inline-images
festgestellt, dass nur geprüft wird, ob das Argument festgelegt ist, sodass der von Ihnen übergebene spezifische Wert keine Rolle spielt.
Sie können eine Funktion definieren, die aufruft (org-toggle-inline-images t)
. Um es mit einem Lambda zu tun:
(define-key org-mode-map (kbd "<f12>")
(lambda () (interactive) (org-toggle-inline-images t)))
Dies bindet F12 im org-Modus und lässt die globale Bindung für andere Modi bestehen.
Weitere Informationen zu Tastenkombinationen finden Sie hier: Beherrschen von Tastenkombinationen in Emacs . Und natürlich enthält das Emacs Lisp-Handbuch viele Details .
Die Antwort im Allgemeinen besteht darin, sich den Code anzusehen, der den Befehl definiert. Insbesondere (aber nicht unbedingt nur) die interactive
Spezifikation.
Was Sie suchen, ist, was die Funktion mit einem Präfix arg macht. Und dann definieren Sie einen Befehl, der dasselbe tut.
In der Regel wird das Präfix arg verwendet, um einen Wert zu definieren, der dann im Code an eine andere Funktion übergeben wird. Sie müssen dann nur diese andere Funktion aufrufen und ihr das Argument übergeben, das über das Präfix arg im ursprünglichen Befehl bereitgestellt worden wäre. IOW, Sie können normalerweise denselben Code verwenden und nur einen Wert anstelle des Werts übergeben, der aus dem Präfix arg ermittelt wird.
C-u
. Es ist nicht angemessen, wenn der Befehl ein unterschiedliches Verhalten aufweist, je nachdem, ob Plain C-u
verwendet wird oder nicht (z. B. Unterscheidung von C--
oder C-3
oder C-u C-u
von Just C-u
. Mein Rat ist, immer zu überprüfen, wie der Befehl tatsächlich ein Präfix arg behandelt.
'(4)
an den Befehl übergeben (ohne sich darum zu kümmern call-interactively
). (Aber das funktioniert nicht, z. B. wenn der Befehl keinen Parameter hat, der dem Präfix arg entspricht, sondern current-prefix-arg
im Befehlstext testet .)
C-u
Präfix mit folgendem emulieren :(let ((current-prefix-arg '(4))) (call-interactively #'whatever-command))
. Dies kann nützlich sein, wenn Sie nicht herausfinden können, was der von Ihnen aufgerufene Befehl mit seinem Argument tut.