2012-11-01 4 views
9

Sto utilizzando elscreen nel mio GNU Emacs 24.2.1 Attualmente, quando ho diviso la mia finestra, ho una scheda stesso pannello per tempo: elscreen http://i.zlowiki.ru/121101_0f30ebba.png/800 Si noti che le due finestre inferiori hanno le stesse schede come il più grande .come mettere solo le schede elscreen in alto?

Come posso rimuovere questi due duplicati e mantenere solo quello superiore?

Se è troppo difficile, quale altra alternativa potrebbe essere utilizzata per lo schermo GNU?

+2

Almeno è possibile disattivare completamente la visualizzazione delle schede: (setq elscreen-display-tab nil). Non sono molto utili e consumano spazio. È possibile alternare questa impostazione con C-z T. Inoltre, se si modificano i buffer inferiori su qualcosa di diverso da quello superiore, le schede scompaiono. – Tvaroh

+1

Per capire meglio come funziona 'header-line-format' in' elscreen.el' e 'tabbar.el', possiamo valutare una semplice riga di codice in qualsiasi buffer:' (set (make-local-variable ' header-line-format) "Hello World") '. Il poster originale ha lo stesso buffer visualizzato in tre finestre differenti. Poiché il 'header-line-format' viene usato su base buffer, lo stesso buffer visualizza logicamente lo stesso' header-line-format'. Un diverso buffer può visualizzare un 'header-line-format' diverso, ma lo stesso buffer visualizzato in più finestre non può. – lawlist

+0

Come si cambia il colore del testo dello sfondo? Sembra debole come il blu sul nero. –

risposta

2

Ecco qualcosa a che fare tecnicamente quello che hai chiesto:

(setq elscreen-display-tab nil) ; disable tabs display 

;; get-alist was removed somewhere along the line 
;; You can try substituting all instances of get-alist with assoc-default 
;; instead of using defalias and see if that works; I haven't tried. 
(defalias 'get-alist 'assoc-default) ; get-alist is gone 

;; Put tabs display in your frame title bar instead. 
(defun elscreen-frame-title-update() 
    (when (elscreen-screen-modified-p 'elscreen-frame-title-update) 
    (let* ((screen-list (sort (elscreen-get-screen-list) '<)) 
      (screen-to-name-alist (elscreen-get-screen-to-name-alist)) 
      (title (concat "| " (mapconcat 
        (lambda (screen) 
        (format "%d%s %s |" 
          screen (elscreen-status-label screen) 
          (get-alist screen screen-to-name-alist))) 
        screen-list " ")))) 
     (if (fboundp 'set-frame-name) 
      (set-frame-name title) 
     (setq frame-title-format title))))) 

(eval-after-load "elscreen" 
    '(add-hook 'elscreen-screen-update-hook 'elscreen-frame-title-update)) 

enter image description here

Sono sicuro che non è quello che aveva in mente, ma hey, è al vertice ora e solo alla superiore.