[英]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.