On Wed, Oct 23, 2013 at 8:47 AM, Bart Schaefer wrote: > On Oct 22, 4:22pm, Jesse Hathaway wrote: > } > } The unusual part of my prompt is the vi mode at the bottom of my screen. > } Does anyone have thoughts on the best way to clear the prompt before the > } command is entered? > > The best solution to this is to NOT put the vi mode in the prompt, but > instead use "zle -M" to display it. Simplest way is like this: > > PS1='%~ ' > vim_ins_mode="-- INSERT --" > vim_cmd_mode="" > > function zle-keymap-select { > > vim_mode="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}" > zle -M -- "$vim_mode" > } > zle -N zle-keymap-select > zle -N zle-line-init zle-keymap-select > Thanks for your suggestions Bart I tried the zle -M approach, but it seemed to result in my cursor sometimes being at the bottom of the output, and them sometimes the vim_mode prompt appearing, i.e. my cursor was jumping up and down. I ended up adding a preexec which solves the problem: # Clear vim_mode prompt before executing command, as the command output will be # written to same line as the vim_mode prompt on the terminal function preexec { echo -n "$terminfo[el]" } > This and your original scheme both seem to suffer from the problem that > any completion listing covers up the "mode message" and it doesn't return > until you toggle through command/insert again. Yeah this is definitively not great, I spent some time trying to determine how to solve the problem, but I haven't come up with anything yet. I would love suggestions. I couldn't find any hooks to use when suggestions fire. I am also considering diving into the zsh source and look into adding proper support for a BOTTOM_PROMPT. Thanks, Jesse