Як отримати поточний основний режим?


30

Якщо я редагую .tex файл у emacs, за замовчуванням (для мене) нижній правий кут кадру скаже «LaTeX / P». Однак я не доїду до цього режиму, набравши "Mx LaTeX / P-mode"; Я можу дістатися до нього лише ввівши "Mx латексний режим".

Окрім Googling it, як я повинен знати, що я набираю, щоб потрапити в цей режим, це "латексний режим"?

Відповіді:


43

Я думаю, що найпростішим способом є перевірка значення буферно-локальної major-modeзмінної, використовуючи будь-яке з:

  • 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.elто Emacs переведе вас до визначення команди 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.