mirror of
https://github.com/vim/vim.git
synced 2025-10-20 08:14:18 -04:00
patch 8.2.3461: cannot distinguish Normal and Terminal-Normal mode
Problem: Cannot distinguish Normal and Terminal-Normal mode. Solution: Make mode() return "nt" for Terminal-Normal mode. (issue #8856)
This commit is contained in:
@@ -8061,7 +8061,7 @@ mode([expr]) Return a string that indicates the current mode.
|
|||||||
returned, otherwise only the first letter is returned.
|
returned, otherwise only the first letter is returned.
|
||||||
Also see |state()|.
|
Also see |state()|.
|
||||||
|
|
||||||
n Normal, Terminal-Normal
|
n Normal
|
||||||
no Operator-pending
|
no Operator-pending
|
||||||
nov Operator-pending (forced characterwise |o_v|)
|
nov Operator-pending (forced characterwise |o_v|)
|
||||||
noV Operator-pending (forced linewise |o_V|)
|
noV Operator-pending (forced linewise |o_V|)
|
||||||
@@ -8070,6 +8070,7 @@ mode([expr]) Return a string that indicates the current mode.
|
|||||||
niI Normal using |i_CTRL-O| in |Insert-mode|
|
niI Normal using |i_CTRL-O| in |Insert-mode|
|
||||||
niR Normal using |i_CTRL-O| in |Replace-mode|
|
niR Normal using |i_CTRL-O| in |Replace-mode|
|
||||||
niV Normal using |i_CTRL-O| in |Virtual-Replace-mode|
|
niV Normal using |i_CTRL-O| in |Virtual-Replace-mode|
|
||||||
|
nt Terminal-Normal (insert goes to Terminal-Job mode)
|
||||||
v Visual by character
|
v Visual by character
|
||||||
V Visual by line
|
V Visual by line
|
||||||
CTRL-V Visual blockwise
|
CTRL-V Visual blockwise
|
||||||
|
@@ -712,6 +712,10 @@ f_mode(typval_T *argvars, typval_T *rettv)
|
|||||||
buf[1] = 'i';
|
buf[1] = 'i';
|
||||||
buf[2] = restart_edit;
|
buf[2] = restart_edit;
|
||||||
}
|
}
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
else if (term_in_normal_mode())
|
||||||
|
buf[1] = 't';
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear out the minor mode when the argument is not a non-zero number or
|
// Clear out the minor mode when the argument is not a non-zero number or
|
||||||
|
@@ -874,6 +874,14 @@ func Test_mode()
|
|||||||
call assert_equal('c-ce', g:current_modes)
|
call assert_equal('c-ce', g:current_modes)
|
||||||
" How to test Ex mode?
|
" How to test Ex mode?
|
||||||
|
|
||||||
|
if has('terminal')
|
||||||
|
term
|
||||||
|
call feedkeys("\<C-W>N", 'xt')
|
||||||
|
call assert_equal('n', mode())
|
||||||
|
call assert_equal('nt', mode(1))
|
||||||
|
call feedkeys("aexit\<CR>", 'xt')
|
||||||
|
endif
|
||||||
|
|
||||||
bwipe!
|
bwipe!
|
||||||
iunmap <F2>
|
iunmap <F2>
|
||||||
xunmap <F2>
|
xunmap <F2>
|
||||||
|
@@ -757,6 +757,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 */
|
||||||
|
/**/
|
||||||
|
3461,
|
||||||
/**/
|
/**/
|
||||||
3460,
|
3460,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user