mirror of
https://github.com/dcarrillo/prezto.git
synced 2026-04-18 13:24:04 +00:00
Split the single loop that initializes both named ANSI colors (0–7) and the remaining 256-color indices into two separate loops. The first loop sets both numeric and name keys for the named ANSI colors without per-iteration checks, and the second loop sets only numeric keys for the remaining indices.
74 lines
3.4 KiB
Bash
74 lines
3.4 KiB
Bash
#
|
||
# Provides for easier use of 256 colors and effects.
|
||
#
|
||
# Authors:
|
||
# P.C. Shyamshankar <sykora@lucentbeing.com>
|
||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||
#
|
||
|
||
# Return if requirements are not found.
|
||
if [[ $TERM == dumb ]]; then
|
||
return 1
|
||
fi
|
||
|
||
typeset -gA FX FG BG
|
||
|
||
FX=(
|
||
none "\e[00m"
|
||
normal "\e[22m"
|
||
bold "\e[01m" no-bold "\e[22m"
|
||
faint "\e[02m" no-faint "\e[22m"
|
||
standout "\e[03m" no-standout "\e[23m"
|
||
underline "\e[04m" no-underline "\e[24m"
|
||
blink "\e[05m" no-blink "\e[25m"
|
||
fast-blink "\e[06m" no-fast-blink "\e[25m"
|
||
reverse "\e[07m" no-reverse "\e[27m"
|
||
conceal "\e[08m" no-conceal "\e[28m"
|
||
strikethrough "\e[09m" no-strikethrough "\e[29m"
|
||
gothic "\e[20m" no-gothic "\e[22m"
|
||
double-underline "\e[21m" no-double-underline "\e[22m"
|
||
proportional "\e[26m" no-proportional "\e[50m"
|
||
overline "\e[53m" no-overline "\e[55m"
|
||
|
||
no-border "\e[54m"
|
||
border-rectangle "\e[51m" no-border-rectangle "\e[54m"
|
||
border-circle "\e[52m" no-border-circle "\e[54m"
|
||
|
||
no-ideogram-marking "\e[65m"
|
||
underline-or-right "\e[60m" no-underline-or-right "\e[65m"
|
||
double-underline-or-right "\e[61m" no-double-underline-or-right "\e[65m"
|
||
overline-or-left "\e[62m" no-overline-or-left "\e[65m"
|
||
double-overline-or-left "\e[63m" no-double-overline-or-left "\e[65m"
|
||
stress "\e[64m" no-stress "\e[65m"
|
||
|
||
font-default "\e[10m"
|
||
font-first "\e[11m" no-font-first "\e[10m"
|
||
font-second "\e[12m" no-font-second "\e[10m"
|
||
font-third "\e[13m" no-font-third "\e[10m"
|
||
font-fourth "\e[14m" no-font-fourth "\e[10m"
|
||
font-fifth "\e[15m" no-font-fifth "\e[10m"
|
||
font-sixth "\e[16m" no-font-sixth "\e[10m"
|
||
font-seventh "\e[17m" no-font-seventh "\e[10m"
|
||
font-eighth "\e[18m" no-font-eighth "\e[10m"
|
||
font-ninth "\e[19m" no-font-ninth "\e[10m"
|
||
)
|
||
|
||
FG[none]="$FX[none]"
|
||
BG[none]="$FX[none]"
|
||
colors=(black red green yellow blue magenta cyan white)
|
||
|
||
# Named ANSI colors (0–7) have both numeric and name keys.
|
||
for color in {0..7}; do
|
||
FG[$colors[color+1]]="\e[38;5;${color}m"
|
||
BG[$colors[color+1]]="\e[48;5;${color}m"
|
||
FG[$color]="\e[38;5;${color}m"
|
||
BG[$color]="\e[48;5;${color}m"
|
||
done
|
||
|
||
# Remaining 256-color indices have only numeric keys.
|
||
for color in {8..255}; do
|
||
FG[$color]="\e[38;5;${color}m"
|
||
BG[$color]="\e[48;5;${color}m"
|
||
done
|
||
unset color{s,}
|