Delim Col:一个创建漂亮表格并转换成不同格式的方便工具
目录
问题与解决方案
您有如下表格1
a b c d aaaa bb ccc ddddd aaa bbb cccc dddd aa bb ccccccc ddd
如何生成这个表
[ a , b , c , d ] [ aaaa, bb , ccc , ddddd ] [ aaa , bbb, cccc , dddd ] [ aa , bb , ccccccc, ddd ]
和这个表
a [ b , c ] d aaaa [ bb , ccc ] ddddd aaa [ bbb, cccc ] dddd aa [ bb , ccccccc ] ddd
还有这个表
[ <a> , <b> , <c> , <d> ] [ <aaaa>, <bb> , <ccc> , <ddddd> ] [ <aaa> , <bbb>, <cccc> , <dddd> ] [ <aa> , <bb> , <ccccccc>, <ddd> ]
以及这个表
a [ <b> , <c> ] d aaaa [ <bb> , <ccc> ] ddddd aaa [ <bbb>, <cccc> ] dddd aa [ <bb> , <ccccccc> ] ddd
答案是使用Emacs的内置库 delim-col
1。
delimi-col
做什么的?
delimi-col
不做什么?
在执行上述转换时,您可能觉得 delimi-col
会提示您输入所有这些参数
- 分隔每个列的正则表达式
- 要插入每个列之前(和之后)的字符串
- 每一列之间插入的字符串
- 要插入到每行开头(和结尾)的字符串
以及一种填充的方法。
不幸的是,上面的参数是硬编码的,而不是每次运行时从用户那里收集的。
步骤3:将表复制粘贴到Emacs Buffer中
从本文中或者 delim-col
库1 中复制粘贴表格. 值得注意的是,从本文中的表格使用空格(而不是TAB), 而 delim-col
中的表格带TAB。
步骤4:标记区域或矩形
第五步:转换
Emacs将提示您进一步的输入。输入你认为合适的参数。
提示字符串的默认值显示在 ()
中。你可以直接按 Enter
接受默认设置。
当将本文中的原始表复制到Emacs中时,该表使用空格进行分隔。
因此,当提示 Specify the regexp which separates echo column
时,输入 +
(即 SPC+
).
当提示输入 Specify how to format columns
时,你可以按下 TAB
,然后在显示的候选项中进行选择。
从下面的屏幕截图中可以看到,我这里选择了 =Align separator =.
这是结果
附录
这篇关于 delim-col
的文章是为了帮助我的一个朋友1, 她时一个Emacs新手,想把从web 1 中提取的表转换成Python字典 1.
具体来说,她想要将一个像这样的HTML表
转换成一个像这样的 python
字典中
https://emacsnotes.files.wordpress.com/2018/09/screenshot-from-2018-09-24-00-04-58.png?w=740
只要有点想象力,就很容易看出她如何使用 delimo-col
来实现的。
我听到有人问我 “如果你朋友表中的第二列恰好是数字,而她不希望是的字段被引用怎么办呢……”。在这种情况下,我想 delimi-col
不能直接完成该任务,恐怕我这朋友需要使用其他方法了。