与emacs中的列对齐?

时间:2013-11-21 10:59:03

标签: emacs alignment

我有一个.dat文件,如下所示:

NGC0448 A3D:2010B g:o,r:o,i:o
NGC0474 A3D:2011A,2013A g:o,r:o,i:o,u:o

现在我想将它们对齐为这种形式:

NGC0448    A3D:2010B          g:o,r:o,i:o
NGC0474    A3D:2011A,2013A    g:o,r:o,i:o,u:o

我尝试使用C-u M-X alignM-x align-regexp =,但都不起作用。有人能提出解决方案吗?

2 个答案:

答案 0 :(得分:12)

为什么你试着调整=?该示例文本中没有一个=

假设您的示例具有代表性,您可以在空格上对齐。我将使用\s-(空格语法​​)而不是实际空格,因为后者更难以看到。

C-u M-x align-regexp RET

  • 使用正则表达式进行复杂对齐:\(\s-*\)\s-
  • 要修改的括号组(如果为负,则对齐):1
  • 间距数量(如果为负数则为列数):3
  • 重复整行? (是或否)y

答案 1 :(得分:1)

如果您只想在显示屏中对齐并且不想修改文件,可以尝试csv-mode(在GNU ELPA中可用)。您必须将SPC指定为分隔符(默认情况下为逗号或TAB),但您可以使用菜单告诉模式对齐列。