Es bastante común que revise la documentación de un comando C-h f
y luego invoque el comando M-x
inmediatamente después.
En este momento, la forma más corta que he encontrado para "invocar el último comando de vista" es copiar su nombre (ya sea desde el búfer de ayuda o desde el historial) y tirarlo al M-x
indicador del minibúfer.
Lo que realmente me gustaría es que los nombres de comandos dados
describe-function
sean parte de la historia de
execute-extended-command
. Entonces solo podría hacer M-x M-p RET
.
¿Cuál es la forma más fácil de hacer esto?
documentation
m-x
history-variables
Malabarba
fuente
fuente
smex
yhelm-M-x
? el primero está en MELPA, el segundo está incluidohelm
en MELPA.Respuestas:
La "forma más fácil" es definir su propia versión
describe-function
y vincularlaC-h f
.Tome el código vainilla y cambie solo la llamada a
completing-read
para que use la misma lista de historial queM-x
(execute-extended-command
) usa, que esextended-command-history
.¿Cómo encontré el código original?
C-h f describe-function
,C-h k M-x
,C-h f execute-extended-command
. En el código paraexecute-extended-command
que vi que lee el nombre del comando usandoread-extended-command
, y que llamacompleting-read
pasarextended-command-history
comoHISTORY
argumento.fuente
No puedo agregar una respuesta exacta a su pregunta, sino un flujo de trabajo que elimine la necesidad de hacerlo.
Yo uso en
smex
lugar deexecute-extended-command
. Una vez en el minibúfer desmex
:execute-extended-command
smex-describe-function
smex-find-function
No me gustan los enlaces predeterminados, así que los he personalizado:
fuente
Tenga en cuenta que es muy fácil invocar el comando desde su búfer de Ayuda. Después de escribir
C-h f
simplemente escribaM-x M-n RET
. Esto funciona porque en un nuevo búfer de Ayuda, el nombre del comando está en la parte superior del búfer debajo del cursor y loM-n
recupera en el minibúfer.Sin embargo, si desea agregar un comando
extended-command-history
cada vez que visita su documentación, puede hacerlo con un pequeño consejo:o usando la nueva macro
define-advice
recién agregada en 25.0.50:fuente
(interactive)
?(commandp function)
comprueba que la función buscada sea interactiva porque solo se deben agregar comandosextended-command-history
. Entonces, si la función buscada no es interactiva, no se agrega aextended-command-history
.Si lo usa
helm-M-x
, no es necesario escribirC-h f
para buscar la documentación de los comandos, solo useC-j
oC-z
mientras se ejecutahelm-M-x
para alternar la visualización de la documentación.Ver también las características de Helm Mx .
fuente