Во-первых, вы используете zsh
, а не bash
; подсказки настроены совершенно по-другому.
Во-вторых, вам не нужно экспортировать PS1
, поскольку любой процесс, который заботится о его значении, будет использовать .zshrc
.
Следующее должно работать, помещенное в .zshrc
:
# The variables aren't necessary, but retained for
# ease of updating. You could specify %F{15} directly
# for %F{$white}, e.g.
orange=166
yellow=228
green=71
white=15
PS1=$'%B\n'
PS1+="%F{$orange}%n"
PS1+="%F{$white} at "
PS1+="%F{$yellow}%m";
PS1+="%F{$white} in "
PS1+="%F{$green}%~ :"
PS1+=$'\n'
PS1+="%F{$white}%# %f%b"
%B
и %b
включают и выключают жирный шрифт соответственно. %F{...}
меняет текущий цвет переднего плана; %f
сбрасывает настройки терминала по умолчанию. \
экранирование от bash
заменяется на %
экранирование. Вам нигде не нужен zsh
эквивалент \[...\]
, потому что вы не используете необработанные последовательности байтов для управления форматированием.
Все это можно сократить до одной строки:
PS1=$'%B\n%F{166}%n%F{15} at %F{228}%m%F{15} in %F{71}%~ :\n%F{15}%# %f%b'
хотя более длинная версия более удобна в обслуживании.
Наконец, обратите внимание, что (в отличие от bash
) zsh
источников .zshrc
для всех интерактивных оболочек. Если это также оболочка входа в систему, то она получает .zprofile
, а не .zshrc
.
.