ฉันจะปิดการใช้งานการเยื้องอัตโนมัติทั้งหมดใน Emacs ได้อย่างไร ฉันต้องปิดการใช้งานอย่างน้อยสำหรับโหมด Fundamental แต่ฉันก็สบายดีเพราะมันถูกปิดการใช้งานทั่วโลกสำหรับเซสชันปัจจุบัน
โปรดอ่านคำถามที่เหลือก่อนที่จะประกาศซ้ำ คำตอบอื่น ๆ ทั้งหมดที่ฉันพบมีไว้สำหรับการปิดการเยื้องเป้าหมาย ฉันต้องการปิดการใช้งานการเยื้องอัตโนมัติสำหรับเซสชันทั้งหมดอย่างสมบูรณ์
การตั้งค่าelectric-layout-mode
เป็นnil
ไม่ทำงาน
รายละเอียด
บางครั้งฉันต้องการเขียน Git ขนาดใหญ่ส่งข้อความด้วยโปรแกรมแก้ไขข้อความ Windows ASCII ของฉัน ข้อความเหล่านี้มักจะมีรายการหัวข้อย่อยบล็อกโค้ดหรือสิ่งอื่น ๆ ที่การจัดรูปแบบที่แม่นยำในเอกสารต้นฉบับของฉันมีความหมาย codebase ของฉันอยู่บน Linux และฉันเชื่อมต่อกับกล่องโดยใช้ไคลเอ็นต์ SSH แบบข้อความเท่านั้น เมื่อ Git เข้าสู่ Emacs เพื่อแก้ไขข้อความคอมมิทฉันต้องการที่จะคัดลอกข้อความคอมมิทซอร์สไปยังคลิปบอร์ดของ Windows จากนั้นวางโดยใช้คำสั่ง Windows paste จากมุมมองของ Emacs ฉันกำลังพิมพ์สิ่งที่พบในไฟล์ข้อความ Windows น่าเสียดายที่เมื่อ Emacs เห็นเส้นที่เยื้องมันเพิ่มการเยื้องอัตโนมัติของตัวเองดังนั้นฉันจึงได้พื้นที่สามเหลี่ยมขนาดใหญ่นี้ตามขอบด้านซ้ายของบัฟเฟอร์
ฉันใช้ GNU Emacs 24.3.1
วิธีแก้ปัญหา
วิธีแก้ปัญหาปัจจุบันของฉันคือการถ่ายโอนไฟล์ข้อความ Windows ของฉันไปยังระบบไฟล์ที่ติดตั้งโดยโฮสต์ Linux ของฉันโหลดไฟล์ลงใน Emacs จากนั้นใช้ kill และ yank เพื่อถ่ายโอนเนื้อหา นี่เป็นความลับเล็กน้อย
ตัวอย่าง
นี่คือบล็อกข้อความตัวอย่าง:
a
- b
c
d
นี่คือลักษณะที่ปรากฏเมื่อฉันวางลงใน Emacs-under-ssh ผ่าน MSWin paste:
a
- b
c
d
ถ้าฉันกดC-h l
หลังจากทำแปะนี่คือสิ่งที่ฉันเห็น โปรดทราบว่าการขึ้นบรรทัดใหม่ที่มีการป้อนข้อมูลที่ใช้ไม่ได้C-j
RET
a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j
SPC SPC SPC SPC d C-j C-h l
:set paste
หรือไม่? โดยพื้นฐานแล้วบอกว่า "อย่าแตะข้อความที่วางในทางใด ๆ " ซึ่งรวมถึงการเยื้องอัตโนมัติ
hack-local-variables-hook
เพื่อยกเลิกการตั้งค่าโหมดหลักอื่น ๆ ที่เป็นส่วนหนึ่งของพวกเขา การกำหนดค่าเริ่มต้นมาตรฐานfundamental-mode
เป็นเพียงฟังก์ชั่นเล็ก ๆ น้อย ๆ ภายในsimple.el
- เช่น(kill-all-local-variables) (run-mode-hooks)
.M-x find-function RET fundamental-mode RET
- คุณสามารถแก้ไข / สร้างของคุณเองได้ตามต้องการ อย่างไรก็ตามถ้าคุณเปลี่ยนชื่อมันจะไม่ถูกใช้โดยบางฟังก์ชั่น - ดังนั้นให้พิจารณารักษาชื่อเดิมไว้