Bagaimana cara mendapatkan mode utama saat ini?

30

Jika saya mengedit file .tex di emacs, secara default (untuk saya) sudut kanan bawah frame akan mengatakan "LaTeX / P". Namun, saya tidak akan masuk ke mode itu dengan mengetikkan "Mx LaTeX / P-mode"; Saya hanya bisa mencapainya dengan mengetik "Mx latex-mode".

Selain dari Googling, bagaimana saya bisa tahu hal yang saya ketik untuk sampai ke mode itu adalah "mode lateks"?

John Smith
sumber

Jawaban:

43

Saya pikir cara paling sederhana adalah memeriksa nilai major-modevariabel buffer-lokal , dengan salah satu dari:

  • C-hv major-mode RET
  • M-: major-mode RET
phils
sumber
12

C-h m memberi Anda bantuan pada mode saat ini, dan biasanya memberi tahu Anda nama perintah yang mengaktifkan mode.

Misalnya, dalam mode Emacs-Lisp C-h mmemberi tahu Anda bahwa Anda berada dalam Emacs-Lispmode. Perintah yang mengaktifkan mode ini adalah adil emacs-lisp-mode.

C-h mjuga menyediakan tautan ke pustaka yang mendefinisikan mode, dan jika Anda mengklik tautan itu akan membawa Anda ke definisi perintah mode. Misalnya, dalam mode Emacs-Lisp C-h mmemberi tahu Anda:

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

Dan jika Anda mengklik tautannya lisp-mode.elmaka Emacs membawa Anda ke definisi perintah emacs-lisp-mode, yang merupakan perintah yang mengaktifkan mode:

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

Dimungkinkan untuk mendapatkan mode utama hanya dengan mengevaluasi ungkapan ini:

(print major-mode)

arh sidharth
sumber
2
Ini sepertinya mengulangi jawaban @ phils: memeriksa variabel major-mode( emacs.stackexchange.com/a/18084/105 ).
Drew
Ya kami sedang mengevaluasi variabel hal yang sama dari kursus, karena itulah yang menyimpan nilai mode-utama. Perbedaan hanyalah bagaimana Anda ingin mengimplementasikan fungsi itu. mungkin kita dapat mendefinisikan suatu fungsi, dengan perintah ini di tempat dan mengikatnya dengan kunci. Jadi poin saya menjadi elisp vs menggunakan emacs mode line.
sidharth arya