繁体   English   中英

鱼壳自定义功能,用于输出文本着色

[英]Fish shell custom function for output text coloring

在终端仿真器(例如终结器)中使用鱼壳以及输出大量文本的命令时,在输出上进行一些颜色编码可能很有用。 我知道脚本可以将颜色代码信息添加到输出中,例如“ grep --color = auto ”。 我想可以修改fish终端以扫描输出并将其添加到特殊位置吗?

我想做的是,出现在任何脚本输出中的文本“错误”始终标记为红色,而“警告”始终标记为黄色。 有人知道通过在〜/ .config / fish / functions目录或类似目录中引入功能文件是否可行?

这基本上是分层违规。 通常,外部命令的输出不会通过外壳返回。 它直接进入终端。

另外,您在这里所做的任何事情都有可能减慢输出速度。 (并且由于#1396号鱼类,这可能非常极端)。

就是说,有可能总是将管道传递给这样的函数

function colorstuff
    while read -l input
        switch $input
            case "*error*"
                set_color red
                echo $input
            case "*warning*"
                set_color yellow
                echo $input
            case "*"
                set_color normal
                echo $input
        end
    end
    set_color normal
end

somecommand | colorstuff一样使用它somecommand | colorstuff somecommand | colorstuff (如果您还希望为stderr上色,则可以添加^&1

在我的测试中,这会导致明显的速度下降,即使修复了该问题,它也仍然会变慢,因为它必须匹配每一行。

确实,真正的解决方案是使用您自己用于着色的任何工具,因为它知道输出的含义 所有可以做的就是寻找关键字。

出于一般输出着色的需要,我正是为此目的将grc插件添加到了Tackle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM