Pregunta

He tratado de buscar en Google y buscar en el manual, pero todavía no puede encontrar la manera de llegar modo mayor de un objeto de memoria intermedia. ¿Me pueden ayudar con un ejemplo o una referencia. Gracias

única solución que pude encontrar fue a consultar major-mode después de cambiar el tampón y después se vuelve al búfer original. ¿Hay una mejor manera de hacerlo?

¿Fue útil?

Solución

¿Hay algún problema con eso?

(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 restaurará su búfer cuando se devuelve.

Otros consejos

Para búfer en:

(message "%s" major-mode)

Una forma sencilla de hacerlo es utilizar la función buffer-local-value desde major-mode es una variable local al búfer:

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

Al igual que se extiende desde las respuestas anteriores - llamada sin argumentos para obtener el modo del búfer en:

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

por ejemplo. en el búfer * scratch *:

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

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

Bueno, describir en modo toma un argumento búfer opcional, pero que muestra la ayuda ... y no estoy exactamente seguro de lo que devuelve ...

Pero eso es lo mejor que pude encontrar en una breve búsqueda ... lo siento ...

Simplemente evaluar esta:

(print major-mode)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top