vấn đề tự động thụt python


11

Tôi đang sử dụng Emacs 24.4. Khi viết mã Python, Emacs cư xử kỳ lạ với sự thụt vào.

Ví dụ:

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

Khi tôi nhập :, Emacs thêm một thụt lề không cần thiết ở đầu dòng thứ ba. Điều này khá lạ, đây có phải là một lỗi không?


Bạn có thể thêm tệp init .emacs của mình không
Vivian Maya

2
@VivianMaya Điều này không liên quan gì đến các tập tin cấu hình, emacs -Qvẫn có vấn đề này
Hunger

bạn tôi đôi khi thụt lề có thể vượt qua một cái gì đó, tôi có vấn đề như thế này và đó là về định nghĩa chéo. Nếu bạn chắc chắn không có gì để làm, thì tôi rõ ràng không biết chuyện gì đang xảy ra.
Vivian Maya

Câu trả lời:


16

Điều này được gây ra bởi electric-indent-mode, được bật theo mặc định trong Emacs 24.4. Bạn có thể tắt nó với

(electric-indent-mode -1)

Nếu bạn không muốn tắt hoàn toàn chế độ thụt điện nhưng muốn ngăn chặn dấu hai chấm kích hoạt chế độ thụt điện trong chế độ Python, thì bạn có thể xóa ký tự dấu hai chấm từ electric-indent-charschế độ Python mang lại giá trị cục bộ.

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

Điều tôi thực sự muốn thấy là: khi thụt lề mà tôi đặt là Python hợp pháp, HÃY BỎ L IT NÓ. chế độ điện thụt lề không suy nghĩ đoán những gì tôi muốn khi tôi đã nói với nó ...
AdamC

Và lo, nhiều năm sau, nó vẫn bị hỏng.
AdamC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.