tutorial source para online mac how for descargar emacs

source - ¿Por qué algunas funciones de Emacs no están disponibles a través de `Mx`?



emacs tutorial online (1)

Esta respuesta de desbordamiento de pila me dijo que puedo establecer el tamaño de fuente de Emacs con set-face-attribute :

(set-face-attribute ''default nil :height 100)

Los comentarios revelan que no se puede ejecutar set-face-attribute con Mx :

En su lugar, tienes que ejecutarlo con M- ::

¿Por qué algunos comandos, como set-face-attribute , no están disponibles a través de Mx ?


  • Mx está vinculado al comando execute-extended-command , que le permite escribir el nombre de un comando y ejecutarlo.
  • M-: está vinculado al comando eval-expression , que le permite escribir una expresión S arbitraria que contiene llamadas a funciones y evaluarla.

Las funciones, a las que puede llamar con M-:, se utilizan para implementar las funciones de Emacs, las personalizaciones (como en su .emacs ) y los complementos. Los argumentos de la función se pasan normalmente llamando a la función en una expresión-S.

Cualquier función también puede ser un comando si tiene una forma interactive en su definición. El formulario interactive describe cómo la función debe obtener sus argumentos cuando se llama como un comando. Por ejemplo, si la función tiene (interactive "bGive me a buffer: ") en su definición, entonces la función se podrá llamar con Mx . Cuando el usuario llama a la función con Mx , Emacs solicitará al usuario un nombre de búfer (debido a la b ), y el nombre que escriben se pasará como un argumento a la función.

El objetivo de convertir una función en un comando es hacer que sea más fácil para los usuarios finales, no solo para los programadores de Emacs Lisp. Los comandos (ejecutados con Mx ) son más fáciles de ejecutar interactivamente de estas maneras:

  • No tiene que rodear el nombre del comando con () para que sea una expresión en S válida.
  • Los argumentos se pueden pasar automáticamente (como la posición del cursor), o se le pueden solicitar que no tenga que recordar qué argumentos son necesarios.
  • Cuando se le solicite un argumento, puede completarlo automáticamente, ya que los caracteres de código del formulario interactive (como b ) especifican qué tipo de entrada se espera.

La razón por la que no puede llamar a la función set-face-attribute con Mx es que su definición no contiene un formulario interactive , por lo que set-face-attribute no es un comando. Debes llamarlo como una función simple, en S-expresiones. Puede hacerlo desde el minibúfer con M-: o desde otros lugares con cualquiera de las otras formas de evaluar el código .

El manual de Emacs Mini → Conceptos → Comando tiene una explicación breve y diferente de la diferencia entre las funciones y los comandos normales. La relación entre las funciones y los comandos de Emacs explica algunos detalles que no están en esta respuesta.