現在編集中です。不可知論者トピック:ああ、私の好みに応じて、ステータスバーのディレクトリ名に深さに基づいて色を付ける方法があるかどうか疑問に思います。まるで…
~(red)/.config(orange)/oh-my-zsh(yellow)
もともと使った電源ケーブルUbuntuリポジトリからパッケージをダウンロードしましたが、速度が遅すぎて次に切り替えました。扱いにくいトピック。使用するとき電源ケーブル私がしたいことができますが、現在の作業ディレクトリの色だけを変更できます。私の設定はこんな感じです。
"cwd": {"fg": 'color', "bg": 'color', "attrs": []}
"cwd:current_folder": {"fg": 'color', "bg": 'color', "attrs": []}
この虹のモンスターを作るのを手伝ってくれてありがとう。 Ubuntu 16.04でTerminator(利用可能な場合)を使用しています。
答え1
これを行う関数を作成できます。完璧ではなく、間違いなく移植性はありませんが、うまくいくようです。で使用するには、and(/または/使用、覚えていません)、設定、およびprecmdフック()、およびで使用されている変数を変更する関数を変更するだけ$PS1
です。$fg_
$bg_
%F
%B
$fg
$bg
add-zsh-hook precmd function_precmd
$PS1
カスタム機能が必要な場合は、PRE_ASSOCを正しく設定してください。
function colorize_array () {
local reset='\033[0m'
for (( i = 1; i <= $# ; i++ )); do
pre=""
if (( $+PRE_ASSOC[$i] )); then
pre=$PRE_ASSOC[$i]
elif (( $+PRE_ASSOC[$(( $i - $# - 1 ))] )) ;then
pre=$PRE_ASSOC[$(( $i - $# - 1 ))]
else
pre=$PRE_ASSOC[default]
fi
echo -n -e $pre$@[$i]$reset
done
}
typeset -A fg_ bg_
typeset -A PRE_ASSOC
fg_=([black]="\033[30m" [white]="\033[37m" [red]="\033[31m" [yellow]="\033[33m" [cyan]="\033[36m")
bg_=([black]="\033[40m" [white]="\033[47m" [red]="\033[41m" [yellow]="\033[43m" [cyan]="\033[46m")
PRE_ASSOC=([default]="$fg_[cyan]/" [1]="$fg_[red]" [-1]="$fg_[yellow]/")
local pwd="${PWD/#$HOME/~}"
pwd_list=(${(s:/:)pwd})
out=$(colorize_array $pwd_list)
echo $out
コードは完璧ではありませんが、動作します。