Выровнять по столбцам в 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 в качестве разделителя (по умолчанию это запятая или вкладка), но затем вы можете использовать меню, чтобы указать режим для выравнивания столбцов.