ElScreen

[ 日本語 | 英語(English) ]

News

2008/09/14

  • ElScreen-howm 0.1.3を公開しました。
    • ニックネームの一部にhowmのセクション名が含まれるようになりました。

2008/05/28

  • Takashi Masudaさんによる、ElScreen-Mewへのリンクを追加しました。

2007/12/30

  • ElScreen 1.4.6を公開しました。
    • elscreen-display-tabの挙動が変わりました。tを指定すると自動幅のタブを表示、数値を指定すると固定幅のタブを表示、nilを指定するとタブを非表示となります。これにともない、elscreen-tab-widthは廃止されました。
    • elscreen-tab-display-kill-screenの挙動が変わりました。'leftまたは'rightを指定すると、”[X]“アイコンがそれぞれタブの左右に表示されます。また、nilを指定するとアイコンは非表示になります。
    • “[X]“アイコン上のM-mouse-1が(elscreen-kill-screen-and-buffers)に割り当てられました。
    • dedicated windowに関する問題を修正しました。
    • delete-frameに関する問題を修正しました。

2007/11/23

  • ElScreen-server 0.2.0を公開しました。
    • 選択されているフレームがdedicatedである場合に、デフォルトでdframe-attached-frameを利用するようになりました。例えばSpeedbarを利用している場合に有用です。また、この動作は設定で変更可能です。

2007/11/19

  • ElScreen-ColorTheme 0.0.0を公開しました。
    • ElScreen用のfaceが定義されていない場合、自動的にそれっぽいface を自動的に設定します。

2007/11/18

  • ElScreen-Speedbar 0.0.0を公開しました。
    • Speedbarからファイルを開くときに、必要に応じてあたらしいスクリーンを作成します。
    • dframe-power-click (通常はS-mouse-1)でオリジナルの動作になります。

2007/11/07

  • ElScreen-GF 1.5.3を公開しました。
    • 検索を開始したポイントを履歴に保存するようになりました。 C-z C-g uで履歴をたどって元に戻ることができます。
    • 内部でsedを使わなくなりました。
    • 古い形式のバッククオートを排除しました。
    • その他、次期バージョンに向けて整理しました。

2007/11/03

  • ElScreen-WL 0.8.0を公開しました。
    • screenの名称に草稿バッファのサブジェクトを追加しました。
    • 返信または転送で草稿バッファが準備されたあとで、正しくサマリバッファのウィンドウが選択されるようになりました。
    • 古い形式のバッククオートを排除しました。

2007/10/12

  • ElScreen-server 0.1.0を公開しました。
    • r1.131以降のserver.el (multi-ttyサポート後)との互換性を確保しました。
    • server.el/gnuserv.elがロードされるよりも前にロードしても、 正しく動作するようになりました。

過去のNews

Introduction

Emacsは環境としてさまざまな用途に使えるため、 ひとつのEmacsで複数の仕事を同時に行うことがよくあります。 予定表を確認しながらWanderlustMewで複数のメールを書いたり、 irchatで打ち合わせをしながらコードを書いたり、といった場合です。

このような使い方をしていると、しばしば 「『今の状態(*)』を保存したまま別のバッファに移りたいなぁ」 という状況に出会うことでしょう。 (*)は、ウィンドウの分割のされ方やそれぞれのウィンドウに割り当てられるバッファなどの設定のことで、正確には window-configuration といいます。

あまり知られていませんが、 Emacsには window-configuration-to-register / jump-to-register という関数が用意されていて、 window-configuration を保存したり復元することができます。 しかしこれらのインターフェイスは原始的なもので、 とても使いやすいものとは言えません。

ElScreenは window-configuration-to-register / jump-to-register と同様のことを、 GNU Screenのようなより洗練されたインターフェイスで提供することを目的としたものです。 例えば、ElScreenを使えばC-z C-aという非常に短いシーケンスで以下のふたつのスクリーン(window-configuration)を切り替えることができます。

Screen 0 (Wanderlust) >>
<<
Screen1 (w3m)

Features

ElScreenは以下のような特徴を持っています。

  • GNU Screenライクなキーバインド
  • タブを利用したマウスでのスクリーン操作
  • メニューを利用したマウスでのスクリーン操作
  • 最大10個のスクリーン(window-configuration)を保持
  • フレームごとに独立したスクリーン管理
  • わかりやすいスクリーン一覧表示
  • スクリーンへの別名の割り当て
  • アプリケーションから利用しやすいインタフェイス

Environment

ElScreenの動作が確認されているEmacsは以下のものです。 なお、動作にはAPELが必要です。

  • GNU Emacs 22.0.90
  • GNU Emacs 22.0.50 (Meadow 3.00-dev)
  • GNU Emacs 21.4
  • GNU Emacs 21.3
  • GNU Emacs 21.2
  • XEmacs 21.5
  • XEmacs 21.4

