Выровнять по столбцам в emacs?
у меня есть .файл 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 align
и M-x align-regexp
С=
но не работает. Может кто-нибудь придумать решение?
2 ответов
почему вы пытались выровнять по =
?? Нет ни одного =
в этом примере текст.
предполагая, что ваш пример является репрезентативным, вы можете выровнять по пробелам. Я буду использовать \s-
(синтаксис пробелов) вместо фактического пространства, так как последнее труднее увидеть.
C-uM-x align-regexp
RET
- сложное выравнивание с помощью regexp:
\(\s-*\)\s-
- группа скобок для изменения (оправдать, если отрицательный):
1
- количество интервалов (или столбец, если отрицательный):
3
- повторить по всей линии? (y или n)
y
Если вы хотите только выровнять на дисплее и предпочли бы не изменять файл, вы можете попробовать csv-mode
(доступно в GNU ELPA). Вам нужно будет указать SPC в качестве разделителя (по умолчанию это запятая или вкладка), но затем вы можете использовать меню, чтобы указать режим для выравнивания столбцов.