Many zsh configs floating around the internet that set the right-hand prompt RPS1 append the value of EPS1 to the end, but I have found no documentation anywhere of what EPS1 might contain. On my machine it's an empty string.

Here is one such example that includes EPS1 where someone asked what it was for, and the author didn't know, it was just copied from elsewhere:

RPS1="${${KEYMAP/vicmd/$VIM_PROMPT}/(main|viins)/} $EPS1"

When I search for EPS1 and various shells, all I get are people sharing configs that include it, and a Reddit thread that unhelpfully says it's probably something to do with the prompt.

I've searched the entire git history of both bash and zsh, and "EPS1" doesn't show up anywhere in either.

Where did this variable come from? Is it some holdover from an ancient shell that's been copypasta'd through the decades? Is it ever anything but an empty string in modern environments?


1 Answer 1


EPS1 has no specific meaning, but if you have a script which initialize RPS1 to "${${KEYMAP/vicmd/$VIM_PROMPT}/(main|viins)/} $EPS1", using EPS1=... before calling this script will compose the RPS1 value with what you want.

RPS1 is a part of the prompt which is displayed at the right.

EPS1 documentation should be a part of the script which use it, not zsh.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .