Existe um comando `descrever-comando ', semelhante ao comando` descrever-função'?


14

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.


1
Próxima pergunta: por que isso não está no Emacs?
Jonathan Leech-Pepin

1
@ JonathanLeech-Pepin: Proposta, mas rejeitada por Emacs Dev.
Tirou

Respostas:


12

Sim. Biblioteca help-fns+.eldefine comando describe-command.

E redefine describe-functionpara que sim, describe-commandse você der um prefixo arg.

A biblioteca se liga describe-commanda 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.


1
Eu realmente gosto de help-fns +, mas está adicionando um grande espaço e um comentário genérico sobre todas as funções que eu olho: imgur.com/NiDlkjS - alguma idéia?
Wilfred Hughes

@ WilfredHughes: Deve estar OK agora . (Deve também ser espelhadas sobre Melpa dentro de 24 horas.)
Desenhou

O link de Drew do comentário @ 18:25 está quebrado. O emacswiki.org/emacs/download/help-fns%2b.el funciona.
Realraptor 4/04/19

1
@Realraptor: Obrigado. Os URLs do EmacsWiki foram alterados alguns anos atrás.
Desenhou

9

apropos-command pode estar suficientemente perto.

Ele não oferece describe-functiona conclusão da guia, mas permite pesquisar apenas por meio de comandos e leva à página de documentos deles.


8

se você tiver o smex instalado, basta ligar para o smex. Comece a digitar, quando o correto surgir, pressione Ch f.


7

Não consigo encontrar isso embutido. É bastante fácil criar um invólucro describe-functionque apenas conclua os nomes dos comandos quando chamados de maneira interativa. Na implementação abaixo, dupliquei o formulário interativo describe-functione mudei o fboundpteste 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-argpara 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.


O teste rápido mostra que ele funciona com o IDO. Copiado para *scratch*, avaliado e executado M-x describe-command. Os comandos apareceram em uma lista vertical graças a ido-vertical.
Jonathan Leech-Pepin

A última linha não deveria ser (describe-function command)?
npostavs 3/09/18

5

Se você estiver usando o leme e helm-M-x, poderá pressionar C-jos comandos para exibir a documentação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.