diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-21 06:11:23 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-08-21 06:12:03 +0800 |
commit | 0c91cb4f03814bfdfe262c6d2693c6883c38719b (patch) | |
tree | 9ff51a7708101ad4607bb0a180bc88f70c2538b7 | |
parent | 7485fd0518557f7f49f9b636a80e4e3b523dd9dd (diff) | |
download | rneovim-0c91cb4f03814bfdfe262c6d2693c6883c38719b.tar.gz rneovim-0c91cb4f03814bfdfe262c6d2693c6883c38719b.tar.bz2 rneovim-0c91cb4f03814bfdfe262c6d2693c6883c38719b.zip |
vim-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: vim/vim#12861
https://github.com/vim/vim/commit/654bdbbd329e7267051cc2eb496bc52b66053081
-rw-r--r-- | runtime/doc/motion.txt | 3 | ||||
-rw-r--r-- | src/nvim/normal.c | 2 | ||||
-rw-r--r-- | test/old/testdir/test_normal.vim | 10 |
3 files changed, 10 insertions, 5 deletions
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index a2f11d27ef..05244cde91 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -246,7 +246,8 @@ g$ When lines wrap ('wrap' on): To the last character of 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. diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 4a4b675591..e72a0fe385 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -5323,7 +5323,7 @@ static void nv_g_dollar_cmd(cmdarg_T *cap) oparg_T *oap = cap->oap; int i; int col_off = curwin_col_off(); - const bool flag = cap->nchar == K_END; + const bool flag = cap->nchar == K_END || cap->nchar == K_KEND; oap->motion_type = kMTCharWise; oap->inclusive = true; diff --git a/test/old/testdir/test_normal.vim b/test/old/testdir/test_normal.vim index dbedddfed9..4eaab0d792 100644 --- a/test/old/testdir/test_normal.vim +++ b/test/old/testdir/test_normal.vim @@ -4118,20 +4118,24 @@ func Test_normal_click_on_double_width_char() 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 |