[トップ] [更新履歴] [著書] [コンピュータ] [ゲーム] [CGI配布]
ChangeLogとはソフトウェアの変更履歴を書くためのテキストの形式だ。 たとえばこんな感じに。 これはRubyのChangeLogを抜き出したものである
Tue Dec 25 23:28:47 2001 Yukihiro Matsumoto <matz@ruby-lang.org> * stable version 1.6.6 released. Tue Dec 25 18:32:16 2001 K.Kosako <kosako@sofnec.co.jp> * re.c (rb_reg_search): initialize taint status of match object.
特徴としては、最初に日付(時刻)と名前がくる。 そしてその下に「[TAB] *」による箇条書きをする。 いたってシンプルな形式だ。
幸いemacsではC-x 4 aで簡単にChangeLogを書くことができる。
で、この手軽さを逆手に取ってメモ書きにChangeLogを使ってやろうというのがChangeLogメモだ。 俺も使っている。 詳細は高林さんのゆにまが連載の原稿に詳しく書かれているのでそこを見てくれ。
ChangeLogメモは非常に手軽で便利なのだが、リンク機能が欲しくなったので追加してみた。 いってみれば「ひとりwikiもどき」だ。 リンクタグを挿入することで、ファイルや任意のメモにジャンプすることができるようになった。
次のように .emacs に書く。これで「C-x M」でclwikiが起動する。
(autoload 'clwiki "clwiki" "ChangeLog wiki-modoki." t) (define-key ctl-x-map "M" 'clwiki)
clwikiを終了し、以前の作業画面に戻る。メモの保存も行われる。
ファイルへのリンクタグを挿入。
URLへのリンクタグを挿入。
次のリンクタグへジャンプ。
前のリンクタグへジャンプ。
テキストブロックを作成。
clwikiのリンクタグは「{{<」で始まり「>}}」で終わる文字列だ。 例をあげれば次のような文字列である。
{{<file:foo.txt>}}
{{<file:~/.emacs>}}
{{<http://www.rubyist.net/~rubikitch/>}}
{{<ftp://ftp.ruby-lang.org/>}}
{{<block:tag12345-6789-10>}}
fileで始まるのがファイルへのリンク、httpやftpで始まるのがURLへのリンク、blockで始まるのがテキストブロックへのリンク。
ChangeLogというものはファイル上部から新しく追加されるようになっている。 すなわち、最後尾から追加されることはないということだ。 俺はそこに着目した。 そう、ChangeLogの最後尾に任意のテキストを追加できるのだ。 それがテキストブロック。
C-c C-bでテキストブロックへのリンクがつくられ、テキストの入力をすることができる。 そのときタグ名が聞かれるが、そのままEnterを押せば勝手に付けてくれる。
clwiki-modeにしたときに実行されるhook。 たとえば次のようにするとC-jで前のリンクタグへジャンプできるようになる。
(defun clwiki-mode-hook0 () (define-key clwiki-mode-map "\C-j" 'clwiki-previous-tag) ) (add-hook 'clwiki-mode-hook 'clwiki-mode-hook0)
(拡張子 . 起動するプログラム)のリスト。 `clwiki-open-file-by-extension' で使われる。 .emacsで設定しよう。
例:このように指定すると画像に対して画像ビューワ、htmlに対してw3mが立ち上がる
(setq clwiki-viewer-program-alist
'(("jpg" . "imgview")
("gif" . "imgview")
("png" . "imgview")
("swf" . "imgview")
("html" . "w3mclient.rb")
("htm" . "w3mclient.rb")
))
fileリンクをクリックしたときにそのファイルを開く関数を指定する。 引数にファイル名を取る。 デフォルトは拡張子別にプログラムを起動する `clwiki-open-file-by-extension' を起動する。 ファイルを別なロジックで開きたいとき、関数を定義して、この変数にセットしよう。
clwiki.elの変更に対応。 clwiki-modeをclmemo-modeを継承するように。
.clwファイルはclwikiファイルとみなすようにした。その他bugfix。
拡張子別にコマンドを起動できるようにした。その他bugfix
初公開