1

我有以下情况:

if 1 < 2:
    print("this line is part of the if statement")

print("this is NOT part of the if statement")

如果我使用indent-according-to-modeEmacs 命令,它会将第二个缩进print()作为 if 语句的一部分。像这样:

if 1 < 2:
    print("this line is part of the if statement")

    print("this is NOT part of the if statement")

在我看来,行的缩进不应该改变。是否可以“修复”或自定义此行为?

4

2 回答 2

3

我认为这是正确的行为。因为缩进在 python 中是语义的,所以 emacs 无法判断缩进“应该”是什么。

如果您称indent-according-to-modeemacs sensible 将此解释为“请将此行缩进到我上方前一行的缩进级别”,因此您得到的行为是正确的。“关闭它”的方法是不调用该函数。

于 2013-09-22T05:55:41.860 回答
1

IIUC 可以这样实现:

如果一个语句跟在一个空行之后,前面有一个不打开块的行,则将缩进设置为块的开头。

至于 python-mode.el,欢迎您的功能请求:

https://bugs.launchpad.net/python-mode

于 2013-09-22T06:36:42.650 回答