This is minor but it's driving me crazy.

My prompt is followed by an inverse bolded % like so:


I want it to go away.

I am using: zsh with oh-my-zsh on iterm2

What I have tried:

I found this and according to the accepted answer this is caused by PROPMT_SP as explained in the zsh manual:

Attempt to preserve a partial line (i.e. a line that did not end with a newline) that would otherwise be covered up by the command prompt due to the PROMPT_CR option. This works by outputting some cursor-control characters, including a series of spaces, that should make the terminal wrap to the next line when a partial line is present (note that this is only successful if your terminal has automatic margins, which is typical).

When a partial line is preserved, by default you will see an inverse+bold character at the end of the partial line: a % for a normal user or a # for root. If set, the shell parameter PROMPT_EOL_MARK can be used to customize how the end of partial lines are shown.

Following the accepted answer I entered this into the terminal:

unsetopt PROMPT_SP

and restarted. This didn't work, so I continued to try:

setopt PROMPT_CR
setopt PROMPT_SP

and restarted. This didn't work so i added

setopt PROMPT_CR
setopt PROMPT_SP

into my ~/.zshrc and restarted this didn't work.

Going down to the other answer: The other answer suggested adding those into your selected .zsh-theme and add the above lines. I did not have one selected and according to this the default theme is robbyrussell.zsh-theme, so I added the above lines into ~/.oh-my-zsh/themes/robbyrussell.zsh-theme and that didn't work. I deleted those lines and changed the theme in my ~/.zshrc to blinks.zsh-theme and added the above lines to ~/.oh-my-zsh/themes/blinks.zsh-theme and restarted and that didn't work.

Once all of this did not work I searched again on Google and only found this which was more of the same solutions that have not worked so far for me.

What am I doing wrong?

  • As your screenshot does only show a single, non-bold, non-inverse % at the end of the prompt, I have to ask: You are indeed asking about the % that might appears after the output if it does not end with a newline character? For example after the output of echo -n 'foo'. – Adaephon Nov 23 '17 at 12:22
  • Yes that's the one I'm asking about – Diego Nov 23 '17 at 22:13
  • Running setopt PROMPT_CR PROMPT_SP; PROMPT_EOL_MARK="" should have an immediate effect in the current shell session. (Do not restart the shell, as these changes are not persistent!) To make it persistent, adding it to your ~/.zshrc is the right way. It would probably best to add it at the very and of the ~/.zshrc to ensure that the settings are not overwritten by anything else. – Adaephon Nov 24 '17 at 7:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.