diff --git a/nvim/after/plugin/tabular.vim b/nvim/after/plugin/tabular.vim new file mode 100644 index 0000000..8947d72 --- /dev/null +++ b/nvim/after/plugin/tabular.vim @@ -0,0 +1,6 @@ +" Custom Tabular Commands + +AddTabularPattern! equals /^[^=]*\zs=/ +AddTabularPattern! ruby_hash /^[^=>]*\zs=>/ +AddTabularPattern! commas /,\s*\zs\s/l0 +AddTabularPattern! colons /^[^:]*:\s*\zs\s/l0 diff --git a/nvim/functions.vim b/nvim/functions.vim index 69355c2..e038222 100644 --- a/nvim/functions.vim +++ b/nvim/functions.vim @@ -18,3 +18,17 @@ function! ToggleWrap() setlocal display+=lastline endif endfunction + +" Automatic Tabular.vim with the (|) +inoremap :call align()a + +function! s:align() + let p = '^\s*|\s.*\s|\s*$' + if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p) + let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g')) + let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*')) + Tabularize/|/l1 + normal! 0 + call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) + endif +endfunction diff --git a/nvim/plugins.vim b/nvim/plugins.vim index 113191b..4bc4b9c 100644 --- a/nvim/plugins.vim +++ b/nvim/plugins.vim @@ -18,5 +18,8 @@ Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } " Tpope Plug 'tpope/vim-abolish' +" Misc +Plug 'godlygeek/tabular' + call plug#end() doautocmd User PlugLoaded