forked from aniani/vim
patch 8.2.3466: completion submode not indicated for virtual replace
Problem: Completion submode not indicated for virtual replace. Solution: Add submode to "Rv". (closes #8945)
This commit is contained in:
parent
27fef59dd1
commit
cc8cd44533
@ -8074,22 +8074,23 @@ mode([expr]) Return a string that indicates the current mode.
|
||||
niV Normal using |i_CTRL-O| in |Virtual-Replace-mode|
|
||||
nt Terminal-Normal (insert goes to Terminal-Job mode)
|
||||
v Visual by character
|
||||
vs Visual by character using |v_CTRL-O| in Select mode
|
||||
V Visual by line
|
||||
Vs Visual by line using |v_CTRL-O| in Select mode
|
||||
CTRL-V Visual blockwise
|
||||
CTRL-Vs Visual blockwise using |v_CTRL-O| in Select mode
|
||||
s Select by character
|
||||
S Select by line
|
||||
CTRL-S Select blockwise
|
||||
vs Visual by character using |v_CTRL-O| from
|
||||
Select mode
|
||||
Vs Visual by line using |v_CTRL-O| from Select mode
|
||||
CTRL-Vs Visual blockwise using |v_CTRL-O| from Select mode
|
||||
i Insert
|
||||
ic Insert mode completion |compl-generic|
|
||||
ix Insert mode |i_CTRL-X| completion
|
||||
R Replace |R|
|
||||
Rc Replace mode completion |compl-generic|
|
||||
Rv Virtual Replace |gR|
|
||||
Rx Replace mode |i_CTRL-X| completion
|
||||
Rv Virtual Replace |gR|
|
||||
Rvc Virtual Replace mode completion |compl-generic|
|
||||
Rvx Virtual Replace mode |i_CTRL-X| completion
|
||||
c Command-line editing
|
||||
cv Vim Ex mode |gQ|
|
||||
ce Normal Ex mode |Q|
|
||||
@ -8098,6 +8099,7 @@ mode([expr]) Return a string that indicates the current mode.
|
||||
r? A |:confirm| query of some sort
|
||||
! Shell or external command is executing
|
||||
t Terminal-Job mode: keys go to the job
|
||||
|
||||
This is useful in the 'statusline' option or when used
|
||||
with |remote_expr()| In most other places it always returns
|
||||
"c" or "n".
|
||||
|
@ -675,6 +675,11 @@ f_mode(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
buf[0] = 'R';
|
||||
buf[1] = 'v';
|
||||
|
||||
if (ins_compl_active())
|
||||
buf[2] = 'c';
|
||||
else if (ctrl_x_mode_not_defined_yet())
|
||||
buf[2] = 'x';
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -682,6 +687,7 @@ f_mode(typval_T *argvars, typval_T *rettv)
|
||||
buf[0] = 'R';
|
||||
else
|
||||
buf[0] = 'i';
|
||||
|
||||
if (ins_compl_active())
|
||||
buf[1] = 'c';
|
||||
else if (ctrl_x_mode_not_defined_yet())
|
||||
|
@ -785,6 +785,8 @@ func Test_mode()
|
||||
exe "normal iabc\<C-X>\<C-L>\<F2>\<Esc>u"
|
||||
call assert_equal('i-ic', g:current_modes)
|
||||
|
||||
exe "normal R\<F2>\<Esc>"
|
||||
call assert_equal('R-R', g:current_modes)
|
||||
" R_CTRL-P: Multiple matches
|
||||
exe "normal RBa\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rc', g:current_modes)
|
||||
@ -819,6 +821,42 @@ func Test_mode()
|
||||
exe "normal Rabc\<C-X>\<C-L>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rc', g:current_modes)
|
||||
|
||||
exe "normal gR\<F2>\<Esc>"
|
||||
call assert_equal('R-Rv', g:current_modes)
|
||||
" gR_CTRL-P: Multiple matches
|
||||
exe "normal gRBa\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-P: Single match
|
||||
exe "normal gRBro\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X
|
||||
exe "normal gRBa\<C-X>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvx', g:current_modes)
|
||||
" gR_CTRL-X CTRL-P: Multiple matches
|
||||
exe "normal gRBa\<C-X>\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X CTRL-P: Single match
|
||||
exe "normal gRBro\<C-X>\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X CTRL-P + CTRL-P: Single match
|
||||
exe "normal gRBro\<C-X>\<C-P>\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X CTRL-L: Multiple matches
|
||||
exe "normal gR\<C-X>\<C-L>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X CTRL-L: Single match
|
||||
exe "normal gRBlu\<C-X>\<C-L>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-P: No match
|
||||
exe "normal gRCom\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X CTRL-P: No match
|
||||
exe "normal gRCom\<C-X>\<C-P>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
" gR_CTRL-X CTRL-L: No match
|
||||
exe "normal gRabc\<C-X>\<C-L>\<F2>\<Esc>u"
|
||||
call assert_equal('R-Rvc', g:current_modes)
|
||||
|
||||
call assert_equal('n', 0->mode())
|
||||
call assert_equal('n', 1->mode())
|
||||
|
||||
|
@ -757,6 +757,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3466,
|
||||
/**/
|
||||
3465,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user