Отключить автоматическое выравнивание для кода Python в emacs
Прямо сейчас, продолжения строки в режиме Python в emacs выровнены по концу предыдущей строки следующим образом:
this_is_a_list_of_django_urls = ('',
url(r'^admin/?', include(admin.site.urls)),
url(r'^polls/?', include('polls.urls'))
)
Но я нахожу вышеупомянутое довольно уродливым. Есть ли способ настроить python-режим в emacs для автоматического отступа, например:
this_is_a_list_of_django_urls = ('',
url(r'^admin/?', include(admin.site.urls)),
url(r'^polls/?', include('polls.urls'))
)
Я считаю, что вторую версию намного легче читать, и поэтому я бы хотел, чтобы TAB делал отступ только на один уровень, а не столько, сколько требуется для выравнивания с концом предыдущей строки.
2 ответа
PEP8 говорит:
Нет:
Аргументы в первой строке запрещены, если не используется вертикальное выравнивание
foo = long_function_name(var_one, var_two,
var_three, var_four)
Закрывающая круглая скобка WRT python-mode.el предлагает выбор, логическое `py-close-at-start-column-p', по умолчанию nil.
Когда не ноль, он будет выстроен под первым символом строки, которая начинает многострочную конструкцию, как в:
my_list = [
1, 2, 3,
4, 5, 6,
]
На самом деле это не решение, но если вы поместите первый элемент кортежа в новую строку, вы получите почти то поведение, которое вам нужно, из коробки.
this_is_a_list_of_django_urls = (
'',
url(r'^admin/?', include(admin.site.urls)),
url(r'^polls/?', include('polls.urls'))
)