2013-10-19 12 views
7

Ho un buffer che voglio "attivare/disattivare" in una finestra in emacs su un tasto.Emacs, attiva una finestra specifica

Ad esempio:

________________  ________________  ________________ 
|    |  | |   |  |    | 
|    |  | |   |  |    | 
|    |  | |   |  |    | 
|  W  | -> | S |  W  | -> |  W  | 
|    | <f3> | |   | <f3> |    | 
|    |  | |   |  |    | 
----------------  ----------------  ---------------- 

Dove S nella finestra di sinistra è un buffer speciale.

Il problema è che questo dovrebbe accadere indipendentemente da quale sia la struttura della finestra di W. Se W contiene un paio di finestre diverse, premere <F3> dovrebbe comunque creare una nuova finestra sul bordo dello schermo e inserire il buffer specifico in esso, quindi dovrebbe portarlo via.

Non sono sicuro di come si fa a emacs.

risposta

6

Prova questo come punto di partenza, ha bisogno del pacchetto popwin.

(require 'popwin) 
(popwin-mode 1) 

(generate-new-buffer "special-buffer") 

(setq eab/special-buffer-displaedp nil) 
(setq eab/special-buffer "special-buffer") 

(add-to-list 'popwin:special-display-config 
     `(,eab/special-buffer :width 20 :position left :stick t))  

(defun eab/special-buffer-toggle() 
    (interactive) 
    (if eab/special-buffer-displaedp 
     (progn 
     (popwin:close-popup-window) 
     (setq eab/special-buffer-displaedp nil)) 
    (progn 
     (ignore-errors (popwin:display-buffer eab/special-buffer)) 
     (setq eab/special-buffer-displaedp 't)))) 

(global-set-key (kbd "<f3>") 'eab/special-buffer-toggle) 
+0

Ottimo pacchetto! Grazie per il suggerimento. –

+0

Si riferisce presumibilmente a questo: http://www.emacswiki.org/emacs/PopWin – phils

Problemi correlati