tabular.vim 667 B

1234567891011121314151617
  1. nmap <Leader>a= :Tabularize /=<CR>
  2. vmap <Leader>a= :Tabularize /=<CR>
  3. nmap <Leader>a: :Tabularize /:\zs<CR>
  4. vmap <Leader>a: :Tabularize /:\zs<CR>
  5. inoremap <silent> <Bar> <Bar><Esc>:call <SID>align()<CR>a
  6. function! s:align()
  7. let p = '^\s*|\s.*\s|\s*$'
  8. if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p)
  9. let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g'))
  10. let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*'))
  11. Tabularize/|/l1
  12. normal! 0
  13. call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
  14. endif
  15. endfunction