revins_scol = -1;
#endif
if (!p_ek)
- /* Disable bracketed paste mode, we won't recognize the escape
- * sequences. */
+ {
+ // Disable bracketed paste mode, we won't recognize the escape
+ // sequences.
out_str(T_BD);
+ // Disable modifyOtherKeys, keys with modifiers would cause exiting
+ // Insert mode.
+ out_str(T_CTE);
+ }
+
/*
* Handle restarting Insert mode.
* Don't do this for "CTRL-O ." (repeat an insert): In that case we get
setmouse();
#ifdef CURSOR_SHAPE
- ui_cursor_shape(); /* may show different cursor shape */
+ ui_cursor_shape(); // may show different cursor shape
#endif
if (!p_ek)
- /* Re-enable bracketed paste mode. */
+ {
+ // Re-enable bracketed paste mode.
out_str(T_BE);
+ // Re-enable modifyOtherKeys.
+ out_str(T_CTI);
+ }
+
// When recording or for CTRL-O, need to display the new mode.
// Otherwise remove the mode message.
if (reg_recording != 0 || restart_edit != NUL)
else if (p_smd && (got_int || !skip_showmode()))
msg("");
- return TRUE; /* exit Insert mode */
+ return TRUE; // exit Insert mode
}
#ifdef FEAT_RIGHTLEFT
set backspace&
bwipe!
endfunc
+
+func Test_edit_noesckeys()
+ new
+
+ " <Left> moves cursor when 'esckeys' is set
+ exe "set t_kl=\<Esc>OD"
+ set esckeys
+ call feedkeys("axyz\<Esc>ODX", "xt")
+ call assert_equal("xyXz", getline(1))
+
+ " <Left> exits Insert mode when 'esckeys' is off
+ set noesckeys
+ call setline(1, '')
+ call feedkeys("axyz\<Esc>ODX", "xt")
+ call assert_equal(["DX", "xyz"], getline(1, 2))
+
+ bwipe!
+ set esckeys
+endfunc