Trailing white space aware Delete key
Talk0
1,599pages on
this wiki
this wiki
Tip 1389 Printable Monobook Previous Next
created 2006 · complexity basic · author pulp · version 6.0
This function will extend the 'delete key' to delete trailing white spaces and empty lines at once. Leading blanks are preserved.
Tested with: Insert Mode, set virtualedit=all, set backspace=2, blanks for ident.
function! Smart_Del(...)
let line=getline (".")
let column = col(".")
let part2= strpart(line, column-1)
if part2 =~ '^\s*$' && part2!=""
let part1= strpart(line, 0, column-1)
call setline (".", part1)
endif
iunmap <silent> <DEL>
execute "normal i\<DEL>\<Esc>"
if column > 1
execute "normal l"
endif
inoremap <silent> <DEL> <C-o>: call Smart_Del()<CR>
endfunction
inoremap <silent> <DEL> <C-o>: call Smart_Del()<CR>