que comandos emacs

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.

https://github.com/kai2nenobu/guide-key


Ch w (o F1-w ): where-is RET somecommandname RET

Hace justo lo que está preguntando: enumera las claves vinculadas sin información adicional. :)