Uso C-h fmolto, ma queste sono tutte funzioni di Emacs. Spesso sono interessato solo a funzioni interattive, ad esempio comandi.
Esiste un equivalente per i comandi? Idealmente mi piacerebbe anche il completamento ido.
Uso C-h fmolto, ma queste sono tutte funzioni di Emacs. Spesso sono interessato solo a funzioni interattive, ad esempio comandi.
Esiste un equivalente per i comandi? Idealmente mi piacerebbe anche il completamento ido.
Risposte:
Sì. La libreria help-fns+.el
definisce il comando describe-command
.
E ridefinisce in describe-function
modo che lo faccia describe-command
se gli dai un prefisso arg.
La libreria si lega describe-command
a C-h c
( describe-key-briefly
viene spostata in C-h C-c
).
La stessa libreria definisce altri comandi di aiuto, come describe-file
, describe-buffer
, describe-keymap
e describe-option-of-type
. Ecco maggiori informazioni sulla biblioteca.
apropos-command
potrebbe essere sufficientemente vicino.
Non offre describe-function
il completamento della scheda, ma ti consente di cercare solo attraverso i comandi e ti porta alla loro pagina dei documenti.
Non riesco a trovare questo integrato. È abbastanza facile creare un wrapper describe-function
che completi i nomi dei comandi solo quando viene chiamato in modo interattivo. Nell'implementazione di seguito, ho duplicato il modulo interattivo describe-function
e modificato il fboundp
test in commandp
. Come bonus aggiuntivo, questa funzione offre tutti i nomi delle funzioni quando viene chiamata con un argomento prefisso. Passare if current-prefix-arg
a if (not current-prefix-arg)
per rendere la descrizione di tutte le funzioni predefinita.
(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))
Non l'ho testato con ido ma dovrebbe integrarsi normalmente.
*scratch*
, valutato e poi eseguito M-x describe-command
. I comandi sono stati visualizzati in un elenco verticale grazie a ido-vertical
.
(describe-function command)
?