Modo C
Si usa Emacs para programar en el lenguaje C, puede conseguir que él le haga toda la indentación automáticamente. Los archivos cuyos nombres terminan en .c o .h se abrirán automáticamente en el modo C. Esto significa que ciertos comandos especiales de edición, útiles para escribir programas en C, están disponibles. En el modo C, |_Tab_| está ligado a c-indent-command (indentar comandos C). Esto significa que presionando la tecla |_Tab_| no inserta realmente un carácter de Tabulación. En cambio, si presiona |_Tab_| en cualquier parte de una línea, Emacs automáticamente indenta esta línea correctamente para su ubicación en el programa. Esto implica que Emacs sabe algo sobre la sintaxis de C, (aunque nada sobre semántica (¡no puede asegurar que su programa no tenga errores!).
Para hacer esto, asuma que las líneas anteriores están indentadas correctamente. Esto significa que si en la línea anterior falta un paréntesis, un punto y coma, llaves, o cualquier otra cosa, Emacs indentará la línea actual de una manera peculiar inesperada. Cuando vea que hace esto, sabrá que debe buscar un error de puntuación en la línea anterior.
Puede usar esta característica para verificar que ha puntuado correctamente sus programas,
en vez de leer el programa entero_buscado_problemas, simplemente comience a indentar las líneas desde arriba hasta abajo con |_Tab_|, y cuando alguna se indenta de forma rara, verifique las líneas inmediatamente anteriores. En otras palabras, ¡deje a Emacs hacer el trabajo por Ud!.
Modo Scheme
Este es un modo mayor que no le servirá de nada a menos que tenga un compilador o un interprete para el lenguaje de programación Scheme en su sistema. Tener uno no es tan normal como, digamos, un compilador de C, pero se está haciendo cada vez más común, así que lo trataremos también.
Mucho de lo que es cierto para el modo Scheme es también cierto para el modo Lisp, si prefiere escribir en Lisp.
Bien, para complicar las cosas, Emacs viene con dos modos Scheme diferentes, porque la gente no podía decidir cómo querían que funcionara. El que estoy describiendo se llama cmuscheme, y luego, en la sección personalizando a Emacs, hablaré de cómo puede haber dos modos Scheme diferentes y qué hacer acerca de ello. Por ahora, no se preocupe si las cosas en su Emacs no coinciden con las que yo digo aquí. Un editor personalizable significa un editor impredecible, ¡y no hay vuelta de hoja!.
Puede ejecutar un proceso Scheme interactivo en Emacs con el comando M-x run-scheme. Esto crea un buffer llamado "*scheme*", que tiene el prompt habitual de Scheme. Puede teclear expresiones de Scheme en el prompt, presionar |_Intro_|, y Scheme las evaluará y mostrará la respuesta. Así, a fin de interactuar con el proceso de Scheme, podrá simplemente escribir todas sus aplicaciones y definiciones de función en el prompt. Es posible que haya escrito previamente código fuente Scheme en un algún archivo, y sería más fácil hacer su trabajo en el archivo y enviar las definiciones al buffer de proceso Scheme según sea necesario.
Si el archivo fuente termina en .ss o .scm, automáticamente se abrirá en el modo Scheme cuando lo encuentre con |_C-x_C-f_|. Si por alguna razón, no surge en el modo Scheme, puede hacerlo a mano con M-x scheme-mode. Este modo scheme no es lo mismo que el buffer que ejecuta el proceso Scheme; más bien, el que el buffer de código fuente esté en modo scheme significa que tiene comandos especiales para comunicar con el buffer de proceso.
Si está dentro de la definición de una función en el buffer de código fuente Scheme y teclea |_C-c_C-e_|, entonces esa definición será "enviada" al buffer de proceso, exactamente como si lo hubiera tecleado Ud. mismo. |_C-c_M-e_| envía la definición y entonces le lleva al buffer de proceso para hacer algo de trabajo interactivo. |_C-c_C-l_| carga un archivo de código Scheme (éste funciona desde el buffer de proceso o el buffer de código fuente). Y como otros modos de lenguajes de programación, al presionar |_Tab_| en cualquier lugar de una línea de código se indentará correctamente esa línea.
Si está en el prompt del buffer de proceso, puede usar ||_M-p_|| y |_M-n_| para moverse entre sus comandos anteriores (también conocido como la historia de entrada). Así que si está depurando la función 'rotar', y ya lo ha aplicado a los argumentos en el buffer de proceso, como:
>(rotar '(a b c d e))
entonces puede recuperar ese comando anterior tecleando ||_M-p_||en el prompt. Aquí no debería ser necesario volver a escribir expresiones largas en el prompt de Scheme, habitúese a usar la historia de entrada y ahorrará mucho tiempo.
Emacs conoce bastantes lenguajes de programación: C, C++, Lisp, y Scheme son simplemente algunos. Generalmente, sabe cómo indentarlos de forma intuitiva.
Modo de correo
También puede editar y enviar correo en Emacs. Para entrar en un buffer de correo, teclee |_C-x_m_|. Necesita llenar los campos To: (A:) y Subjet: (Asunto:), y entonces use |_C-n_ | para ir, por debajo de la línea de separación, al cuerpo del mensaje (que está vacío cuando comienza por primera vez). No cambie o borre la línea de separación, o sino Emacs no será capaz de enviar su correo, use esa línea para distinguir el encabezamiento del correo, que le dice dónde enviar el correo, de los contenidos del mensaje.
Puede escribir lo que quiera por debajo de la línea de separación. Cuando esté listo para enviar el mensaje, simplemente teclee |_C-c_C-c_|, y Emacs lo enviará y hará que el buffer de correo desaparezca.