175

コマンドラインでの出力の開始と終了をよりよく認識するために、プロンプトの色を変更して、プログラムの出力とは明らかに異なるようにしたいと考えています。私はzshを使用しているので、誰かヒントを教えてもらえますか?

4

12 に答える 12

344

これを入れてください~/.zshrc

autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "

サポートされている色:
red, blue, green, cyan, yellow, magenta, black& white(この回答から) ただし、コンピューターによって有効なオプションが異なる場合があります。

カラー コード (およびその他の印刷できない文字) を で囲みます%{....%}。これは、テキストの折り返しが正しく機能するためです。

さらに、ここからのディレクトリトリミングでこれを機能させる方法は次のとおりです

PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "
于 2010-03-28T21:37:49.020 に答える
92

Zsh には、色付きのプロンプトが組み込まれています。試す

autoload -U promptinit && promptinit

次にprompt -l、使用可能なプロンプトを一覧表示-p fireし、「fire」プロンプトをプレビューして-s fire設定します。

プロンプトを追加する準備ができたら、上記の autoload 行の下に次のようなものを追加します。

prompt fade red
于 2010-12-21T00:32:19.847 に答える
74

赤いプロンプトを設定する方法の例を次に示します。

PS1=$'\e[0;31m$ \e[0m'

魔法は\e[0;31m(赤い前景をオンにする)と\e[0m(キャラクターの属性をオフにする)です。これらはエスケープシーケンスと呼ばれます。エスケープシーケンスが異なれば、カーソルの絶対位置、色、ウィンドウのタイトルバーの変更など、さまざまな結果が得られます。

エスケープシーケンスの詳細については、ANSIエスケープコードに関するウィキペディアのエントリを参照してください。

于 2009-03-27T13:41:04.223 に答える
29

はもう必要ないと思いますautoload -U colors && colors。簡単に行うことができます:

PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "

FireDude's answerと同じ結果を達成します。詳細については、ZSH のドキュメントを参照してください。

于 2011-04-08T07:54:26.273 に答える