Я запускаю Emacs с python-mode.el для кодирования на Python. Я надеюсь узнать, как сделать область кода с хорошим отступом автоматически.
Следующий код не имеет отступа.
while match != None:
if match.group(1):
titles.append(match.group(1))
if match.group(2):
if match.group(2) != '':
pns.append(int(match.group(2)))
else:
pns.append('')
else:
pns.append('')
if match.group(3):
closings.append(len(''.join(match.group(3).split())))
else:
closings.append(0)
match = pat.search(match.group(4))
Если я выберу регион и нажму M-x indent-region
, это станет совершенно неправильным:
while match != None:
if match.group(1):
titles.append(match.group(1))
if match.group(2):
if match.group(2) != '':
pns.append(int(match.group(2)))
else:
pns.append('')
else:
pns.append('')
if match.group(3):
closings.append(len(''.join(match.group(3).split())))
else:
closings.append(0)
match = pat.search(match.group(4))
Идеал должен быть:
while match != None:
if match.group(1):
titles.append(match.group(1))
if match.group(2):
if match.group(2) != '':
pns.append(int(match.group(2)))
else:
pns.append('')
else:
pns.append('')
if match.group(3):
closings.append(len(''.join(match.group(3).split())))
else:
closings.append(0)
match = pat.search(match.group(4))
- Почему
M-x indent-region
неправильно понимает отношение отступов между строками кода? Это потому, что мой код неоднозначен? - Что мне делать тогда?
Спасибо.