58 votes

emacs lisp, comment obtenir le tampon de mode majeur?

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

seule solution que j'ai pu trouver était de requête grands-mode après la modification de la mémoire tampon, puis changer à nouveau de tampon d'origine. Est-il un meilleur moyen de le faire?

43voto

Aidan Cully Points 3611

Est-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 permettra de restaurer votre tampon quand il retourne.

41voto

Adobe Points 1592

Pour le tampon courant:

(message "%s" major-mode)

34voto

Jeremie Pelletier Points 193

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

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

7voto

Brian Burns Points 398

Juste s'étendant à partir des réponses précédentes, appelez sans arguments pour le tampon courant de la mode.

(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))))

0voto

Brian Postow Points 3765

Eh bien, décrire en mode prend une option tampon argument, mais qui affiche l'aider... et je ne suis pas sûr de savoir exactement de quoi il en retourne...

Mais c'est la meilleure que j'ai pu trouver dans une brève recherche... désolé...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X