René Nyffenegger's collection of things on the web
René Nyffenegger on Oracle - Most wanted - Feedback -
 

InsertVerticalLine [Vim Script]

Inserts a vertical line. To be used with a visual selection.
function! InsertVerticalLine() range
  let l:line_orig = line(".")

  let l:line_b    = line("'<")
  let l:line_e    = line("'>")

  let l:col_b     = col ("'<")
  let l:col_e     = col ("'>")

  " echo l:col_b

  if l:line_b == l:line_orig 
    let l:line_from = l:line_b
    let l:col_from  = l:col_b
    let l:line_to   = l:line_e
  else
    let l:line_from = l:line_e
    let l:col_from  = l:col_e
    let l:line_to   = l:line_b
  endif

  let l:txt = input ("Text: ")

  while l:line_from <= l:line_to 
    let l:line_txt = getline(l:line_from)

    let l:line_txt = EnsureStringLength(l:line_txt, l:col_from)

    let l:line_txt = substitute(l:line_txt, '\(.\{' . (l:col_from - 1) . '}\)', '\1' . l:txt, "")

    call setline(l:line_from, l:line_txt)
    let l:line_from = l:line_from + 1
  endwhile

  echo "finished"
  
endfu
See also other Vim scripts.