หลามอัตโนมัติเยื้องปัญหา


11

ฉันใช้ Emacs 24.4 เมื่อเขียนโค้ดไพ ธ อน Emacs จะทำงานผิดปกติด้วยความเยื้อง

ตัวอย่างเช่น:

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

เมื่อฉันป้อนข้อมูล:Emacs จะเพิ่มการเยื้องที่ไม่จำเป็นที่จุดเริ่มต้นของบรรทัดที่สาม นี่มันแปลกมากนี่เป็นข้อผิดพลาดหรือไม่?


คุณสามารถเพิ่มไฟล์. emacs init ของคุณได้ไหม
Vivian Maya

2
@VivianMaya สิ่งนี้ไม่เกี่ยวกับไฟล์ config emacs -Qยังคงมีปัญหานี้อยู่
Hunger

บางครั้งเพื่อนของฉันเยื้องอาจข้ามบางสิ่งบางอย่างฉันมีปัญหาเช่นนี้และนั่นเป็นเรื่องเกี่ยวกับการข้ามคำจำกัดความ หากคุณแน่ใจว่าไม่มีส่วนเกี่ยวข้องกับเรื่องนี้ฉันก็ไม่รู้แน่ชัดว่าเกิดอะไรขึ้น
Vivian Maya

คำตอบ:


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 ที่ถูกกฎหมายปล่อยให้อยู่คนเดียว โหมดไฟฟ้าเยื้อง - ใจคาดเดาสิ่งที่ฉันต้องการเมื่อฉันได้บอกแล้ว ...
312

และอีกหลายปีต่อมามันก็ยังพังอยู่
AdamC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.