ElScreen

Screen風の画面切り替え用Emacsスクリプト。タブ表示・操作が便利。

-> ElScreen

.emacs.el

;; ElScreen
(require 'elscreen)
(if window-system
    (define-key elscreen-map "\C-z" 'iconify-or-deiconify-frame)
  (define-key elscreen-map "\C-z" 'suspend-emacs))


使い方

  • C-z c : 新規ウィンドウ
  • C-z k : ウィンドウを閉じる
  • C-z K : 他のウィンドウを閉じる
  • C-z p : 前のウィンドウ
  • C-z n : 次のウィンドウ
  • C-z a : 直前のウィンドウ
  • C-z 0-9 : ウィンドウ番号指定


C-z はデフォルトでsuspendなので、変更したければ

(setq elscreen-prefix-key "\C-z")

C-x C-zもsuspendなので、とりあえずそのまま。


escreen.elの

(defcustom elscreen-display-tab t

(defcustom elscreen-display-tab nil

にしてやればタブが消えて見た目スッキリ。


以下を.emacs.elに足せばtitleにスクリーンの一覧が表示されるので、クリックでタブを切り替えたりしないのであれば困らない。

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