在emacs中查看分隔列

在emacs中查看分隔列,emacs,delimited-text,Emacs,Delimited Text,是否有人知道emacs模式或函数会重新格式化包含分隔文件的缓冲区,以便每个分隔符(例如tab)定义一个“列”,并将每列的宽度设置为最长条目 我可以重置tab width变量,但这会使所有列的宽度相等。如果可能的话,我更喜欢可变宽度的列(比如像excel这样的电子表格程序在调整列的大小后如何显示这样的文件)。假设您的分隔符是TAB。标记整个缓冲区,然后: C-u M-x align-regexp \(\s-*\)TAB RET RET RET y 其中,TAB中有一个实际的TAB字符。请看我的类

是否有人知道emacs模式或函数会重新格式化包含分隔文件的缓冲区,以便每个分隔符(例如tab)定义一个“列”,并将每列的宽度设置为最长条目


我可以重置tab width变量,但这会使所有列的宽度相等。如果可能的话,我更喜欢可变宽度的列(比如像excel这样的电子表格程序在调整列的大小后如何显示这样的文件)。

假设您的分隔符是
TAB
。标记整个缓冲区,然后:

C-u M-x align-regexp \(\s-*\)TAB RET RET RET y
其中,
TAB
中有一个实际的TAB字符。请看我的类似答案:


退房。

怀远建议的组织模式正是我想要的

为了给其他人举个例子,在我安装了组织模式之后,我发现以下方法很好地工作

在组织模式下打开一个新文件
C-x C-f table.org
,然后
M-x org table import
导入带分隔符的文件,就完成了


C-|
命令无法将预先存在的缓冲区内容转换为表,它只是插入了一个新表,但我还不知道组织模式。

看起来您的意思是:C-u M-x align regexp RET(\s-*)TAB RET RET RET RET RET y在emacs 23中工作,但在emacs 21中似乎给出了一个错误“格式字符串的参数不够”(在我使用的一些系统上仍然存在)。为了更加挑剔,它还通过一个制表位扩展所有列,但我想全局替换会解决这个问题。
C-|
在区域处于活动状态时起作用,这(对我来说)意思是用鼠标突出显示区域,然后键入
C-|
@Trey:我想你的意思是
C-C |
?我在连接时遇到了问题。这里还可以找到一本旧的手册:组织模式非常好,但在大文件上非常慢:因此,如果你的文件超过几百行,它运行得不太好。用于交叉引用出于ce目的,以下问题演示了此问题的两个其他解决方案,使用(a)Emacs的table.el库和(b)SES(简单Emacs电子表格),后者提供了适当的电子表格应用程序: