PS1設定を使用したカラーテキストとコマンドのカラー出力が混同されます。

PS1設定を使用したカラーテキストとコマンドのカラー出力が混同されます。

端末内のすべてのテキストに色を付けることを可能にするPS1開始色シーケンス(例:)で終わります(この場合は緑色)。\[\e[0;32m\]ただし、(myのエイリアス)などのコマンドを使用すると、ls出力の色が少し混乱します。最初の「色」の単語は緑色で、それに続く色付けされていないテキストは緑色ではなく白色です。ls --color=auto.bashrc

すべての場合にきれいな出力を得る方法はありますか?出力に色がある場合は、白を「基本」テキスト色として使用できますが、一貫性を維持したいと思います。

もちろん、私が最も望むのは、すべてのコマンドに自動的に適用され、呼び出し方法を変更する必要がないソリューションです。

個人的に私は全く知らない。たぶん、「即時」エスケープシーケンスの出力を取得し、いくつかの置換を実行するために何かを実行できますか?しかし、これを実装する方法がわかりません。特に「舞台裏」で行われるのでさらにそうです。

ベストアンサー1

その理由は、あなたが間違っているからです。

プロンプトの最後に「オープン」カラーの順序があると言われました。これは間違っています。色巣を建てずに。 「オン」と「オフ」はありません。 「切り替え...」または「デフォルトにリセット」(実際には「0に切り替え」)です。したがって、ls --color=auto操作が完了した後に色が切り替わると、デフォルト値にリセットされるシーケンスが作成されます。これは「以前の方法での復帰」ではありません。

「デフォルト」(パレット番号0など)を希望のテキストカラーを使用するように端末を設定します。その後、プロンプトの色を変えるには、最初に設定して最後にリセットします。

詳細については、Bash Prompt HOWTOをお読みください。第6章ANSIエスケープシーケンス:色とカーソルの移動文書。

おすすめ記事