Tablify是一个VIM插件,可将简单的结构化数据转换为漂亮的表格。
安装
cd ~/.vim/bundle
git clone git://github.com/Stormherz/tablify.git
用法
在开始制作表格之前,您需要知道一小部分命令。假设你 :
l
或 t
将选定的行转换为表格(左对齐的文本)
c
将选定的行转换为表格(居中文本)
r
将选定的行转换为表格(右对齐文本)
u
将所选表格转换为原始文本格式你想添加一些变化
a
选择光标内任何形成的表格(也可以选择未来表格的结构化文本)
形成和选择表的操作:
s
排序表(列号将被提示),支持文本和数字排序
将来表格的每一行都是一个带有|
符号(或者您为 文件中的g:tablify_raw_delimiter
变量 选择的任何其他符号)分隔的单元格的文本行 .vimrc
。假设我们有几行文字,我们希望看到如下表格:
Artist | Song | Album | Year
Tool | Useful idiot | Ænima | 1996
Pantera | Cemetery Gates | Cowboys from Hell | 1990
Ozzy Osbourne | Let Me Hear You Scream | Scream | 2010
现在选择这些行并按下来 t
制作一个表格:
+---------------+------------------------+-------------------+------+
| Artist | Song | Album | Year |
+---------------+------------------------+-------------------+------+
| Tool | Useful idiot | Ænima | 1996 |
+---------------+------------------------+-------------------+------+
| Pantera | Cemetery Gates | Cowboys from Hell | 1990 |
+---------------+------------------------+-------------------+------+
| Ozzy Osbourne | Let Me Hear You Scream | Scream | 2010 |
+---------------+------------------------+-------------------+------+
我敢打赌这很简单。现在您可以按 u
取消制作表格或选择表格,然后按 u
回到您开始的文字。之后,你可以尝试 c
,并 r
看看它的样子已经排列在表中的文本。
很明显,我们的表格有一些标题,并且将它与表格数据直观地区分开来会很棒。为此,只需使用#
符号(或您为 文件中的g:tablify_header_delimiter
变量选择的任何其他符号) 分隔标题单元格即可 .vimrc
:
Artist # Song # Album # Year
Tool | Useful idiot | Ænima | 1996
Pantera | Cemetery Gates | Cowboys from Hell | 1990
Ozzy Osbourne | Let Me Hear You Scream | Scream | 2010
这就是我们在执行后得到的结果:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Artist | Song | Album | Year |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Tool | Useful idiot | Ænima | 1996 |
+---------------+------------------------+-------------------+------+
| Pantera | Cemetery Gates | Cowboys from Hell | 1990 |
+---------------+------------------------+-------------------+------+
| Ozzy Osbourne | Let Me Hear You Scream | Scream | 2010 |
+---------------+------------------------+-------------------+------+
从通常前缀的文本行中删除表格是没有问题的,例如:
/**
* Artist#Song#Album#Year
* Tool|Useful idiot|Ænima|1996
* Pantera|Cemetery Gates|Cowboys from Hell|1990
* Ozzy Osbourne|Let Me Hear You Scream|Scream|2010
*
*/
多行单元格内容也被支持,只是
应该发生换行的地方 ,而tablify
会完成剩下的工作:
Artist # Song # Album # Year
Pantera | Cemetery Gates | Cowboys from Hell | 1990
Tool
(great perfomance)| Useful idiot | Ænima | 1996
Ozzy Osbourne | Let Me Hear You
Scream | Scream | 2010
上面的示例转换为表格:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Artist | Song | Album | Year |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Pantera | Cemetery Gates | Cowboys from Hell | 1990 |
+--------------------+-----------------+-------------------+------+
| Tool | Useful idiot | Ænima | 1996 |
| (great perfomance) | | | |
+--------------------+-----------------+-------------------+------+
| Ozzy Osbourne | Let Me Hear You | Scream | 2010 |
| | Scream | | |
+--------------------+-----------------+-------------------+------+
组态
Tablify
行为可以根据以下变量在每个缓冲区中配置:
g:loaded_tablify
- 设置为 1
禁用加载插件
b:tablify_headerDelimiter
- 默认值为#
,用于分隔文本中标题单元格的符号- 默认值为 ,用于分隔文本中单元格
b:tablify_delimiter
值的 |
符号
b:tablify_vertDelimiter
-默认值是 |
,用于填充表的行垂直定界符符号
b:tablify_horDelimiter
-默认值是 -
,用于填充表的行水平定界符符号
b:tablify_horHeaderDelimiter
-默认值是 ~
,对于填充tabls头行水平定界符符号
b:tablify_divideDelimiter
-缺省值是 +
在该行中,符号/
列交叉点
b:tablify_cellLeftPadding
- 默认值为 1
,用于左侧单元格填充的空格数量
b:tablify_cellRightPadding
- 默认值为 1
用于右侧单元格填充的空格数量
注意:在使用命令时可以看到编辑器右下角有一个
符号,需要尽快按下对应的功能键,不然就会取消状态