[FrontPage] 更新履歴 - サイトマップ - "XEmacsEditClient" 配下のコンテンツ - 過去を発掘 | [Snap.Shot]

to FrontPage XEmacsEditClient

(Tue, 09 Apr 2002 05:37:21 GMT+9)

XEmacsのxemacs-editclient

これは何かというと、Windowsのエディタ「秀丸」や「WZ Editor」でいうところの常駐機能を実現するためのコマンド。

通常のxemacsコマンドの代わりに実行すると、常駐するためのxemacsサーバ(という呼び方をすればいいのかな)が起動して、そちらに制御を渡す。2回目以降からは重た〜いxemacsの起動から解放されて、すぐにファイルが開いてくれるという仕掛け。

副作用として、xemacs-editclient自身はプロセスをすぐに解放する。つまり、エディタプロセスの終了をwaitして、終了した時点で編集完了と認識するようなプロダクトでは、思い通りに動いてくれない。(CVSの$CVSEDITORに設定するなど)

いちおう、これを回避するためのセコセコPerlスクリプトを書いた。こんなの。

#!/usr/bin/perl

use File::stat;

my $start_stat = stat($ARGV[0]);

exit(0) unless($start_stat);

# start editor my $result = system("xemacs-editclient $ARGV[0]");

while(!$result) { sleep(2); my $now_stat = stat($ARGV[0]);

last unless($now_stat); last if($now_stat->mtime != $start_stat->mtime); };

これは、ファイルが修正されたのを検知して終了してくれる。でもこれにも弊害があって、ファイルを変更しないで終了すると無限ループに陥っちゃう。(今はとりあえずC-cで抜けている)

うまい方法はないものか。

  HelpPage メールでコメント

© 2000-2012 Yukimasa TAKANO, all RIGHTs reserved.