mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.0.0669: CTRL-N at start of the buffer does not work correctly
Problem: In Insert mode, CTRL-N at start of the buffer does not work correctly. (zuloloxi) Solution: Wrap around the start of the buffer. (Christian Brabandt)
This commit is contained in:
14
src/edit.c
14
src/edit.c
@@ -4308,9 +4308,17 @@ ins_compl_get_exp(pos_T *ini)
|
|||||||
{
|
{
|
||||||
ins_buf = curbuf;
|
ins_buf = curbuf;
|
||||||
first_match_pos = *ini;
|
first_match_pos = *ini;
|
||||||
/* So that ^N can match word immediately after cursor */
|
/* Move the cursor back one character so that ^N can match the
|
||||||
if (ctrl_x_mode == 0)
|
* word immediately after the cursor. */
|
||||||
dec(&first_match_pos);
|
if (ctrl_x_mode == 0 && dec(&first_match_pos) < 0)
|
||||||
|
{
|
||||||
|
/* Move the cursor to after the last character in the
|
||||||
|
* buffer, so that word at start of buffer is found
|
||||||
|
* correctly. */
|
||||||
|
first_match_pos.lnum = ins_buf->b_ml.ml_line_count;
|
||||||
|
first_match_pos.col =
|
||||||
|
(colnr_T)STRLEN(ml_get(first_match_pos.lnum));
|
||||||
|
}
|
||||||
last_match_pos = first_match_pos;
|
last_match_pos = first_match_pos;
|
||||||
type = 0;
|
type = 0;
|
||||||
|
|
||||||
|
@@ -612,5 +612,19 @@ func Test_complete_func_mess()
|
|||||||
set completefunc=
|
set completefunc=
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_complete_CTRLN_startofbuffer()
|
||||||
|
new
|
||||||
|
call setline(1, [ 'organize(cupboard, 3, 2);',
|
||||||
|
\ 'prioritize(bureau, 8, 7);',
|
||||||
|
\ 'realize(bannister, 4, 4);',
|
||||||
|
\ 'moralize(railing, 3,9);'])
|
||||||
|
let expected=['cupboard.organize(3, 2);',
|
||||||
|
\ 'bureau.prioritize(8, 7);',
|
||||||
|
\ 'bannister.realize(4, 4);',
|
||||||
|
\ 'railing.moralize(3,9);']
|
||||||
|
call feedkeys("qai\<c-n>\<c-n>.\<esc>3wdW\<cr>q3@a", 'tx')
|
||||||
|
call assert_equal(expected, getline(1,'$'))
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -764,6 +764,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 */
|
||||||
|
/**/
|
||||||
|
669,
|
||||||
/**/
|
/**/
|
||||||
668,
|
668,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user