From 765711e27237a5b0e22691bd12220a8557aab146 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Sun, 22 Jul 2018 20:11:13 -0400 Subject: vim-patch:8.0.1765: CTRL-G j in Insert mode is incorrect when 'virtualedit' set (#8757) Problem: CTRL-G j in Insert mode is incorrect when 'virtualedit' is set. Solution: Take coladd into account. (Christian Brabandt, closes vim/vim#2743) https://github.com/vim/vim/commit/db0eedec16621854c772760d02427804bc0a298d --- src/nvim/charset.c | 6 +++++- src/nvim/testdir/test_virtualedit.vim | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/charset.c b/src/nvim/charset.c index a02d2a812d..231bff26e8 100644 --- a/src/nvim/charset.c +++ b/src/nvim/charset.c @@ -1344,7 +1344,11 @@ colnr_T getvcol_nolist(pos_T *posp) colnr_T vcol; curwin->w_p_list = false; - getvcol(curwin, posp, NULL, &vcol, NULL); + if (posp->coladd) { + getvvcol(curwin, posp, NULL, &vcol, NULL); + } else { + getvcol(curwin, posp, NULL, &vcol, NULL); + } curwin->w_p_list = list_save; return vcol; } diff --git a/src/nvim/testdir/test_virtualedit.vim b/src/nvim/testdir/test_virtualedit.vim index 2b8849f488..d49025237b 100644 --- a/src/nvim/testdir/test_virtualedit.vim +++ b/src/nvim/testdir/test_virtualedit.vim @@ -38,6 +38,24 @@ func Test_paste_end_of_line() exe "normal! 2G$lllA\:normal! \"agP\r" call assert_equal('123456', getline(2)) + bwipe! + set virtualedit= +endfunc + +func Test_edit_CTRL_G() + new + set virtualedit=insert + call setline(1, ['123', '1', '12']) + exe "normal! ggA\jx\jx" + call assert_equal(['123', '1 x', '12 x'], getline(1,'$')) + + set virtualedit=all + %d_ + call setline(1, ['1', '12']) + exe "normal! ggllix\jx" + call assert_equal(['1 x', '12x'], getline(1,'$')) + + bwipe! set virtualedit= endfunc -- cgit