mirror of
https://github.com/neovim/neovim.git
synced 2026-01-30 09:01:07 +10:00
vim-patch:8.1.2072: "gk" moves to start of line instead of upwards
Problem: "gk" moves to start of line instead of upwards.
Solution: Fix off-by-one error. (Christian Brabandt, closes vim/vim#4969)
03ac52fc02
This commit is contained in:
@@ -3932,11 +3932,11 @@ static bool nv_screengo(oparg_T *oap, int dir, long dist)
|
||||
|
||||
while (dist--) {
|
||||
if (dir == BACKWARD) {
|
||||
if ((long)curwin->w_curswant >= width2)
|
||||
/* move back within line */
|
||||
if (curwin->w_curswant > width2) {
|
||||
// move back within line
|
||||
curwin->w_curswant -= width2;
|
||||
else {
|
||||
/* to previous line */
|
||||
} else {
|
||||
// to previous line
|
||||
if (curwin->w_cursor.lnum == 1) {
|
||||
retval = false;
|
||||
break;
|
||||
|
||||
@@ -2617,3 +2617,25 @@ Piece of Java
|
||||
|
||||
close!
|
||||
endfunc
|
||||
|
||||
func Test_normal_gk()
|
||||
" needs 80 column new window
|
||||
new
|
||||
vert 80new
|
||||
put =[repeat('x',90)..' {{{1', 'x {{{1']
|
||||
norm! gk
|
||||
" In a 80 column wide terminal the window will be only 78 char
|
||||
" (because Vim will leave space for the other window),
|
||||
" but if the terminal is larger, it will be 80 chars, so verify the
|
||||
" cursor column correctly.
|
||||
call assert_equal(winwidth(0)+1, col('.'))
|
||||
call assert_equal(winwidth(0)+1, virtcol('.'))
|
||||
norm! j
|
||||
call assert_equal(6, col('.'))
|
||||
call assert_equal(6, virtcol('.'))
|
||||
norm! gk
|
||||
call assert_equal(95, col('.'))
|
||||
call assert_equal(95, virtcol('.'))
|
||||
bw!
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
Reference in New Issue
Block a user