diff options
| -rw-r--r-- | src/nvim/edit.c | 2 | ||||
| -rw-r--r-- | src/nvim/screen.c | 4 | ||||
| -rw-r--r-- | src/nvim/window.c | 3 | 
3 files changed, 6 insertions, 3 deletions
| diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 16601d327d..6e3efe8bba 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -995,7 +995,7 @@ static int insert_handle_key(InsertState *s)        // In a prompt window CTRL-W is used for window commands.        // Use Shift-CTRL-W to delete a word.        stuffcharReadbuff(Ctrl_W); -      restart_edit = 'i'; +      restart_edit = 'A';        s->nomove = true;        s->count = 0;        return 0; diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 2ce2be0bfd..d015ef110e 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -6930,7 +6930,7 @@ int showmode(void)    do_mode = ((p_smd && msg_silent == 0)               && ((State & TERM_FOCUS)                   || (State & INSERT) -                 || restart_edit +                 || restart_edit != NUL                   || VIsual_active));    if (do_mode || reg_recording != 0) {      // Don't show mode right now, when not redrawing or inside a mapping. @@ -7010,7 +7010,7 @@ int showmode(void)            }            msg_puts_attr(_(" INSERT"), attr);          } else if (restart_edit == 'I' || restart_edit == 'i' -                   || restart_edit == 'a') { +                   || restart_edit == 'a' || restart_edit == 'A') {            msg_puts_attr(_(" (insert)"), attr);          } else if (restart_edit == 'R') {            msg_puts_attr(_(" (replace)"), attr); diff --git a/src/nvim/window.c b/src/nvim/window.c index e0d05e1d47..ddf50b47a7 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -2240,6 +2240,9 @@ static void leaving_window(win_T *const win)    // When leaving a prompt window stop Insert mode and perhaps restart    // it when entering that window again.    win->w_buffer->b_prompt_insert = restart_edit; +  if (restart_edit != NUL && mode_displayed) { +    clear_cmdline = true;  // unshow mode later +  }    restart_edit = NUL;    // When leaving the window (or closing the window) was done from a | 
