ElScreen
[ English | Japanese ]
News
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がロードされるよりも前にロードしても、 正しく動作するようになりました。
2006/12/06
- ElScreen 1.4.5を公開しました。
- Emacs 21およびXEmacsで発生する問題を修正しました。
2006/12/01
- ElScreen 1.4.4を公開しました。
- XEmacsでタブをサポートしました。
- 新規スクリーン作成タブが廃止され、制御タブになりました。 3ボタンマウスでは、 真ん中のボタンであたらしいスクリーンを生成できるのに加え、 右と左のボタンでスクリーンを切り替えることもできます。
- 細かな不具合修正と、若干の内部構造変更が加えられています。
2006/11/11
- ElScreen-GF 1.5.2を公開しました。
- GNU GLOBALをサポートしました。
- IDファイルが生成されていない状態でgidを実行すると、 IDを作成するか、または、 gidの代わりにgrepを実行するかを選択できるようになりました。
- いくつかの細かな不具合を修正しました。
2006/07/26
- ElScreen-W3M 0.2.2を公開しました。
- faviconの読み込みが終了したら、 確実にタブに表示されるようにしました。
2006/07/25
- ElScreen-howm 0.1.0を公開しました。
- howm 1.3.3に移行しました。 howm 1.3.2以前を使っている方は、 ElScreen-howm 0.0.1をご利用ください。
- ElScreen-server 0.0.1を公開しました。
- gnuservで、 ディレクトリが指定されたときにエラーになる不具合を修正しました。
- gnuservで、あたらしいフレームが生成されるのを抑制しました。
2006/02/19
- ElScreen-WL 0.7.0を公開しました。
- ElScreenのタブにBiffアイコンを表示するようになりました。
2006/01/03
- ElScreen-GF 1.5.1を公開しました。
- Windows環境で無限ループに陥る不具合を修正しました。
2005/12/26
- ElScreen-GF 1.5.0を公開しました。
- 検索キーワードで正規表現を指定することができるようになりました。
- cscopeに対応しました(<prefix> C-g c)。
- キーワード・データベース(IDやcscope.out) が保存されているディレクトリを探すようになりました。 ElScreen-GFバッファでは、 このディレクトリからの相対パスでファイル名を表示します。
- XEmacsで動作するようになりました。
- (elscreen-gf-grep-quit)が追加されました。 grepやgid、cscopeのプロセスを停止できます(C-g)。
- (elscreen-gf-mode-exit)が追加されました。 ElScreen-GFバッファを消去し、 必要に応じてwindowやscreenも削除します。
2005/12/21
- ElScreen-WL:im-wlで非同期送信を利用している場合の動作に問題があります。 対応までしばらくお待ちください。
2005/12/17
- ElScreen 1.4.3を公開しました。
- <prefix> gに割り当てられていた(elscreen-select-and-goto)は、 <prefix> "に変更されました。 これは、GNU Screenとの操作性面における互換性を高めるためです。
- GNU Emacs 21でタブが更新されない場合がある不具合を修正しました。
- (make-frame)の前後でcurrent-bufferが変化する不具合を修正しました。
- 他にもいくつかの内部的な変更があります。
- ElScreen-dnd 0.0.0を公開しました。
- ElScreen-W3M 0.2.0を公開しました。
- 全面的に書き直されました。 その結果、ElScreenのタブをうまく利用できるようになりました。
- ElScreen-howm 0.0.1を公開しました。
- (howm-create)でgotoリンクが自動的に挿入されない不具合を修正しました。
2005/12/09
- ElScreen 1.4.2を公開しました。
- 全体のパフォーマンスがかなり向上しました(たぶん)。
- (elscreen-clone)が追加されました(<prefix> C)。
- (elscreen-kill-screen-and-buffers)が追加されました(<prefix> M-k)。
- (elscreen-dired)が追加されました(<prefix> d)。
- Emacsenの起動時に-eまたは
--elscreen-funcallが使えるようになりました。
たとえば、
emacs -e wl -e w3m
というような使い方ができます。
2005/11/24
- ElScreen-GF 1.4.1を公開しました。
- 検索パターンが行の先頭から始まっている場合、 jump後にエラーになる不具合を修正しました。
- (elscreen-gf-execute-grep)などの挙動を改善しました。
2005/11/22
- ElScreen 1.4.1を公開しました。
- (elscreen-find-and-goto-by-buffer)は、 指定されたバッファを表示しているwindowを選択するようになりました。
- (elscreen-find-file-read-only)が追加されました (<prefix> C-r)。
2005/11/20
- ElScreen 1.4.0を公開しました。
- 名前や挙動が変わった関数があります。
- <prefix> gが使いやすくなりました。
- 複数のファイルを指定してEmacsを起動した際に、 個別のscreenを開くようになりました。
- ElScreen-GF 1.4.0を公開しました。
- 大きく書き直されました。
- ElScreen-GF modeでハイライトするようになりました。
- ElScreen-GF modeで前後のファイルにスキップできるようになりました。
- ElScreen-server 0.0.0を公開しました。
- ElScreen-howm 0.0.0を公開しました。
- 以下のAdd-onを更新しました。
これは、ElScreenの関数変更にともなうもので、
機能的な変更はありません。
- ElScreen-dired 0.1.0
- ElScreen-WL 0.6.0
- ElScreen-W3M 0.1.0
Introduction
Emacsは環境としてさまざまな用途に使えるため、 ひとつのEmacsで複数の仕事を同時に行うことがよくあります。 予定表を確認しながらWanderlustやMewで複数のメールを書いたり、 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)を切り替えることができます。
|
→ ← |
|
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.0 (2006/07/25)です。
- ElScreen-Goby
- 最新版は0.0.0 (2005/09/12)です。
- ElScreen-ColorTheme
- 最新版は0.0.0 (2007/11/19)です。
(ダウンロード)