¿Cuáles son las convenciones para el uso C-x, C-co 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-xes 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-cyC-xno 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-cseguida 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 LETTERcomo una clave en los programas Lisp. Las secuencias que consisten enC-cuna 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-cseguidas de un carácter de control o un dígito están reservadas para los modos principales.Las secuencias que consisten en
C-cseguida de{,},<,>,:o;son también reservados para los modos principales.Las secuencias que consisten en
C-cseguidas 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 (TABpara completar), o simplemente haga clic en elElispenlace con el mouse.key bi TAB, luegon TAB RETcompletar aKey Binding Conventions.O puede usar
identro del manual de Elisp, para completar entradas de índice:C-h i m el TAB RET.i key bi TAB, que completakey bindingy le muestra dos posibilidades:key bindingykey binding, conventions for. Escriba, TABpara completar al segundo, luegoRETpara aceptarlo.fuente
C-cy 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-xemacs lo reserva, mientras que elC-cprefijo 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-cseguido 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-cestá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-xes 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-cyC-xno tiene una descripción como esa?