Estoy usando un modo, pero no estoy acostumbrado a sus combinaciones de teclas: algunas de ellas entran en conflicto con las globales de emacs. Por lo tanto, quiero agregar un enlace de teclas de prefijo a todas sus combinaciones de teclas existentes.
por ejemplo, si my-mode define la combinación de teclas M-]para my-mode-shot , estoy buscando algunas formas de la siguiente manera:
(define-prefix-for-mode 'my-mode (kbd "C-c m"))
entonces la combinación de teclas para my-mode-shot ahora es C-c m M-].
¿Cómo se debe agregar un enlace de teclas de prefijo a todos los enlaces de teclas disponibles de un modo específico?
key-bindings
keymap
prefix-keys
象 嘉 道
fuente
fuente
Respuestas:
Una forma de mover las combinaciones de teclas del modo podría ser con algo como
Pero este código fallará si se ejecuta antes de que se ejecute el modo foo. Y no tendrá ningún efecto si se ejecuta después de ingresar el modo. Por lo tanto, probablemente tendrá que hacerlo dentro de `(with-eval-after-load '-mode ...).
Además, si se trata de un modo menor, el código anterior tampoco tendrá ningún efecto, ya que además debe hacer algo como (dentro de lo anterior
let
):fuente
Supongamos que el modo
foo-mode
fundamental se uneC-x o
afoo-it
, y no lo hace así.Y supongamos que desea
foo-mode-map
en la clave de prefijo<f9>
:fuente
foo-it
no esté disponible a través de<f9> C-x o
, lo que podría ser contraproducente si el objetivo es mover las combinaciones de teclas fuera del camino mientras se mantiene accesible a través de la tecla de prefijo.Puede modificar el mapa de teclas del modo directamente para mover todos los enlaces bajo el prefijo elegido:
fuente