mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.1758: count of g$ not used correctly when text is not wrapped
Problem: Count of g$ not used correctly when text is not wrapped.
Solution: Do use the count. (Christian Brabandt, closes vim/vim#4729, closes vim/vim#4566)
d5c8234517
This commit is contained in:
parent
24c4d4e125
commit
8d0bc3c189
@ -6795,10 +6795,14 @@ static void nv_g_cmd(cmdarg_T *cap)
|
|||||||
} else if (nv_screengo(oap, FORWARD, cap->count1 - 1) == false)
|
} else if (nv_screengo(oap, FORWARD, cap->count1 - 1) == false)
|
||||||
clearopbeep(oap);
|
clearopbeep(oap);
|
||||||
} else {
|
} else {
|
||||||
|
if (cap->count1 > 1) {
|
||||||
|
// if it fails, let the cursor still move to the last char
|
||||||
|
cursor_down(cap->count1 - 1, false);
|
||||||
|
}
|
||||||
i = curwin->w_leftcol + curwin->w_width_inner - col_off - 1;
|
i = curwin->w_leftcol + curwin->w_width_inner - col_off - 1;
|
||||||
coladvance((colnr_T)i);
|
coladvance((colnr_T)i);
|
||||||
|
|
||||||
/* Make sure we stick in this column. */
|
// Make sure we stick in this column.
|
||||||
validate_virtcol();
|
validate_virtcol();
|
||||||
curwin->w_curswant = curwin->w_virtcol;
|
curwin->w_curswant = curwin->w_virtcol;
|
||||||
curwin->w_set_curswant = false;
|
curwin->w_set_curswant = false;
|
||||||
|
@ -2618,6 +2618,61 @@ Piece of Java
|
|||||||
close!
|
close!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
fun! Test_normal_gdollar_cmd()
|
||||||
|
if !has("jumplist")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
" Tests for g cmds
|
||||||
|
call Setup_NewWindow()
|
||||||
|
" Make long lines that will wrap
|
||||||
|
%s/$/\=repeat(' foobar', 10)/
|
||||||
|
20vsp
|
||||||
|
set wrap
|
||||||
|
" Test for g$ with count
|
||||||
|
norm! gg
|
||||||
|
norm! 0vg$y
|
||||||
|
call assert_equal(20, col("'>"))
|
||||||
|
call assert_equal('1 foobar foobar foob', getreg(0))
|
||||||
|
norm! gg
|
||||||
|
norm! 0v4g$y
|
||||||
|
call assert_equal(72, col("'>"))
|
||||||
|
call assert_equal('1 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.."\n", getreg(0))
|
||||||
|
norm! gg
|
||||||
|
norm! 0v6g$y
|
||||||
|
call assert_equal(40, col("'>"))
|
||||||
|
call assert_equal('1 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '2 foobar foobar foobar foobar foobar foo', getreg(0))
|
||||||
|
set nowrap
|
||||||
|
" clean up
|
||||||
|
norm! gg
|
||||||
|
norm! 0vg$y
|
||||||
|
call assert_equal(20, col("'>"))
|
||||||
|
call assert_equal('1 foobar foobar foob', getreg(0))
|
||||||
|
norm! gg
|
||||||
|
norm! 0v4g$y
|
||||||
|
call assert_equal(20, col("'>"))
|
||||||
|
call assert_equal('1 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '2 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '3 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '4 foobar foobar foob', getreg(0))
|
||||||
|
norm! gg
|
||||||
|
norm! 0v6g$y
|
||||||
|
call assert_equal(20, col("'>"))
|
||||||
|
call assert_equal('1 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '2 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '3 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '4 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '5 foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar'.. "\n"..
|
||||||
|
\ '6 foobar foobar foob', getreg(0))
|
||||||
|
" Move to last line, also down movement is not possible, should still move
|
||||||
|
" the cursor to the last visible char
|
||||||
|
norm! G
|
||||||
|
norm! 0v6g$y
|
||||||
|
call assert_equal(20, col("'>"))
|
||||||
|
call assert_equal('100 foobar foobar fo', getreg(0))
|
||||||
|
bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_normal_gk()
|
func Test_normal_gk()
|
||||||
" needs 80 column new window
|
" needs 80 column new window
|
||||||
new
|
new
|
||||||
|
Loading…
Reference in New Issue
Block a user