emacs中是否有命令/模式来格式化这样的文本块:
; before
; p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
i 107 0 1 10000 440 1
i 107 1.5 1 20000 220 2
i 107 3 2 10000 110 2
i 107 3.5 2.5 10000 138.6 2
i 107 4 2 5000 329.6 2
i 107 4.5 1.5 6000 440 2
i 108 7 1 10000 440 1 2 3 1
i 108 8.5 1 10000 220 1 0.5 8 1
i 108 10 3 10000 110 1 1 13 1
i 108 10.5 2.5 10000 130.8 1 2.001 8 1
进入这个?
; after
; p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
i 107 0 1 10000 440 1
i 107 1.5 1 20000 220 2
i 107 3 2 10000 110 2
i 107 3.5 2.5 10000 138.6 2
i 107 4 2 5000 329.6 2
i 107 4.5 1.5 6000 440 2
i 108 7 1 10000 440 1 2 3 1
i 108 8.5 1 10000 220 1 0.5 8 1
i 108 10 3 10000 110 1 1 13 1
i 108 10.5 2.5 10000 130.8 1 2.001 8 1
答案 0 :(得分:4)
尝试M-x table-capture
答案 1 :(得分:1)
我不确定它是否相同,但组织模式有很好的表支持
激活org-mode并尝试其中一个
录制键盘宏以添加“|”在字段之间 (如果你的表不稀疏,也就是没有空单元格)
使用regexp-replace将空间转换为“|'
然后像在Excel中一样玩它
ps:如果您需要更多,请询问
答案 2 :(得分:1)
您可以使用emacs org-mode table支持从区域创建表,然后在列分隔符完成后删除它们。
突出显示相关区域,然后执行
M-x org-table-create-or-convert-from-region
您的结果将如下所示:
; before
| ; | p1 | p2 | p3 | p4 | p5 | p6 | p7 | p8 | p9 | p10 |
| i | 107 | 0 | 1 | 10000 | 440 | 1 | | | | |
| i | 107 | 1.5 | 1 | 20000 | 220 | 2 | | | | |
| i | 107 | 3 | 2 | 10000 | 110 | 2 | | | | |
| i | 107 | 3.5 | 2.5 | 10000 | 138.6 | 2 | | | | |
| i | 107 | 4 | 2 | 5000 | 329.6 | 2 | | | | |
| i | 107 | 4.5 | 1.5 | 6000 | 440 | 2 | | | | |
| i | 108 | 7 | 1 | 10000 | 440 | 1 | 2 | 3 | 1 | |
| i | 108 | 8.5 | 1 | 10000 | 220 | 1 | 0.5 | 8 | 1 | |
| i | 108 | 10 | 3 | 10000 | 110 | 1 | 1 | 13 | 1 | |
| i | 108 | 10.5 | 2.5 | 10000 | 130.8 | 1 | 2.001 | 8 | 1 | |
此时,您可以搜索并替换|将列分隔以获得
的字符; before
; p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
i 107 0 1 10000 440 1
i 107 1.5 1 20000 220 2
i 107 3 2 10000 110 2
i 107 3.5 2.5 10000 138.6 2
i 107 4 2 5000 329.6 2
i 107 4.5 1.5 6000 440 2
i 108 7 1 10000 440 1 2 3 1
i 108 8.5 1 10000 220 1 0.5 8 1
i 108 10 3 10000 110 1 1 13 1
i 108 10.5 2.5 10000 130.8 1 2.001 8 1