acmeとwin
acmeでwinを実行(タグかどこかに"win"と書いて,中央ボタンをクリック)するとシェルが起動する.Emacsでいうところのシェルモードのようなものだが,acmeの各ウィンドウ(Emacsのバッファ)はファイルとして抽象化されているので,いろいろ変わったことができる.
/mnt/acmeがacmeが提供している名前空間で*1,数字が各ウィンドウに対応している.詳細はacme(4)を参照しててね.
cpu% lc /mnt/acme 1 3 acme consctl editout label 2 9 cons draw index new cpu% lc /mnt/acme/1 addr ctl editout event tag xdata body data data errors rdsel wrsel
例えば,ウィンドウ1の内容を出力するときは,1/bodyというファイルをcatすればよい.
cpu% cat /mnt/acme/1/body
また,コマンドの出力を新しくウィンドウを作って,そこに出力する場合は,[0-9]*/bodyの代わりにnew/bodyへリダイレクトすればよい.
cpu% grep qlock *.c > /mnt/acme/new/body
さらに,ウィンドウ1を閉じる場合は,1/ctlにイベントをcatすればよい.
cpu% echo del > /mnt/acme/1/ctl
*1:同様にrioが提供する名前空間は,rioウィンドウシステムで見た.これがPlan9スタイルのアプリケーション.