Como obtenho o modo principal atual?

30

Se estou editando um arquivo .tex no emacs, por padrão (para mim), o canto inferior direito do quadro diz "LaTeX / P". No entanto, não vou entrar nesse modo digitando "Mx LaTeX / P-mode"; Só consigo acessá-lo digitando "Mx latex-mode".

Além de pesquisar no Google, como devo saber que o que digito para entrar nesse modo é "modo de látex"?

john smith
fonte

Respostas:

43

Eu acho que a maneira mais simples é verificar o valor da major-modevariável buffer-local , com um dos seguintes:

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

C-h m fornece ajuda no modo atual e geralmente informa o nome do comando que ativa o modo.

Por exemplo, no modo Emacs-Lisp C-h mdiz que você está no Emacs-Lispmodo. O comando que ativa o modo é justo emacs-lisp-mode.

C-h mtambém fornece um link para a biblioteca que define o modo e, se você clicar nesse link, ele o levará à definição do comando mode. Por exemplo, no modo Emacs-Lisp, C-h mvocê diz:

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

E se você clicar no link lisp-mode.el, o Emacs o levará à definição de comando emacs-lisp-mode, que é o comando que ativa o modo:

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

É possível obter o modo principal apenas avaliando esta expressão:

(print major-mode)

Sidharth Arya
fonte
2
Isso parece repetir a resposta do @ phils: examine variable major-mode( emacs.stackexchange.com/a/18084/105 ).
Desenhou
Sim, estamos avaliando a mesma variável de curso, pois é isso que armazena o valor do modo principal. A diferença é exatamente como você deseja implementar essa função. talvez possamos definir uma função, com este comando no lugar e vinculá-lo com uma chave. Então, meu ponto de vista é elisp vs usando a linha de modo emacs.
Sidharth arya #