Mercurial > vim
changeset 12545:241fbf588b95 v8.0.1151
patch 8.0.1151: "vim -c startinsert!" doesn't append
commit https://github.com/vim/vim/commit/09ca932f8e7d63a83b39baa7c03d4c6145e3baab
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Sep 26 17:40:45 2017 +0200
patch 8.0.1151: "vim -c startinsert!" doesn't append
Problem: "vim -c startinsert!" doesn't append.
Solution: Correct line number on startup. (Christian Brabandt, closes https://github.com/vim/vim/issues/2117)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 26 Sep 2017 17:45:04 +0200 |
parents | cc430340048d |
children | 088dd3306316 |
files | src/ex_docmd.c src/testdir/test_startup.vim src/version.c |
diffstat | 3 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10294,6 +10294,9 @@ ex_startinsert(exarg_T *eap) { if (eap->forceit) { + /* 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;
--- a/src/testdir/test_startup.vim +++ b/src/testdir/test_startup.vim @@ -263,3 +263,27 @@ func Test_default_term() call assert_match("defaulting to 'ansi'", out) let $TERM = save_term endfunc + +func Test_zzz_startinsert() + " Test :startinsert + call writefile(['123456'], 'Xtestout') + let after = [ + \ ':startinsert', + \ 'call feedkeys("foobar\<c-o>:wq\<cr>","t")' + \ ] + if RunVim([], after, 'Xtestout') + let lines = readfile('Xtestout') + call assert_equal(['foobar123456'], lines) + endif + " Test :startinsert! + call writefile(['123456'], 'Xtestout') + let after = [ + \ ':startinsert!', + \ 'call feedkeys("foobar\<c-o>:wq\<cr>","t")' + \ ] + if RunVim([], after, 'Xtestout') + let lines = readfile('Xtestout') + call assert_equal(['123456foobar'], lines) + endif + call delete('Xtestout') +endfunc