aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-08-29 06:24:40 +0800
committerGitHub <noreply@github.com>2024-08-29 06:24:40 +0800
commit0346666f717576d31be411cd59b07c81eff18f95 (patch)
tree5be3dbf9681b42c97d485a8c4f7244a40739ce60
parentcd05a72fec49bfaa3911c141ac605b67b6e2270a (diff)
downloadrneovim-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.txt10
-rw-r--r--src/nvim/normal.c1
-rw-r--r--test/old/testdir/test_normal.vim13
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