Timón: anular Ch

8

Seguí esta respuesta y creé mi modo menor para evitar que mis combinaciones de teclas fueran anuladas por los modos principales.

Así que puse esto en mi init.el:

(define-key my-keys-mode-map (kbd "C-h") 'delete-backward-char)
(define-key my-keys-mode-map (kbd "M-h") 'backward-kill-word)

Está trabajando con todo excepto cuando estoy adentro helm-find-files. Mientras M-hfunciona, C-hno lo hace. Si lo presiono dos veces, el Helpbúfer aparece diciendo:

^L
Major Mode Bindings Starting With C-h:
key             binding
---             -------

C-h C-b     helm-send-bug-report-from-helm

^L
Global Bindings Starting With C-h:
key             binding
---             -------

¿Cómo puedo desactivar C-hen helm-find-filesy seguir usando mi propia combinación de teclas?

Boccaperta-IT
fuente

Respuestas:

6

C-hes especial: vea mi respuesta al modo html y la combinación de teclas de retroceso personalizado .

En resumen: cada vez que vuelva a vincular C-h, también debe cambiar el valor de help-char.

Para deshabilitar su acción, haga

(setq help-char nil)

(También puede configurarlo con un carácter diferente).

Además de esto, se helm-find-filesusa C-hcomo clave de prefijo. El siguiente código reemplaza el C-hprefijo con M-m, que debería liberarse C-hpara usarse como "retroceso":

(eval-after-load "helm-files"
  '(let ((helm-find-files-C-h-map (lookup-key helm-find-files-map (kbd "C-h"))))
     ;; make sure C-h is no longer a prefix key
     (define-key helm-find-files-map (kbd "C-h") nil)
     ;; rebind "C-h ..." to "M-m ..." to preserve functionality
     (define-key helm-find-files-map (kbd "M-m") helm-find-files-C-h-map)))
Constantina
fuente
No funciona Ahora C-hno hace nada y C-h C-hmuestraC-h C-h is undefined
Boccaperta-IT
@ Boccaperta-IT: Actualicé la respuesta; Por favor, inténtalo de nuevo.
Constantine
Al agregar el código, se produce un error al inicio: se ingresó el depurador - Error de Lisp: (mapa de teclas de función vacía) (mapa de teclas (mapa de teclas (2. helm-send-bug-report-from-helm)) mapa de teclas (109. Helm-help) (104. Undefined) (8. Undefined) (4.. Helm-debug-output)) (lambda nil (keymap (keymap (2. helm-send-bug-report-from-helm)) keymap (109. Helm-help ) (104. Indefinido) (8. Indefinido) (4. helm-debug-output))) ()
Boccaperta-IT
Utilizando (define-key helm-find-files-map (kbd "C-h") nil)obras. No hay necesidad de usar (setq help-char nil). Gracias por señalarme en la dirección correcta.
Boccaperta-IT
@ Boccaperta-IT: Creo que arreglé el código en la respuesta (necesario para citar el formulario let). En cuanto a la configuración help-char, no lo necesita para que el timón funcione, pero puede necesitarlo para que funcionen otras características de Emacs (como esqueletos) (vea la pregunta a la que me vinculé).
Constantine