conv-el は機能拡張に伴なうコンセプト変更のため filter-mode for emacs に改称致しました。今後はそちらをお使い下さい。
conv-el はカレントバッファに読み込んだ、スクリプトに対して、その標準入
出力となるバッファを用意し、emacs の内側で、スクリプトや入力データを編
集しつつスクリプトを実行することを可能とするマイナーモードです。
評価するスクリプトは、先頭行が #!/path/to/cmd で始まる、いわゆるスク
リプト言語であれば、何でも実行できる筈です。
と思って sed から順に試したら、最初の sed がしっかり動きませんでした。(爆
順次各種言語に対応の予定です。
次のような用途を想定して書きました。
なお、本作は データ変換器 を知って、 着想したものであります。
後述しますが、今後の課題として、このバックエンドになる、スクリプトの 自動倉庫のようなもの構想があります。
ここにある tarball を開梱して、以下のようにする。
% make install # ~/elisp/conv-el/ 以下にインスコ
;;; 20061005 conv-mode (add-to-list 'load-path "~/elisp/conv-el/") (require 'conv) (global-set-key [(control ?x) (shift ?c)] 'conv-mode) ; これはお好みで
http://i94.photobucket.com/albums/l110/itsumi3/MySoft/tmpinit.jpg
実行するスクリプトバッファから、推奨キーバインドなら C-x C で conv-mode マイナーモードが有効になり上の画面となる。
スクリプトが表示されているウインドウを「スクリプトウインドウ」、その上の 今は "# Enter Input on this buffer." と表示されているウインドウを、「標準入力 ウインドウ」と呼ぶことにする。
この状態で、「標準入力ウインドウ」や「スクリプトウインドウ」の内容を 適宜編集することができる。
なお、「標準入力ウインドウ」 に表示されている、"# Enter Input on this buffer." というメッセージは、なにか入力しようとすると消える。
http://i94.photobucket.com/albums/l110/itsumi3/MySoft/tmpmenu.jpg
conv-mode 用のメニューは、通常はメニューバーの左端から二番目に出る。 このメニューからの conv-mode のすべての操作が可能である。
http://i94.photobucket.com/albums/l110/itsumi3/MySoft/tmpexec.jpg
後述する実行(conv-exec) 操作をすると、スクリプトウインドウの下に、出力を表示する 「標準出力ウインドウ」が出現し、出力が表示される。
http://i94.photobucket.com/albums/l110/itsumi3/MySoft/tmpexec1.jpg
実行 (conv-exec) した後に、そのまま続けて、入力やスクリプトを編集して、更に実行を繰返すことができる。
この場合、出力は追記されるのではなく、毎回更新される。
(call-process script-cmd input-file-name t nil script-file-name)
動作/不動作報告、問題報告、変更提案、御要望などは、他のユーザの方とも 情報共有できるように、なるべく こちら へのコメントとして 下さるようお願い致します。
(defun conv-exec (begin end program script)
(interactive (list (region-gbeginning) (region-end)
(read-file-name "Program: ")
(read-file-name "Script: ")))
(let ((buffer (generate-new-buffer "*OUTPUT*")))
(call-process-region begin end program nil buffer nil script)
(pop-to-buffer buffer)))
