ฉันจะรับโหมดหลักปัจจุบันได้อย่างไร


30

ถ้าฉันแก้ไขไฟล์. tex ใน emacs โดยค่าเริ่มต้น (สำหรับฉัน) ที่มุมล่างขวาของเฟรมจะพูดว่า "LaTeX / P" อย่างไรก็ตามฉันจะไม่ไปที่โหมดนั้นโดยพิมพ์ "Mx LaTeX / P-mode"; ฉันสามารถไปถึงมันได้โดยพิมพ์ "Mx latex-mode"

นอกเหนือจาก Googling แล้วฉันจะรู้ได้อย่างไรว่าสิ่งที่ฉันพิมพ์ในโหมดนั้นคือ "latex-mode"?

คำตอบ:


43

ฉันคิดว่าวิธีที่ง่ายที่สุดคือการตรวจสอบค่าของmajor-modeตัวแปรbuffer-local โดย:

  • C-hv major-mode RET
  • M-: major-mode RET

12

C-h m ให้ความช่วยเหลือเกี่ยวกับโหมดปัจจุบันและโดยปกติจะบอกชื่อของคำสั่งที่เปิดโหมด

ตัวอย่างเช่นในโหมด Emacs-Lisp C-h mจะบอกคุณว่าคุณอยู่ในEmacs-Lispโหมด emacs-lisp-modeคำสั่งที่จะเปลี่ยนโหมดบนเป็นเพียง

C-h mยังมีลิงก์ไปยังไลบรารีที่กำหนดโหมดและถ้าคุณคลิกที่ลิงค์มันจะนำคุณไปสู่คำจำกัดความของคำสั่งโหมด ตัวอย่างเช่นในโหมด Emacs-Lisp C-h mจะบอกคุณ:

Emacs-Lisp mode defined in `lisp-mode.el'

และหากคุณคลิกที่ลิงค์lisp-mode.elEmacs จะนำคุณไปสู่นิยามของคำสั่งemacs-lisp-modeซึ่งเป็นคำสั่งที่เปิดโหมด:

(define-derived-mode emacs-lisp-mode prog-mode "Emacs-Lisp"
  "Major mode for editing Lisp code to run in Emacs.
  ...)

0

เป็นไปได้ที่จะได้รับโหมดหลักโดยการประเมินการแสดงออกนี้:

(print major-mode)


2
ดูเหมือนว่าจะทำซ้ำคำตอบของ @ phils: ตรวจสอบตัวแปรmajor-mode( emacs.stackexchange.com/a/18084/105 )
ดึง

ใช่เรากำลังประเมินตัวแปรของหลักสูตรเดียวกันเนื่องจากนั่นคือสิ่งที่เก็บค่าของโหมดหลัก ความแตกต่างเป็นเพียงวิธีที่คุณต้องการใช้ฟังก์ชันนั้น บางทีเราสามารถกำหนดฟังก์ชั่นโดยใช้คำสั่งนี้และผูกมันด้วยคีย์ ดังนั้นจุดของฉันเป็น elisp vs ใช้บรรทัดโหมด emacs
sidharth arya
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.