É bastante comum consultar a documentação de um comando C-h f
e depois invocá-lo M-x
imediatamente depois.
No momento, a maneira mais curta que encontrei para "chamar o último comando de exibição" é copiar seu nome (do buffer de ajuda ou do histórico) e puxá-lo para M-x
o prompt do minibuffer.
O que eu realmente gostaria é que os nomes de comando dados
describe-function
sejam parte da história do
execute-extended-command
. Então eu poderia fazer M-x M-p RET
.
Qual é a maneira mais fácil de fazer isso?
documentation
m-x
history-variables
Malabarba
fonte
fonte
smex
ehelm-M-x
? o primeiro está no MELPA, o último está incluídohelm
no MELPA.Respostas:
A "maneira mais fácil" é apenas definir sua própria versão
describe-function
e vinculá-laC-h f
.Pegue o código vanilla e altere apenas a chamada para,
completing-read
para que ele use a mesma lista de histórico queM-x
(execute-extended-command
), que éextended-command-history
.Como encontrei o código original?
C-h f describe-function
,C-h k M-x
,C-h f execute-extended-command
. No código paraexecute-extended-command
vi que ele lê o nome do comando usandoread-extended-command
, e que chamacompleting-read
passandoextended-command-history
comoHISTORY
argumento.fonte
Não posso adicionar uma resposta exata à sua pergunta, mas um fluxo de trabalho que elimina a necessidade.
Eu uso em
smex
vez deexecute-extended-command
. Uma vez no minibuffer desmex
:execute-extended-command
smex-describe-function
smex-find-function
Não gosto das ligações padrão, então as personalizei:
fonte
Observe que é muito fácil chamar o comando do seu buffer de Ajuda. Depois de digitar,
C-h f
basta digitarM-x M-n RET
. Isso funciona porque em um novo buffer de Ajuda o nome do comando está na parte superior do buffer, abaixo do cursor, e oM-n
recupera no minibuffer.No entanto, se você desejar adicionar um comando a
extended-command-history
cada vez que visitar sua documentação, poderá fazer isso com um pequeno conselho:ou usando a nova macro
define-advice
adicionada em 25.0.50:fonte
(interactive)
?(commandp function)
verifica se a função pesquisada é interativa porque somente comandos devem ser adicionadosextended-command-history
. Portanto, se a função pesquisada não for interativa, ela não será adicionadaextended-command-history
.Se você usar
helm-M-x
, não há necessidade de digitarC-h f
para procurar a documentação dos comandos, basta usarC-j
ouC-z
durante a execuçãohelm-M-x
para alternar a exibição da documentação.Veja também os recursos do Helm Mx .
fonte