Pascal コードの編集
メニューには簡易ヘルプの役割もあるので、pascal-mode にメニューを追加してみた。
キーバインドは、M-x describe-bindings で調べることができますが、emacs-devel に流れていた describe-keymap も便利かもしれない。
(describe-keymap 'pascal-mode-map)
朔弦望
Emacs の calendar から M をタイプすると、朔弦望の日付と時刻を表示したバッファが開きます。これは、calendar-phases-of-moon というコマンドですが、M-x calendar-phases-of-moon では実行できません。もうひとつ、phases-of-moon というコマンドもあって、こちらは calendar の外からでも M-x phases-of-moon で実行できます。
Sunday, November 5, 2006: Full Moon 9:55pm (JST) Monday, November 13, 2006: Last Quarter Moon 2:50am (JST) Tuesday, November 21, 2006: New Moon 7:18am (JST) Tuesday, November 28, 2006: First Quarter Moon 3:30pm (JST) Tuesday, December 5, 2006: Full Moon 9:22am (JST) Tuesday, December 12, 2006: Last Quarter Moon 11:36pm (JST) Wednesday, December 20, 2006: New Moon 11:01pm (JST) Wednesday, December 27, 2006: First Quarter Moon 11:49pm (JST) Wednesday, January 3, 2007: Full Moon 10:54pm (JST) Thursday, January 11, 2007: Last Quarter Moon 9:49pm (JST) Friday, January 19, 2007: New Moon 1:01pm (JST) Friday, January 26, 2007: First Quarter Moon 8:03am (JST)
コマンドを実行すると上のような結果になりますが、非常に分かり難いです。そこで、日本語で表示するように改造してみました。次のように表示されます。
2006年11月 5日(日) 満月 21:55 2006年11月13日(月) 下弦 02:50 2006年11月21日(火) 新月 07:18 2006年11月28日(火) 上弦 15:30 2006年12月 5日(火) 満月 09:22 2006年12月12日(火) 下弦 23:36 2006年12月20日(水) 新月 23:01 2006年12月27日(水) 上弦 23:49 2007年 1月 3日(水) 満月 22:54 2007年 1月11日(木) 下弦 21:49 2007年 1月19日(金) 新月 13:01 2007年 1月26日(金) 上弦 08:03
phases-of-moon と同様、今月を中央にした前後1か月の朔弦望の日付と時刻が表示されます。同じく、引数付きで実行すると年月を指定できます。 リストアップされた時刻の誤差は数分内の精度だそうです。朔弦望については、国立天文台のサイトで調べられます。
リンク:国立天文台> 暦計算室> 暦要項
HTML 4.01仕様書を読む
ポイント位置の単語を拾ってブラウザでHTML 4.01仕様書の該当個所を開きます。
インストール
(require 'html-spec)
設定
ローカルにダウンロードした仕様書の置いてあるパスを指定できます。
(setq html-spec-path "~/lib/rec-html401j")
html-spec-path の初期値は nil なので、その場合参照する仕様書のURLは http://www.w3.org/TR/html401/ になっていますが、変更できます。
(setq html-spec-url "http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j")
ブラウザを指定できます。以下は emacs-w3m で参照する場合。
(setq html-spec-browser-function 'w3m-goto-url)
Emacs内でブラウズするとき、ウインドウを分割して参照することができます。
(setq html-spec-browse-one-window nil)
コマンド
html-spec-browse を適当なキーにバインドするとよいでしょう。
(define-key sgml-mode-map (kbd "C-c C-/") 'html-spec-browse)
使用法
拾った単語が属性の場合、要素名を指定するためミニバッファにフォーカスします(補完できます)。
Web Safe カラーの挿入
設定
(require 'wscolors)
起動
M-x list-wscolors-display または M-x wscolors-display
コマンド
wscolors-mode-map ----------------- key binding --- ------- C-c Prefix Command C-l wscolors-recenter SPC scroll-up Q wscolors-exit a wscolors-beginning-of-line b wscolors-backward e wscolors-end-of-line f wscolors-forward l wscolors-recenter n wscolors-next o other-window p wscolors-previous q wscolors-quit r wscolors-inverse v scroll-down w wscolors-copy <follow-link> mouse-face <mouse-2> wscolors-insert C-c RET wscolors-insert
不可視の行の継続
アウトラインモードなどで、不可視の行が継続していることを表わす`...'をカスタマイズできることがわかった。次のようなことをすればいいようだ。
;; (info "(elisp)Display Tables") ;; selective-display か 4 を指定する。 (let* ((face 'font-lock-function-name-face) (v (vconcat (mapcar (lambda (c) (logior c (ash (face-id face) 19))) '(2231 2231 2231))))) (set-display-table-slot standard-display-table 'selective-display v))
psgml-mode でタグの開始位置と終了位置を着色する
マイナーモードです。M-x psgml-intag で enable と disable をトグルします。

;; 設定 (require 'psgml-intag)