在 zsh 提示符中显示目录的图标

在 zsh 提示符中显示目录的图标

粗略地说,这是我的 zsh 左侧提示:

# Libraries
autoload -Uz colors && colors

# User color
if [ "$(whoami)" = "root" ]; then
    COLOR="red"
elif [ "$(whoami)" != "root" ]; then
    COLOR="magenta"
fi

# Directory icon
if [ "$()" = "Documents" ]; then
    ICON=""
if [ "$()" = "Pictures" ]; then
    ICON=""
if [ "$()" = "Videos" ]; then
    ICON=""
else
    ICON="%~"
fi

export PS1="%B%{$fg[$COLOR]%}$ICON %{$reset_color%}%b"

而不是显示

~/Documents/git/project1 >>>

我要显示

"ICON" git/project1 >>>

其中"ICON"是用户当前目录的适当(预定)图标。如果用户不在这些“选择的”目录中,只需显示相对路径(就像在我的脚本中一样)。

该脚本如何读取用户的当前目录并确定在终端上显示(或不显示)什么图标?

答案1

你可以这样做:

typeset -A dir_to_icon
and_below='(|/*)'
dir_to_icon=(
  ~/Documents$and_below '

相关内容