Emacs 20での動作は保証しません。

Tips

Prefixキーのえらびかた

ElScreenのprefixキーのデフォルトはC-zです。

このC-zというキーには、 iconify-or-deiconify-frame(またはsuspend-emacs)が割り当てられています。 ウィンドウ環境でアイコンにしたり、 逆にアイコンから復帰したりするために使います。 ターミナルではサスペンドですね。 こんな重要な機能が割り当てられているキーを奪っても平気なのでしょうか?

実はiconify-or-deiconify-frame(またはsuspend-emacs)は、 C-x C-zにも割り当てられていたりします。 C-zのかわりにこのキーを使うことにすれば、 C-zをElScreenのprefixとして利用しても大きな問題にはなりません。

もちろん、C-zはゆずれない! という場合も、 ElScreenを読み込む前にelscreen-prefix-keyを設定すれば、 prefixキーを変更することができます。

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

ElScreenの動作中にPrefixキーを変更する

上記のように、 ElScreenを読み込む前であれば、 elscreen-prefix-keyでPrefixキーを変更できます。 では、すでにElScreenが読み込まれている場合はどうすればいいでしょうか。 この場合には、以下のようにelscreen-set-prefix-keyを使います。

(elscreen-set-prefix-key "\C-t")

.emacsが読み込まれる前にElScreenが読み込まれてしまうような環境では、 上記の設定を.emacsファイルに追加するとよいでしょう。

自動でスクリーンを作りたい?

C-z C-nやC-z C-pで移動しようとしたとき、 スクリーンが1枚しか無ければメッセージを表示します。 ここで、自動的にスクリーンを作ってほしいのであれば、 以下のようなコード片をEmacsの設定ファイルに書いておくといいでしょう。

