Compare commits

..

10 Commits

Author SHA1 Message Date
Dhruva Sagar
3476c4e517 Improve Tableize. Fix #109.
This adds a new option `g:table_mode_tableize_auto_border` that allows
to enable automatic border creation when using Tableize to create tables
2020-08-19 21:59:37 +05:30
Dhruva Sagar
88cb2e44b6 Bump version 2020-08-02 23:28:10 +05:30
Dhruva Sagar
336262d04f Fix #184
Improve formula evaluation, support border rows
2020-08-02 23:26:27 +05:30
Dhruva Sagar
5c489b57e8 Improve documentation. Fix #183
Update the vim help documentation to match the correct mappings
& behavior
2020-07-27 19:51:11 +05:30
Dhruva Sagar
436e7d6c21 Merge pull request #182 from CaninoDev/patch-2
Update README.md
2020-07-25 01:52:55 +05:30
Dhruva Sagar
1ea7960834 Merge pull request #181 from CaninoDev/patch-1
Add instructions for installation via vim-plug
2020-07-25 01:51:52 +05:30
IanGC
ff38f4451b Update README.md
1) `it's` is a contraction of `it is`. `its` is the possessive
2) Made consistent the formatting of `[count]` as used in various locations
3) Made consistent the various `g:` formattings
4) `immidiately` is correctly spelled `immediately`
5) Shortened some sentences for clarity

As an aside, this is an immensely useful plugin. Thanks so much for contributing your code.
2020-07-24 15:48:47 -04:00
IanGC
d5b9ce4d9e Add instructions for installation via vim-plug 2020-07-24 15:26:10 -04:00
Dhruva Sagar
6404009080 Improve documentation of g:table_mode_disable_tableize_mappings 2020-05-06 20:29:11 +05:30
Dhruva Sagar
c9b13e5d30 Add config to disable tableize mappings. Fix 176 2020-05-06 20:20:53 +05:30
6 changed files with 84 additions and 52 deletions

View File

