forked from aniani/vim
patch 8.0.0724: the message for yanking doesn't indicate the register
Problem: The message for yanking doesn't indicate the register. Solution: Show the register name in the "N lines yanked" message. (Lemonboy, closes #1803, closes #1809)
This commit is contained in:
parent
9b50bba643
commit
e45deb7997
@ -2227,6 +2227,7 @@ test_arglist \
|
|||||||
test_regex_char_classes \
|
test_regex_char_classes \
|
||||||
test_regexp_latin \
|
test_regexp_latin \
|
||||||
test_regexp_utf8 \
|
test_regexp_utf8 \
|
||||||
|
test_registers \
|
||||||
test_reltime \
|
test_reltime \
|
||||||
test_retab \
|
test_retab \
|
||||||
test_ruby \
|
test_ruby \
|
||||||
|
18
src/ops.c
18
src/ops.c
@ -3167,19 +3167,29 @@ op_yank(oparg_T *oap, int deleting, int mess)
|
|||||||
/* Some versions of Vi use ">=" here, some don't... */
|
/* Some versions of Vi use ">=" here, some don't... */
|
||||||
if (yanklines > p_report)
|
if (yanklines > p_report)
|
||||||
{
|
{
|
||||||
|
char namebuf[100];
|
||||||
|
|
||||||
|
if (oap->regname == NUL)
|
||||||
|
*namebuf = NUL;
|
||||||
|
else
|
||||||
|
vim_snprintf(namebuf, sizeof(namebuf),
|
||||||
|
" into \"%c", oap->regname);
|
||||||
|
|
||||||
/* redisplay now, so message is not deleted */
|
/* redisplay now, so message is not deleted */
|
||||||
update_topline_redraw();
|
update_topline_redraw();
|
||||||
if (yanklines == 1)
|
if (yanklines == 1)
|
||||||
{
|
{
|
||||||
if (oap->block_mode)
|
if (oap->block_mode)
|
||||||
MSG(_("block of 1 line yanked"));
|
smsg((char_u *)_("block of 1 line yanked%s"), namebuf);
|
||||||
else
|
else
|
||||||
MSG(_("1 line yanked"));
|
smsg((char_u *)_("1 line yanked%s"), namebuf);
|
||||||
}
|
}
|
||||||
else if (oap->block_mode)
|
else if (oap->block_mode)
|
||||||
smsg((char_u *)_("block of %ld lines yanked"), yanklines);
|
smsg((char_u *)_("block of %ld lines yanked%s"),
|
||||||
|
yanklines, namebuf);
|
||||||
else
|
else
|
||||||
smsg((char_u *)_("%ld lines yanked"), yanklines);
|
smsg((char_u *)_("%ld lines yanked%s"), yanklines,
|
||||||
|
namebuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,6 +184,7 @@ NEW_TESTS = test_arabic.res \
|
|||||||
test_quickfix.res \
|
test_quickfix.res \
|
||||||
test_quotestar.res \
|
test_quotestar.res \
|
||||||
test_retab.res \
|
test_retab.res \
|
||||||
|
test_registers.res \
|
||||||
test_ruby.res \
|
test_ruby.res \
|
||||||
test_search.res \
|
test_search.res \
|
||||||
test_signs.res \
|
test_signs.res \
|
||||||
|
27
src/testdir/test_registers.vim
Normal file
27
src/testdir/test_registers.vim
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
func Test_yank_shows_register()
|
||||||
|
enew
|
||||||
|
set report=0
|
||||||
|
call setline(1, ['foo', 'bar'])
|
||||||
|
" Line-wise
|
||||||
|
exe 'norm! yy'
|
||||||
|
call assert_equal('1 line yanked', v:statusmsg)
|
||||||
|
exe 'norm! "zyy'
|
||||||
|
call assert_equal('1 line yanked into "z', v:statusmsg)
|
||||||
|
exe 'norm! yj'
|
||||||
|
call assert_equal('2 lines yanked', v:statusmsg)
|
||||||
|
exe 'norm! "zyj'
|
||||||
|
call assert_equal('2 lines yanked into "z', v:statusmsg)
|
||||||
|
|
||||||
|
" Block-wise
|
||||||
|
exe "norm! \<C-V>y"
|
||||||
|
call assert_equal('block of 1 line yanked', v:statusmsg)
|
||||||
|
exe "norm! \<C-V>\"zy"
|
||||||
|
call assert_equal('block of 1 line yanked into "z', v:statusmsg)
|
||||||
|
exe "norm! \<C-V>jy"
|
||||||
|
call assert_equal('block of 2 lines yanked', v:statusmsg)
|
||||||
|
exe "norm! \<C-V>j\"zy"
|
||||||
|
call assert_equal('block of 2 lines yanked into "z', v:statusmsg)
|
||||||
|
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
@ -769,6 +769,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 */
|
||||||
|
/**/
|
||||||
|
724,
|
||||||
/**/
|
/**/
|
||||||
723,
|
723,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user