Отключить автоматическое выравнивание кода 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 только для отступа на один уровень, а не столько, сколько требуется для выравнивания с концом предыдущей строки.

1
задан quanticle
23.04.2023 16:01 Количество просмотров материала 3628
Распечатать страницу

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.

когда не nil, он будет выстроен под первым символом строки, которая начинает многострочную конструкцию, как в:

my_list = [
    1, 2, 3,
    4, 5, 6,
]
2
отвечен Andreas Röhler 2023-04-24 23:49

Не решение, на самом деле, но если вы поместите первый элемент кортежа в новую строку, вы получите почти поведение, которое вы хотите из коробки.

this_is_a_list_of_django_urls = (
    '',
    url(r'^admin/?', include(admin.site.urls)),
    url(r'^polls/?', include('polls.urls'))
    )
1
отвечен Inaimathi 2023-04-25 02:06

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх