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 '

관련 정보