子 shell 的 Bash 语法高亮显示

子 shell 的 Bash 语法高亮显示

考虑到大量与 Bash 中的子 shell 有关的问题(“为什么我的变量在这个管道while read循环?”),我只是认为引用某些编辑器或服务会非常好,其中将在子 shell 中执行的代码的格式与在父 shell 中执行的代码不同。它可能作为一种教育设备很有用(请参阅code | code和即时之间的区别code < <(code))是否存在?

如果有人为 jEdit 或 VIm 实现它,则会获得奖励积分。

显然,它不一定是完美的(根据我的经验,没有语法突出显示),但我怀疑像(foo=bar; echo $foo;)和这样的事情command | while read ...一开始就不应该太困难。

答案1

我认为这不存在。它很有用,但很难通过编辑器中使用的标准语法解析方法来实现。从解析的角度来看,需要分析许多关键字和特殊符号才能确定属于子 shell 的代码块。

但我很高兴看到我错了,并且有人付出了创建此类配置所需的努力。

答案2

我的 Vim 已经这样做了。

它实际上让我很困扰,因为它导致子 shell 内的注释无法应用正确的突出显示。

在此输入图像描述

这是从源代码编译的 Vim 7.3 补丁 874。

相关内容