Es ist durchaus üblich, dass ich die Dokumentation eines Befehls mit durchschaue C-h f
und den Befehl M-x
unmittelbar danach mit aufrufe.
Im Moment besteht der kürzeste Weg, den letzten Ansichtsbefehl aufzurufen, darin, seinen Namen (entweder aus dem Hilfepuffer oder aus dem Verlauf) zu kopieren und in M-x
die Minibuffer-Eingabeaufforderung zu ziehen.
Was ich wirklich möchte, ist, dass Befehlsnamen
describe-function
Teil der Geschichte von sind
execute-extended-command
. Also könnte ich es einfach tun M-x M-p RET
.
Was ist der einfachste Weg, dies zu tun?
documentation
m-x
history-variables
Malabarba
quelle
quelle
smex
und gehörthelm-M-x
? Ersteres ist in MELPA, Letzteres isthelm
in MELPA enthalten.Antworten:
Der "einfachste Weg" besteht darin, einfach eine eigene Version von zu definieren
describe-function
und diese zu bindenC-h f
.Nehmen Sie den Vanille-Code und ändern Sie nur den Aufruf in,
completing-read
sodass er dieselbe Verlaufsliste verwendet, dieM-x
(execute-extended-command
) verwendetextended-command-history
.Wie habe ich den Originalcode gefunden?
C-h f describe-function
,C-h k M-x
,C-h f execute-extended-command
. Im Code für habeexecute-extended-command
ich gesehen, dass er den Befehlsnamen mit liestread-extended-command
und diecompleting-read
Übergabeextended-command-history
alsHISTORY
Argument aufruft .quelle
Ich kann Ihrer Frage keine genaue Antwort hinzufügen, sondern einen Workflow, der dies überflüssig macht.
Ich benutze
smex
stattexecute-extended-command
. Einmal im Minipuffer vonsmex
:execute-extended-command
smex-describe-function
smex-find-function
Ich mag die Standardbindungen nicht, deshalb habe ich sie angepasst:
quelle
Bitte beachten Sie, dass es sehr einfach ist, den Befehl aus dem Hilfepuffer aufzurufen. Nach der Eingabe
C-h f
einfach eingebenM-x M-n RET
. Dies funktioniert, weil sich in einem neuen Hilfepuffer der Befehlsname oben im Puffer unter dem Cursor befindet undM-n
in den Minibuffer abgerufen wird.Wenn Sie jedoch bei
extended-command-history
jedem Besuch der Dokumentation einen Befehl hinzufügen möchten, können Sie dies mit einem kleinen Hinweis tun:oder mit dem neuen Makro, das
define-advice
gerade in 25.0.50 hinzugefügt wurde:quelle
(interactive)
aktiviert ist ?(commandp function)
Überprüft, ob die Suchfunktion interaktiv ist, da nur Befehle hinzugefügt werden solltenextended-command-history
. Wenn die Suchfunktion also nicht interaktiv ist, wird sie nicht hinzugefügtextended-command-history
.Wenn Sie verwenden
helm-M-x
, müssen Sie nichtC-h f
eingeben, um die Dokumentation der Befehle nachzuschlagen. Verwenden Sie einfachC-j
oderC-z
während der Ausführung,helm-M-x
um die Anzeige der Dokumentation umzuschalten.Siehe auch die Funktionen von Helm Mx .
quelle