Używam C-h fdużo, ale to wszystko funkcje Emacsa. Często interesują mnie tylko interaktywne funkcje, tj. Polecenia.
Czy istnieje odpowiednik poleceń? Idealnie chciałbym też zakończyć ido.
Używam C-h fdużo, ale to wszystko funkcje Emacsa. Często interesują mnie tylko interaktywne funkcje, tj. Polecenia.
Czy istnieje odpowiednik poleceń? Idealnie chciałbym też zakończyć ido.
Odpowiedzi:
Tak. Biblioteka help-fns+.el
definiuje polecenie describe-command
.
I redefiniuje to describe-function
tak, że describe-command
jeśli zrobisz to z prefiksem arg.
Biblioteka wiąże się describe-command
z C-h c
( describe-key-briefly
zostaje przeniesiona C-h C-c
).
Ta sama biblioteka definiuje inne polecenia pomocy, takie jak describe-file
, describe-buffer
, describe-keymap
, i describe-option-of-type
. Oto więcej informacji o bibliotece.
apropos-command
może być wystarczająco blisko.
Nie oferuje describe-function
uzupełniania tabulatorów, ale pozwala wyszukiwać tylko za pomocą poleceń i prowadzi do strony z dokumentami.
Nie mogę znaleźć tego wbudowanego. Całkiem łatwo jest utworzyć opakowanie, describe-function
które uzupełnia nazwy poleceń tylko wtedy, gdy są wywoływane interaktywnie. W poniższej implementacji zduplikowałem interaktywny formularz describe-function
i zmieniłem fboundp
test na commandp
. Jako dodatkowy bonus, ta funkcja oferuje wszystkie nazwy funkcji, gdy są wywoływane z argumentem przedrostka. Zmień if current-prefix-arg
na, if (not current-prefix-arg)
aby opisywanie wszystkich funkcji było domyślne.
(defun describe-command (function &optional all-functions)
"Display the full documentation of FUNCTION (a symbol).
When called interactively with a prefix argument, prompt for all functions,
not just interactive commands, like `describe-function'."
(interactive (if current-prefix-arg
(eval (car (cdr (interactive-form 'describe-function))))
(list (let ((fn (function-called-at-point))
(enable-recursive-minibuffers t)
val)
(setq val (completing-read (if (and fn (commandp fn))
(format "Describe command (default %s): " fn)
"Describe command: ")
obarray 'commandp t nil nil
(and fn (commandp fn)
(symbol-name fn))))
(if (equal val "") fn (intern val)))
current-prefix-arg)))
(describe-function function))
Nie testowałem tego z ido, ale powinno się normalnie integrować.
*scratch*
, oceniono, a następnie uruchomiono M-x describe-command
. Dzięki nim polecenia pojawiły się na liście pionowej ido-vertical
.
(describe-function command)
?