2012-05-09 6 views
5

Come faccio a visualizzare un buffer in una finestra di programmazione other than the current, simile al comportamento di grep next-error di Emacs. Voglio che funzioni nel più recente Emacs 24.1. Si noti che questa logica è stata recentemente modificata nel trunk Emacs e incorporata in una singola funzione display-buffer con una semantica di chiamata piuttosto complicata. Trovo difficile capire come utilizzare display-buffer anche dopo aver letto l'aiuto su di esso più volte. Perché non esiste una funzione wrapper per questo come display-buffer-other-window?Buffer di visualizzazione in un'altra finestra in Emac recenti

risposta

2

Le fonti Emacs mi ha dato la risposta

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

La lunga stringa di documentazione per display-buffer include quanto segue:

l'argomento di azione a `Display-buffer' può anche avere un non-nil e valore non di lista. Ciò significa visualizzare il buffer in una finestra diversa da quella selezionata, anche se è già visualizzata in nella finestra selezionata. Se chiamato in modo interattivo con un argomento prefisso , ACTION è t.

Pertanto per visualizzare un buffer specificato in una finestra diversa da quella corrente, è possibile utilizzare:

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

Come si differenzia questo comportamento da '(pop-to-buffer BUFFER 'other-window)'? –

+1

'display-buffer' non seleziona la finestra. 'pop-to-buffer' chiama display-buffer, quindi seleziona la finestra. Si noti che l'azione ''other-window' è identica all'utilizzo di' t' (cioè "un valore non nullo e non elenco"), e non risulta nella funzione 'other-window' utilizzata per determinare la finestra , come potrebbe sembrare; causa solo l'inibizione della stessa finestra. – phils

2

ed esiste l'involucro, BTW, si chiama switch-to-buffer-other-window.