Teniendo en cuenta la gran cantidad de preguntas que resultan estar relacionadas con subcapas en Bash ("¿Por qué no aumenta mi variable en este bucle canalizadowhile read
?"), Pensé que sería muy bueno referirme a algún editor o servicio donde el código que se ejecutará en subshells está formateado de manera diferente al código ejecutado en el shell padre. Puede ser útil como un dispositivo educativo (vea la diferencia entre code | code
e code < <(code)
instantáneamente). ¿Existe esto?
Puntos de bonificación si alguien lo implementa para jEdit o VIm.
Obviamente, no tiene que ser perfecto (en mi experiencia, no hay resaltado de sintaxis), pero sospecho que cosas como (foo=bar; echo $foo;)
y command | while read ...
no deberían ser demasiado difíciles para empezar.
vim
resaltado de código.Respuestas:
No creo que esto exista. Sería útil, pero difícil de implementar por medio del análisis sintáctico de sintaxis utilizado en los editores. Desde el punto de vista del análisis, hay muchas palabras clave y símbolos especiales que tendrían que analizarse para determinar un bloque de código que pertenece a una subshell.
Pero me alegraría ver que estoy equivocado y alguien ha puesto el esfuerzo necesario para crear tales configuraciones.
fuente
Mi Vim ya hace esto.
Realmente me molesta, porque hace que los comentarios dentro de las subcapas no apliquen el resaltado adecuado.
Este es el parche 874 de Vim 7.3 compilado desde la fuente.
fuente
zsh
cuando estoy trabajando dentro de una subshell. Eso corrige el resaltado de sintaxis.set -x; set -e
eso en esa sección. Y para capturar toda esa salida, incluido stderr en un registro.trap
palabra clave se resaltan allí. simplemente no pudo resaltar los comentarios. Sin embargo, el tipo de archivo zsh funciona. Ahora, en cuanto a diferenciar el shell secundario del shell principal (que, después de todo, es lo que quería, supongo), bueno ... ¿usa algunos comentarios?