mirror of
https://github.com/vim/vim.git
synced 2025-08-26 20:03:41 -04:00
patch 9.1.1167: mark '] wrong after copying text object
Problem: mark '] wrong after copying text object (ubaldot) Solution: Adjust position of '] for non-linewise, exclusive motions (Jim Zhou) related: #16679 closes: #16772 Signed-off-by: Jim Zhou <jimzhouzzy@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
fb792374cf
commit
360a39ae6c
@ -1374,6 +1374,9 @@ op_yank(oparg_T *oap, int deleting, int mess)
|
|||||||
curbuf->b_op_start.col = 0;
|
curbuf->b_op_start.col = 0;
|
||||||
curbuf->b_op_end.col = MAXCOL;
|
curbuf->b_op_end.col = MAXCOL;
|
||||||
}
|
}
|
||||||
|
if (yanktype != MLINE && !oap->inclusive)
|
||||||
|
// Exclude the end position.
|
||||||
|
decl(&curbuf->b_op_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FEAT_CLIPBOARD
|
#ifdef FEAT_CLIPBOARD
|
||||||
|
@ -1154,4 +1154,54 @@ func Test_register_cursor_column_negative()
|
|||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" test '] mark generated by op_yank
|
||||||
|
func Test_mark_from_yank()
|
||||||
|
new
|
||||||
|
" double quote object
|
||||||
|
call setline(1, 'test "yank" mark')
|
||||||
|
normal! yi"
|
||||||
|
call assert_equal([0, 1, 10, 0], getpos("']"))
|
||||||
|
normal! ya"
|
||||||
|
call assert_equal(getpos("']"), [0, 1, 13, 0], getpos("']"))
|
||||||
|
" single quote object
|
||||||
|
call setline(1, 'test ''yank'' mark')
|
||||||
|
normal! yi'
|
||||||
|
call assert_equal([0, 1, 10, 0], getpos("']"))
|
||||||
|
normal! ya'
|
||||||
|
call assert_equal([0, 1, 13, 0], getpos("']"))
|
||||||
|
" paren object
|
||||||
|
call setline(1, 'test (yank) mark')
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! yi(
|
||||||
|
call assert_equal([0, 1, 10, 0], getpos("']"))
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! ya(
|
||||||
|
call assert_equal([0, 1, 11, 0], getpos("']"))
|
||||||
|
" brace object
|
||||||
|
call setline(1, 'test {yank} mark')
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! yi{
|
||||||
|
call assert_equal([0, 1, 10, 0], getpos("']"))
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! ya{
|
||||||
|
call assert_equal([0, 1, 11, 0], getpos("']"))
|
||||||
|
" bracket object
|
||||||
|
call setline(1, 'test [yank] mark')
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! yi[
|
||||||
|
call assert_equal([0, 1, 10, 0], getpos("']"))
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! ya[
|
||||||
|
call assert_equal([0, 1, 11, 0], getpos("']"))
|
||||||
|
" block object
|
||||||
|
call setline(1, 'test <yank> mark')
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! yi<
|
||||||
|
call assert_equal([0, 1, 10, 0], getpos("']"))
|
||||||
|
call cursor(1, 9)
|
||||||
|
normal! ya<
|
||||||
|
call assert_equal([0, 1, 11, 0], getpos("']"))
|
||||||
|
bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1167,
|
||||||
/**/
|
/**/
|
||||||
1166,
|
1166,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user