Oto przykładowy tekst Próbuję formacie:M-x align-regexp usuwa tekst?
(9 12 19 38 0 -39 -20 -13 -10)
(7 9 14 29 0 -30 -15 -10 -8)
(4 6 9 19 0 -20 -10 -7 -5)
(2 3 4 9 0 -10 -5 -4 -3)
(0 0 0 0 0 0 0 0 0)
(-3 -4 -5 -10 0 9 4 3 2)
(-5 -7 -10 -20 0 19 9 6 4)
(-8 -10 -15 -30 0 29 14 9 7)
(-10 -13 -20 -39 0 38 19 12 9)
chciałbym każdą kolumnę aby wyrównać na cyfr (czyli czy jest to znak minus, dodać dodatkową przestrzeń).
Jeśli mogę to zrobić tak: C-uM-xalign-regexp
RET\([[:digit:]]+\)
RETRETRETy
mam tego:
(9 12 19 38 0 -3 -2 -1 -1)
(7 9 14 29 0 -3 -1 -1 -8)
(4 6 9 19 0 -2 -1 -7 -5)
(2 3 4 9 0 -1 -5 -4 -3)
(0 0 0 0 0 0 0 0 0)
(-3 -4 -5 -1 0 9 4 3 2)
(-5 -7 -1 -2 0 19 9 6 4)
(-8 -1 -1 -3 0 29 14 9 7)
(-1 -1 -2 -3 0 38 19 12 9)
który jest bardzo blisko, ale nie tego, co chcę.
A jeśli próbuję modyfikować ekspresję zawierać znak minus, tak: \(-?[[:digit:]]+\)
Potem uzyskać to:
(9 1 1 3 0 - - - -)
(7 9 1 2 0 - - - -)
(4 6 9 1 0 - - - -)
(2 3 4 9 0 - - - -)
(0 0 0 0 0 0 0 0 0)
(- - - - 0 9 4 3 2)
(- - - - 0 1 9 6 4)
(- - - - 0 2 1 9 7)
(- - - - 0 3 1 1 9)
Jest to błąd, czy jest tam coś I don” nie wiem?
Emacs modyfikuje (to znaczy dodaje spacje lub usuwa znaki) z pierwszej dopasowanej grupy w wyrażeniu regularnym, aby wyrównać kolumny. Jeśli zastąpiłeś proponowane '\ (\ s - * \)' regexp zamiast dołączać do niego, wyjaśnia to, dlaczego Emacs usunął znaki z twojego tekstu. – Francesco