web-dev-qa-db-ja.com

Zshの256色プロンプト

プロンプトを256色に着色するように設定するにはどうすればよいですか?私はbashプロンプトに相当するものを探しています:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "

まず、ターミナルが256色をサポートしていることを確認します。次に、PS1正しいコードを含む変数。次に例を示します。

export PS1='%{^[[01;38;05;214;48;05;123m%}%m%{^[[0m%} '

これにより、フォアグラウンドカラーが214でバックグラウンドカラーが123のホスト名が太字のプロンプトが表示されます。

^[と入力すると「入力」されます Ctrl+v そして Ctrl+[。属性のリスト全体については、この優れた記事「 That 256 Color Thing 」を参照してください。

9
phunehehe
export PS1='%F{214}%K{123}%m%k%f'

man zshmiscから:

   %F (%f)
          Start (stop) using a different foreground colour, if supported by the terminal.  The colour may be specified two ways: either as a numeric argument, as normal, or by a sequence in braces following the %F, for example %F{red}.  In the latter case the values allowed are as described for the fg zle_highlight attribute; see  Char‐
          acter Highlighting in zshzle(1).  This means that numeric colours are allowed in the second format also.

   %K (%k)
          Start (stop) using a different bacKground colour.  The syntax is identical to that for %F and %f.

また、試してみると、次のように使用できます。

$> print -P '%F{214}%K{123}%m%k%f'