El
joe sí que tiene un modo de funcionamiento en que autodetecta el nivel de sangrado, y lo mantiene a la hora de meter nuevas líneas.
No es tan inteligente como en vim o Emacs, donde el sangrado cambia en cuanto metemos las llaves de cierre, pero al menos, es un editor sencillo y rápido.
Por ejemplo, para Perl, estas son las opciones que tengo activas en el joe:
Using text Syntax Highlighting
Perl
*
+#!\+\[ ]\+\[a-z/]/perl\>
-autoindent
-syntax perl
-indentc 32
-istep 4
-linums
-smarthome
-smartbacks
-pound_comment
-single_quoted
-purify
-rmargin 79
-spaces
-tab 8
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Que quiere decir:
- '*' : todos los archivos...
- '#!...' que contengan una línea de shebang acabada en /perl, activaremos las opciones
- autosangrado : el sangrado de la línea actual será una copia de la línea anterior
- sintaxis Perl : colorea siguiendo la sintaxis Perl (algo extremadamente complicado. Mejor dicho, imposible)
- usaremos un carácter de espacio para hacer el sangrado
- el sangrado será un conjunto de cuatro caracteres de sangrado
- quiero ver los números de línea
- la tecla Home primero moverá el cursor al comienzo de la línea, y luego al primer carácter no blanco
- la tecla retroceso retrocederá tantos caracteres como indique istep si el cursor está sobre el primer carácter no blanco de la línea (con lo que, efectivamente, retrocede tanto como el sangrado elegido)
- texto después de un '#' debe ser ignorado
- texto entrecomillado simple también debe ser ignorado
- arregla el sangrado: convierte las combinaciones de tabuladores y espacios en blanco, a solo espacios en blanco
- el margen derecho estará en la columna 79 (me auto impongo no escribir líneas muy largas)
- está desactivada la opción '-spaces' que ponía espacios en lugar de un tabulador, al pulsar la tecla Tab, así que sí quiero que escriba un tabulador, después de un sangrado y de al menos un carácter no blanco (ayuda a formatear comentarios en la parte derecha)
- ancho del tabulador: 8 espacios
Para PHP, joe usa una configuración, predeterminada, más sencilla:
Using text Syntax Highlighting
*.php
-autoindent
-syntax php
-smarthome
-smartbacks
-purify
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Naturalmente, se puede cambiar.
En otro hilo encontrarás mi configuración para Vim, aunque en estos días la estoy limpiando un poco. Cuando la tenga terminada, actualizaré el hilo correspondiente.
También lo puedes hacer con Emacs, que es bastante bueno.
Entre los programadores actuales, se reparten entre Vim y Emacs, quizás con un poco de predominio de Vim. Al menos, entre los programadores de Perl, la mayoría usa Vim. Emacs tiene muy buen soporte de macros. Por ejemplo, puedes ver a un buen programador escribir "for" y luego pulsa una combinación de teclas, y el Emacs le escribe los paréntesis, las llaves, y le coloca el cursor en el sitio correcto, con lo que ahorra mucho tiempo programando. Esto es común en muchos editores, Eclipse incluido.
Y es extraño lo que dices de Notepad++.
En este hilo se comenta que, por defecto, Notepad++ si que copia el nivel de sangrado de la línea anterior (como lo comentado antes con joe). Y da un enlace a un complemento que sí da la facilidad del auto sangrado, aunque en las últimas versiones está en Configuración->Preferencias->Misc->Auto-Indentado.