python-mode.el 中带有反斜杠续行的正确缩进

发布于 2024-09-17 11:04:39 字数 733 浏览 6 评论 0原文

我喜欢使用 python-mode.el 和 (gnu) emacs 来编辑我的 python 文件。如果我使用括号进行多行延续,缩进将按我的预期工作。例如,

foo_long_long_long_long = (
    bar_long_long_long_long[
        (x_long_long_long_long == X) &
        (y_long_long_long_long == Y)])

这正是我喜欢的方式。

另一方面,如果我使用反斜杠进行延续,则会创建一个缩进,并且所有后续行都将停止使用额外的缩进逻辑。在第三行和第四行下面没有任何额外的缩进

foo_long_long_long_long = \
    bar_long_long_long_long[
    (x_long_long_long_long == X) &
    (y_long_long_long_long == Y)]

有人知道如何修复 python-mode.el (5.1.0) 以便反斜杠延续缩进与括号延续缩进相同吗?


编辑:虽然我很高兴整天只使用括号(Python 毕竟,有点像 lisp...),但我与其他使用反斜杠延续的人合作。当我按 TAB 键时,Emacs 会弄乱缩进,而我经常会本能地这样做。如果能够编辑他们的文件并让 emacs 在处理反斜杠行延续时保留所有缩进智能,那就太好了。

I like to use python-mode.el and (gnu) emacs for editing my python files. If I use parentheses for multiline continuations, indentation works as I expect. For example,

foo_long_long_long_long = (
    bar_long_long_long_long[
        (x_long_long_long_long == X) &
        (y_long_long_long_long == Y)])

is just the way I like it.

On the other hand, if I use a backslash for continuations, a single indentation is created and all subsequent lines stop using the extra indentation logic. Below the third and fourth lines fail to have any extra indentation

foo_long_long_long_long = \
    bar_long_long_long_long[
    (x_long_long_long_long == X) &
    (y_long_long_long_long == Y)]

Does anyone know how to fix python-mode.el (5.1.0) so that backslash continuations indent the same as parenthesis continuations?


EDIT: Although I'm happy to just use parens all day long (python is after all, rather lisp like...), I collaborate with others who use backslash continuations. Emacs messes up the indentation when I press TAB, which I often do as a reflex. It'd be nice to be able to edit their files and have emacs keep all its indentation smarts when working with backslash line continuations.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

掩饰不了的爱 2024-09-24 11:04:39

不要使用黑斜杠延续。

Don't use blackslash continuations.

美人骨 2024-09-24 11:04:39

这有 Bug lp:629916,已在 https://launchpad.net/python-mode 中修复

This got Bug lp:629916, fixed in https://launchpad.net/python-mode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文