mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 9.0.1385: g'Esc is considered an error
Problem: g'Esc is considered an error. Solution: Make g'Esc silently abandon the command. (closes #12110)
This commit is contained in:
@@ -899,7 +899,7 @@ normal_cmd(
|
|||||||
|
|
||||||
State = MODE_NORMAL;
|
State = MODE_NORMAL;
|
||||||
|
|
||||||
if (ca.nchar == ESC)
|
if (ca.nchar == ESC || ca.extra_char == ESC)
|
||||||
{
|
{
|
||||||
clearop(oap);
|
clearop(oap);
|
||||||
if (restart_edit == 0 && goto_im())
|
if (restart_edit == 0 && goto_im())
|
||||||
@@ -984,7 +984,8 @@ normal_end:
|
|||||||
#ifdef CURSOR_SHAPE
|
#ifdef CURSOR_SHAPE
|
||||||
// Redraw the cursor with another shape, if we were in Operator-pending
|
// Redraw the cursor with another shape, if we were in Operator-pending
|
||||||
// mode or did a replace command.
|
// mode or did a replace command.
|
||||||
if (prev_finish_op || ca.cmdchar == 'r')
|
if (prev_finish_op || ca.cmdchar == 'r'
|
||||||
|
|| (ca.cmdchar == 'g' && ca.nchar == 'r'))
|
||||||
{
|
{
|
||||||
ui_cursor_shape(); // may show different cursor shape
|
ui_cursor_shape(); // may show different cursor shape
|
||||||
# ifdef FEAT_MOUSESHAPE
|
# ifdef FEAT_MOUSESHAPE
|
||||||
@@ -5025,7 +5026,7 @@ nv_vreplace(cmdarg_T *cap)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkclearopq(cap->oap) || cap->extra_char == ESC)
|
if (checkclearopq(cap->oap))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!curbuf->b_p_ma)
|
if (!curbuf->b_p_ma)
|
||||||
@@ -5903,7 +5904,7 @@ nv_g_cmd(cmdarg_T *cap)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
// "g^A/g^X": sequentially increment visually selected region
|
// "g^A/g^X": sequentially increment visually selected region
|
||||||
if (VIsual_active)
|
if (VIsual_active)
|
||||||
{
|
{
|
||||||
cap->arg = TRUE;
|
cap->arg = TRUE;
|
||||||
cap->cmdchar = cap->nchar;
|
cap->cmdchar = cap->nchar;
|
||||||
|
@@ -2526,6 +2526,8 @@ func Test_normal33_g_cmd2()
|
|||||||
norm! g'a
|
norm! g'a
|
||||||
call assert_equal('>', a[-1:])
|
call assert_equal('>', a[-1:])
|
||||||
call assert_equal(1, line('.'))
|
call assert_equal(1, line('.'))
|
||||||
|
call assert_nobeep("normal! g`\<Esc>")
|
||||||
|
call assert_nobeep("normal! g'\<Esc>")
|
||||||
|
|
||||||
" Test for g; and g,
|
" Test for g; and g,
|
||||||
norm! g;
|
norm! g;
|
||||||
@@ -3305,7 +3307,8 @@ func Test_gr_command()
|
|||||||
set modifiable&
|
set modifiable&
|
||||||
|
|
||||||
call assert_nobeep("normal! gr\<Esc>")
|
call assert_nobeep("normal! gr\<Esc>")
|
||||||
call assert_beeps("normal! cgr\<Esc>")
|
call assert_nobeep("normal! cgr\<Esc>")
|
||||||
|
call assert_beeps("normal! cgrx")
|
||||||
|
|
||||||
call assert_equal('zxxxx line l', getline(1))
|
call assert_equal('zxxxx line l', getline(1))
|
||||||
exe "normal! 2|gr\<C-V>\<Esc>"
|
exe "normal! 2|gr\<C-V>\<Esc>"
|
||||||
@@ -3921,4 +3924,36 @@ func Test_mouse_shape_after_failed_change()
|
|||||||
call delete('Xmouseshapes')
|
call delete('Xmouseshapes')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test that mouse shape is restored to Normal mode after cancelling "gr".
|
||||||
|
func Test_mouse_shape_after_cancelling_gr()
|
||||||
|
CheckFeature mouseshape
|
||||||
|
CheckCanRunGui
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
vim9script
|
||||||
|
var mouse_shapes = []
|
||||||
|
|
||||||
|
feedkeys('gr')
|
||||||
|
timer_start(50, (_) => {
|
||||||
|
mouse_shapes += [getmouseshape()]
|
||||||
|
timer_start(50, (_) => {
|
||||||
|
feedkeys("\<Esc>")
|
||||||
|
timer_start(50, (_) => {
|
||||||
|
mouse_shapes += [getmouseshape()]
|
||||||
|
timer_start(50, (_) => {
|
||||||
|
writefile(mouse_shapes, 'Xmouseshapes')
|
||||||
|
quit
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
END
|
||||||
|
call writefile(lines, 'Xmouseshape.vim', 'D')
|
||||||
|
call RunVim([], [], "-g -S Xmouseshape.vim")
|
||||||
|
sleep 300m
|
||||||
|
call assert_equal(['beam', 'arrow'], readfile('Xmouseshapes'))
|
||||||
|
|
||||||
|
call delete('Xmouseshapes')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -695,6 +695,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1385,
|
||||||
/**/
|
/**/
|
||||||
1384,
|
1384,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user