Question

J'ai essayé de recherche Google et regarder dans le manuel, mais ne peut pas trouver comment obtenir le mode majeur d'un objet tampon. Pouvez-vous me aider avec un exemple ou une référence. Merci

seule solution que je pouvais trouver était d'interroger grande mode après avoir modifié la mémoire tampon, puis revenir à changer le tampon d'origine. Y at-il une meilleure façon de le faire?

Était-ce utile?

La solution

Y at-il un problème avec ça?

(defun buffer-mode (buffer-or-string)
  "Returns the major mode associated with a buffer."
  (with-current-buffer buffer-or-string
     major-mode))

with-current-buffer rétablira votre tampon quand il retourne.

Autres conseils

Pour le tampon courant:

(message "%s" major-mode)

Une façon simple de le faire est d'utiliser la fonction buffer-local-value depuis major-mode est une variable tampon locale:

(buffer-local-value 'major-mode (get-buffer "*scratch*"))

Juste allant de réponses précédentes - appelez sans arguments pour obtenir le mode du tampon courant:

(defun buffer-mode (&optional buffer-or-name)
  "Returns the major mode associated with a buffer.
If buffer-or-name is nil return current buffer's mode."
  (buffer-local-value 'major-mode
   (if buffer-or-name (get-buffer buffer-or-name) (current-buffer))))

par exemple. dans * tampon scratch *:

(buffer-mode) => 'lisp-interaction-mode

(buffer-mode "tasks.org") => 'org-mode

Eh bien, décrire en mode prend un argument tampon en option, mais qui affiche l'aide ... et je ne sais pas exactement ce qu'il retourne ...

Mais c'est le meilleur que je pouvais trouver dans une brève recherche ... désolé ...

évaluer simplement ceci:

(print major-mode)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top