テキストファイルの埋め込み、取り出しの 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.el
に
(setq yabyax-directory "~/down/")等と書いておくことで指定出来ます。何も指定しないとカレントディレ クトリに書出します。(多分)
BSD 系の touch だと、年が四桁で表示されている場合の time stamp が正確 に表示されないかもしれません。そのときは御一報下さると嬉しいです。
次のファイル yabyax.el を
load-path 上に置き、
バイトコンパイル しておきます。
後は、.emacs.el
に
(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.el
に
(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.el
等で次の変数を設定しておくとタイムス
タンプを合わせてくれるようになります。お使いの touch が GNU のものか
BSD のものかに合わせて gnu か bsd を指定して下さい。単に t
とすると gnu と解釈されます。ただし、これらが問題になるのは年が四桁で
表示されている場合だけです。
(setq yabyax-touch 'gnu)