From 8e37d67505ff60b8f413ddd7337795e2bf6a9ac3 Mon Sep 17 00:00:00 2001 From: Dhruva Sagar Date: Tue, 18 Mar 2014 18:20:58 +0530 Subject: [PATCH] Fixed tablemode#TableMotion, supports [count] --- plugin/table-mode.vim | 89 ++++++++++++++++++++++++++++++------------- 1 file changed, 62 insertions(+), 27 deletions(-) diff --git a/plugin/table-mode.vim b/plugin/table-mode.vim index 82acef7..4740677 100644 --- a/plugin/table-mode.vim +++ b/plugin/table-mode.vim @@ -53,13 +53,6 @@ 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:TableMotion() "{{{1 - let direction = nr2char(getchar()) - for i in range(v:count1) - call tablemode#TableMotion(direction) - endfor -endfunction - function! s:TableEchoCell() "{{{1 if tablemode#IsATableRow('.') echomsg '$' . tablemode#RowNr('.') . ',' . tablemode#ColumnNr('.') @@ -89,28 +82,70 @@ command! -nargs=? -range Tableize ,call tablemode#TableizeRange( " . g:table_mode_map_prefix . g:table_mode_tableize_map . - \ " :Tableize" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_tableize_map . - \ " :Tableize" -execute "xnoremap " . g:table_mode_tableize_op_map . - \ " :call tablemode#TableizeByDelimiter()" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_realign_map . - \ " :call tablemode#TableRealign('.')" -execute "nnoremap " . g:table_mode_map_prefix . - \ " :call TableMotion()" +nnoremap (table-mode-tableize) :Tableize +xnoremap (table-mode-tableize) :Tableize +xnoremap (table-mode-tableize-delimiter) :call tablemode#TableizeByDelimiter() + +nnoremap (table-mode-realign) :call tablemode#TableRealign() + +nnoremap (table-mode-motion-up) :call tablemode#TableMotion('k') +nnoremap (table-mode-motion-down) :call tablemode#TableMotion('j') +nnoremap (table-mode-motion-left) :call tablemode#TableMotion('h') +nnoremap (table-mode-motion-right) :call tablemode#TableMotion('l') + +nnoremap (table-mode-delete-row) :call tablemode#DeleteRow() +nnoremap (table-mode-delete-column) :call tablemode#DeleteColumn() + +nnoremap (table-mode-add-formula) :call tablemode#AddFormula() +nnoremap (table-mode-eval-formula) :call tablemode#EvaluateFormulaLine() + +nnoremap (table-mode-echo-cell) :call TableEchoCell() + +if !hasmapto('(table-mode-tableize)') + nmap tt (table-mode-tableize) + xmap tt (table-mode-tableize) +endif + +if !hasmapto('(table-mode-tableize-delimiter)') + xmap T (table-mode-tableize-delimiter) +endif + +if !hasmapto('(table-mode-realign)') + nmap tr (table-mode-realign) +endif + +if !hasmapto('(table-mode-motion-up)') + nmap { (table-mode-motion-up) +endif +if !hasmapto('(table-mode-motion-down)') + nmap } (table-mode-motion-down) +endif +if !hasmapto('(table-mode-motion-left)') + nmap [ (table-mode-motion-left) +endif +if !hasmapto('(table-mode-motion-right)') + nmap ] (table-mode-motion-right) +endif + execute "onoremap " . g:table_mode_cell_text_object . \ " :call tablemode#CellTextObject()" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_delete_row_map . - \ " :call tablemode#DeleteRow()" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_delete_column_map . - \ " :call tablemode#DeleteColumn()" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_add_formula_map . - \ " :TableAddFormula" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_eval_expr_map . - \ " :TableEvalFormulaLine" -execute "nnoremap " . g:table_mode_map_prefix . g:table_mode_echo_cell_map . - \ " :call TableEchoCell()" +if !hasmapto('(table-mode-delete-row)') + nmap tdd (table-mode-delete-row) +endif +if !hasmapto('(table-mode-delete-column)') + nmap tdc (table-mode-delete-column) +endif + +if !hasmapto('(table-mode-add-formula)') + nmap tfa (table-mode-add-formula) +endif +if !hasmapto('(table-mode-eval-formula)') + nmap tfe (table-mode-eval-formula) +endif + +if !hasmapto('(table-mode-echo-cell)') + nmap t? (table-mode-echo-cell) +endif " Avoiding side effects {{{1 let &cpo = s:save_cpo