Jak uzyskać bieżący tryb główny?

30

Jeśli edytuję plik .tex w emacsie, domyślnie (dla mnie) prawy dolny róg ramki powie „LaTeX / P”. Nie przejdę jednak do tego trybu, wpisując „Mx LaTeX / P-mode”; Mogę do tego dojść tylko po wpisaniu „Tryb lateksowy Mx”.

Poza Googlingiem, skąd mam wiedzieć, że piszę, aby przejść do tego trybu, to „tryb lateksowy”?

John Smith
źródło

Odpowiedzi:

43

Myślę, że najprostszym sposobem jest sprawdzenie wartości major-modezmiennej lokalnej bufora za pomocą jednego z:

  • C-hv major-mode RET
  • M-: major-mode RET
phils
źródło
12

C-h m daje pomoc w bieżącym trybie i zwykle podaje nazwę polecenia, które włącza ten tryb.

Na przykład w trybie Emacs-Lisp C-h minformuje, że jesteś w Emacs-Lisptrybie. Polecenie, które włącza tryb, jest po prostu emacs-lisp-mode.

C-h mzawiera również łącze do biblioteki, która definiuje tryb, a kliknięcie tego łącza powoduje przejście do definicji polecenia trybu. Na przykład w trybie Emacs-Lisp C-h mmówi:

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

A jeśli klikniesz link, lisp-mode.elEmacs przeniesie Cię do definicji polecenia emacs-lisp-mode, które jest poleceniem, które włącza tryb:

(define-derived-mode emacs-lisp-mode prog-mode "Emacs-Lisp"
  "Major mode for editing Lisp code to run in Emacs.
  ...)
Drew
źródło
0

Można uzyskać tryb główny, po prostu oceniając to wyrażenie:

(print major-mode)

sidharth arya
źródło
2
To wydaje się powtarzać odpowiedź @ phils: zbadaj zmienną major-mode( emacs.stackexchange.com/a/18084/105 ).
Drew
Tak, oceniamy tę samą zmienną rzeczową oczywiście, ponieważ to właśnie przechowuje wartość trybu głównego. Różnica polega tylko na tym, jak chcesz zaimplementować tę funkcję. może możemy zdefiniować funkcję za pomocą tego polecenia i powiązać ją kluczem. Więc moim celem jest elisp vs. używanie linii trybu emacs.
sidharth arya