@@ -1,4 +1,4 @@
# VIM Table Mode v4.7.0 [![Build Status](https://travis-ci.org/dhruvasagar/vim-table-mode.png?branch=master)](https://travis-ci.org/dhruvasagar/vim-table-mode)
# VIM Table Mode v4.7.3 [![Build Status](https://travis-ci.org/dhruvasagar/vim-table-mode.png?branch=master)](https://travis-ci.org/dhruvasagar/vim-table-mode)
An awesome automatic table creator & formatter allowing one to create neat
tables as you type.
@@ -27,13 +27,14 @@ $ git submodule add git@github.com:dhruvasagar/vim-table-mode.git bundle/table-m
vimfiles/autoload/, vimfiles/plugin/ and vimfiles/doc under WINDOWS and
restart VIM
4. Alternatively, if using <a href="https://github.com/junegunn/vim-plug">vim-plug</a>, then add `Plug 'dhruvasagar/vim-table-mode'` to your ~/.vimrc.
### Creating table on-the-fly
To start using the plugin in the on-the-fly mode use `:TableModeToggle` mapped to <kbd>\<Leader\>tm</kbd> by default (which means <kbd>\\</kbd> <kbd>t</kbd> <kbd>m</kbd> if you didn't override the <Leader> by `:let mapleader = ','` to have <kbd>,</kbd> <kbd>t</kbd> <kbd>m</kbd>).
> Tip :
> You can use the following to quickly enable / disable table mode in insert
> mode by using `||` or `__` :
Tip:
You can use the following to quickly enable / disable table mode in insert mode by using `||` or `__`:
> ```vim
> function! s:isAtStartOfLine(mapping)
> let text_before_cursor = getline('.')[0 : col('.')-1]
@@ -115,34 +116,33 @@ To get ReST-compatible tables use
Markdown and ReST filetypes have automatically configured corners.
You can also define in a table header border how it's content should be
You can also define in a table header border how its content should be
aligned, whether center, right or left by using a `:` character defined by
`g:table_mode_align_char` option.
If you manipulate the table when table mode is disabled or copy paste a table
from clipboard from outside and it ends up being misaligned, you can realign
it using `:TableModeRealign` or using the default mapping
<kbd>\<Leader\>tr</kbd> defined by `g:table_mode_relign_map` option.
<kbd>\<Leader\>tr</kbd> (defined by the option `g:table_mode_relign_map`).
### Formatting existing content into a table
Table Mode wouldn't justify it's name if it didn't allow formatting
existing content into a table. And it does as promised. Like table creation
on the fly as you type, formatting existing content into a table is equally
simple. You can visually select multiple lines and call `:Tableize` on it,
or alternatively use the mapping <kbd>\<Leader\>tt</kbd> defined by the
`g:table_mode_tableize_map` option which would convert CSV (Comma Separated
Value) data into a table and use `,` defined by `g:table_mode_delimiter`
option as the delimiter.
Table Mode wouldn't justify its name if it didn't allow formatting
existing content into a table. And it does as promised. Like table creation typing on the fly,
formatting existing content into a table is equally
simple. You can visually select multiple lines and call `:Tableize` on it.
Alternatively, the mapping <kbd>\<Leader\>tt</kbd> can be used (defined by the
option `g:table_mode_tableize_map`). This converts CSV (Comma-separated
Values) data into a table.
If however you wish to use a different delimiter, you can use the command
`:Tableize/{pattern}` in a similar fashion as you use tabular (eg.
`:Tableize/{pattern}` in a similar fashion as you tabulate (e.g.
`:Tableize/;` uses ';' as the delimiter) or use the mapping <kbd>\<Leader\>T</kbd>
defined by `g:table_mode_tableize_op_map` option which takes input in the
(defined by the option `g:table_mode_tableize_op_map`) which takes input in the
cmd-line and uses the `{pattern}` input as the delimiter.
`:Tableize` also accepts a range and so you can also call it by giving
lines manually like `:line1,line2Tableize`, but this is not very intuitive.
`:Tableize` also accepts a range. Call it by giving
lines manually like `:line1,line2Tableize`. However this may not be intuitive.
You can use the mapping <kbd>\<Leader\>T</kbd> with a `[count]` to apply it to the
next `[count]` lines in standard vim style.
@@ -160,27 +160,27 @@ it using `:TableModeRealign` or using the default mapping
Tableize provides a text object for manipulating table cells. Following
the vim philosophy the you have <kbd>i|</kbd> & <kbd>a|</kbd> for the
inner and around (including the immidiate right table separator) the
inner and around (including the immediate right table separator) the
table cell.
- **Delete Row** :
You can use the <kbd>\<Leader\>tdd</kbd> mapping defined by the option
`g:table_mode_delete_row_map` to delete the current table row (provided
you are within a table row), this can be preceeded with a [count] to
delete multiple rows just like you would with 'dd'.
You can use the <kbd>\<Leader\>tdd</kbd> mapping (defined by the option
`g:table_mode_delete_row_map`) to delete the current table row (provided
you are within a table row). This can be preceeded with a `[count]` to
delete multiple rows as per Vim command grammar.
- **Delete Column** :
You can use the <kbd>\<Leader\>tdc</kbd> mapping defined by the option
`g:table_mode_delete_column_map` to delete the entire current column
You can use the <kbd>\<Leader\>tdc</kbd> mapping (defined by the option
`g:table_mode_delete_column_map`) to delete the entire current column
(provided you are within a table row), this can also be preceeded with a
[count] to delete multiple columns.
`[count]` to delete multiple columns.
- **Insert Column** :
You can use the <kbd>\<Leader\>tic</kbd> mapping defined by the option
`g:table_mode_insert_column_after_map` to insert a column after the
You can use the <kbd>\<Leader\>tic</kbd> mapping (defined by the option
`g:table_mode_insert_column_after_map`) to insert a column after the
cursor (provided you are within a table row). Of course you can use the
<kbd>\<Leader\>tiC</kbd> mapping defined by
`g:table_mode_insert_column_before_map` to insert a column before the
@@ -195,7 +195,7 @@ it using `:TableModeRealign` or using the default mapping
of defining formulas :
- You can add formulas using `:TableAddFormula` or the mapping <kbd>\<Leader\>tfa</kbd>
defined by the option `g:table_mode_add_formula_map` from within a table
(defined by the option `g:table_mode_add_formula_map`) from within a table
cell, which will ask for input on the cmd-line with a `f=` prompt. The
input formula will be appended to the formula line if one exists or a new
one will be created with the input formula taking the current cell as the
@@ -208,7 +208,7 @@ it using `:TableModeRealign` or using the default mapping
formulas on the line separated with a ';' eg) `# tmf: $3=$2*$1;$4=$3/3.14`
You can evaluate the formula line using `:TableEvalFormulaLine` or the
mapping <kbd>\<Leader\>tfe</kbd> defined by the option `g:table_mode_eval_expr_map`
mapping <kbd>\<Leader\>tfe</kbd> (defined by the option `g:table_mode_eval_expr_map`)
from anywhere inside the table or while on the formula line.
NOTE: You can now use the mapping <kbd>\<Leader\>t?</kbd>

View File

@@ -206,9 +206,24 @@ endfunction
function! tablemode#TableizeRange(...) range "{{{2
let lnum = a:firstline
while lnum < (a:firstline + (a:lastline - a:firstline + 1))
let total = (a:lastline - a:firstline + 1)
echom total
let cntr = 1
while cntr <= total
call s:Tableizeline(lnum, a:1)
undojoin
if g:table_mode_tableize_auto_border
if cntr == 1
normal! O
call tablemode#table#AddBorder('.')
normal! j
let lnum += 1
endif
normal! o
call tablemode#table#AddBorder('.')
let lnum += 1
endif
let cntr += 1
let lnum += 1
endwhile

View File

@@ -109,7 +109,8 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
else
let [row, line] = [1, tablemode#spreadsheet#GetFirstRow(line)]
while tablemode#table#IsRow(line)
while !s:IsFormulaLine(line)
if !tablemode#table#IsBorder(line)
let texpr = expr
if expr =~# '\$'
let texpr = substitute(texpr, '\$\(\d\+\)',
@@ -118,6 +119,7 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
let row += 1
endif
let line += 1
endwhile
endif

View File

@@ -1,7 +1,7 @@
*table-mode.txt* Table Mode for easy table formatting
===============================================================================
Table Mode, THE AWESOME AUTOMATIC TABLE CREATOR & FORMATTER
VERSION 4.7.0
VERSION 4.7.3
Author: Dhruva Sagar <http://dhruvasagar.com/>
License: MIT <http://opensource.org/licenses/MIT/>
@@ -53,11 +53,10 @@ Tableize content:
Move between cells :
Now you can move between cells using table mode motions
'<Leader>t[hjkl]' to move left | down | up | right cells respectively.
You can use |table-mode-map-prefix| option to define the prefix
mapping to be used before 'hjkl'. The left | right motions wrap around
the table and move to the next | previous row after the last | first
cell in the current row if one exists.
'[|, ]|, {|, }|' to move left | down | up | right cells respectively.
The left | right motions wrap around the table and move to the next
| previous row after the last | first cell in the current row if one
exists.
Manipulation of tables:
Tableize provides 3 easy ways to quickly manipulate tables.
@@ -185,6 +184,7 @@ Overview:
|table-mode-syntax| ............. Control table mode syntax
|table-mode-auto-align| ......... Set if the table mode should auto
align as you type
|table-mode-tableize-auto-border| Set if tableize adds row borders
g:loaded_table_mode *table-mode-loaded*
Use this option to disable the plugin: >
@@ -355,6 +355,16 @@ g:table_mode_update_time *table-mode-update-time*
let g:table_mode_update_time = 500
<
g:table_mode_disable_tableize_mappings *table-mode-disable-tableize-mappings*
Disables mappings for tableize. >
let g:table_mode_disable_tableize_mappings = 0
<
*table-mode-tableize-auto-border*
g:table_mode_tableize_auto_border
Enables adding row borders to tables when created using tableize. >
let g:table_mode_tableize_auto_border = 0
<
===============================================================================
MAPPINGS *table-mode-mappings*

View File

@@ -28,6 +28,7 @@ call s:SetGlobalOptDefault('table_mode_delimiter', ',')
call s:SetGlobalOptDefault('table_mode_corner_corner', '|')
call s:SetGlobalOptDefault('table_mode_align_char', ':')
call s:SetGlobalOptDefault('table_mode_disable_mappings', 0)
call s:SetGlobalOptDefault('table_mode_disable_tableize_mappings', 0)
call s:SetGlobalOptDefault('table_mode_motion_up_map', '{<Bar>')
call s:SetGlobalOptDefault('table_mode_motion_down_map', '}<Bar>')
@@ -52,6 +53,7 @@ call s:SetGlobalOptDefault('table_mode_tableize_d_map', '<Leader>T')
call s:SetGlobalOptDefault('table_mode_syntax', 1)
call s:SetGlobalOptDefault('table_mode_auto_align', 1)
call s:SetGlobalOptDefault('table_mode_update_time', 500)
call s:SetGlobalOptDefault('table_mode_tableize_auto_border', 0)
function! s:TableEchoCell() "{{{1
if tablemode#table#IsRow('.')
@@ -114,6 +116,7 @@ nnoremap <silent> <Plug>(table-mode-echo-cell) :call <SID>TableEchoCell()<CR>
nnoremap <silent> <Plug>(table-mode-sort) :call tablemode#spreadsheet#Sort('')<CR>
if !g:table_mode_disable_tableize_mappings
if !hasmapto('<Plug>(table-mode-tableize)')
exec "nmap" g:table_mode_tableize_map "<Plug>(table-mode-tableize)"
exec "xmap" g:table_mode_tableize_map "<Plug>(table-mode-tableize)"
@@ -122,6 +125,7 @@ endif
if !hasmapto('<Plug>(table-mode-tableize-delimiter)')
exec "xmap" g:table_mode_tableize_d_map "<Plug>(table-mode-tableize-delimiter)"
endif
endif
augroup TableMode "{{{1
au!

View File

@@ -34,3 +34,4 @@ let g:table_mode_tableize_d_map = '<Leader>T'
let g:table_mode_syntax = 1
let g:table_mode_auto_align = 1
let g:table_mode_update_time = 500
let g:table_mode_tableize_auto_border = 0