Compte tenu de la grande quantité de questions qui s'avèrent être liées aux sous-coquilles dans Bash ("Pourquoi mon incrément de variable dans cette boucle pipedwhile read
?"), Je pensais juste qu'il serait très agréable de se référer à un éditeur ou un service où le code qui sera exécuté en sous-shell est formaté différemment du code exécuté dans le shell parent. Il pourrait être utile comme appareil éducatif (voir la différence entre code | code
et code < <(code)
instantanément). Cela existe-t-il?
Points bonus si quelqu'un l'implémente pour jEdit ou VIm.
Évidemment, cela ne doit pas être parfait (pas de mise en évidence de la syntaxe, selon mon expérience), mais je soupçonne des choses comme (foo=bar; echo $foo;)
et command | while read ...
ne devrait pas être trop difficile pour commencer.
vim
la mise en évidence du code.Réponses:
Je ne pense pas que cela existe. Il serait utile, mais difficile à mettre en œuvre par des moyens standard d'analyse syntaxique utilisés dans les éditeurs. Du point de vue de l'analyse, il existe de nombreux mots clés et symboles spéciaux qui devraient être analysés pour déterminer un bloc de code appartenant à un sous-shell.
Mais je serais heureux de voir que je me trompe et que quelqu'un a mis l'effort nécessaire pour créer de telles configurations.
la source
Mon Vim le fait déjà.
En fait, cela me dérange, car cela empêche les commentaires à l'intérieur des sous-coquilles d'appliquer la mise en surbrillance appropriée.
Il s'agit du patch 874 de Vim 7.3 compilé à partir de la source.
la source
zsh
lorsque je travaille dans un sous-shell. Cela corrige la coloration syntaxique.set -x; set -e
sur cette section. Et pour capturer toutes ces sorties, y compris stderr, dans un journal.trap
mot-clé y sont mis en évidence. il n'a tout simplement pas mis en évidence les commentaires. le type de fichier zsh fonctionne cependant. Maintenant, en ce qui concerne la différenciation du sous-shell du shell principal, (ce qui est après tout ce que vous vouliez, je suppose), eh bien ....... utilisez quelques commentaires?