【问题标题】:Viewing delimited columns in emacs查看 emacs 中的分隔列
【发布时间】:2010-12-15 23:57:46
【问题描述】:

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

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

【问题讨论】:

  • 出于交叉引用的目的,以下问题演示了该问题的另外两个解决方案,使用 (a) Emacs 的 table.el 库和 (b) SES(简单 Emacs 电子表格),它提供了一个正确的电子表格应用程序:stackoverflow.com/questions/6273647/…

标签: emacs csv


【解决方案1】:

【讨论】:

【解决方案2】:

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

给别人举个例子,在我安装了org-mode之后,我发现以下运行良好。

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

C-| 命令不适用于我将预先存在的缓冲区内容转换为表,它只是插入了一个新表,但我还不知道 org-mode。

【讨论】:

  • C-| 在该区域处于活动状态 时有效,这(对我而言)意味着使用鼠标突出显示该区域,然后键入C-|
  • @Trey:我想你的意思是C-c |
【解决方案3】:

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

C-u M-x align-regexp \(\s-*\)TAB RET RET RET y

其中TAB 有一个实际的制表符字符。在此处查看我的类似答案:

how to align arguments to functions in emacs?

【讨论】:

  • 看起来你的意思是:Cu Mx align-regexp RET (\s-*)TAB RET RET RET y 这在 emacs 23 中有效,但似乎给出了错误“格式字符串的参数不足”在 emacs 21 中(在我使用的某些系统上仍然存在)。要真正挑剔,它还会通过制表位扩展所有列,但我想全局替换会解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多