У меня есть конфигурация zsh на MacOS Catalina, которая работает хорошо. Нет, я хотел бы получить то же самое, но для Debian 10 Buster.
Проблема возникает при использовании функции PROMPT, которая отображает розовые косые черты, которые разделяют текущую переменную PATH, где каталоги выделены синим.
В MacOS я делаю это так (в свой .zshr c):
# Path with colorized forward slash
slash_color() {
dirs | awk -F "/" '{ blue="%{\033[38;5;75m%}"; \
pink="%{\033[38;5;206m%}"; \
for (i=1; i<NF; i++) \
printf blue $i pink "/"; \
printf blue $NF pink; \
}';
}
# Prompt final
PROMPT=$'%F{13}|%F{green}%n@%F{cyan}%m%F{13}|%f%T%F{13}|$(slash_color)%F{13}|%F{7} '
Результат выглядит как PROMPT:
Теперь в Debian Buster я скопировал ~ / .zshr c из MacOS Catalina.
и при отображении PROMPT ПУТЬ текущего рабочего каталога не отображается (пусто) , и я получаю следующую ошибку:
awk: run time error: not enough arguments passed to printf("%{%}~%{%}/")
FILENAME="-" FNR=1 NR=1
Я не знаю, почему у меня эта ошибка в Debian, а не в MacOS. Я подозреваю, что это связано с разницей в работе моей функции slash_color()
, но я не понимаю источник.
Кажется, что в версии Debian для awk
отсутствует переменная, но я могу Не вижу, какой.