Mercurial > vim
changeset 32905:2ad6e8515a78 v9.0.1761
patch 9.0.1761: g<kEnd> behaves different from g<end>
Commit: https://github.com/vim/vim/commit/654bdbbd329e7267051cc2eb496bc52b66053081
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sun Aug 20 18:24:20 2023 +0200
patch 9.0.1761: g<kEnd> behaves different from g<end>
Problem: g<kEnd> behaves different from g<end>
Solution: Make g<kEnd> behave like g<End>
closes: #12861
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 20 Aug 2023 18:30:06 +0200 |
parents | ca488d831c3c |
children | 20237d0faf66 |
files | runtime/doc/motion.txt src/normal.c src/testdir/test_normal.vim src/version.c |
diffstat | 4 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -255,7 +255,8 @@ g$ When lines wrap ('wrap' on): To the instead of going to the end of the line. When 'virtualedit' is enabled moves to the end of the screen line. - *g<End>* + + *g<End>* *g<kEnd>* g<End> Like |g$| but to the last non-blank character instead of the last character.
--- a/src/normal.c +++ b/src/normal.c @@ -5823,7 +5823,7 @@ nv_g_dollar_cmd(cmdarg_T *cap) int col_off = curwin_col_off(); int flag = FALSE; - if (cap->nchar == K_END) + if (cap->nchar == K_END || cap->nchar == K_KEND) flag = TRUE; oap->motion_type = MCHAR;
--- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -4105,20 +4105,24 @@ func Test_normal_click_on_double_width_c endfunc func Test_normal33_g_cmd_nonblank() - " Test that g$ goes to the last non-blank char and g<end> to the last + " Test that g<End> goes to the last non-blank char and g$ to the last " visible column 20vnew setlocal nowrap nonumber signcolumn=no call setline(1, ['fooo fooo fooo fooo fooo fooo fooo fooo ']) - exe "normal 0g\<end>" + exe "normal 0g\<End>" call assert_equal(11, col('.')) normal 0g$ call assert_equal(20, col('.')) + exe "normal 0g\<kEnd>" + call assert_equal(11, col('.')) setlocal wrap - exe "normal 0g\<end>" + exe "normal 0g\<End>" call assert_equal(11, col('.')) normal 0g$ call assert_equal(20, col('.')) + exe "normal 0g\<kEnd>" + call assert_equal(11, col('.')) bw! endfunc