簡體   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