Editando con Emacs - Modos de programación

11 - Modos de programación

[editar]
Monografía creado por Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=170
26 de Octubre de 2005


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.
[editar]

Sé el primero en opinar


Monografías relacionados con 'Editando con Emacs'

Para obtener algo en una computadora, necesita una forma de introducir texto en los archivos,... Más »
Este editor fue escrito originalmente en la Universidad de California en Berkeley y se puede... Más »

Autor y licencia de 'Editando con Emacs'


Monografía de Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=170 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.