Compare commits

..

7 Commits

Author SHA1 Message Date
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
3 changed files with 46 additions and 45 deletions

View File

@@ -1,4 +1,4 @@
# VIM Table Mode v4.7.1.1 [![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.2 [![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 An awesome automatic table creator & formatter allowing one to create neat
tables as you type. 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 vimfiles/autoload/, vimfiles/plugin/ and vimfiles/doc under WINDOWS and
restart VIM 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 ### 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>). 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 : Tip:
> You can use the following to quickly enable / disable table mode in insert You can use the following to quickly enable / disable table mode in insert mode by using `||` or `__`:
> mode by using `||` or `__` :
> ```vim > ```vim
> function! s:isAtStartOfLine(mapping) > function! s:isAtStartOfLine(mapping)
> let text_before_cursor = getline('.')[0 : col('.')-1] > 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. 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 aligned, whether center, right or left by using a `:` character defined by
`g:table_mode_align_char` option. `g:table_mode_align_char` option.
If you manipulate the table when table mode is disabled or copy paste a table 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 from clipboard from outside and it ends up being misaligned, you can realign
it using `:TableModeRealign` or using the default mapping 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 ### Formatting existing content into a table
Table Mode wouldn't justify it's name if it didn't allow formatting 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 existing content into a table. And it does as promised. Like table creation typing on the fly,
on the fly as you type, formatting existing content into a table is equally formatting existing content into a table is equally
simple. You can visually select multiple lines and call `:Tableize` on it, simple. You can visually select multiple lines and call `:Tableize` on it.
or alternatively use the mapping <kbd>\<Leader\>tt</kbd> defined by the Alternatively, the mapping <kbd>\<Leader\>tt</kbd> can be used (defined by the
`g:table_mode_tableize_map` option which would convert CSV (Comma Separated option `g:table_mode_tableize_map`). This converts CSV (Comma-separated
Value) data into a table and use `,` defined by `g:table_mode_delimiter` Values) data into a table.
option as the delimiter.
If however you wish to use a different delimiter, you can use the command 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> `: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. cmd-line and uses the `{pattern}` input as the delimiter.
`:Tableize` also accepts a range and so you can also call it by giving `:Tableize` also accepts a range. Call it by giving
lines manually like `:line1,line2Tableize`, but this is not very intuitive. 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 You can use the mapping <kbd>\<Leader\>T</kbd> with a `[count]` to apply it to the
next `[count]` lines in standard vim style. 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 Tableize provides a text object for manipulating table cells. Following
the vim philosophy the you have <kbd>i|</kbd> & <kbd>a|</kbd> for the 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. table cell.
- **Delete Row** : - **Delete Row** :
You can use the <kbd>\<Leader\>tdd</kbd> mapping defined by the option 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 `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 you are within a table row). This can be preceeded with a `[count]` to
delete multiple rows just like you would with 'dd'. delete multiple rows as per Vim command grammar.
- **Delete Column** : - **Delete Column** :
You can use the <kbd>\<Leader\>tdc</kbd> mapping defined by the option 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 `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 (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** : - **Insert Column** :
You can use the <kbd>\<Leader\>tic</kbd> mapping defined by the option 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 `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 cursor (provided you are within a table row). Of course you can use the
<kbd>\<Leader\>tiC</kbd> mapping defined by <kbd>\<Leader\>tiC</kbd> mapping defined by
`g:table_mode_insert_column_before_map` to insert a column before the `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 : of defining formulas :
- You can add formulas using `:TableAddFormula` or the mapping <kbd>\<Leader\>tfa</kbd> - 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 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 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 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` 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 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. from anywhere inside the table or while on the formula line.
NOTE: You can now use the mapping <kbd>\<Leader\>t?</kbd> NOTE: You can now use the mapping <kbd>\<Leader\>t?</kbd>

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) call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
else else
let [row, line] = [1, tablemode#spreadsheet#GetFirstRow(line)] 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 let texpr = expr
if expr =~# '\$' if expr =~# '\$'
let texpr = substitute(texpr, '\$\(\d\+\)', 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) call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
let row += 1 let row += 1
endif
let line += 1 let line += 1
endwhile endwhile
endif endif

View File

@@ -1,7 +1,7 @@
*table-mode.txt* Table Mode for easy table formatting *table-mode.txt* Table Mode for easy table formatting
=============================================================================== ===============================================================================
Table Mode, THE AWESOME AUTOMATIC TABLE CREATOR & FORMATTER Table Mode, THE AWESOME AUTOMATIC TABLE CREATOR & FORMATTER
VERSION 4.7.1.1 VERSION 4.7.2
Author: Dhruva Sagar <http://dhruvasagar.com/> Author: Dhruva Sagar <http://dhruvasagar.com/>
License: MIT <http://opensource.org/licenses/MIT/> License: MIT <http://opensource.org/licenses/MIT/>
@@ -53,11 +53,10 @@ Tableize content:
Move between cells : Move between cells :
Now you can move between cells using table mode motions Now you can move between cells using table mode motions
'<Leader>t[hjkl]' to move left | down | up | right cells respectively. '[|, ]|, {|, }|' to move left | down | up | right cells respectively.
You can use |table-mode-map-prefix| option to define the prefix The left | right motions wrap around the table and move to the next
mapping to be used before 'hjkl'. The left | right motions wrap around | previous row after the last | first cell in the current row if one
the table and move to the next | previous row after the last | first exists.
cell in the current row if one exists.
Manipulation of tables: Manipulation of tables:
Tableize provides 3 easy ways to quickly manipulate tables. Tableize provides 3 easy ways to quickly manipulate tables.