diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-08-29 06:24:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-29 06:24:40 +0800 |
commit | 0346666f717576d31be411cd59b07c81eff18f95 (patch) | |
tree | 5be3dbf9681b42c97d485a8c4f7244a40739ce60 | |
parent | cd05a72fec49bfaa3911c141ac605b67b6e2270a (diff) | |
download | rneovim-0346666f717576d31be411cd59b07c81eff18f95.tar.gz rneovim-0346666f717576d31be411cd59b07c81eff18f95.tar.bz2 rneovim-0346666f717576d31be411cd59b07c81eff18f95.zip |
vim-patch:9.1.0699: "dvgo" is not always an inclusive motion (#30173)
Problem: "dvgo" is not always an inclusive motion
(Iain King-Speir)
Solution: initialize the inclusive flag to false
fixes: vim/vim#15580
closes: vim/vim#15582
https://github.com/vim/vim/commit/f8702aeb8ff85554d909901ae45b50c3d532bf70
Co-authored-by: Christian Brabandt <cb@256bit.org>
-rw-r--r-- | runtime/doc/motion.txt | 10 | ||||
-rw-r--r-- | src/nvim/normal.c | 1 | ||||
-rw-r--r-- | test/old/testdir/test_normal.vim | 13 |
3 files changed, 19 insertions, 5 deletions
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt index 26e4ada7d4..1a2df7d69a 100644 --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -355,11 +355,11 @@ gg Goto line [count], default first line, on the first See also 'startofline' option. :[range]go[to] [count] *:go* *:goto* *go* -[count]go Go to [count] byte in the buffer. Default [count] is - one, start of the file. When giving [range], the - last number in it used as the byte count. End-of-line - characters are counted depending on the current - 'fileformat' setting. +[count]go Go to [count] byte in the buffer. |exclusive| motion. + Default [count] is one, start of the file. When + giving [range], the last number in it used as the byte + count. End-of-line characters are counted depending + on the current 'fileformat' setting. Also see the |line2byte()| function, and the 'o' option in 'statusline'. diff --git a/src/nvim/normal.c b/src/nvim/normal.c index 9e17fe234d..f44a64af21 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -5631,6 +5631,7 @@ static void nv_g_cmd(cmdarg_T *cap) // "go": goto byte count from start of buffer case 'o': + oap->inclusive = false; goto_byte(cap->count0); break; diff --git a/test/old/testdir/test_normal.vim b/test/old/testdir/test_normal.vim index 6ebdfb1604..8088b1fc57 100644 --- a/test/old/testdir/test_normal.vim +++ b/test/old/testdir/test_normal.vim @@ -4291,4 +4291,17 @@ func Test_scroll_longline_no_loop() exe "normal! \<C-E>" bwipe! endfunc + +" Test for go command +func Test_normal_go() + new + call setline(1, ['one two three four']) + call cursor(1, 5) + norm! dvgo + call assert_equal('wo three four', getline(1)) + norm! ... + call assert_equal('three four', getline(1)) + + bwipe! +endfunc " vim: shiftwidth=2 sts=2 expandtab nofoldenable |