Considerando a grande quantidade de perguntas que se relacionam aos subshells no Bash ("Por que minha variável não aumenta nesse loop canalizadowhile read
?"), Pensei que seria muito bom consultar um editor ou serviço onde o código que será executado em subshells é formatado de forma diferente do código executado no shell pai. Pode ser útil como um dispositivo educacional (veja a diferença entre code | code
e code < <(code)
instantaneamente). Isso existe?
Pontos de bônus se alguém implementá-lo para jEdit ou VIm.
Obviamente, ele não precisa ser perfeito (na minha experiência, nenhum destaque de sintaxe é), mas desconfio de coisas do tipo (foo=bar; echo $foo;)
e command | while read ...
não deve ser muito difícil para começar.
vim
realce do código.Respostas:
Eu não acho que isso exista. Seria útil, mas difícil de implementar por meio de análise de sintaxe padrão usada em editores. Do ponto de vista da análise, existem muitas palavras-chave e símbolos especiais que precisariam ser analisados para determinar um bloco de código que pertence a um subshell.
Mas ficaria feliz em ver que estou errado e alguém fez o esforço necessário para criar essas configurações.
fonte
Meu Vim já faz isso.
Na verdade, isso me incomoda, porque faz com que os comentários dentro dos subshells não obtenham o destaque apropriado aplicado.
Este é o patch 874 do Vim 7.3, compilado a partir da fonte.
fonte
zsh
quando estou trabalhando em um subshell. Isso corrige o realce da sintaxe.set -x; set -e
isso nessa seção. E para capturar toda essa saída, incluindo stderr em um log.trap
palavra - chave são destacados lá. apenas falhou em destacar comentários. o tipo de arquivo zsh funciona embora. Agora, quanto a diferenciar o sub shell do shell principal (que afinal é o que você queria, eu acho), bem ....... usa alguns comentários?