mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-08 19:13:46 -05:00
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
816072c0f5 | ||
|
|
698ff3074c | ||
|
|
494d95d2b3 | ||
|
|
9191af46b6 | ||
|
|
c547471c0e | ||
|
|
bdcffffe1f | ||
|
|
01a395df00 | ||
|
|
2e95bc6991 | ||
|
|
0fe6bd87ac | ||
|
|
59900a3fef | ||
|
|
eb42c62812 | ||
|
|
e5dc853ee3 | ||
|
|
c949912bfa | ||
|
|
02d28b9323 | ||
|
|
35e9fbf64c | ||
|
|
5150f1ec06 | ||
|
|
d9334c52cc | ||
|
|
88b9c85af3 | ||
|
|
26d2390548 | ||
|
|
7b17c692e9 | ||
|
|
8dcdfad1ee | ||
|
|
659ba4f39c | ||
|
|
04b14c345e |
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -1,6 +1,6 @@
|
|||||||
# These are supported funding model platforms
|
# These are supported funding model platforms
|
||||||
|
|
||||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
github: dhruvasagar
|
||||||
patreon: # Replace with a single Patreon username
|
patreon: # Replace with a single Patreon username
|
||||||
open_collective: vim-table-mode
|
open_collective: vim-table-mode
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
language: ruby
|
language: ruby
|
||||||
rvm:
|
rvm:
|
||||||
- 2.5.3
|
- 3.0.0
|
||||||
script: rake ci
|
script: rake ci
|
||||||
|
|||||||
36
CHANGELOG.md
36
CHANGELOG.md
@@ -1,5 +1,41 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## Version 4.8.0
|
||||||
|
* Improved formula engine
|
||||||
|
- Does not cast column values to float
|
||||||
|
- Silences errors during evaluation, see `v:errmsg` for error information
|
||||||
|
from last evaluation for debugging issues with formulas
|
||||||
|
|
||||||
|
## Version 4.7.6.1
|
||||||
|
* Improved handling of `g:table_mode_ignore_align` configuration, now allows
|
||||||
|
per buffer overrides
|
||||||
|
|
||||||
|
## Version 4.7.6
|
||||||
|
* Add configuration `g:table_mode_ignore_align`
|
||||||
|
|
||||||
|
## Version 4.7.5
|
||||||
|
* Improved undo
|
||||||
|
|
||||||
|
## Version 4.7.3
|
||||||
|
* Adding option `g:table_mode_tableize_auto_border` to enable automatic border
|
||||||
|
creation when using Tableize to create tables
|
||||||
|
|
||||||
|
## Version 4.7.2
|
||||||
|
* Fix formula evaluation to respect border rows and apply formula expressions
|
||||||
|
correctly
|
||||||
|
|
||||||
|
## Version 4.6.8
|
||||||
|
* Upgrade rake
|
||||||
|
|
||||||
|
## Version 4.6.7
|
||||||
|
* Remove auto align feature for insert mode
|
||||||
|
|
||||||
|
## Version 4.6.6
|
||||||
|
* Add configuration `g:table_mode_update_time`
|
||||||
|
|
||||||
|
## Version 4.6.5
|
||||||
|
* Add support for auto aligning
|
||||||
|
|
||||||
## Version 4.6.4.1
|
## Version 4.6.4.1
|
||||||
* Added a fix for markdown commentstring
|
* Added a fix for markdown commentstring
|
||||||
|
|
||||||
|
|||||||
3
Gemfile
3
Gemfile
@@ -1,5 +1,6 @@
|
|||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
ruby '2.5.3'
|
ruby '3.0.0'
|
||||||
|
|
||||||
gem 'rake'
|
gem 'rake'
|
||||||
gem 'vim-flavor', '~> 1.1'
|
gem 'vim-flavor', '~> 1.1'
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ DEPENDENCIES
|
|||||||
vim-flavor (~> 1.1)
|
vim-flavor (~> 1.1)
|
||||||
|
|
||||||
RUBY VERSION
|
RUBY VERSION
|
||||||
ruby 2.5.3p105
|
ruby 3.0.0p0
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.0.1
|
2.2.3
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -1,4 +1,4 @@
|
|||||||
# VIM Table Mode v4.7.3 [](https://travis-ci.org/dhruvasagar/vim-table-mode)
|
# VIM Table Mode v4.8.0 [](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.
|
||||||
@@ -116,6 +116,15 @@ To get ReST-compatible tables use
|
|||||||
|
|
||||||
Markdown and ReST filetypes have automatically configured corners.
|
Markdown and ReST filetypes have automatically configured corners.
|
||||||
|
|
||||||
|
> If you wish to override their configurations, it should be done in an after
|
||||||
|
> plugin, for example :
|
||||||
|
>
|
||||||
|
> In a `$VIM/after/ftplugin/markdown/custom.vim` you can add the following :
|
||||||
|
>
|
||||||
|
> ```viml
|
||||||
|
> let b:table_mode_corner='+'
|
||||||
|
> ```
|
||||||
|
|
||||||
You can also define in a table header border how its 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.
|
||||||
@@ -187,6 +196,17 @@ it using `:TableModeRealign` or using the default mapping
|
|||||||
cursor. Both can also be preceeded with a [count] to insert multiple
|
cursor. Both can also be preceeded with a [count] to insert multiple
|
||||||
columns.
|
columns.
|
||||||
|
|
||||||
|
### Highlight cells based on content
|
||||||
|
|
||||||
|
You can highlight cells based on content by setting `let g:table_mode_color_cells` :
|
||||||
|
- cells starting with `yes` will use the `yesCell` highlight group.
|
||||||
|
- cells starting with `no` will use the `noCell` highlight group.
|
||||||
|
- cells starting with `?` will use the `maybeCell` hightlight group.
|
||||||
|
|
||||||
|
You can overwrite any highlight group. For exemple use `hi yesCell ctermfg=2` to remove the background color.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Advanced Usage: Spreadsheet Capabilities
|
## Advanced Usage: Spreadsheet Capabilities
|
||||||
|
|
||||||
### Table Formulas
|
### Table Formulas
|
||||||
|
|||||||
@@ -22,13 +22,9 @@ function! s:UnMap(map, mode) "{{{2
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:ToggleMapping() "{{{2
|
function! s:ToggleMapping() "{{{2
|
||||||
let separator_map = g:table_mode_separator
|
|
||||||
" '|' is a special character, we need to map <Bar> instead
|
|
||||||
if g:table_mode_separator ==# '|' | let separator_map = '<Bar>' | endif
|
|
||||||
|
|
||||||
if !g:table_mode_disable_mappings
|
if !g:table_mode_disable_mappings
|
||||||
if tablemode#IsActive()
|
if tablemode#IsActive()
|
||||||
call s:Map('<Plug>(table-mode-tableize)', separator_map, 'i')
|
call s:Map('<Plug>(table-mode-tableize)', g:table_mode_separator_map, 'i')
|
||||||
call s:Map('<Plug>(table-mode-motion-up)', g:table_mode_motion_up_map, 'n')
|
call s:Map('<Plug>(table-mode-motion-up)', g:table_mode_motion_up_map, 'n')
|
||||||
call s:Map('<Plug>(table-mode-motion-down)', g:table_mode_motion_down_map, 'n')
|
call s:Map('<Plug>(table-mode-motion-down)', g:table_mode_motion_down_map, 'n')
|
||||||
call s:Map('<Plug>(table-mode-motion-left)', g:table_mode_motion_left_map, 'n')
|
call s:Map('<Plug>(table-mode-motion-left)', g:table_mode_motion_left_map, 'n')
|
||||||
@@ -47,7 +43,7 @@ function! s:ToggleMapping() "{{{2
|
|||||||
call s:Map('<Plug>(table-mode-echo-cell)', g:table_mode_echo_cell_map, 'n')
|
call s:Map('<Plug>(table-mode-echo-cell)', g:table_mode_echo_cell_map, 'n')
|
||||||
call s:Map('<Plug>(table-mode-sort)', g:table_mode_sort_map, 'n')
|
call s:Map('<Plug>(table-mode-sort)', g:table_mode_sort_map, 'n')
|
||||||
else
|
else
|
||||||
call s:UnMap(separator_map, 'i')
|
call s:UnMap(g:table_mode_separator_map, 'i')
|
||||||
call s:UnMap(g:table_mode_motion_up_map, 'n')
|
call s:UnMap(g:table_mode_motion_up_map, 'n')
|
||||||
call s:UnMap(g:table_mode_motion_down_map, 'n')
|
call s:UnMap(g:table_mode_motion_down_map, 'n')
|
||||||
call s:UnMap(g:table_mode_motion_left_map, 'n')
|
call s:UnMap(g:table_mode_motion_left_map, 'n')
|
||||||
@@ -75,7 +71,8 @@ function! s:ToggleSyntax() "{{{2
|
|||||||
if tablemode#IsActive()
|
if tablemode#IsActive()
|
||||||
exec 'syntax match Table'
|
exec 'syntax match Table'
|
||||||
\ '/' . tablemode#table#StartExpr() . '\zs|.\+|\ze' . tablemode#table#EndExpr() . '/'
|
\ '/' . tablemode#table#StartExpr() . '\zs|.\+|\ze' . tablemode#table#EndExpr() . '/'
|
||||||
\ 'contains=TableBorder,TableSeparator,TableColumnAlign containedin=ALL'
|
\ 'contains=TableBorder,TableSeparator,TableColumnAlign,yesCell,noCell,maybeCell,redCell,greenCell,yellowCell,blueCell,whiteCell,darkCell'
|
||||||
|
\ 'containedin=ALL'
|
||||||
syntax match TableSeparator /|/ contained
|
syntax match TableSeparator /|/ contained
|
||||||
syntax match TableColumnAlign /:/ contained
|
syntax match TableColumnAlign /:/ contained
|
||||||
syntax match TableBorder /[\-+]\+/ contained
|
syntax match TableBorder /[\-+]\+/ contained
|
||||||
@@ -83,6 +80,32 @@ function! s:ToggleSyntax() "{{{2
|
|||||||
hi! link TableBorder Delimiter
|
hi! link TableBorder Delimiter
|
||||||
hi! link TableSeparator Delimiter
|
hi! link TableSeparator Delimiter
|
||||||
hi! link TableColumnAlign Type
|
hi! link TableColumnAlign Type
|
||||||
|
|
||||||
|
syntax match redCell '|\@<= *r:[^|]*' contained
|
||||||
|
hi redCell ctermfg=9 ctermbg=1
|
||||||
|
|
||||||
|
syntax match greenCell '|\@<= *g:[^|]*' contained
|
||||||
|
hi greenCell ctermfg=10 ctermbg=2
|
||||||
|
|
||||||
|
syntax match yellowCell '|\@<= *y:[^|]*' contained
|
||||||
|
hi yellowCell ctermfg=11 ctermbg=3
|
||||||
|
|
||||||
|
syntax match blueCell '|\@<= *b:[^|]*' contained
|
||||||
|
hi blueCell ctermfg=12 ctermbg=4
|
||||||
|
|
||||||
|
syntax match whiteCell '|\@<= *w:[^|]*' contained
|
||||||
|
hi whiteCell ctermfg=0 ctermbg=15
|
||||||
|
|
||||||
|
syntax match darkCell '|\@<= *d:[^|]*' contained
|
||||||
|
hi darkCell ctermfg=15 ctermbg=0
|
||||||
|
|
||||||
|
if exists("g:table_mode_color_cells") && g:table_mode_color_cells
|
||||||
|
syntax match yesCell '|\@<= *yes[^|]*' contained
|
||||||
|
syntax match noCell '|\@<= *no\A[^|]*' contained " \A to exclude words like notes
|
||||||
|
syntax match maybeCell '|\@<= *?[^|]*' contained
|
||||||
|
" '|\@<=' : Match previous characters, excluding them from the group
|
||||||
|
endif
|
||||||
|
|
||||||
else
|
else
|
||||||
syntax clear Table
|
syntax clear Table
|
||||||
syntax clear TableBorder
|
syntax clear TableBorder
|
||||||
@@ -174,7 +197,7 @@ endfunction
|
|||||||
|
|
||||||
function! tablemode#TableizeInsertMode() "{{{2
|
function! tablemode#TableizeInsertMode() "{{{2
|
||||||
if tablemode#IsActive()
|
if tablemode#IsActive()
|
||||||
if getline('.') =~# (tablemode#table#StartExpr() . g:table_mode_separator . g:table_mode_separator . tablemode#table#EndExpr())
|
if getline('.') =~# (tablemode#table#StartExpr() . g:table_mode_separator . g:table_mode_separator . tablemode#table#EndExpr())
|
||||||
call tablemode#table#AddBorder('.')
|
call tablemode#table#AddBorder('.')
|
||||||
normal! A
|
normal! A
|
||||||
elseif getline('.') =~# (tablemode#table#StartExpr() . g:table_mode_separator)
|
elseif getline('.') =~# (tablemode#table#StartExpr() . g:table_mode_separator)
|
||||||
@@ -207,7 +230,7 @@ endfunction
|
|||||||
function! tablemode#TableizeRange(...) range "{{{2
|
function! tablemode#TableizeRange(...) range "{{{2
|
||||||
let lnum = a:firstline
|
let lnum = a:firstline
|
||||||
let total = (a:lastline - a:firstline + 1)
|
let total = (a:lastline - a:firstline + 1)
|
||||||
echom total
|
" echom total
|
||||||
let cntr = 1
|
let cntr = 1
|
||||||
while cntr <= total
|
while cntr <= total
|
||||||
call s:Tableizeline(lnum, a:1)
|
call s:Tableizeline(lnum, a:1)
|
||||||
@@ -238,3 +261,7 @@ function! tablemode#TableizeByDelimiter() "{{{2
|
|||||||
exec line("'<") . ',' . line("'>") . "call tablemode#TableizeRange('/' . delim)"
|
exec line("'<") . ',' . line("'>") . "call tablemode#TableizeRange('/' . delim)"
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
if !hlexists('yesCell') | hi yesCell cterm=bold ctermfg=10 ctermbg=2 | endif |
|
||||||
|
if !hlexists('noCell') | hi noCell cterm=bold ctermfg=9 ctermbg=1 | endif |
|
||||||
|
if !hlexists('maybeCell') | hi maybeCell cterm=bold ctermfg=11 ctermbg=3 | endif |
|
||||||
|
|||||||
@@ -115,7 +115,11 @@ function! tablemode#align#Align(lines) "{{{2
|
|||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let alignments = tablemode#align#alignments(lines[0].lnum, len(lines[0].text))
|
if tablemode#utils#get_buffer_or_global_option('table_mode_ignore_align') ==# 1
|
||||||
|
let alignments = []
|
||||||
|
else
|
||||||
|
let alignments = tablemode#align#alignments(lines[0].lnum, len(lines[0].text))
|
||||||
|
endif
|
||||||
|
|
||||||
for idx in range(len(lines))
|
for idx in range(len(lines))
|
||||||
let tlnum = lines[idx].lnum
|
let tlnum = lines[idx].lnum
|
||||||
|
|||||||
@@ -420,3 +420,9 @@ function! tablemode#spreadsheet#Sort(bang, ...) range "{{{2
|
|||||||
call tablemode#spreadsheet#MoveToStartOfCell()
|
call tablemode#spreadsheet#MoveToStartOfCell()
|
||||||
exec ':undojoin | '.firstRow.','.lastRow . 'sort'.bang opts '/.*\%'.col.'v/'
|
exec ':undojoin | '.firstRow.','.lastRow . 'sort'.bang opts '/.*\%'.col.'v/'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! tablemode#spreadsheet#EchoCell()
|
||||||
|
if tablemode#table#IsRow('.')
|
||||||
|
echomsg '$' . tablemode#spreadsheet#RowNr('.') . ',' . tablemode#spreadsheet#ColumnNr('.')
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
" Private Functions {{{1
|
" Private Functions {{{1
|
||||||
function! s:IsHTMLComment(line) "{{{2
|
|
||||||
return getline(a:line) =~# '^\s*<!--'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:IsFormulaLine(line) "{{{2
|
function! s:IsFormulaLine(line) "{{{2
|
||||||
return getline(a:line) =~# 'tmf: '
|
return getline(a:line) =~# 'tmf: '
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsHTMLComment(line) "{{{2
|
||||||
|
return !s:IsFormulaLine(a:line) && getline(a:line) =~# '^\s*<!--'
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Public Functions {{{1
|
" Public Functions {{{1
|
||||||
function! tablemode#spreadsheet#formula#Add(...) "{{{2
|
function! tablemode#spreadsheet#formula#Add(...) "{{{2
|
||||||
let fr = a:0 ? a:1 : input('f=')
|
let fr = a:0 ? a:1 : input('f=')
|
||||||
@@ -50,7 +50,7 @@ function! tablemode#spreadsheet#formula#Add(...) "{{{2
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) "{{{2
|
||||||
let line = tablemode#utils#line(a:line)
|
let line = tablemode#utils#line(a:line)
|
||||||
let [target, expr] = map(split(a:expr, '='), 'tablemode#utils#strip(v:val)')
|
let [target, expr] = map(split(a:expr, '='), 'tablemode#utils#strip(v:val)')
|
||||||
let cell = substitute(target, '\$', '', '')
|
let cell = substitute(target, '\$', '', '')
|
||||||
@@ -98,15 +98,15 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
|||||||
|
|
||||||
if expr =~# '\$\-\?\d\+,\-\?\d\+'
|
if expr =~# '\$\-\?\d\+,\-\?\d\+'
|
||||||
let expr = substitute(expr, '\$\(\-\?\d\+\),\(\-\?\d\+\)',
|
let expr = substitute(expr, '\$\(\-\?\d\+\),\(\-\?\d\+\)',
|
||||||
\ '\=str2float(tablemode#spreadsheet#cell#GetCells(line, submatch(1), submatch(2)))', 'g')
|
\ '\=tablemode#spreadsheet#cell#GetCells(line, submatch(1), submatch(2))', 'g')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if cell =~# ','
|
if cell =~# ','
|
||||||
if expr =~# '\$'
|
if expr =~# '\$'
|
||||||
let expr = substitute(expr, '\$\(\d\+\)',
|
let expr = substitute(expr, '\$\(\d\+\)',
|
||||||
\ '\=str2float(tablemode#spreadsheet#cell#GetCells(line, row, submatch(1)))', 'g')
|
\ '\=tablemode#spreadsheet#cell#GetCells(line, row, submatch(1))', 'g')
|
||||||
endif
|
endif
|
||||||
call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
|
silent! 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 !s:IsFormulaLine(line)
|
while !s:IsFormulaLine(line)
|
||||||
@@ -114,10 +114,10 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
|||||||
let texpr = expr
|
let texpr = expr
|
||||||
if expr =~# '\$'
|
if expr =~# '\$'
|
||||||
let texpr = substitute(texpr, '\$\(\d\+\)',
|
let texpr = substitute(texpr, '\$\(\d\+\)',
|
||||||
\ '\=str2float(tablemode#spreadsheet#cell#GetCells(line, row, submatch(1)))', 'g')
|
\ '\=tablemode#spreadsheet#cell#GetCells(line, row, submatch(1))', 'g')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
|
silent! call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
|
||||||
let row += 1
|
let row += 1
|
||||||
endif
|
endif
|
||||||
let line += 1
|
let line += 1
|
||||||
@@ -125,7 +125,7 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! tablemode#spreadsheet#formula#EvaluateFormulaLine() abort "{{{2
|
function! tablemode#spreadsheet#formula#EvaluateFormulaLine() "{{{2
|
||||||
let exprs = []
|
let exprs = []
|
||||||
let cstring = &commentstring
|
let cstring = &commentstring
|
||||||
let matchexpr = ''
|
let matchexpr = ''
|
||||||
|
|||||||
@@ -175,6 +175,12 @@ function! tablemode#table#AddBorder(line) "{{{2
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! tablemode#table#Realign(line) "{{{2
|
function! tablemode#table#Realign(line) "{{{2
|
||||||
|
let utree = undotree()
|
||||||
|
if utree.seq_cur != utree.seq_last
|
||||||
|
" skip during undo
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
let current_fm = &foldmethod " save foldmethod to be restored
|
let current_fm = &foldmethod " save foldmethod to be restored
|
||||||
setlocal foldmethod=manual " manual foldmethod while table is being aligned
|
setlocal foldmethod=manual " manual foldmethod while table is being aligned
|
||||||
|
|
||||||
@@ -206,11 +212,11 @@ function! tablemode#table#Realign(line) "{{{2
|
|||||||
let lines = tablemode#align#Align(lines)
|
let lines = tablemode#align#Align(lines)
|
||||||
|
|
||||||
for aline in lines
|
for aline in lines
|
||||||
call setline(aline.lnum, aline.text)
|
undojoin | keepjumps call setline(aline.lnum, aline.text)
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
for bline in blines
|
for bline in blines
|
||||||
call tablemode#table#AddBorder(bline)
|
undojoin | keepjumps call tablemode#table#AddBorder(bline)
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
" restore foldmethod
|
" restore foldmethod
|
||||||
|
|||||||
@@ -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.3
|
VERSION 4.8.0
|
||||||
|
|
||||||
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/>
|
||||||
@@ -78,6 +78,7 @@ Manipulation of tables:
|
|||||||
using |table-mode-insert-column-before-map| or after the cusor using
|
using |table-mode-insert-column-before-map| or after the cusor using
|
||||||
|table-mode-insert-column-after-map|.
|
|table-mode-insert-column-after-map|.
|
||||||
|
|
||||||
|
*table-formulas*
|
||||||
Table Formulas:
|
Table Formulas:
|
||||||
Table Mode now has support for formulas like a spreadsheet. There
|
Table Mode now has support for formulas like a spreadsheet. There
|
||||||
are 2 ways of defining formulas :
|
are 2 ways of defining formulas :
|
||||||
@@ -100,6 +101,7 @@ Table Formulas:
|
|||||||
You can evaluate the formula line using |:TableEvalFormulaLine| or the
|
You can evaluate the formula line using |:TableEvalFormulaLine| or the
|
||||||
mapping |<Leader>tfe| defined by the option |table-mode-expr-calc-map|
|
mapping |<Leader>tfe| defined by the option |table-mode-expr-calc-map|
|
||||||
|
|
||||||
|
*formula-expressions*
|
||||||
Formula Expressions :
|
Formula Expressions :
|
||||||
Expressions are of the format '$target = formula'.
|
Expressions are of the format '$target = formula'.
|
||||||
|
|
||||||
@@ -147,7 +149,9 @@ Overview:
|
|||||||
|table-mode-verbose| ............ Notify when Enabled/Disabled.
|
|table-mode-verbose| ............ Notify when Enabled/Disabled.
|
||||||
|table-mode-corner| ............. Set corner character.
|
|table-mode-corner| ............. Set corner character.
|
||||||
|table-mode-separator| .......... Set separator character.
|
|table-mode-separator| .......... Set separator character.
|
||||||
|table-mode-fillchar| ........... Set table fillchar character.
|
|table-mode-separator-map| ...... Set separator mapping.
|
||||||
|
|table-mode-fillchar| ........... Set table border fillchar character.
|
||||||
|
|table-mode-header-fillchar| .... Set table header border fillchar character.
|
||||||
|table-mode-map-prefix| ......... Set prefix for table mode commands.
|
|table-mode-map-prefix| ......... Set prefix for table mode commands.
|
||||||
|table-mode-toggle-map| ......... Set table mode toggle mapping.
|
|table-mode-toggle-map| ......... Set table mode toggle mapping.
|
||||||
|table-mode-always-active| ...... Set table mode to always enabled.
|
|table-mode-always-active| ...... Set table mode to always enabled.
|
||||||
@@ -185,6 +189,7 @@ Overview:
|
|||||||
|table-mode-auto-align| ......... Set if the table mode should auto
|
|table-mode-auto-align| ......... Set if the table mode should auto
|
||||||
align as you type
|
align as you type
|
||||||
|table-mode-tableize-auto-border| Set if tableize adds row borders
|
|table-mode-tableize-auto-border| Set if tableize adds row borders
|
||||||
|
|table-mode-ignore-align| ....... Set to ignore alignment characters
|
||||||
|
|
||||||
g:loaded_table_mode *table-mode-loaded*
|
g:loaded_table_mode *table-mode-loaded*
|
||||||
Use this option to disable the plugin: >
|
Use this option to disable the plugin: >
|
||||||
@@ -208,7 +213,17 @@ g:table_mode_separator *table-mode-separator*
|
|||||||
This option also defines the trigger to be used to start creating a
|
This option also defines the trigger to be used to start creating a
|
||||||
table row in insert mode.
|
table row in insert mode.
|
||||||
|
|
||||||
|
g:table_mode_separator_map *table-mode-separator-map*
|
||||||
|
Use this option to define the mapping to be used for the table separator. >
|
||||||
|
let g:table_mode_separator_map = '<Bar>'
|
||||||
|
<
|
||||||
|
|
||||||
g:table_mode_fillchar *table-mode-fillchar*
|
g:table_mode_fillchar *table-mode-fillchar*
|
||||||
|
Use this option to define the table border fill character: >
|
||||||
|
let g:table_mode_fillchar = '-'
|
||||||
|
<
|
||||||
|
|
||||||
|
g:table_mode_header_fillchar *table-mode-header-fillchar*
|
||||||
Use this option to define the table header border fill character: >
|
Use this option to define the table header border fill character: >
|
||||||
let g:table_mode_fillchar = '-'
|
let g:table_mode_fillchar = '-'
|
||||||
<
|
<
|
||||||
@@ -364,6 +379,12 @@ g:table_mode_tableize_auto_border
|
|||||||
Enables adding row borders to tables when created using tableize. >
|
Enables adding row borders to tables when created using tableize. >
|
||||||
let g:table_mode_tableize_auto_border = 0
|
let g:table_mode_tableize_auto_border = 0
|
||||||
<
|
<
|
||||||
|
*table-mode-ignore-align*
|
||||||
|
g:table_mode_ignore_align
|
||||||
|
If enabled, ignores alignment characters on the header border and always
|
||||||
|
left aligns. >
|
||||||
|
let g:table_mode_ignore_align = 0
|
||||||
|
<
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
MAPPINGS *table-mode-mappings*
|
MAPPINGS *table-mode-mappings*
|
||||||
@@ -524,4 +545,3 @@ REPORT ISSUES *table-mode-report-issues*
|
|||||||
If you discover any issues, please report them at
|
If you discover any issues, please report them at
|
||||||
http://github.com/dhruvasagar/vim-table-mode/issues.
|
http://github.com/dhruvasagar/vim-table-mode/issues.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:ai:et
|
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ endfunction
|
|||||||
call s:SetGlobalOptDefault('table_mode_corner', '+')
|
call s:SetGlobalOptDefault('table_mode_corner', '+')
|
||||||
call s:SetGlobalOptDefault('table_mode_verbose', 1)
|
call s:SetGlobalOptDefault('table_mode_verbose', 1)
|
||||||
call s:SetGlobalOptDefault('table_mode_separator', '|')
|
call s:SetGlobalOptDefault('table_mode_separator', '|')
|
||||||
|
" '|' is a special character, we need to map <Bar> instead
|
||||||
|
" the character to map from
|
||||||
|
let g:table_mode_separator_map = get(g:, 'table_mode_separator_map', g:table_mode_separator)
|
||||||
|
if g:table_mode_separator_map ==# '|' | let g:table_mode_separator_map = '<Bar>' | endif
|
||||||
|
" the character to map to (when inserting the separator)
|
||||||
|
let g:table_mode_separator_map_target = g:table_mode_separator
|
||||||
|
if g:table_mode_separator_map_target ==# '|' | let g:table_mode_separator_map_target = '<Bar>' | endif
|
||||||
call s:SetGlobalOptDefault('table_mode_escaped_separator_regex', '\V\C\\\@1<!'.escape(g:table_mode_separator, '\'))
|
call s:SetGlobalOptDefault('table_mode_escaped_separator_regex', '\V\C\\\@1<!'.escape(g:table_mode_separator, '\'))
|
||||||
call s:SetGlobalOptDefault('table_mode_fillchar', '-')
|
call s:SetGlobalOptDefault('table_mode_fillchar', '-')
|
||||||
call s:SetGlobalOptDefault('table_mode_header_fillchar', '-')
|
call s:SetGlobalOptDefault('table_mode_header_fillchar', '-')
|
||||||
@@ -54,27 +61,16 @@ call s:SetGlobalOptDefault('table_mode_syntax', 1)
|
|||||||
call s:SetGlobalOptDefault('table_mode_auto_align', 1)
|
call s:SetGlobalOptDefault('table_mode_auto_align', 1)
|
||||||
call s:SetGlobalOptDefault('table_mode_update_time', 500)
|
call s:SetGlobalOptDefault('table_mode_update_time', 500)
|
||||||
call s:SetGlobalOptDefault('table_mode_tableize_auto_border', 0)
|
call s:SetGlobalOptDefault('table_mode_tableize_auto_border', 0)
|
||||||
|
call s:SetGlobalOptDefault('table_mode_ignore_align', 0)
|
||||||
|
|
||||||
function! s:TableEchoCell() "{{{1
|
|
||||||
if tablemode#table#IsRow('.')
|
|
||||||
echomsg '$' . tablemode#spreadsheet#RowNr('.') . ',' . tablemode#spreadsheet#ColumnNr('.')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Define Commands & Mappings {{{1
|
|
||||||
if !g:table_mode_always_active "{{{2
|
if !g:table_mode_always_active "{{{2
|
||||||
exec "nnoremap <silent>" g:table_mode_map_prefix . g:table_mode_toggle_map ":<C-U>call tablemode#Toggle()<CR>"
|
exec "nnoremap <silent>" g:table_mode_map_prefix . g:table_mode_toggle_map ":<C-U>call tablemode#Toggle()<CR>"
|
||||||
command! -nargs=0 TableModeToggle call tablemode#Toggle()
|
command! -nargs=0 TableModeToggle call tablemode#Toggle()
|
||||||
command! -nargs=0 TableModeEnable call tablemode#Enable()
|
command! -nargs=0 TableModeEnable call tablemode#Enable()
|
||||||
command! -nargs=0 TableModeDisable call tablemode#Disable()
|
command! -nargs=0 TableModeDisable call tablemode#Disable()
|
||||||
else
|
else
|
||||||
let table_mode_separator_map = g:table_mode_separator
|
execute "inoremap <silent> " . g:table_mode_separator_map . ' ' .
|
||||||
" '|' is a special character, we need to map <Bar> instead
|
\ g:table_mode_separator_map_target . "<Esc>:call tablemode#TableizeInsertMode()<CR>a"
|
||||||
if g:table_mode_separator ==# '|' | let table_mode_separator_map = '<Bar>' | endif
|
|
||||||
|
|
||||||
execute "inoremap <silent> " . table_mode_separator_map . ' ' .
|
|
||||||
\ table_mode_separator_map . "<Esc>:call tablemode#TableizeInsertMode()<CR>a"
|
|
||||||
unlet table_mode_separator_map
|
|
||||||
endif
|
endif
|
||||||
" }}}2
|
" }}}2
|
||||||
|
|
||||||
@@ -84,9 +80,7 @@ command! TableAddFormula call tablemode#spreadsheet#formula#Add()
|
|||||||
command! TableModeRealign call tablemode#table#Realign('.')
|
command! TableModeRealign call tablemode#table#Realign('.')
|
||||||
command! TableEvalFormulaLine call tablemode#spreadsheet#formula#EvaluateFormulaLine()
|
command! TableEvalFormulaLine call tablemode#spreadsheet#formula#EvaluateFormulaLine()
|
||||||
|
|
||||||
" '|' is a special character, we need to map <Bar> instead
|
execute 'inoremap <silent> <Plug>(table-mode-tableize)' g:table_mode_separator_map . '<Esc>:call tablemode#TableizeInsertMode()<CR>a'
|
||||||
if g:table_mode_separator ==# '|' | let separator_map = '<Bar>' | endif
|
|
||||||
execute 'inoremap <silent> <Plug>(table-mode-tableize)' separator_map . '<Esc>:call tablemode#TableizeInsertMode()<CR>a'
|
|
||||||
|
|
||||||
nnoremap <silent> <Plug>(table-mode-tableize) :Tableize<CR>
|
nnoremap <silent> <Plug>(table-mode-tableize) :Tableize<CR>
|
||||||
xnoremap <silent> <Plug>(table-mode-tableize) :Tableize<CR>
|
xnoremap <silent> <Plug>(table-mode-tableize) :Tableize<CR>
|
||||||
@@ -112,7 +106,7 @@ nnoremap <silent> <Plug>(table-mode-insert-column-after) :<C-U>call tablemode#sp
|
|||||||
nnoremap <silent> <Plug>(table-mode-add-formula) :call tablemode#spreadsheet#formula#Add()<CR>
|
nnoremap <silent> <Plug>(table-mode-add-formula) :call tablemode#spreadsheet#formula#Add()<CR>
|
||||||
nnoremap <silent> <Plug>(table-mode-eval-formula) :call tablemode#spreadsheet#formula#EvaluateFormulaLine()<CR>
|
nnoremap <silent> <Plug>(table-mode-eval-formula) :call tablemode#spreadsheet#formula#EvaluateFormulaLine()<CR>
|
||||||
|
|
||||||
nnoremap <silent> <Plug>(table-mode-echo-cell) :call <SID>TableEchoCell()<CR>
|
nnoremap <silent> <Plug>(table-mode-echo-cell) :call tablemode#spreadsheet#EchoCell()<CR>
|
||||||
|
|
||||||
nnoremap <silent> <Plug>(table-mode-sort) :call tablemode#spreadsheet#Sort('')<CR>
|
nnoremap <silent> <Plug>(table-mode-sort) :call tablemode#spreadsheet#Sort('')<CR>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
let g:table_mode_corner = '+'
|
let g:table_mode_corner = '+'
|
||||||
let g:table_mode_separator = '|'
|
let g:table_mode_separator = '|'
|
||||||
|
let g:table_mode_separator_map = '<Bar>'
|
||||||
let g:table_mode_escaped_separator_regex = '\V\C\\\@1<!|'
|
let g:table_mode_escaped_separator_regex = '\V\C\\\@1<!|'
|
||||||
let g:table_mode_fillchar = '-'
|
let g:table_mode_fillchar = '-'
|
||||||
let g:table_mode_header_fillchar = '-'
|
let g:table_mode_header_fillchar = '-'
|
||||||
@@ -35,3 +36,4 @@ let g:table_mode_syntax = 1
|
|||||||
let g:table_mode_auto_align = 1
|
let g:table_mode_auto_align = 1
|
||||||
let g:table_mode_update_time = 500
|
let g:table_mode_update_time = 500
|
||||||
let g:table_mode_tableize_auto_border = 0
|
let g:table_mode_tableize_auto_border = 0
|
||||||
|
let g:table_mode_ignore_align = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user