Проблема автоматичного відступу python


11

Я використовую Emacs 24.4. Під час написання коду Python Emacs поводиться дивно щодо відступу.

Наприклад:

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

Коли я ввожу інформацію :, Emacs додає непотрібний відступ на початку третього рядка. Це досить дивно, це помилка?


Чи можете ви додати свій файл .emacs init
Вівіан Майя

2
@VivianMaya Це не має нічого спільного з конфігураційними файлами, emacs -Qвсе ще має цю проблему
Голод

мій друг іноді відступ може щось перетнути, у мене були такі проблеми, і це стосувалося визначення схрещування. Якщо ви впевнені, що це ні до чого, тоді я точно не знаю, що відбувається.
Вівіан Майя

Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.