コマンドラインでの出力の開始と終了をよりよく認識するために、プロンプトの色を変更して、プログラムの出力と視覚的に異なるようにします。 zshを使用しているときに、誰かがヒントをくれますか?
赤いプロンプトを設定する方法の例を次に示します。
PS1=$'\e[0;31m$ \e[0m'
魔法は\e[0;31m
(赤い前景をオンにする)および\e[0m
(文字属性をオフにします)。これらはエスケープシーケンスと呼ばれます。エスケープシーケンスが異なると、カーソルの絶対位置から色、ウィンドウのタイトルバーの変更など、さまざまな結果が得られます。
エスケープシーケンスの詳細については、 ANSIエスケープコードに関するウィキペディアのエントリ を参照してください。
これを~/.zshrc
に入れます:
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
サポートされている色:
赤、青、緑、シアン、黄、マゼンタ、白黒( この回答 から).
%{....%}
でカラーコード(およびその他の印刷できない文字)を囲みます。これは、テキストの折り返しが正しく機能するためです。
さらに、これを here からのディレクトリトリミングで動作させる方法を次に示します。
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "
Zshには色付きのプロンプトが組み込まれています。試して
autoload -U promptinit && promptinit
その後 Prompt -l
使用可能なプロンプトのリスト、-p fire
「火災」プロンプトをプレビュー、-s fire
はそれを設定します。
プロンプトを追加する準備ができたら、上のオートロード行の下に次のようなものを追加します。
Prompt fade red
私はautoload -U colors && colors
がもう必要ないとは思わず、簡単にできます:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
FireDudeの答え と同じ結果を達成します。詳細については、 ZSH documentation を参照してください。
Zsh5(Debian Jessieのデフォルト)を使用すると、これらすべてのソリューションが機能することがわかりました。
$'\e[00m
$fg[white]
$fg{white}
今、彼らには問題があります:彼らはカーソルを動かし、タブ移動時にいデカールをもたらします(自動補完のため)。解決策は、エスケープシーケンスを%{FOOBAR%}
で囲むことです。これを理解するためにしばらく時間がかかりました。 2番目と3番目のソリューションの場合、colors
モジュールのロードは必須です。最初のソリューションを読みやすくするには、使用する色の変数を定義するだけです。
man zshallとプロンプト拡張の検索
ここで既存の回答を読んだ後、それらのいくつかは矛盾しています。 zsh 4.2および5+を実行しているシステムでさまざまなアプローチを試しましたが、これらの答えが矛盾する理由は、対象となるZSHのバージョンが示されていないためです。バージョンごとに異なる構文が使用され、一部のバージョンではさまざまなオートロードが必要です。
したがって、おそらく最善の方法は、zshallを実行し、Prompt EXPANSIONを検索して、特定のzshインストールのすべてのルールを見つけることです。コメントで注意してください、「私はUbuntu 11.04または10.4またはOSXを使用しています」のようなものは、使用しているZSHのバージョンが不明であるため、あまり意味がありません。 Ubuntu 11.04は、ubuntu 10.04よりも新しいバージョンのZSHを意味するものではありません。古いバージョンがインストールされた理由はいくつかあります。さらに言えば、新しいバージョンのZSHは、どのバージョンのZSHかを知らなくても、どの構文を使用するかを意味しません。