mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 07:18:17 +00:00
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 vim/vim#1803, closes vim/vim#1809)
e45deb7997
This commit is contained in:
@@ -2509,19 +2509,27 @@ static void op_yank_reg(oparg_T *oap, bool message, yankreg_T *reg, bool append)
|
|||||||
}
|
}
|
||||||
// Some versions of Vi use ">=" here, some don't...
|
// Some versions of Vi use ">=" here, some don't...
|
||||||
if (yanklines > (size_t)p_report) {
|
if (yanklines > (size_t)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 (yank_type == kMTBlockWise) {
|
if (yank_type == kMTBlockWise) {
|
||||||
MSG(_("block of 1 line yanked"));
|
smsg(_("block of 1 line yanked%s"), namebuf);
|
||||||
} else {
|
} else {
|
||||||
MSG(_("1 line yanked"));
|
smsg(_("1 line yanked%s"), namebuf);
|
||||||
}
|
}
|
||||||
} else if (yank_type == kMTBlockWise) {
|
} else if (yank_type == kMTBlockWise) {
|
||||||
smsg(_("block of %" PRId64 " lines yanked"),
|
smsg(_("block of %" PRId64 " lines yanked%s"),
|
||||||
(int64_t)yanklines);
|
(int64_t)yanklines, namebuf);
|
||||||
} else {
|
} else {
|
||||||
smsg(_("%" PRId64 " lines yanked"), (int64_t)yanklines);
|
smsg(_("%" PRId64 " lines yanked%s"), (int64_t)yanklines, namebuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -93,6 +93,7 @@ NEW_TESTS ?= \
|
|||||||
test_quickfix.res \
|
test_quickfix.res \
|
||||||
test_quotestar.res \
|
test_quotestar.res \
|
||||||
test_recover.res \
|
test_recover.res \
|
||||||
|
test_registers.res \
|
||||||
test_retab.res \
|
test_retab.res \
|
||||||
test_scrollbind.res \
|
test_scrollbind.res \
|
||||||
test_search.res \
|
test_search.res \
|
||||||
|
27
src/nvim/testdir/test_registers.vim
Normal file
27
src/nvim/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
|
Reference in New Issue
Block a user