J'ai essayé de chercher sur Google et de regarder dans le manuel, mais je ne trouve toujours pas comment obtenir le mode majeur d'un objet tampon. Pouvez-vous m'aider avec un exemple ou une référence. Merci
la seule solution que je pouvais trouver était d'interroger le mode majeur après avoir changé le tampon, puis être revenu au tampon d'origine. Y a-t-il une meilleure façon de le faire?
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
restaurera votre tampon quand il reviendra.
Pour le tampon actuel:
(message "%s" major-mode)
Une méthode simple consiste à utiliser la fonction buffer-local-value
puisque major-mode
est une variable tampon-locale
(buffer-local-value 'major-mode (get-buffer "*scratch*"))
En prolongeant les réponses précédentes - appel sans arguments pour obtenir le mode du tampon actuel:
(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 * tampon:
(buffer-mode) => 'LISP-interaction-mode
(buffer-mode "tasks.org") => 'org-mode
Décrire le mode prend un argument de tampon optionnel, mais cela affiche l'aide ... et je ne sais pas exactement ce qu'il retourne ...
Mais c'est le meilleur que j'ai pu trouver dans une brève recherche ... désolé ...
Évaluez simplement ceci:
(print major-mode)