1
0
forked from aniani/vim

patch 8.1.1988: :startinsert! does not work the same way as "A"

Problem:    :startinsert! does not work the same way as "A".
Solution:   Use the same code to move the cursor. (closes #4896)
This commit is contained in:
Bram Moolenaar
2019-09-05 21:29:01 +02:00
parent a0d1fef4eb
commit 8d3b51084a
5 changed files with 45 additions and 20 deletions

View File

@@ -7596,16 +7596,14 @@ ex_startinsert(exarg_T *eap)
{
if (eap->forceit)
{
/* cursor line can be zero on startup */
// cursor line can be zero on startup
if (!curwin->w_cursor.lnum)
curwin->w_cursor.lnum = 1;
coladvance((colnr_T)MAXCOL);
curwin->w_curswant = MAXCOL;
curwin->w_set_curswant = FALSE;
set_cursor_for_append_to_line();
}
/* Ignore the command when already in Insert mode. Inserting an
* expression register that invokes a function can do this. */
// Ignore the command when already in Insert mode. Inserting an
// expression register that invokes a function can do this.
if (State & INSERT)
return;
@@ -7620,7 +7618,7 @@ ex_startinsert(exarg_T *eap)
{
if (eap->cmdidx == CMD_startinsert)
restart_edit = 'i';
curwin->w_curswant = 0; /* avoid MAXCOL */
curwin->w_curswant = 0; // avoid MAXCOL
}
}