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”?

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

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.
  ...)

0

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

(print major-mode)


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.