diff --git a/autoload/tablemode.vim b/autoload/tablemode.vim index ab1cc72..43de0fe 100644 --- a/autoload/tablemode.vim +++ b/autoload/tablemode.vim @@ -803,7 +803,21 @@ endfunction function! tablemode#DeleteColumn() "{{{2 if tablemode#IsATableRow('.') for i in range(v:count1) - call s:MoveToFirstRow() + call s:MoveToStartOfCell() + + if tablemode#IsATableRow(line('.') + 1) + call s:MoveToFirstRow() + " If we have a header delete it first + if tablemode#IsATableRow(line('.')-2) + call cursor(line('.')-2, col('.')) + silent! execute "normal! h\f" . g:table_mode_separator + normal! jdjj + endif + else " We're already on the header + silent! execute "normal! h\f" . g:table_mode_separator + normal! jdjj + endif + call s:MoveToStartOfCell() silent! execute "normal! h\f" . g:table_mode_separator call s:MoveToLastRow() @@ -817,15 +831,11 @@ endfunction function! tablemode#DeleteRow() "{{{2 if tablemode#IsATableRow('.') for i in range(v:count1) - if tablemode#RowCount('.') ==# 1 - normal! kVjjd - else - normal! kVjd + if tablemode#IsATableRow('.') + normal! dd endif - if tablemode#IsATableRow(line('.')+1) - normal! j - else + if !tablemode#IsATableRow('.') normal! k endif endfor