python自动缩进问题


11

我正在使用Emacs 24.4。在编写Python代码时,Emacs在缩进方面表现得很奇怪。

例如:

for i in range(10):
    print(i)
for i in range(10)

当我输入时:,Emacs在第三行的开头添加了一个不必要的缩进。这很奇怪,这是一个错误吗?


您可以添加.emacs初始化文件吗-Vivian
Maya

2
@VivianMaya这与配置文件无关,emacs -Q仍然有此问题
Hunger

我的朋友有时缩进可能会跨越某些东西,我遇到这样的问题,那是关于定义的问题。如果您确定与它无关,那么我显然不知道发生了什么。
维维安玛雅2014年

Answers:


16

这是由引起的electric-indent-mode,默认情况下在Emacs 24.4中启用了。您可以使用关闭它

(electric-indent-mode -1)

如果您不想完全禁用电子缩进模式,而是想阻止冒号在Python模式下激活电子缩进模式,则可以从中删除冒号字符electric-indent-chars,Python模式会给出一个局部值。

(add-hook 'python-mode-hook
          (lambda ()
            (setq electric-indent-chars (delq ?: electric-indent-chars))))

我真正想看到的是:当我输入的缩进是合法的Python时,就不要管它了。当我已经告诉电动缩进模式时,它会无意识地猜出我想要什么...
AdamC

多年以后,它仍然坏了。
AdamC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.