Quiero ciertas teclas y combinaciones de teclas para comportarme como otras teclas o combinaciones de teclas en Emacs. Por ejemplo, quiero F5 comportarse como un sustituto de C-c para cada combinación posible la participación de ella, o C-S- como C-. ¿Es posible hacer eso sin volver a vincular manualmente todas esas combinaciones de teclas?Hacer que una tecla se comporte como otra tecla
Respuesta
Las claves a las que se refiere se conocen como "claves de prefijo". Una tecla de prefijo tiene su propio mapa de teclas, por lo que para que otra tecla se comporte igual, debe asignarla al mismo mapa de teclas. Para el control-c, se utiliza el mode-specific-map
: Control
(global-set-key (kbd "<f5>") mode-specific-map)
por sí solo no es una tecla prefijo, o en realidad una clave en absoluto, ya que no envía una pulsación de tecla a Emacs [1] hasta que presionas otra tecla. No estoy seguro de cómo reasignar C-S a C en Emacs. Podrías hacerlo en todo el sistema con xmodmap, pero probablemente no sea lo que quieres.
[1] la tecla de control (y el cambio, alt) hacen enviar una pulsación de tecla para el sistema operativo, pero Emacs no 'ver' esto a menos que haya otra tecla pulsada al mismo tiempo
prefiero
(define-key key-translation-map [f5] (kbd "\C-c"))
Aquí hay un good resource.
Para resumir el enlace anterior: La desventaja de global-set-key es que, cuando se define una combinación de teclas para ingresar un símbolo, no funciona en isearch.
key-translation-map también tiene un problema. Imagine que definió un símbolo | para ejecutar un comando y C- | para ingresar el símbolo |, presionando C- | ejecutará el comando.
- 1. cómo hacer que la función de tecla de tabulación intellij como tecla de tabulación Eclipse hace
- 2. Hacer que un objeto PHP se comporte como una matriz?
- 3. Hacer que QLabel se comporte como un hipervínculo
- 4. ¿Cómo hacer que cout se comporte como en modo binario?
- 5. Hacer que FalseClass se comporte como TrueClass con programación meta
- 6. ¿Es posible hacer que una computadora se comporte como un dispositivo HID con Bluetooth?
- 7. ¿Cómo hacer que una tecla principal comience desde 1000?
- 8. Diferenciar entre tecla presionada y tecla mantenida
- 9. jQuery: ¿tecla para la tecla TAB?
- 10. ¿Cómo correlacionar globalmente la tecla AltGr con la tecla Alt?
- 11. Hacer que una aplicación de consola se comporte como una aplicación de Windows
- 12. Cómo esperar a que se presione una tecla en Clojure
- 13. Opción o tecla Comando como tecla Meta para LispBox en Macintosh
- 14. cómo detectar cuando una tecla de acceso directo (tecla de acceso directo) se presiona
- 15. tecla Comando tecla Meta en OS X Terminal.app
- 16. Presione una tecla con Java
- 17. Usar una matriz de bytes como la tecla de mapa
- 18. ¿Cómo puedo hacer que un sprite se mueva cuando se mantiene presionada la tecla
- 19. Swing: configuración de una tecla de función (F2) como acelerador
- 20. Hacer que Spring beans se comporte como instancias ThreadLocal para un ExecutorService
- 21. problema ... tecla Enter
- 22. Haciendo que Eclipse se comporte como Visual Studio
- 23. ¿Se puede distinguir entre la tecla CTRL izquierda y la tecla CTRL derecha usando códigos de tecla en .keypress()?
- 24. DataGridView: ¿Cómo puedo hacer que la tecla Intro agregue una nueva línea en lugar de cambiar la celda actual?
- 25. ¿Por qué no presionamos la tecla de borrar la tecla Eliminar y la tecla de retroceso?
- 26. mysql incremento automático tecla principal que se está agotando
- 27. ¿Cómo puedo detectar que se haya presionado la tecla Shift?
- 28. Hacer Alt_R un Alt (A-) tecla de modificación (en lugar de una tecla de modificación Meta (M-))
- 29. Generar una nueva lista con la tecla
- 30. Cómo hago para que python espere una tecla presionada
+1 pero ... * "El control por sí solo no es una tecla de prefijo, o realmente una tecla en absoluto, ya que no envía una pulsación de tecla" * ... El control definitivamente envía una pulsación de tecla por sí mismo . Puede usar, por ejemplo, * xev * en Linux para ver eso. Envía una pulsación de tecla cuando la presionas y una tecla de liberación cuando la sueltas. Una salida * xev * para CTRL en mi sistema da: * KeyPress evento eventKeyPress ... estado 0x14, código clave 37 (keysym 0xffe3, Control_L) ... * etc. Discuto un poco que usted escribió que el control no es "realmente un clave en absoluto ". CTRL y CAPS-LOCK de mi teclado vueltos a mapear para que actúen como CTRL se ofenden;) – TacticalCoder
@TacticalCoder: Punto justo, en lo que respecta a X. Pero no creo que la pulsación de tecla registrada por X sea visible para Emacs por sí misma. No hay forma de que Emacs detecte o responda a una tecla modificadora si no está modificando otra tecla. Entonces, desde la perspectiva de Emacs, CTRL por sí solo no es una clave hasta que se combina con otra clave. – Tyler