การเปลี่ยนบทบาทของขีดเส้นใต้และเครื่องหมายลบเพียงแค่ในโหมด LateX


12

ระหว่างการทำงานกับไฟล์ tex ที่มี auctex + emacs (โหมด LateX) ฉันใช้ _ (ขีดเส้นใต้) บ่อยขึ้นแทน - (เครื่องหมายลบ) เหมือนกับ ^ แทนที่จะเป็น 6 ความไม่สะดวกคือฉันควรกดปุ่ม Shift บ่อยขึ้น

มันจะเป็นที่พึงปรารถนาในการปรับแต่ง emacs ในแบบที่เมื่อ emacs อยู่ในโหมด LateX ( และเพียงแค่ในโหมดนี้ ) เมื่อฉันพิมพ์ - emacs ประเภท _ และเมื่อฉันพิมพ์ _ ประเภท emacs - เช่นการเชื่อมโยงคีย์ต่อไปนี้:

- ให้ _

_ ให้ -

6 ให้ ^

^ ให้ 6

เป็นไปได้ไหม?

คำตอบ:


16

บางสิ่งเช่นนี้

(add-hook 'LaTeX-mode-hook 'my-latex-hook)

(defun my-latex-hook ()
  (require 'tex-site)
  (define-key LaTeX-mode-map "-" (lambda () (interactive) (insert "_")))
  (define-key LaTeX-mode-map "_" (lambda () (interactive) (insert "-")))
  (define-key LaTeX-mode-map "6" (lambda () (interactive) (insert "^")))
  (define-key LaTeX-mode-map "^" (lambda () (interactive) (insert "6"))))

มหัศจรรย์รหัสของคุณทำงานอย่างสมบูรณ์
ชื่อ

1
(define-key LaTeX-mode-map "-" "_")และอื่น ๆ ควรจะเพียงพอ ( "_"ถูกตีความว่าเป็นแมโครแป้นพิมพ์) TeX-electric-sub-and-superscriptแถมงานนี้ด้วย
Constantine

1
Nope @ คอนสแตนติน สิ่งที่คุณแนะนำจะทำให้เกิดการสอบถามซ้ำ
abo-abo

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