4

我有一个单词列表,每个单词都在自己的行中。这是表格的第一列。我想手动创建第二列。

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

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

4

1 回答 1

6

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

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

几年前我写了一个命令行工具,它更接近你想要的:

它允许您以 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(这只是一个符号链接 - > 选项卡),这会将表格再次转换回 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                        |
-------------------------------------------------------------------------
于 2012-05-01T19:35:23.093 回答