(defmacro elscreen-create-automatically (ad-do-it)
  `(if (not (elscreen-one-screen-p))
       ,ad-do-it
     (elscreen-create)
     (elscreen-notify-screen-modification 'force-immediately)
     (elscreen-message "New screen is automatically created")))

(defadvice elscreen-next (around elscreen-create-automatically activate)
  (elscreen-create-automatically ad-do-it))

(defadvice elscreen-previous (around elscreen-create-automatically activate)
  (elscreen-create-automatically ad-do-it))

(defadvice elscreen-toggle (around elscreen-create-automatically activate)
  (elscreen-create-automatically ad-do-it))

frame-titleにスクリーンの一覧を表示する

タブは邪魔なので消したいけど、スクリーンの一覧は表示したい… というわけで、 frame-titleにスクリーンの一覧を表示したいと思う方も多いようです。 この場合は、次のようなコード片が役に立つでしょう (Evgeny V. Oleynik氏からのご指摘により、 可能な場合はset-frame-nameを利用するように変更しました)。

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

Add-On Software

ElScreenには、ElScreenで動作することを前提としたアプリケーションや、 Emacs上で動作するアプリケーションをElScreenで動作させるためのAdd-Onがあります。

ElScreen-GF

既存のソフトウェアのソースを読むときには、 キーワードを追跡する回数が多くなります。 たとえば、 「この変数が変更されている場所はどこだろう」などと云う場合です。 この作業を軽減するためのソフトウェアがいくつか公開されていますが、 ElScreen-GFはそれらに対するEmacsインタフェイスを提供します。 現在サポートしているのは、

です。 もともと、 ElScreen-GFはID UtilsのEmacsインタフェイスとして開発されました。 ElScreenはElScreen-GFで利用されるために開発されたと云っても過言ではありません。

なお、1.5.0からはXEmacsでも動作するようになりました。

ElScreen-dired

Emacsを利用しているひとなら、 多かれ少なかれdiredのお世話になっているのではないでしょうか。 また、普段は使わなくても、 find-fileしたときに誤ってdiredに突入してしまった、 というかたもいるでしょう。 dired-modeでは、 oがdired-find-file-other-windowにbindされています。 これは、分割されたもう一方のwindowで選択したエントリを開く関数ですが、 選択したエントリがファイルの場合、 できればあたらしいscreenで開いてほしいものです。

ElScreen-diredははたったひとつのadviceからできていますが、 上記の機能を実現するものです。

ElScreen-server

起動中のEmacsに対して、外部からファイルを開きたいときがあります。 このようなことを可能にするため、 GNU Emacsにはemacsclientという仕組みがあります。 また、gnuservという高機能版もあり、 これはGNU Emacs/XEmacsのどちらでも利用できます。

ElScreen-serverを利用すれば、 emacsclientやgnuservでファイルを開いた際にも、 あたらしいscreenが必要に応じて自動的に作成されます。

ElScreen-dnd

ある種のウィンドウ・システムでは、 ファイル・マネージャからEmacsenにDrag & Dropすることで、 新規にファイルを開くことができます。 たとえばMacOS X上でのCarbon Emacsや、 Windows上でのMeadowなんかはその代表格でしょうし、 最近のX Window System上で動くEmacsでも、 環境によってはDrag & Dropできることも少なくありません。

ElScreen-dndを使うと、 ファイルをDrag & Dropした際、 必要に応じてあたらしいscreenを作成します。

ElScreen-Speedbar

Speedbarは特別なフレームを使ってファイルを簡単に扱うようにするためのツールです。ElScreen-Speedbarを使うと、Speedbarからファイルを開くときに、必要に応じてあたらしいスクリーンを作成するようになります。また、Shiftを押しながらの”power click”はスクリーンを使わないオリジナルの動作になります。

ElScreen-WL

Emacs上で動作するMUAはいろいろありますが、 そのなかにWanderlustがあります。

ElScreen-WLは、 Wanderlustのドラフト・バッファをElScreenで管理するためのAdd-Onです。 新規にメールを書くとき、あるいはメールに返事をするときには、 ドラフト・バッファのためにあたらしくscreenが生成されます。 また、ドラフト・バッファをkillしたり、 メールを送信してドラフト・バッファが閉じられるときには、 自動的にscreenが閉じられます。

ElScreen-W3M

Emacs-W3Mは、テキストブラウザw3mを利用したEmacs上で動作するWebブラウザです。 ElScreen-W3Mはブラウザの画面をElScreenで管理するためのAdd-Onです。 Emacs-W3Mではもともとバッファ管理をおこなっていますが、 それをElScreenに統合した感じになります (といってもやってることは知れてますが…)。

ElScreen-howm

Emacsは本来エディタですから、メモ取りなんかはお手のものです。 しかし、とったメモをうまく管理できるかどうかは別問題。 結局うまく整理できなくて、メモを活かしきれてないひとも多いかもしれません。 そんなときは、 howm(一人お手軽 Wiki もどき) を使ってみるのはいかがでしょうか? 全文検索や、メモとメモのリンクが簡単にできて、 なかなか重宝します。

ElScreen-howmを使うと、 メモの編集時に自動的にあたらしいscreenを開きます。 また、メモをC-c C-cで保存することができ、 この場合はbufferとscreenを同時に閉じます。 さらにおまけ機能として、 bufferを空にしてC-c C-cすると、対応するファイルを自動的に削除します。

ElScreen-Goby

みなさんは、 Gody を知っていますか? Emacs上で動作するプレゼンテーション・ツールです。 私は特にヘビー・ユーザでもないのですが、 お手軽なのでたまに使います。

さて、Gobyでview-modeに入ったとき、ElScreenをtabつきで使っていると、 せっかく全画面なのにtabが残ってしまいますね。 できれば、view-modeでは自動的に消えてほしいものです。 本来は、 特定のモードでtabを消すというような設定がElScreen側でできるといいのですが、 ちょっと手抜き対処してしまったのがElScreen-Gobyです。 そのうちなくなってしまうかもしれないplug-inですが、 とりあえず(あまりいないと思うけど)困っている人がいるかもしれないので…

ElScreen-ColorTheme

ColorThemeは数多くの色テーマを簡単に切り替えるためのパッケージです。しかし、公開されている多くのテーマにはElScreen用のfaceが定義されていません。ElScreen-ColorThemeを使うと、ElScreen用の定義がないテーマを選択したときに、それっぽいfaceを自動的に生成して適用します。

Download

ElScreen
最新版は1.4.6 (2007/12/30)です。
ElScreen-GF
最新版は1.5.3 (2007/11/07)です。
ElScreen-dired
最新版は0.1.0 (2005/11/20)です。
ElScreen-server
最新版は0.2.0 (2007/11/23)です。
ElScreen-dnd
最新版は0.0.0 (2005/12/17)です。
ElScreen-Speedbar
最新版は0.0.0 (2007/11/18)です。
ElScreen-WL
最新版は0.8.0 (2007/11/03)です。
ElScreen-W3M
最新版は0.2.2 (2006/07/26)です。
ElScreen-howm
最新版は0.1.3 (2008/09/14)です。
ElScreen-Goby
最新版は0.0.0 (2005/09/12)です。
ElScreen-ColorTheme
最新版は0.0.0 (2007/11/19)です。

(ダウンロード)

Related Link(s)

ElScreen-Mew

ElScreen環境下でMew-5.2以降を利用すると、ウィンドウの分割状態が崩れて しまうことがあるようです。これを修正するAdd-onを、Takashi Masudaさんにこちらで公開していただきました。