comandos - ¿Hay una manera rápida de desenlazar las claves en Emacs?
emacs ubuntu (2)
Hice un ctrl h b para ver todos mis enlaces en emacs. Ahora quiero desenlazar muchas teclas, simplemente porque nunca uso esas funciones de Emacs y no quiero realizarlas cuando presiono accidentalmente las teclas de límite. Esto también libera muchas claves para otras tareas (para usar con Cedet, por ejemplo). Entonces, aparte de global-unset-key, ¿hay algún método para eliminar los enlaces de forma masiva?
C-a move-beginning-of-line
C-b backward-char
C-c mode-specific-command-prefix
C-d delete-char
C-e move-end-of-line
C-f forward-char
C-g keyboard-quit
C-h help-command
C-k kill-line
C-l recenter-top-bottom
C-n next-line
C-o open-line
C-p previous-line
C-q quoted-insert
C-t transpose-chars
C-u universal-argument
C-v scroll-up
C-x Control-X-prefix
C-z suspend-frame
ESC ESC-prefix
Quiero eliminar la mayoría de estos enlaces que son absolutamente inútiles para mí.
No hay una forma integrada de desactivar muchas claves, porque es fácil hacerlo usted mismo:
(Editado para una estricta corrección :)
(dolist (key ''("/C-a" "/C-b" "/C-c" "/C-d" "/C-e" "/C-f" "/C-g"
"/C-h" "/C-k" "/C-l" "/C-n" "/C-o" "/C-p" "/C-q"
"/C-t" "/C-u" "/C-v" "/C-x" "/C-z" "/e"))
(global-unset-key key))
Aunque tengo que decir que la mayoría de los comandos que llamas "inútiles" llamaría "esenciales".
(Editado para añadir :)
En cuanto a la liberación de claves para otras tareas, hay un montón de propiedades inmobiliarias clave no utilizadas:
- Las secuencias de teclas que consisten en
Cc
seguidas de una letra se reservan por convención para los usuarios. - Si tiene un modificador adicional disponible, como Opción en la Mac o la tecla de Windows en una PC, puede asociarlo con un modificador de Emacs como
super
. Tengosuper-b
enlazado abrowse-url-at-point
, por ejemplo. - Si no está en un terminal plano, la tecla de cambio estará disponible para distinguir las secuencias de teclas. Por ejemplo, tengo
shift-meta-b
enlazado abury-buffer
. - Para los comandos que son útiles pero que no se ejecutan con la frecuencia suficiente para justificar una secuencia de teclas dedicada, puede usar
defalias
para proporcionar un nombre más corto. En mi archivo .emacs, tengo(defalias ''ru ''rename-uniquely)
y(defalias ''c ''calendar)
(entre muchos otros).
global-unset-key
y local-unset-key
son útiles, pero vale la pena tener una respuesta a esta pregunta que señala que la forma general de desenlazar una clave (para cualquier mapa de teclas) es definir un enlace de nil
:
(define-key KEYMAP KEY nil)
Si sigue el código de cualquiera de esas otras funciones, notará que esto es exactamente lo que hacen.