Emacs: ¿cómo elegir buenas combinaciones de teclas personalizadas?

10

Soy un principiante Emacs y me gustaría empezar a añadir algunas asociaciones de teclas personalizada globales para tareas comunes como replace-string, replace-regex, etc., que no las tienen por defecto. Quiero tomar buenas decisiones, y veo algunos problemas:

  • Ver todas mis opciones : ¿cómo puedo ver la gama completa de teclas que no están vinculadas en todos los modos que uso regularmente?

  • Compatibilidad / convención : ¿existen enlaces no oficiales comunes o una clave común de "espacio de usuario" con la que comenzar los enlaces personalizados personales?

  • Otros problemas : ¿hay algo más que deba tener en cuenta?

Ian Mackinnon
fuente

Respuestas:

9

Intente echar un vistazo a esta pregunta en SO: ¿Hay alguna combinación de teclas de emacs reservada para comandos personalizados?

En cuanto a ver lo que está disponible, está la unboundbiblioteca (vea la primera respuesta a la pregunta anterior).

Una convención (tomada de mi respuesta a esa pregunta ) es:

Puede redefinir cualquier cosa, pero la convención es usar C-c l (donde lhay una letra).

Como usuario, puede redefinir cualquier clave; pero generalmente es mejor atenerse a secuencias de teclas que consisten en C-c seguidas de una letra (mayúscula o minúscula). Estas claves están "reservadas para los usuarios", por lo que no entrarán en conflicto con ninguna extensión de Emacs diseñada correctamente. Las teclas de función F5a través F9también se reservan para los usuarios. Si redefine alguna otra clave, su definición puede ser anulada por ciertas extensiones o modos principales que redefinen la misma clave.

Solo recuerde que las combinaciones de teclas son diferentes en cada uno de los diversos modos (mayor y menor), por lo que lo que está disponible en un búfer no está necesariamente disponible en otro. Y haga sus combinaciones de teclas al nivel más localizado posible. Por ejemplo, si la funcionalidad hace algo a una línea de código, no hacer una llave global vinculante para ello, la definen en los mapas de teclas apropiadas ( c++-mode-map, ruby-mode-map, etc.).

En cuanto a sus tareas específicas, ¿ha notado:

  • M-% alias query-replace
  • C-M-% alias query-replace-regexp

Además, cuando está buscando ( C-so C-M-s(y las variantes inversas)), puede escribir M-%(o C-M-%) para ingresar directamente query-replace( query-replace-regexp) con la cadena de búsqueda como sustituto ... Bastante útil.

Trey Jackson
fuente