elscreen 20160613.251(in MELPA)
Emacs window session manager

概要

elscreen.el は古くからあるウィンドウ構成管理Emacs Lispです。

Emacsはたくさんのタスクを同時にこなせるので、
ウィンドウ構成の管理は重要になってきます。

Emacsを使っていると、ウィンドウ構成が変化していきます。

たとえば、文章やコードを書いているときにメールを見ると、
メール用のウィンドウ構成になります。

Twitterを見ていると、Twitter用のウィンドウ構成になります。

そこから再び文章・コードのウィンドウ構成に戻すには手間がかかります。

そこでウィンドウ構成管理Emacs Lispのelscreenの出番です。

僕は初心者時代から windows.el を使ってきていましたが、
今はこのelscreenに乗り換えています。

elscreenを使うと、Emacsは タブエディタ に化けます。

管理しているウィンドウ構成が header-line に書かれて、
わかりやすく切り替えられます。

タブの表示方法は細かく設定できるので、
設定方法にデフォルトの設定を書きました。

自由に変更して試してみてください。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてelscreenを使う方は
以下のコマンドを実行します。

M-x package-install elscreen

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name elscreen

設定 140905083429.elscreen.el(以下のコードと同一)

;;; プレフィクスキーはC-z
(setq elscreen-prefix-key (kbd "C-z"))
(elscreen-start)
;;; タブの先頭に[X]を表示しない
(setq elscreen-tab-display-kill-screen nil)
;;; header-lineの先頭に[<->]を表示しない
(setq elscreen-tab-display-control nil)
;;; バッファ名・モード名からタブに表示させる内容を決定する(デフォルト設定)
(setq elscreen-buffer-to-nickname-alist
      '(("^dired-mode$" .
         (lambda ()
           (format "Dired(%s)" dired-directory)))
        ("^Info-mode$" .
         (lambda ()
           (format "Info(%s)" (file-name-nondirectory Info-current-file))))
        ("^mew-draft-mode$" .
         (lambda ()
           (format "Mew(%s)" (buffer-name (current-buffer)))))
        ("^mew-" . "Mew")
        ("^irchat-" . "IRChat")
        ("^liece-" . "Liece")
        ("^lookup-" . "Lookup")))
(setq elscreen-mode-to-nickname-alist
      '(("[Ss]hell" . "shell")
        ("compilation" . "compile")
        ("-telnet" . "telnet")
        ("dict" . "OnlineDict")
        ("*WL:Message*" . "Wanderlust")))

実行方法

$ wget http://rubikitch.com/f/140905083429.elscreen.el
$ emacs -Q -f package-initialize -l 140905083429.elscreen.el

使い方

使い方はGNU Screenに準拠しています。

他にも、新しいelscreenでファイル・バッファ・diredを開くコマンドもあります。

C-z C-c 新しいelscreenを作る
C-z C-k 現在のelscreenを削除する
C-z M-k 現在のelscreenをバッファごと削除する
C-z K ほかの全elscreenを削除する!
C-z C-n 次のelscreenを選択
C-z C-p 前のelscreenを選択
C-z C-a 直前に選択したelscreenを選択
C-z C-f 新しいelscreenでファイルを開く
C-z b 新しいelscreenでバッファを開く
C-z d 新しいelscreenでdiredを開く

helmから新しいelscreenでバッファを開く

elscreenはそのままでも helm と連携ができます。

helmでバッファを選択するとき、5番目のアクションに
Display buffer in Elscreen
という項目があります。

バッファを選択して<f5>を押せばそのバッファを
新しいelscreenで開けます。

なお、今週のメルマガではこのelscreenを
まったく新しく超簡単な操作性に生まれ変わらせます。

お楽しみに!

20140905085218.png
Fig1: elscreenでタブエディタ化

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。