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_regexp_latin \
|
||||
test_regexp_utf8 \
|
||||
test_registers \
|
||||
test_reltime \
|
||||
test_retab \
|
||||
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... */
|
||||
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 */
|
||||
update_topline_redraw();
|
||||
if (yanklines == 1)
|
||||
{
|
||||
if (oap->block_mode)
|
||||
MSG(_("block of 1 line yanked"));
|
||||
smsg((char_u *)_("block of 1 line yanked%s"), namebuf);
|
||||
else
|
||||
MSG(_("1 line yanked"));
|
||||
smsg((char_u *)_("1 line yanked%s"), namebuf);
|
||||
}
|
||||
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
|
||||
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_quotestar.res \
|
||||
test_retab.res \
|
||||
test_registers.res \
|
||||
test_ruby.res \
|
||||
test_search.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[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
724,
|
||||
/**/
|
||||
723,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user