¿Cómo obtengo el modo principal actual?

30

Si estoy editando un archivo .tex en emacs, por defecto (para mí) la esquina inferior derecha del marco dirá "LaTeX / P". Sin embargo, no llegaré a ese modo escribiendo "Mx LaTeX / P-mode"; Solo puedo acceder escribiendo "Mx latex-mode".

Aparte de buscarlo en Google, ¿cómo se supone que debo saber que lo que escribo para llegar a ese modo es "modo látex"?

John Smith
fuente

Respuestas:

43

Creo que la forma más simple es verificar el valor de la major-modevariable local del búfer , con cualquiera de:

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

C-h m le brinda ayuda sobre el modo actual y, por lo general, le indica el nombre del comando que activa el modo.

Por ejemplo, en modo Emacs-Lisp C-h mle dice que está en Emacs-Lispmodo. El comando que activa el modo es justo emacs-lisp-mode.

C-h mtambién proporciona un enlace a la biblioteca que define el modo, y si hace clic en ese enlace, lo llevará a la definición del comando de modo. Por ejemplo, en el modo Emacs-Lisp C-h mte dice:

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

Y si hace clic en el enlace lisp-mode.el, Emacs lo lleva a la definición de comando emacs-lisp-mode, que es el comando que activa el modo:

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

Es posible obtener el modo principal simplemente evaluando esta expresión:

(print major-mode)

sidharth arya
fuente
2
Esto parece repetir la respuesta de @ phils: examinar variable major-mode( emacs.stackexchange.com/a/18084/105 ).
Dibujó el
Sí, estamos evaluando la misma variable de curso, ya que eso es lo que almacena el valor del modo mayor. La diferencia es cómo quiere implementar esa función. tal vez podamos definir una función, con este comando en su lugar y vincularlo con una tecla. Entonces, mi punto es elisp vs usar la línea de modo emacs.
sidharth arya