¿Cuáles son las convenciones para el uso C-x
, C-c
o M-
como combinaciones prefijo?
Por ejemplo: ¿es C-x
, etc., para guardar o visitar buffers? ¿Es C-c
, etc., para editar texto?
Antecedentes
Tal vez esta es una pregunta tonta. Utilizo un teclado en español y, a veces, redefinir las combinaciones de teclas que son comunes para un teclado en inglés (QWERTY). Por ejemplo: el comando de shell está vinculado en vanilla Emacs a M-!
. En M-¡
cambio, lo ato, porque M-!
es M-shift-1
, que no puedo presionar fácilmente. Me pregunto si hay convenciones que estoy anulando cuando hago este tipo de cambios
key-bindings
elisp-conventions
anquegi
fuente
fuente
M-x
es para "ejecutar comando extendido, esta es la puerta de entrada a muchas de las cosas sofisticadas que puedes lograr interactivamente en Emacs; te permite ejecutar cualquier función de Elisp por nombre". tieneC-c
yC-x
no tiene una descripción como esa?Respuestas:
Si está hablando de vincular teclas para su propio uso, entonces esta es la regla: puede vincular las teclas que desee.
Si desea asegurarse de no vincular una clave que ya podría estar vinculada, utilice
C-c
seguida de una letra. Todas esas claves están reservadas para los usuarios (ver a continuación).Si está hablando de vincular claves en el código (p. Ej., Una biblioteca) que escribe, para su uso por otros, entonces las reglas (convenciones) se describen aquí: Convenciones de vinculación de claves de nodo del manual de Elisp.
Las reglas principales allí, relacionadas con lo que preguntas, son las relacionadas con
C-c
:No lo defina
C-c LETTER
como una clave en los programas Lisp. Las secuencias que consisten enC-c
una letra (mayúscula o minúscula) están reservadas para los usuarios; son las únicas secuencias reservadas para los usuarios, así que no las bloquee.Las secuencias que consisten en
C-c
seguidas de un carácter de control o un dígito están reservadas para los modos principales.Las secuencias que consisten en
C-c
seguida de{
,}
,<
,>
,:
o;
son también reservados para los modos principales.Las secuencias que consisten en
C-c
seguidas de cualquier otro signo de puntuación o símbolo ASCII se asignan para modos menores. No está absolutamente prohibido usarlos en un modo mayor, pero si lo hace, el enlace del modo mayor puede verse sombreado de vez en cuando por modos menores.Notarás que no existe una convención al respecto
C-x
. Sin embargo, esta es una convención no declarada, o simplemente un buen consejo / práctica: si reemplaza algún enlace Emacs estándar existente (es decir, uno que obtiene de Emacs como distribuido, sin cargar bibliotecas de terceros), eso podría confundir o molestar a algunos usuarios de su código.Puede acceder a ese documento dentro de Emacs de esta manera:
C-h i
, para abrir Info, el navegador de documentos.m el TAB RET
, para m enu el isp (TAB
para completar), o simplemente haga clic en elElisp
enlace con el mouse.key bi TAB
, luegon TAB RET
completar aKey Binding Conventions
.O puede usar
i
dentro del manual de Elisp, para completar entradas de índice:C-h i m el TAB RET
.i key bi TAB
, que completakey binding
y le muestra dos posibilidades:key binding
ykey binding, conventions for
. Escriba, TAB
para completar al segundo, luegoRET
para aceptarlo.fuente
C-c
y escribir cartas a los comandos del usuario. De esa manera, uno puede estar (casi) seguro de que no anula algún otro enlace desde un modo principal ya instalado o que se instalará algún día en el futuro.C-c
+ letra en una biblioteca tercera parte.La respuesta de @ Drew es mucho más matizada y detallada.
¡Esta es una pregunta perfectamente válida!
Existe la convención de queC-x
emacs lo reserva, mientras que elC-c
prefijo se usa para las combinaciones de teclas definidas por el usuario.Eche un vistazo a esto , especialmente la sección "Claves reservadas". Estoy bastante seguro de que esta información también se encuentra en el manual de emacs, pero parece que no puedo encontrarla en este momento.Las convenciones se describen en esta sección del manual de emacs lisp.fuente
C-c
seguido de una letra (minúscula o mayúscula) sin más modificadores está reservado para los usuarios. Muchas otras secuencias de teclas que comienzan conC-c
están reservadas para los modos principales, especialmente aquellas en las que la tecla de control también modifica la segunda pulsación de tecla.M-x
es para "ejecutar comando extendido, esta es la puerta de entrada a muchas de las cosas sofisticadas que puedes lograr interactivamente en Emacs; te permite ejecutar cualquier función de Elisp por nombre". tieneC-c
yC-x
no tiene una descripción como esa?