diff options
Diffstat (limited to 'src/nvim/ex_cmds.c')
| -rw-r--r-- | src/nvim/ex_cmds.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index 61e4d634c6..a2487336f1 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -3693,6 +3693,7 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout,              } else {                char_u *orig_line = NULL;                int len_change = 0; +              const bool save_p_lz = p_lz;                int save_p_fen = curwin->w_p_fen;                curwin->w_p_fen = FALSE; @@ -3701,6 +3702,9 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout,                int temp = RedrawingDisabled;                RedrawingDisabled = 0; +              // avoid calling update_screen() in vgetorpeek() +              p_lz = false; +                if (new_start != NULL) {                  /* There already was a substitution, we would                   * like to show this to the user.  We cannot @@ -3754,7 +3758,8 @@ static buf_T *do_sub(exarg_T *eap, proftime_T timeout,                /* clear the question */                msg_didout = FALSE;               /* don't scroll up */                msg_col = 0; -              gotocmdline(TRUE); +              gotocmdline(true); +              p_lz = save_p_lz;                // restore the line                if (orig_line != NULL) { | 
