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