Vim Tips Wiki
Advertisement
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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>

Comments

Advertisement