acmeとwin

acmeでwinを実行(タグかどこかに"win"と書いて,中央ボタンをクリック)するとシェルが起動する.Emacsでいうところのシェルモードのようなものだが,acmeの各ウィンドウ(Emacsのバッファ)はファイルとして抽象化されているので,いろいろ変わったことができる.
/mnt/acmeacmeが提供している名前空間*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スタイルのアプリケーション.