Fix for "all" and "insert" "virtualedit" in Insert mode

This commit is contained in:
Viacheslav Lotsmanov 2019-07-21 19:27:08 +03:00 committed by Tim Pope
parent ca58a2d886
commit fab8621670

View File

@ -336,7 +336,16 @@ function! s:insert(...) " {{{1
if exists("g:surround_insert_tail") if exists("g:surround_insert_tail")
call setreg('"',g:surround_insert_tail,"a".getregtype('"')) call setreg('"',g:surround_insert_tail,"a".getregtype('"'))
endif endif
if col('.') >= col('$') if &ve != 'all' && col('.') >= col('$')
if &ve == 'insert'
let extra_cols = virtcol('.') - virtcol('$')
if extra_cols > 0
let [regval,regtype] = [getreg('"',1,1),getregtype('"')]
call setreg('"',join(map(range(extra_cols),'" "'),''),'v')
norm! ""p
call setreg('"',regval,regtype)
endif
endif
norm! ""p norm! ""p
else else
norm! ""P norm! ""P