Tips


back

Pascal コードの編集

メニューには簡易ヘルプの役割もあるので、pascal-mode にメニューを追加してみた。
キーバインドは、M-x describe-bindings で調べることができますが、emacs-devel に流れていた describe-keymap も便利かもしれない。

(describe-keymap 'pascal-mode-map)

pascal-menu.el

pascal-menu.png


朔弦望

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か月の朔弦望の日付と時刻が表示されます。同じく、引数付きで実行すると年月を指定できます。 リストアップされた時刻の誤差は数分内の精度だそうです。朔弦望については、国立天文台のサイトで調べられます。

phases-of-moonj.el

リンク:国立天文台> 暦計算室> 暦要項


HTML 4.01仕様書を読む

html-spec.el

ポイント位置の単語を拾ってブラウザで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 カラーの挿入

wscolors.ong

wscolors.el

設定

(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 でタグの開始位置と終了位置を着色する

psgml-intag.el

マイナーモードです。M-x psgml-intag で enable と disable をトグルします。

psgml-intag.png
;; 設定
(require 'psgml-intag)

Last modified: Wed Feb 27 15:31:31 JST 2008
Copyright (C) 2007 Kazushi NODA All Right Reserved.

Valid HTML 4.01 Transitional Valid CSS