zshrc - Using ANSI escape sequences in zsh prompt -
i'm trying use ansi escape sequences set color of zsh prompt, escape character (\e) seems being escaped when displaying prompt. here's example of i'm running , output i'm getting:
> autoload promptinit && promptinit > autoload colors && colors > echo "not sure if 2 lines required" > /dev/null > prompt="\e[32mhi> " \e[32mhi> echo "note escape character wasn't interpreted correctly" > /dev/null \e[32mhi> print -p "$prompt" hi> \e[32mhi> echo "the hi> printed in green, want" > /dev/null   the zsh print documentation seems -p flag makes print if in prompt, doesn't match actual prompt behavior. know why escape character doesn't work?
i tried using $fg_no_bold, , things $fg_no_bold[red] work, i'd use more 8 standard colors, $fg_no_bold[32] doesn't work (for number, not 32). if getting 256 colors working $fg_no_bold easier, i'd ok doing that!
thanks!
you need use dollar single quote in order tell zsh interpret ansi escape sequences. so
prompt=$'\e[32mhi> '   will want, safer additionally put special codes inside %{...%} brackets treat code literally , prevent unwanted moving of cursor position. should change colour default, unless want colourize terminal text foreground green.
after prompt setting should like
prompt=$'%{\e[32m%}hi> %{\e[0m%}'      
Comments
Post a Comment