目前,在 emacs 的 python 模式下,行延续与上一行的末尾对齐,如下所示:
this_is_a_list_of_django_urls = ('',
url(r'^admin/?', include(admin.site.urls)),
url(r'^polls/?', include('polls.urls'))
)
但我发现上面的代码非常丑陋。有没有办法将 emacs 的 python-mode 配置为自动缩进,如下所示:
this_is_a_list_of_django_urls = ('',
url(r'^admin/?', include(admin.site.urls)),
url(r'^polls/?', include('polls.urls'))
)
我发现第二个版本更容易阅读,所以我想按 TAB 只缩进一个级别,而不是无论需要多少才能与上一行的末尾对齐。
答案1
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,
]
答案2
这确实不是一个解决方案,但如果您将元组的第一个元素放在新行上,您几乎可以获得开箱即用的行为。
this_is_a_list_of_django_urls = (
'',
url(r'^admin/?', include(admin.site.urls)),
url(r'^polls/?', include('polls.urls'))
)