κeenです。Lisp Advent Calendarはもう枠埋まっちゃったので普通にブログで。 コマンドラインから実行可能なLispファイルをそれなりに多くの処理系で動くように作る話。 この話はCIMの生い立ちとも関連するんだけどシェルからLispを使いたいときは #!/usr/bin/env sbcl --script ... なんて書いてた人も多いんじゃないかと思うんだけどこれは色々問題がある。 envは環境に依っては/usr/local/bin/envだったりする envは環境に依っては複数引数を取れない。“sbcl –script"という名前のファイルを捜しにいく sbclでしか動かない この問題の扱いは一応解決策がある #!/bin/sh #| exec sbcl --script "$0" -- "$@" |# ... 3行目の#|がシェルのコメントでありLispのブロックコ
今回はこのバッチモードでのEmacs Lispに焦点を当てて,テキストを処理するスクリプトやサーバーデーモンを書くためのテクニックを紹介したいと思います. ■■ バッチモードでの標準入出力 バッチモードでは一部の関数が標準入出力を扱うための関数に変化します.早速おきまりのスクリプトを書いてみましょう(リスト1). ------------------ <リスト1> hello.el (princ "Hello, world.\n") ------------------ princ関数は第一引数を標準出力に出力する関数です.このスクリプトを実行するにはターミナル上でEmacsを起動します(リスト2). ------------------ <リスト2> % emacs --script hello.el Loading subst-ksc... oading subst-gb2312...
今年最後のポストがコレってのもどうかと思いましたが 今回はemacs lispを扱います。 短いスクリプトなら --batch --eval $ emacs --batch --eval '(print (+ 2 (* 6 3)))' 20計算機代わりに使えますね。 外部スクリプトを読むときには --script (emacs 23以降) (princ "Hello, World!") $ emacs --script hello.el Hello, World!この程度だと旨味がないですが…… emacsの特徴であるbufferを使うと、文字列の移動、カーソル移動を使うこなしてスバラシイ結果を得る事ができます。 若葉マーク故、綺麗じゃないですが...... dquote.el (with-temp-buffer (insert-file-contents-literally (car a
Recent entries 宣伝:C/C++のための開発補助ツール、GCCSenseをリリースしました matsuyama 2010-04-15 宣伝:Rubyのための開発補助ツール、RSenseをリリースしました matsuyama 2010-03-21 Emacsは死んだ matsuyama 2010-02-22 WebアプリケーションをiPhoneに対応させるための技術メモ matsuyama 2009-10-13 tokyo-emacs#x02の個人的レポート matsuyama 2009-09-07 Recent comments replica louis vuitton Anonymous User 2010-12-22 Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました Anonymous User 2010-12
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く