[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

V.2.1 Convención del margen izquierdo

En la mayoría de los modos principales, Emacs supone que cualquier delimitador de apertura hallado en el margen izquierdo es el comienzo de una definición de nivel superior, o defun. Por consiguiente, nunca ponga un delimitador de apertura en el margen izquierdo a menos que deba tener ese significado. Por ejemplo, nunca ponga un paréntesis de apertura en el margen izquierdo de un archivo Lisp a menos que sea el comienzo de una lista de nivel superior. Nunca ponga una llave de apertura u otro delimitador de apertura al comienzo de una línea de código C a menos que esté en el nivel superior.

Si ud. no sigue esta convención, no sólo tendrá problemas cualdo utilice explícitamente los comandos de movimiento por defuns; otras funcionalidades que los utilizan también le darán problemas. Esto incluye los comandos de sangría (see section Sangría para programas) y el modo Font Lock (see section Modo Font Lock).

El caso más probable de problemas es cuando ud. quiere un delimitador de apertura al comienzo de una línea dentro de una cadena. Para evitar problemas, ponga un carácter de escape (`\', en C y Emacs Lisp, `/' en otros dialectos de Lisp) antes del delimitador de apertura. Esto no alterará el contenido de la cadena, pero hará que el delimitador de apertura comience una defun. He aquí un ejemplo:

 
  (insert "Foo:
\(bar)
")

En los primeros días, el Emacs original encontraba las defuns subiendo un nivel de paréntesis o llaves hasta que no había más niveles por subir. Esto requería siempre revisar todo el camino hasta el comienzo del búfer, incluso para una función pequeña. Para acelerar la operación, cambiamos Emacs para que suponga que cualquier delimitador de apertura sobre el margen izquierdo es el comienzo de una defun. Esta heurística es casi siempre correcta, y evita la necesidad de revisar hasta el comienzo del búfer. Sin embargo, obliga a seguir la convención descrita arriba.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated by Roberto on enero, 3 2007 using texi2html 1.76.