diff --git a/autoload/tablemode/table.vim b/autoload/tablemode/table.vim index 951ddcc..127876e 100644 --- a/autoload/tablemode/table.vim +++ b/autoload/tablemode/table.vim @@ -779,15 +779,14 @@ function! tablemode#table#TableMotion(direction, ...) "{{{2 endif endfunction -function! tablemode#table#CellTextObject() "{{{2 +function! tablemode#table#CellTextObject(inner) "{{{2 if tablemode#table#IsATableRow('.') call s:MoveToStartOfCell() - - if v:operator ==# 'y' + if a:inner normal! v call search('[^' . g:table_mode_separator . ']\ze\s*' . g:table_mode_separator) else - execute 'normal! vf' . g:table_mode_separator + execute 'normal! vf' . g:table_mode_separator . 'l' endif endif endfunction diff --git a/plugin/table-mode.vim b/plugin/table-mode.vim index 2974f21..4f26031 100644 --- a/plugin/table-mode.vim +++ b/plugin/table-mode.vim @@ -42,15 +42,7 @@ call s:SetGlobalOptDefault('table_mode_map_prefix', 't') call s:SetGlobalOptDefault('table_mode_toggle_map', 'm') call s:SetGlobalOptDefault('table_mode_always_active', 0) call s:SetGlobalOptDefault('table_mode_delimiter', ',') -call s:SetGlobalOptDefault('table_mode_tableize_map', 't') -call s:SetGlobalOptDefault('table_mode_tableize_op_map', 'T') -call s:SetGlobalOptDefault('table_mode_realign_map', 'r') call s:SetGlobalOptDefault('table_mode_cell_text_object', 'tc') -call s:SetGlobalOptDefault('table_mode_delete_row_map', 'dd') -call s:SetGlobalOptDefault('table_mode_delete_column_map', 'dc') -call s:SetGlobalOptDefault('table_mode_add_formula_map', 'fa') -call s:SetGlobalOptDefault('table_mode_eval_expr_map', 'fe') -call s:SetGlobalOptDefault('table_mode_echo_cell_map', '?') call s:SetGlobalOptDefault('table_mode_corner_corner', '|') function! s:TableEchoCell() "{{{1 @@ -79,20 +71,23 @@ endif command! -nargs=? -range Tableize ,call tablemode#TableizeRange() command! TableAddFormula call tablemode#table#AddFormula() -command! TableModeRealign call tablemode#table#TableRealign() +command! TableModeRealign call tablemode#table#TableRealign('.') command! TableEvalFormulaLine call tablemode#table#EvaluateFormulaLine() nnoremap (table-mode-tableize) :Tableize xnoremap (table-mode-tableize) :Tableize xnoremap (table-mode-tableize-delimiter) :call tablemode#TableizeByDelimiter() -nnoremap (table-mode-realign) :call tablemode#table#TableRealign() +nnoremap (table-mode-realign) :call tablemode#table#TableRealign('.') nnoremap (table-mode-motion-up) :call tablemode#table#TableMotion('k') nnoremap (table-mode-motion-down) :call tablemode#table#TableMotion('j') nnoremap (table-mode-motion-left) :call tablemode#table#TableMotion('h') nnoremap (table-mode-motion-right) :call tablemode#table#TableMotion('l') +onoremap (table-mode-cell-text-object-a) :call tablemode#table#CellTextObject(0) +onoremap (table-mode-cell-text-object-i) :call tablemode#table#CellTextObject(1) + nnoremap (table-mode-delete-row) :call tablemode#table#DeleteRow() nnoremap (table-mode-delete-column) :call tablemode#table#DeleteColumn() @@ -127,8 +122,13 @@ if !hasmapto('(table-mode-motion-right)') nmap ] (table-mode-motion-right) endif -execute "onoremap " . g:table_mode_cell_text_object . - \ " :call tablemode#table#CellTextObject()" +if !hasmapto('(table-mode-cell-text-object-a)') + omap a (table-mode-cell-text-object-a) +endif +if !hasmapto('(table-mode-cell-text-object-i)') + omap i (table-mode-cell-text-object-i) +endif + if !hasmapto('(table-mode-delete-row)') nmap tdd (table-mode-delete-row) endif diff --git a/t/config.vim b/t/config.vim index 358569b..4deab5e 100644 --- a/t/config.vim +++ b/t/config.vim @@ -2,15 +2,7 @@ let g:table_mode_corner = '+' let g:table_mode_separator = '|' let g:table_mode_fillchar = '-' let g:table_mode_map_prefix = 't' -let g:table_mode_toggle_map = 'm' let g:table_mode_always_active = 0 let g:table_mode_delimiter = ',' -let g:table_mode_tableize_map = 't' -let g:table_mode_tableize_op_map = 'T' -let g:table_mode_realign_map = 'r' let g:table_mode_cell_text_object = 'tc' -let g:table_mode_delete_row_map = 'dd' -let g:table_mode_delete_column_map = 'dc' -let g:table_mode_add_formula_map = 'fa' -let g:table_mode_eval_expr_map = 'fe' let g:table_mode_corner_corner = '|' diff --git a/t/tablemode/table.vim b/t/table.vim similarity index 100% rename from t/tablemode/table.vim rename to t/table.vim