【问题标题】:Create table around text围绕文本创建表格
【发布时间】:2012-05-01 18:56:24
【问题描述】:

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

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

有没有这样的 vim 插件可以方便地编辑这些表格并控制格式?

【问题讨论】:

  • 要明确一点,您想在桌子周围排成一行吗?还是只是表格文本?
  • @Benj 表格文本会很好,但周围的线条(至少在垂直方向上)会更好。
  • xralf 我没有 vim 插件,但我有一个漂亮的 perl 脚本,如果有帮助,可以在 vim 内的块上使用它?它可以将逗号分隔的文本块转换为格式良好的表格,然后再转换回来,以便您可以编辑它?
  • @Benj 我正在寻找更通用的东西,例如用于创建表的 Emacs 编辑器的 org-mode。我也可以创建一些脚本,但插件应该能够在编辑时格式化。
  • 脚本我已经放好了,你可以在编辑的时候使用vim的过滤命令"!"

标签: vim plugins tabular


【解决方案1】:

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

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(这只是一个符号链接 -> 选项卡),这会将表格再次转换回 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                        |
-------------------------------------------------------------------------

【讨论】:

  • @Benj 谢谢,这对于我最近的编辑来说已经足够了,我会尝试一下,但我很感兴趣,如果 Emacs 中存在类似 org-mode 的东西,它有更多的可能性来进行有效的表格编辑并在编辑时以交互方式工作(不是批量)。
  • @xralf 我不相信有任何 vim 表插件像 org-mode 一样复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
  • 2016-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多