comandos - Dado un nombre de comando de emacs, ¿cómo encontraría enlaces de teclas?(y viceversa)
emacs linux (4)
Si conozco un nombre de comando de emacs, dice "goto-line"; ¿Qué sucede si quiero consultar si hay alguna secuencia de teclas vinculada a este comando?
Y viceversa, dada una secuencia de teclas, ¿cómo puedo encontrar su nombre de comando?
Para encontrar enlaces de teclas para un comando, puede usar la función "donde está" de emacs help
C-h w command-name
Si se establecen múltiples enlaces para el comando, todos aparecerán en la lista.
Para el inverso, dada una secuencia de teclas, puede escribir
C-h k key-sequence
Para obtener el comando que se ejecutará.
Puede obtener información detallada sobre un comando, también cualquier función no interactiva definida, escribiendo
C-h f function-name
Lo cual le dará información detallada sobre una función, incluyendo cualquier combinación de teclas para ella.
C-h f variable-name
Los mapas clave se guardan en variables, sin embargo, los códigos clave se almacenan en un formato sin formato. Pruebe Ch v isearch-mode-map
para ver un ejemplo.
Para obtener más ayuda sobre cómo obtener ayuda, puede escribir
C-h ?
Para obtener interactivamente el comando vinculado a un atajo de teclado (o una secuencia de teclas en términos de Emacs), vea la respuesta seleccionada.
Para programar el comando vinculado a una secuencia de teclas dada, use la función key-binding
o lookup-key
que toma una secuencia de teclas y devuelve su comando bound. La función key-binding
es lo que Ch k
usa.
(key-binding (kbd "C-h m"))
devuelve el comando vinculado a Ch m
buscando en todos los mapas de teclas actuales. La función lookup-key
busca en un solo mapa de lookup-key
:
(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char
Para programar todas las secuencias de teclas vinculadas a un comando determinado, where-is-internal
es probablemente la función que se debe utilizar. El nombre de la función que termina en internal
parece sugerir que no es para que los usuarios de Emacs lo usen en sus archivos init, pero esta función que tiene una docstring parece sugerir lo contrario. Cualquiera que esté considerando usar where-is-internal
debería primero verificar si reasignando claves en su lugar puede lograr su objetivo.
Una vieja pregunta, pero para el beneficio de los nuevos lectores, hay algunas otras maneras agradables de ver enlaces de teclas
Mx describe-bindings
Enumera todos los enlaces actualmente disponibles, use isearch, occur, etc. para hacer un buen uso de esta lista.
Mx describe-prefix-map
Esto muestra todos los enlaces disponibles desde el modo actual, puede usar el buffer de visualización como lo haría con cualquier otro buffer de Emacs de solo lectura, por ejemplo, puede buscar cadenas, etc.
Mx describe-mode
Además de brindarle información general sobre el modo actual, también mostrará una lista de todos los enlaces de teclas disponibles.
Mx describe-minor-mode
Se le pedirá que ingrese el nombre de un modo menor, y luego se le mostrará información y enlaces de teclas para ese modo menor.
NOTA : Los ejemplos a continuación usan paquetes adicionales (disponibles de MELPA )
Cual clave
Esto te muestra enlaces justo antes de que los necesites. Ingrese un prefijo, por ejemplo Cx
o Cc
y se mostrará una lista de los enlaces disponibles en ese prefijo.
También puede ver una lista de enlaces de teclas disponibles desde el modo actual usando:
Mx which-key-show-top-level
Es útil vincular which-key-show-top-level
a un acorde clave de su elección, para que pueda ver las claves disponibles desde cualquier lugar.
Por ejemplo, Cs
( isearch-forward
) tiene un extenso mapa clave que a menudo se desconoce. por ejemplo, Ms o
comienza a occur
utilizando la cadena de búsqueda actual, no sabía sobre esto durante muchos años usando Emacs. Tener which-key
me ha ayudado a descubrir muchas gemas raras en Emacs.
https://github.com/justbur/emacs-which-key
Llave de guía
La clave de la guía funciona de forma muy parecida a la which-key
que recomendaría echarle un vistazo para comparar las características.
Ch w
(o F1-w
): where-is
RET somecommandname RET
Hace justo lo que está preguntando: enumera las claves vinculadas sin información adicional. :)