Eu uso C-h fmuito, mas isso são todas as funções no Emacs. Geralmente, estou interessado apenas em funções interativas, como comandos.
Existe um equivalente para comandos? Idealmente, eu gostaria de concluir também.
Eu uso C-h fmuito, mas isso são todas as funções no Emacs. Geralmente, estou interessado apenas em funções interativas, como comandos.
Existe um equivalente para comandos? Idealmente, eu gostaria de concluir também.
Respostas:
Sim. Biblioteca help-fns+.el
define comando describe-command
.
E redefine describe-function
para que sim, describe-command
se você der um prefixo arg.
A biblioteca se liga describe-command
a C-h c
( describe-key-briefly
é movida para C-h C-c
).
A mesma biblioteca define outros comandos de ajuda, como describe-file
, describe-buffer
, describe-keymap
, e describe-option-of-type
. Aqui está mais informações sobre a biblioteca.
apropos-command
pode estar suficientemente perto.
Ele não oferece describe-function
a conclusão da guia, mas permite pesquisar apenas por meio de comandos e leva à página de documentos deles.
Não consigo encontrar isso embutido. É bastante fácil criar um invólucro describe-function
que apenas conclua os nomes dos comandos quando chamados de maneira interativa. Na implementação abaixo, dupliquei o formulário interativo describe-function
e mudei o fboundp
teste para commandp
. Como um bônus adicional, esta função oferece todos os nomes de funções quando chamados com um argumento de prefixo. Mude if current-prefix-arg
para if (not current-prefix-arg)
para tornar a descrição de todas as funções o padrão.
(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))
Eu não testei isso com ido, mas ele deve se integrar normalmente.
*scratch*
, avaliado e executado M-x describe-command
. Os comandos apareceram em uma lista vertical graças a ido-vertical
.
(describe-function command)
?