masalah indentasi python otomatis


11

Saya menggunakan Emacs 24.4. Saat menulis kode Python, Emacs berperilaku aneh sehubungan dengan indentasi.

Sebagai contoh:

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

Saat saya input :, Emacs menambahkan indentasi yang tidak perlu di awal baris ketiga. Ini sangat aneh, apakah ini bug?


Bisakah Anda menambahkan file .emacs init Anda
Vivian Maya

2
@VivianMaya Ini tidak ada hubungannya dengan file konfigurasi, emacs -Qmasih memiliki masalah ini
Lapar

teman saya kadang-kadang lekukan bisa melewati sesuatu, saya punya masalah seperti ini dan itu tentang definisi persimpangan. Jika Anda yakin itu tidak ada hubungannya, maka saya jelas tidak tahu apa yang sedang terjadi.
Vivian Maya

Jawaban:


16

Ini disebabkan oleh electric-indent-mode, yang diaktifkan secara default di Emacs 24.4. Anda dapat mematikannya dengan

(electric-indent-mode -1)

Jika Anda tidak ingin sepenuhnya menonaktifkan mode indent listrik tetapi ingin menghentikan titik dua dari mengaktifkan mode indentasi listrik dalam mode Python, maka Anda dapat menghapus karakter titik dua dari electric-indent-chars, yang mode Python memberikan nilai lokal.

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

Yang benar-benar ingin saya lihat adalah: ketika indentasi yang saya masukkan adalah Python legal, TINGGALKAN SAJA. electric-indent-mode tanpa berpikir menebak apa yang saya inginkan ketika saya sudah mengatakannya ...
AdamC

Dan lihat, bertahun-tahun kemudian, ini masih rusak.
AdamC
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.