Zsh:実行されたコマンドを自動的に修正します。

Zsh:実行されたコマンドを自動的に修正します。

最近のMacPortsでは、システムにgrc(通常のシェーダ)をインストールして、デフォルトでサポートされていない多くのコマンドのカラー出力を得ることができました(下記のスクリーンショットを参照)。 grc と Traceroute の例。
特定のコマンドではなく、すべてのコマンドに対してgrcを自動的に使用したいと思います。私はzshをシェルとして使用します。

本質的に実行するたびにcommand -parameter 1 2 3自動的にgrc command -parameter 1 2 3
traceroutegrc traceroute

私は.zshrcのpreexecとprecmdの設定を調べましたが、あなたが望むことを達成する方法を見つけることができませんでした。

答え1

承認行ウィジェットをオーバーライドしてこれを実行できます。

add-grc() { [[ $BUFFER = grc* ]] || BUFFER="grc $BUFFER"; zle .$WIDGET "$@"; }
zle -N accept-line add-grc

ただし、「for i(..)」、「var = x」、「f(){」...などのコマンドでは問題が発生する可能性があります。

答え2

他の選択肢。同様の潜在的な問題:

TRAPDEBUG() { eval "grc $ZSH_DEBUG_CMD"; setopt errexit; }

ここで公開されているソリューションの例外を見つけようとするのではなく、「grc」を必要とするすべてのコマンドに「エイリアス」を使用します。

答え3

見つけることができるgrc.zshこれらのいくつかを試してみてください。grcここ。サポートされているすべてのコマンドのエイリアスがあります。
これを見てスタックオーバーフロー回答

関連情報