diff --git a/plugin/editorconfig.vim b/plugin/editorconfig.vim index d0deb265..8f10c8f5 100644 --- a/plugin/editorconfig.vim +++ b/plugin/editorconfig.vim @@ -440,7 +440,8 @@ function! s:ApplyConfig(config) abort " Set the buffer options {{{1 autocmd! BufWritePre if s:IsRuleActive('trim_trailing_whitespace', a:config) && \ get(a:config, 'trim_trailing_whitespace', 'false') ==# 'true' - autocmd BufWritePre call s:TrimTrailingWhitespace() + autocmd InsertEnter let s:pos_on_insert_enter = getpos('.') + autocmd InsertLeave call s:TrimTrailingWhitespace() endif augroup END @@ -500,10 +501,11 @@ endfunction function! s:TrimTrailingWhitespace() " {{{1 if &l:modifiable + let pos = getpos('.') " don't lose user position when trimming trailing whitespace let s:view = winsaveview() try - silent! keeppatterns keepjumps %s/\s\+$//e + execute 'silent! keeppatterns keepjumps :' . s:pos_on_insert_enter[1] . ',' . pos[1] . 's/\s\+$//e' finally call winrestview(s:view) endtry