acmeでコマンド実行結果を挿入

リダイレクトを利用したTipsを二つほど。

例えば、編集中のファイルにタイムスタンプを挿入したいとする。この場合、"< date"と入力してからEscキーを押すと、"< date"が選択状態になるので、中央クリック。選択箇所がdateコマンドの実行結果に置き換わる。

Emacsだと、

  (insert (format-time-string "%a %b %d %H:%M:%S %Z %Y"))

をevalのだろうか。

一々こんなことしてられないので、.emacsにこんな記述を追加しておくのかな。

(define-key ctl-x-map "t" 'my-insert-time)
(defun my-insert-time ()
  (interactive)
  (insert (format-time-string "%a %b %d %H:%M:%S %Z %Y")))

何はともあれ、UNIX的には(Lisp脳に切り替える必要がないので)acmeの方がずっと直感的だ。

次に、ログの監視等であるファイルのtail -fを表示させたいとする。この場合、適当にパネルをnewして、"< tail -f foo" + Escを入力後に、中央クリック。fooに書き込まれた内容がacmeのパネルに表示される。

(追記:2009-05-12)id:yyamanoさんの指摘通り、C-u M-!が同等の機能と言えますね。