最近遇到一行zsh
代码
ls_colors_parsed=${${(@s.:.)LS_COLORS}/(#m)\**=[0-9;]#/${${MATCH/(#m)[0-9;]##/$MATCH=$MATCH=04;$MATCH}/\*/'=(#b)($PREFIX:t)(?)*'}}
Run Code Online (Sandbox Code Playgroud)
这不仅会烧伤我的眼球,而且远远超过 80 个字符的限制。不幸的是,我没有看到任何明确的方法来缩短它。我有很多这样的台词(由无法切成碎片的极其复杂的替换组成)。如果我希望它们的长度小于 80 个字符,那么处理这些行的规范方法是什么。
您可以通过转义的换行符来打破长行,\
换行符后面紧跟着一个换行符:
ls_colors_parsed=${${(@s.:.)LS_COLORS}/(#m)\**=[0-\
9;]#/${${MATCH/(#m)[0-9;]##/$MATCH=$MATCH=04;$MATC\
H}/\*/'=(#b)($PREFIX:t)(?)*'}}
Run Code Online (Sandbox Code Playgroud)
警告
虽然几乎在任何地方都可以用这种方式换行,但也有例外。它不适用于单引号文本内或\
转义序列 ( \n
, \x40
, ...) 之后。其他一些 shell 结构也可能会中断:如果您在示例中将 try to break 放在 和 之间($PREFIX
,:t)
它将无法正常工作。
归档时间: |
|
查看次数: |
100 次 |
最近记录: |