วิธีเปลี่ยนการเยื้องในโหมดข้อความสำหรับ emacs

ฉันอยู่ในโหมดข้อความและต้องการให้ปุ่ม Tab เยื้องบรรทัดเป็นสองช่องว่าง

ไฟล์มีลักษณะดังนี้:

Line one

Line two

เคอร์เซอร์ตั้งอยู่ก่อน 'L' : "บรรทัดที่สอง" และฉันกด TAB และจะมีการเยื้อง 6 ช่องว่างซึ่งตรงข้ามกับ 2 ช่องว่างที่ต้องการ

การกระทำที่ฉันได้ลอง:

  1. ฉันได้ลองอัปเดตตัวแปรแล้ว: tab-stop-list

    (setq tab-stop-list '(2 4 6 8 10 12 14 16))
    
  2. ฉันได้ลองเพิ่ม text-mode-hook แล้ว

    (add-hook 'text-mode-hook
      '(lambda ()
        (setq tab-width 2)))
    

person ftravers    schedule 20.10.2010    source แหล่งที่มา


คำตอบ (3)


เพิ่มสิ่งนี้ลงใน .emacs ของคุณ:

(add-hook 'text-mode-hook
          '(lambda ()
             (setq indent-tabs-mode nil)
             (setq tab-width 2)
             (setq indent-line-function (quote insert-tab))))

ดูบทช่วยสอนการเยื้องของ Emacs

person Jérôme Radix    schedule 21.10.2010

ค่าเริ่มต้นสำหรับในโหมดข้อความจะเยื้องไปที่อักขระที่ไม่ใช่ช่องว่างตัวแรกในบรรทัดด้านบน

จากเอกสารประกอบการผูกคีย์ในโหมดข้อความ

TAB (แปลจาก ) รันคำสั่ง indent-for-tab-command ซึ่งเป็นฟังก์ชัน Lisp ที่คอมไพล์แบบโต้ตอบใน `indent.el'

มันผูกไว้กับ TAB

(เยื้องสำหรับคำสั่งแท็บ & ARG เสริม)

เยื้องบรรทัดหรือขอบเขตในวิธีที่เหมาะสมสำหรับโหมดหลักปัจจุบันหรือแทรกแท็บ ขึ้นอยู่กับ `tab-always-indent' ให้แทรกแท็บหรือเยื้อง

ในโหมดหลักส่วนใหญ่ หากจุดอยู่ในการเยื้องของบรรทัดปัจจุบัน จุดนั้นจะถูกย้ายไปยังอักขระที่ไม่ใช่ช่องว่างตัวแรกหลังจากการเยื้อง ไม่เช่นนั้นก็จะยังคงอยู่ในตำแหน่งเดิมในข้อความ....

โชคดีที่สิ่งนี้สามารถเปลี่ยนแปลงได้ การเพิ่มสิ่งต่อไปนี้ใน text-mode-hook ควรทำสิ่งที่คุณต้องการ:

(setq tab-width 2)
(setq indent-line-function (quote insert-tab))
person jwernerny    schedule 20.10.2010

ลองตั้งค่า

(setq standard-indent 2)

ใน .emacs ของคุณ

person ocodo    schedule 20.10.2010