12

私のデフォルトの端末の色は灰色ですが、それで問題ありません。

私のBashプロンプトはたくさんの色を表示しますが、これはうまくいきます:

PS1="${COLOR_RED}\u${COLOR_WHITE}@${COLOR_RED}${COMPUTERNAME} ${COLOR_BLUE}\w${GITPROMPT} ${COLOR_RESET}"

しかし、プロンプトの最後に入力したテキストは灰色です。白(ANSIコード「[37m」)にしたい。

プロンプトの最後に COLOR_RESET の代わりに COLOR_WHITE を追加すると、リセットされるまでデフォルトの端末の色が白に変わります。これにより、一部の灰色のテキストに奇妙な効果が生じ、一部の白いテキストが上部からにじみ出ています。

Bashプロンプトの「入力テキスト」の色を端末のデフォルトの色以外に変更するにはどうすればよいですか?

4

4 に答える 4

0

端末エミュレータの設定を変更することをお勧めします。

iTerm2を使用しているようです ( iTermを使用している場合は、iTerm2 を参照することをお勧めします)。

設定プロフィールあなたのプロフィール。「基本色」の下で、「前景」を調整します。

入力テキストの色を変更するだけで、Z シェル ( zsh) で

preexec () { echo -ne "\e[0m" }

ソース 1

Bashでこれを試すハックっぽい方法を見つけました:

ネイティブではありませんが、DEBUG トラップを使用してハッキングできます。このコードは、preexec を設定しprecmd、zsh と同様の機能を実行します。コマンド ラインは、単一の引数として preexec に渡されます。

以下は、各コマンドを実行する前に実行される precmd 関数をセットアップするためのコードの簡略化されたバージョンです。

preexec () { :; }
preexec_invoke_exec () {
    [ -n "$COMP_LINE" ] && return  # do nothing if completing
    local this_command=$(history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g");
    preexec "$this_command"
}

trap 'preexec_invoke_exec' DEBUG
このトリックはGlyph Lefkowitzによるものです。[bcat] さん、元の作者を見つけてくれてありがとう。

http://www.macosxhints.com/dlfiles/preexec.bash.txt

ソース 2

于 2013-05-19T15:30:40.520 に答える