在文本周围创建表

时间:2012-05-01 18:56:24

标签: vim plugins tabular

我有一个单词列表,每个单词都在自己的行上。这是表格的第一列。我想手工制作第二栏。

我现在想使用一些插件,这将在文本周围创建一个ASCII表,所以我有很好的格式(每列中的起始字母应该在一个“垂直线”或我应该能够快速用一个快捷方式移动到正确的位置。)

是否有这样的vim插件可以简化编辑这些表并控制格式化?

1 个答案:

答案 0 :(得分:6)

如果您只想将文本对齐成表格格式,我会使用它并且效果很好:

http://www.vim.org/scripts/script.php?script_id=294

几年前我写了一篇command line tool,它更贴近你想要的东西:

它允许您以CSV格式编辑表格:

1,my table,another field
2,my table,yet another field

然后在vim中选择块,并使用以下方法对其进行过滤:

'<,'>!~/scripts/tab

然后给你:

------------------------------------
| 1 | my table | another field     |
| 2 | my table | yet another field |
------------------------------------

如果您想再次编辑该表格,可以选择整个表格,然后使用untab(这只是一个符号链接 - &gt;标签)重复,再次将表格转换回CSV格式,以便您可以编辑

还有其他各种选择:

-------------------------------------------------------------------------
| Command/Option | Purpose                                              |
|----------------|------------------------------------------------------|
| tab            | Reads from stdin and tabulates comma seperated input |
| tab <-t>       | Tabulates input and assumes first row are titles     |
| tab <-h>       | Prints this help                                     |
| tab <-nb>      | Tabulates without a border                           |
| tab <-fw X>    | Wrap fields greater than X big don't break words     |
| tab <-fs X>    | Wrap fields greater than X big and break words       |
| tab <-vp X>    | Vertically pad table by X lines                      |
| tab <-hp X>    | Horizontally pad fields by X chars                   |
| tab <-b X>     | Tabulates with a border made from char X             |
|----------------|------------------------------------------------------|
| untab          | Reads from stdin and untabulates table input         |
| untab <-b X>   | Untabulate a table with border char X                |
| untab <-nb>    | Untabulate a borderless table                        |
-------------------------------------------------------------------------