2012-05-09 14 views
5

¿Cómo puedo mostrar mediante programación un búfer en una ventana other than the current, similar al comportamiento de grep de Emacs next-error. Quiero que esto funcione en el Emacs 24.1 más reciente. Tenga en cuenta que esta lógica recientemente se modificó en el tronco de Emacs y se fusionó en una sola función display-buffer con una semántica de llamadas bastante complicada. Me resulta difícil averiguar cómo usar display-buffer incluso después de leer la ayuda varias veces. ¿Por qué no hay una función de envoltura para esto como display-buffer-other-window?Mostrar búfer en otra ventana en Emacs recientes

Respuesta

2

Las fuentes de Emacs me dio la respuesta

(pop-to-buffer BUFFER 'other-window) 
4

La larga cadena de documentación a display-buffer incluye lo siguiente:

El argumento de la acción a `display-buffer' también puede tener un no-nil y sin valor de lista. Esto significa mostrar el almacenamiento intermedio en una ventana que no sea la seleccionada, incluso si ya se muestra en la ventana seleccionada. Si se llama interactivamente con un argumento de prefijo , ACTION es t.

tanto para mostrar un búfer especificado en una ventana distinta a la actual, se puede utilizar:

(display-buffer BUFFER-OR-NAME t) 
+0

¿Cómo se diferencia esto en el comportamiento de '(pop-to-buffer BUFFER 'other-window)'? –

+1

'display-buffer' no selecciona la ventana. 'pop-to-buffer' llama a display-buffer, y luego selecciona la ventana. Tenga en cuenta que la ACCIÓN ''other-window' es idéntica a usar' t' (es decir,' 'un valor no nil y non-list' '), y no da como resultado que se use la función 'other-window' para determinar la ventana , como podría parecer; solo hace que se establezca 'inhibit-same-window'. – phils

2

Y existe la envoltura, por cierto, se llama switch-to-buffer-other-window.

Cuestiones relacionadas