これにより、tput sgr0
ターミナルのフォントと色が白色(黒色でなければならない)に変わり、ムクトゥク見えます。
スクリーンショットをご覧ください。
どうすればこれを止めることができますか?
より簡潔に言えば、これecho
以降の内容tput sgr 0
は太い白で出力されるように見え、端末テキストの色は黒です。
修正する:
私のもの~.bashrc
:
export LC_ALL="en_GB.UTF-8"
export BASH_SILENCE_DEPRECATION_WARNING=1
branch() {
git branch 2> /dev/null | \
grep \* | \
awk '{print$2}' | \
sed '
s#^#(#g;
s#$#)#g
'
}
colo() { tput setaf $1; }
PS1='`tput bold``colo 5`\W: `tput sgr0``colo 0``branch``colo 0` \n λ '
答え1
コードsgr0
はman terminfo
「すべてのプロパティをオフにする」。
コードsgr
は「ビデオプロパティ#1〜#9定義(PG9)「値を取り、1
.. 9
;シーケンスsgr 0
は定義されていません。質問におよび両方を使用しましたsgr0
。sgr 0
残りの答えは、sgr0
他のシーケンスが有効ではないためと仮定されます。
tput sgr0
端末を白黒にリセットを使用している場合、これらの色はデフォルト(リセット)モードの一部です。そのため、好みのカラースキームをデフォルトとして使用するようにターミナルアプリケーションを設定するのではなく、特定の前景色と背景色を設定するための指示をシェル初期化ファイルの1つに配置するとします。これはsgr0
コードによって(正しく)リセットされます。
2つの考えられる解決策を考えましたが、
- デフォルトのリセット値になるようにシェル設定ファイルで設定するのではなく、目的の色を使用するようにターミナルアプリケーションを直接設定します。
- 印刷するたびに好みの前景と背景のプロパティを設定するには、シェルプロンプトコマンドを変更します。