テキストファイルの埋め込み、取り出しの utilityです。テキストファイルを埋め込む yab と、取出すための yax からなっています。元は日経 MIX あたりで規約がまとめられたようなのですが、AWK 版、Perl 版、VZ 版など、いろいろ揃ってます。 ここで説明するのは Emacs Lisp 版です。 因みに、数少ない自作マクロの一つです。
yab の方は、起動すると挿入するテキストを聞いてくるので、ファイル名を答えます (勿論、補完がききます)。 すると、カーソル位置に
------^ test.doc ( date:96-03-25 time:02:40 ) --------------< cut here 私は基本的にプログラミングを知らない人間なので、 変なことをやってるかも知れません。御指摘下さると 嬉しいです。 ------$ test.doc ( lines:3 ) -------------------------------< cut here
という感じで、そのテキストが挿入されます。その際には TAB はスペースに変換されます。また変数 yabyax-cc-year を nil 以外にしておくと、年が 1996 のように四桁で表示されます。
yax の方は、カーソル以降の一番近い位置にある yabyax 形式のファイルを切り出します。 仕様は次の通り
.emacs
に
(setq yabyax-directory "~/down/")等と書いておくことで指定出来ます。 何も指定しないとカレントディレクトリに書出します。(多分)
BSD 系の touch だと、年が四桁で表示されている場合の time stamp が正確に表示されないかもしれません。 そのときは御一報下さると嬉しいです。
次のファイル yabyax.el を
load-path 上に置き、
バイトコンパイル しておきます。
後は、.emacs
に
(load "yabyax")
とでも書いておけばよいです。例えば、
M-x yabyax-yab-file,
M-x yabyax-yax-file などで起動します。
おまけとして yax-file-other-window という関数も付けてみました。
これは、別ウィンドウのスクリーンに表示されている部分以降の最初の yabyax ファイルを切り出すものです。
ログブラウザを使っている場合には便利でしょう。
更に、おまけとして yabyax-yab-region
という関数も作っておきました。
これは、指定した region を yab 形式で囲むものです。
M-x yabyax-yab-region とするとファイル名を聞いてくるので、入力すると、その時の時刻の yab 形式で囲んでくれます。
頻繁に使う方は .emacs
に
(global-set-key [f6] 'yabyax-yab-file) (global-set-key [f7] 'yabyax-yax-file) (global-set-key [f8] 'yabyax-yax-file-other-window) (setq yabyax-directory "~/news/")
などと書いておくと、よいかもしれません。
標準では、touch を使ったタイムスタンプの書き換え機能は消してあります。
touch
コマンドがある場合は
.emacs
等で次の変数を設定しておくとタイムスタンプを合わせてくれるようになります。
お使いの touch が GNU のものか BSD のものかに合わせて gnu か bsd を指定して下さい。
単に t とすると gnu と解釈されます。
ただし、これらが問題になるのは年が四桁で表示されている場合だけです。
(setq yabyax-touch 'gnu)