¿Cómo puedo buscar ayuda para una secuencia de teclas que no puedo escribir?

8

Sé que puedo buscar ayuda para una secuencia de teclas usando C-h k <key sequence>, pero uso Emacs en la terminal, y mi emulador de terminal no pasa todas las secuencias de teclas a Emacs. A veces, veo la notación para una secuencia de teclas dada escrita en algún lugar sin explicación, y quiero buscar lo que hace, pero ni siquiera puedo escribirla. ¿Hay un equivalente a C-h kdonde puedo escribir la secuencia de teclas (literalmente C-<character>)?

asmeurer
fuente

Respuestas:

15

Evalúe lo siguiente usando eval-expression( M-:) o en un búfer de memoria virtual:

(describe-key (kbd "C-<whatever>"))
shosti
fuente
1
Por cierto, puede encontrar esta solución usando C-h k C-h k. (Funciona en mi terminal.)
Kevin
1
Excelente. En realidad, es mejor usar M-: o evaluarlo en su búfer actual, ya que el método abreviado de teclado puede ser específico del modo.
asmeurer
9

Si no puede usar una combinación de teclas en particular debido a su terminal, a menudo puede simularla simulando manualmente el modificador de teclas. Las siguientes combinaciones funcionan exactamente como si hubiera usado la tecla modificadora correspondiente:

C-x @ a     alt
C-x @ m     meta
C-x @ c     control
C-x @ h     hyper
C-x @ s     super (lowercase s)
C-x @ S     shift (uppercase S)

Por ejemplo, si no puede escribir C-apor alguna razón, C-x @ c aes lo mismo. Si S-<return>no funciona en su terminal, lo C-x @ S REThará. Estas combinaciones de teclas también funcionan con el C-h kprefijo de ayuda.

Sue D. Nymme
fuente
¿Hay casos en los que puede escribir C-xpero no C-a? Todos estos requieren la capacidad de emitir C-x. Parece que podría ser útil poder usar modificadores "hiper" o "super" sin una clave dedicada. Me encontré con un terminal que no estaba configurado para asignar la tecla "alt" a "meta", pero trabajé alrededor (a regañadientes) usando "ESC"
nispio
2
C-aEs un mal ejemplo. Una más probable sería C-A(o C-S-a), ya que a los terminales no parece gustarles el control + cambio.
asmeurer
Me parece recordar que debajo screen(1), C-ase ordena ser una especie de clave de multiplexación. Pero no lo he usado screenen mucho tiempo, así que podría estar recordando mal.
Sue D. Nymme
2

También puede usar C-h bpara ver todas las combinaciones de teclas, que incluirán botones del mouse y todo lo demás.

shapr
fuente
Después de describe-bindingsque aparezca la ventana de ayuda, también puede usar isearchpara buscar la representación de texto plano de una secuencia de teclas y la función a la que está vinculada. Además, el paquete helm-descbindingsle permitirá navegar por todos los enlaces en un búfer de timón.
nispio
0

No conocía ninguna de estas soluciones más específicas, y probablemente funcionen mejor si desea el comando exacto que ejecuta una tecla.

Sin embargo, para obtener un consejo más general sobre cómo buscar ayuda, si de hecho tiene una idea vaga sobre lo que está haciendo el enlace de teclas, pero quiere más detalles, he utilizado C-h f(o describe-function) con la finalización de pestañas para tratar de encontrar el nombre de la función, que a menudo funciona, y luego la ayuda le dirá si esa función tiene un enlace. Y cuando eso no funcionó, usé C-h a(o apropos-command) y escribí en algunos términos que pensé que podrían estar relacionados y, sorprendentemente, tuve mucho éxito al encontrar el comando correcto para el enlace de teclas. Otra buena opción es C-h m(o describe-mode) y mira todas las combinaciones de teclas para el modo actual. Esto también se puede usar como términos útiles para usar en cualquiera de las dos técnicas de búsqueda anteriores.

b4hand
fuente