Я хочу отсортировать свойства CSS в html-файлах с помощью vim, используя python
Я пришел с таким решением:
!python -c "import sys,re;r=re.compile('class[=:]\s*\"(.*?)\"');i=sys.stdin.read();r=r.search(i);a=r.start()+7;b=r.end()-1; print(i[:a]+' '.join(sorted(i[a:b].split()))+i[b:], end='')"
, которое в более читаемой форме выглядит так:
import sys,re
r=re.compile('class[=:]\s*\"(.*?)\"')
i=sys.stdin.read()
r=r.search(i)
a=r.start()+7
b=r.end()-1
print(i[:a] + ' '.join(sorted(i[a:b].split())) + i[b:], end='')
И он отлично работает для html - моя единственная проблема - a+7 b-1
, потому что модуль python re дает мне адрес начала и конца совпадения, а не группы. Я хочу сделать это более универсальным и использовать его также для ruby и elixir, где вместо class="
, что составляет 7 букв, у меня будет class: "
, что составляет 8, но я не совсем уверен, как это сделать без создания кодагораздо сложнее. Я ищу предложения