python自動インデント問題


11

Emacs 24.4を使用しています。Pythonコードを書くとき、Emacsはインデントに関して奇妙な振る舞いをします。

例えば:

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

:Emacsがを入力すると、3行目の先頭に不要なインデントが追加されます。これはかなり奇妙です、これはバグですか?


あなたの.emacsファイルinitを追加することができます
ビビアンマヤ

2
@VivianMayaこれは構成ファイルとは関係ありませんemacs -Qが、この問題はまだあります
Hunger

私の友人は時々インデントが何かを越えるかもしれません、私はこのような問題を抱えていました、そしてそれは定義を越えることについてでした。あなたがそれと何の関係もないことが確かなら、私は明らかに何が起こっているのかわかりません。
ビビアンマヤ

回答:


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である場合は、そのままにしておきます。electric-indent-modeは、私がすでに言ったときに、何をしたいかを無意識に推測します...
AdamC

そして、何年も経った今でも壊れています。
AdamC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.