我在 MacOS Catalina 上有一个运行良好的 zsh 配置。不,除了 Debian 10 Buster,我想得到同样的结果。
问题出现在使用 PROMPT 函数时,该函数显示粉红色斜线,分隔 PATH 当前工作的目录为蓝色。
在 MacOS 上,我这样做(进入我的 .zshrc):
# 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 上,我从 MacOS Catalina 复制了 ~/.zshrc。
并且当显示 PROMPT 时,当前工作目录的 PATH 不显示(空)并且我收到以下错误:
awk: run time error: not enough arguments passed to printf("%{%}~%{%}/")
FILENAME="-" FNR=1 NR=1
我不知道为什么我在 Debian 而不是 MacOS 上出现此错误。我怀疑这是由于我的slash_color()
功能工作有所不同,但我不明白起源。
在 Debian 版本中似乎缺少一个变量awk
,但我看不到是哪一个。