emacs - みる会図書館


検索対象: UNIX MAGAZINE 1993年5月号
42件見つかりました。

1. UNIX MAGAZINE 1993年5月号

emacs 入門 ,/へ0/ N 図ー Egg とかな漢字変換サーバーの関係 かな漢字変換要求 図 2 Egg のモード Nemacs Egg ノヾッケージ diced-mode 辞書の操作をおこなうモード edit-dict-item diced-quit かな漢字 変換サーバー 変換結果 れているわけではなく、 Nemacs のソースにパッチを当て る必要があるからです。しかもそのパッチが、どのかな漢 字変換サーバーを利用するかによりそれぞれ異なります。 いきなり、、ソースにパッチ〃なんていわれてもわけが分 からない方は、世の中には、 Egg が使えない Nemacs ーと接続できる Nemacs Wnn サー SJ3 サーバーと接続できる Nemacs Canna サーバーと接続できる Nemacs の 4 種類があって 1 、 Nemacs で Egg を使うときには、そ れぞれ専用の Emacs Lisp プログラムが必要なのだと思 ってください。 どの変換サーバーを使うかは、好みや計算機の制限が関 係すると思います。今回は、一番古くからある Wnn 版 Egg について説明します。 麗子 : 煩わしい説明をしてるけど、けっきよく nemacs っ て打てばいいのよね。 無変換状態 かな漢字変換をしないモード toggle-egg-mode fence-toggle-egg-mode toggle-egg-mode fence-mode ローマ字かな変換モード henkan-fence-region henkan-fence-region -or-single-space henkan-kakutei henkan-mode かな漢字変換モード 図 3 ~/. emacs に追加する Egg の設疋 (setq wnn¯host—name " ホスト名 " ) 図 4 ~/. emacs の設定例 (setq wnn—host—name "wnnhost " ) vnnhost でⅥⅲ n サーノヾーが動いているときの設正 それでは、麗子さんの変換をみながらモードの移り変わり Egg のモード を説明しましよう。 ます、図 3 を参考にして、 Egg を使うための設定を初期 Egg では、かな漢字変換操作の途中の状態を、いくつか 化設定ファイル /. emacs に加えてください。ホスト名の のモードに割り当てて管理しています。この節では、かな 部分には、 Wnn サーバーが動いている計算機のホスト名 漢字変換の操作の大まかな流れと Egg のモードについて を指定します。 説明しましよう。 図 2 は実行するコマンドとモードの遷移を表していて、 麗子 : 先生、 /. emacs の ~ ってなんですか ? 無変換状態以外の 3 つのモード、 はホームディレクトリを表します。たとえば、 ・ fence—mode ・麗子さんのホームディレクトリは /home/reiko ・ henkan-mode ・ Wnn サーバーが動いているホストは wnnhost ・ diced-mode なら、 が Egg にかかわるモードです。かな漢字変換は fence- mode と henkan-mode を行き来しながらおこないます。 /home/reiko/. emacs 1 本当は、さらに X ウインドウ版の Nemacs のある / なしの区別もあるので、すく に図 4 の設定を書き込みます。 なくとも 4 x 2 通り存在することになります。 105 UNIX MAGAZINE 1993.5

2. UNIX MAGAZINE 1993年5月号

emaCS 入門 図カレンダーの表示 calendar. el cal-french. el cal—mayan. el holidays. el diary. el diary-insert. el lunar. el solar. el Mag 1993 M 容、山 1 四 3 April 1 四 3 S M Tu k Th F S S M Tu H Th F S S MTu kTh F S 1 2 3 4 5 6 1 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 910 ・ 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17 16 17 18 19 20 21 21 22 24 % 27 18 19 20 21 23 24 24 四 28 四 四 31 26 27 四 31 - い 1 にト物を 1 と texinfo で書かれたドキュメント、 calendar. texinfo を手に入れてください。入手方法はいつものごとく、 ・知合いにもらう が一番簡単ですが、あなたの環境に応して臨機応変に対応 March 1993 「、 il 1993 してください。 S Tu Th F S S Tu Th F S 1 2 3 4 5 6 4 5 6 7 8 910 7 8 9 10 11 12 13 14 15 16 17 18 19 20 11 12 13 14 15 16 17 ・ WEnet から入手 21 23 24 新 26 刀 18 19 20 21 22 24 囲四 31 28 四 ・近くの ftp サイトから入手 れてしまうはすです ( 図 15 ) 。一見しただけでは Nemacs また、 Reingold さんも最新版をメールと ftp で提供し 標準のカレンダーが起動したのか、 PDS のカレンダーが ています。メールサーピスを利用する場合には、宛先と 起動したのか判断しづらいですね。でも、モード行の表示 Subject フィールドを次のように指定してください。 がまったく違います。 TO : reingold@emr. cs . uiuc . edu PDS のカレンダー・プログラムを入手したにもかかわら Subj ect : send¯emacs—cal す、 Nemacs 標準のカレンダーが起動してしまった方は、 次に示す手段を用いて PDS のカレンダーを起動してくだ また、 ftp で入手する場合のアドレスとディレクトリを下 に示します。 ・ load-file コマンドで calendar. el をロードする。 アドレス : emr. cs. muc. edu ・ load-library コマンドで calendar. el をロードする。 ディレクトリ : /pub/emacs/calendar/ ・初期化ファイル /. emacs に aut 。 1 。 ad 設定を書く。 カレンダーの起動 calend . el がホームディレクトリ / にあるときは、 カレンダーを起動するには、 M—x load—file -,/calendar . el Load file : M—x calendar を実行してからカレンダーを起動してください。 を実行します。図 14 のような * Calendar * バッフアが現 また、 calendar. el が Emacs Lisp 変数 load-path に れて、きようの日付を中心に前後合わせて 3 カ月ぶんのカ 設定されたディレクトリにあるときは、 load ー file コマン レンダーが表示されます。 ドの代わりに、 でも、あなたの環境で calendar コマンドを実行して も、おそらくは Nemacs 標準カレンダーのはうが起動さ 図 Nemacs 標準のカレンダー :1_17.-1 朝に新 : を 1 ロ r いーー当 1 ーー ーい一に乢ィ : 18 四 LL ー囲 物 6 8 四 3 図 5 1 4 Ⅱ絽 一 1 1 っ 4 2 9 8 り」 : 11 ニ蔔 : に「 0 UNIX MAGAZINE 1993.5 118

3. UNIX MAGAZINE 1993年5月号

emacs 入門 / / ' 、、、、し / N ・密集したシマウマ ( 碁石 ) は数が減る という自然界の摂理と一致するので、 life game という名 前が付いています。シマウマの代わりに、地上の人間とみ たてるか、宇宙の生命体とみたてるかは皆さんの自由。「働 らけい、働らけい」と呟きながら碁石を置くのも、「天誅で ある一」と叫んで碁盤をひっくり返すのもお好きなように。 さて、 life game を試してみたいけど碁盤をもっていな い方は、最初に書いたように Nemacs で、 M—x life とか、 を実行してください。図 13 のような * Life * バッフアが現 「水曜日ならあいています」 れて、 Nemacs が選んだパターンで life game が始まり ます。いまのパターンが何世代目か ( 何度目の変更か ) を表 なんて言えるのも、カレンダーや予定表があってこそ。 すモード行の、 予定の管理には、日付入りの手帳がポピュラーですが、 Life : generation X X X ・めったに予定がないので手帳をつけない が 1 秒ごとにカウントアップされ、パターンが刻々と刻ヒ ・大学ノートを愛用 します。 ・本格派のリフィル式 ・入力が辛い電子手帳 、、ところで、 life ってなんの役に立つの ? 〃 ・時代の最先端の AI ノート 役に立っ〃ことを期待してはいけません。曼陀羅のような 模様が、す一つと移り変わってゆくのを宇宙の創造主にな など、手段は人によってさまざまです。 った気分でばんやり眺めているのが life game の楽しみ こでは、 Nemacs のスケジュール管理システム cal- endar を紹介しましよう。 方です。 Nemacs で calendar といえば、普通は標準のセットに 宇宙の時間を止めたくなったら、 C ー g を叩いてくださ 付いてくるカレンダー表示プログラム cal. el を指します が、これから紹介するのは PDS の calendar プログラム マ午後の研修 です。同し calendar という名前は付いていますが、作者も 機能も違います。今後、とくに断わらないかぎり、 calendar 社会人になったら、スケジュール管理も仕事のうち。 と呼ぶのは、 PDS のものとします。 calendar さんのプロフィールは、 calendar Ed Reing01d (reingold@cs.uiuc.edu/ 1992 年 8 月 10 日 図ロⅱ fe を実行したときに表示される Life バッファ ー」」一 : Lit ら一ト 11- ーーに 1 ラ : 曰「第す i 「「 4 / 1 入社式 4 / 2 オリエンテーション 4 / 10 新人歓迎会、夜の部 4 / 13 工場実習 名前 : 作者 : 生年月日 : Versi on : などなど。 です。 calendar システムを動かすには、 Emacs Lisp のソ スケジュール管理といえば、カレンダーと手帳が必須。 「その日は一日中予定が詰まっているので別の日に・ 5 117 UNIX MAGAZINE 1993.5

4. UNIX MAGAZINE 1993年5月号

emaCS 入門 ・ sunrise-sunset ( * Calendar * 以タトのノヾッファ ) また月の満ち欠けは、以下の 2 種類のコマンド、 ・ calendar-phase-of-moon ( * Calendar * ノヾッファ ) ・ phase-of-moon ( * Calendar * 以外のバッファ ) で表示してくれるはずです。これら天体関係のコマンドを 実行するには、最初に示した calendar 関係のソース以外 に、特別な浮動小数点演算のパッケージの、 lisp—float—type が必要です。でも、残念ながら lisp-float-type は Emacs Version 19. x >< でしか動作しないので、 Nemacs3 ユーサ ーの皆さんは、お預けですね ( 図 28 ) 。 HeIp と終了 calendar システムの機能についてひととおり説明して きましたが、ここでひと区切りとしましよう。 麗子 : だいたいどんなことができるかは分かったけど、コ マンドの名前はとてもしゃないけど憶えきれないわ。 令子 : 誰も全部憶えろなんて言ってないし、そこまで期待 もしてないわ。困ったときには Help を使えばいいのよ。 HeIp に頼るには、 * Calendar * バッフアで、 calendar を終了するには、 quit の q を入力するか、 (setq general—holidays (a) 日本の祝日の設定 図 27 祝日の設定 (fixed 9 23 " 秋分の日 " ) 15 " 敬老の日 " ) (fixed 5 5 ”こどもの日 " ) (fixed 5 4 " 国民の休日 " ) (fixed 5 3 " 憲法記念日 " ) (fixed 4 29 " みどりの日 " ) (fixed 3 20 " 春分の日 " ) (fixed 2 11 " 建国記念の日 " ) 15 " 成人の日 " ) 1 " 元旦 " ) (fixed (fixed (fixed (fixed 9 (fixed ' ((fixed 1 1 (fixed 12 23 ”天畠誕生日 " ) ) ) 11 23 " 動労感謝の日 " ) 11 3 " 文化の日 " ) 10 10 " 体育の日” ) solar—holidays nil) islamic—holidays nil hebrew—holidays nil (setq christian—holidays nil ( d ) 関係のない祝日を取り消す 個人の休日のリスト (setq other—holidays ( c ) 個人用の休日の設定 サイトの休日のリスト (setq local-holidays (b) サイトごとの休日の設定 を叩いてください。図 29 に示したメッセージが * Help * バッフアに表示されます。 このノヾッフアのメッセージを頼りに ・コマンドの種類と機能 3 Nemacs は Emacs Version 18. x x をもとにしています。 sunnse-sunset のエラーメッセージ 図 28 sunrise-sunset phases-of-moon のエラーメッセージ ・コマンドのキーバインド を調べることができます。 M—x exit-calendar を実行します。 S01ar calculations xmpossible S1nce floating point is unavailable. phase-of-moon のエラーメッセージ Lunar calculations lmpossible since floating point IS unavailable. 126 UNIX MAGAZINE 1993.5

5. UNIX MAGAZINE 1993年5月号

emaCS 入門 んなキーポードは嫌いよ。 午前中の硎は日本語の入力でした。 令子 : 会社では、プログラムよりも文章をたくさん書かな 今回は、、 Egg の使い方〃に的を絞って、 く説明します。 V Egg の種類と使い方 もうすこし詳し くてはなりません。 麗子 : 無茶なことをおっしやる・・ そ、こんな職種を選んだのに ・。国語が苦手だからこ でもまあ、新人研修の日本語入力の練習では、普通は国 語力は必要ないですね。会社標準のかな漢字変換の手段を 身につけられれは合格です。麗子さんの会社では Nemacs から使用する Egg か標準でした。 Egg については、以前にもこの連載 ( 1991 年 5 月号 ) で とりあげました。そのとき説明したのは、次の 3 つです。 ・必要最低限の使い方 ・ Egg の仕組み ・ Egg のカスタマイズ方法 Egg は、 Nemacs からかな漢字変換を使うためのシス テムです。ただし、 Egg 自身がかな漢字変換をおこなうわ けではありません。かな漢字変換作業はかな漢字変換サー バーにお願いし、 Egg はユーサー・インターフェイスに徹 します ( 図 1 ) 。 Egg から利用できるかな漢字変換サーバー Wnn ・ SJ3 ・ Canna の 3 種類があります。しかし残念なことに、これら 3 種類 のサーバーを自由に切り替えながら使うことはできません。 なぜって ? Egg の機能は Emacs Lisp だけで実現さ 色眼鏡を通して見た 3 種類の Egg の比較 Wnn 版 Egg 104 ・・。勇気があったら使ってください。ちなみに、最近噂の できないまま、涙をのんで Nemacs process を kill したこと このような目に遭ってしまいます。修正中のファイルをセープ 1 日中、 Nemacs に向かって文章を書いていると、 2 ~ 3 度 ることがある。 ・変換途中におかしな状態に陥って、それ以上何もできなくな います。ただ、残念なことに致命的なバグがあるようです。 筆者は、変換結果が一番趣味に合う SJ3 版 Egg を愛用して SJ3 版 Egg ょっ〃とさせられます。 いこともありませんが、はかのシステムとの違いが目立ち、、、ぎ など、気になる点もあります。先進的な変換工ンジンといえな ・変換したときに変な熟語刎嚇甫をたくさん出す い ( おましないのような設定によって変更することは可能 ) ・直前に尺しオ」嚇甫が、次の変擲に 1 番目の候補にならな ただし、変換の機能は、 周囲にノウハウをもっている人が上交的多いのも強みでしよう。 歴史か古いだけあって、動作は安定しているようです。また、 MuIe だとこのバグにあたらすちゃんと動きます。 Canna 版 Egg Canna は、辞書を操作するためのツールが一番充実していま す ( と筆者は思っています ) 。とくに、 Canna と Wnn の辞書の 、、相互変換クツールがすごいですね。戦略なんて関係なく、ユー ザーの求めるものを用意するところが太っ腹です。 また、郵便番号辞書や部首別辞書など、ひと味違った便利な 辞書が用意されているのもマークすべき点です。難点は、 ・変換結果がむやみやたらと漢字はかりの文章になってしまう ことです。たとえば、 さまざまなしゆるいのししよがあります を変換すると、筆者の好みは、 さまざまな不頁の辞書があります なのに、 Canna では、 様々な不頁の辞書カ恠ります になってしまうのです。 UNIX MAGAZINE 1993.5

6. UNIX MAGAZINE 1993年5月号

emacs 入門 ァ上で、 M—x lpr-buffer g の無変換モードのコマンド ・今回出てきたコマンドの一覧 てください。 するのか嫌いな方は、 /. emacs に図 36 の設定を追加し プリンタの設定も、 Nemacs を起動するたびに毎回設定 定する必要はありません。 が勝手に付け加えてくれるので、 lpr-switches 変数に設 印刷するファイルのファイル名は lpr ー buffer コマンド lpr—switches "¯Pmyprinter" lpr—command "mylpr' と指定するなら、次のように設疋してください。 % mylpr —Pmyprinter ファイル名 の出力を、 となっていますが、あなたのサイトではテキストファイル lpr—switches nil lpr—command " lp が 設定します。デフォルトでは、 ド名を設定します。また、 lpr-switches は引数の文字列を lpr ー command にはシェルから印刷するときのコマン lpr—switches lpr—command 定されているかを石忍してください。 います。次の 2 不頁の Emacs Lisp 変数の値が、正しく設 buffer が失敗するようなら、予定表の印刷も失敗してしま lpr-buffer コマンドに印刷処理を任せています。 lpr- かを試してください。 print-diary-entries コマンドは コマンドを実行して、バッフアの内容が印刷されるかどう 、 1- x hankaku—word 、 1- x hankaku—sentence 、 x hankaku—paragraph M-x hankaku—regxon kat akana— s entence M-x kat akana—paragraph M-X katakana—region hiragana—sentence M-x hxragana—paragraph hiragana¯reg101i select—notificatxon M-x toggl e¯egg-mode 130 、 1- x M-x V 次回予告 今回は PDS の紹介第 1 弾として、 ・日本語の入力 ・スケジュール管理 をとりあげました。次回も引き続き Emacs Lisp の PDS を紹介します。 PDS は、 ・入手が面倒 ニュースに流れているものは玉石混交 ・コマンドか難しい / 処理が重いものが多い など、役立つものをみつけるには苦労がともないます。不 況で暇な ( ! ? ) いまこそ金鉱を掘りあてるチャンス。もちろ ん、自分で錬金術するという手もあります。 ( あらい・みちこ ASTEC) 図 35 print-diary-entries の印刷出力 A11 Diary Entries Apr 1 , 1993 つき大会の日 Saturday スワヒリ語会話教室 図 36 ~ /. emacs にミロするプリンタの設定 (setq lpr—command "mylpr") (setq lpr—switches n¯Pmyprinter" ) fence-mode と無変換状態の切替え *Notification* ノヾッフアを表小 リージョンのかな文字をすべてひらがなにする 段落のかな文字をすべてひらがなにする 文のかな文字をすべてひらがなにする リージョンのかな文字をすべてカタカナにする 段落のかな文字をすべてカタカナにする 文のかな文字をすべてカタカナにする リージョンの全角文字を半角文字にする 段落の全角文字を半角文字にする 文の全角文字を半角文字にする 単語の全角文字を半角文字にする UNIX MAGAZINE 1993.5

7. UNIX MAGAZINE 1993年5月号

図 6 ディレクトリ・ツリー」 特集ドン一ときたら困るけど、ネットワーク卸里・・ 図 7 ディスクの接ぎ木 etc lib usr bin bin home 論理ディスク urr etc home tmp マウント マヴント mon ey saru 「なんや、 X だの Nemacs だのは、ファイルサーバー上 に全部用意してくれてるんかいな。 NFS でマウントすれ はええだけやな」 虎の巻には、、、マシン potato の / us て / 10Ca1 の下に X ウインドウや Nemacs 、 rIVfX などが置いてあるので、 これをマウントすればいい " と書いてあります。 「ますは /etc/fstab ゃな。虎の巻に書いてあるとおり bin ー usr bin ー 図 8 にして、それから・・ その則に root にならな、 su か、 NFS マウント N F S サーバー etc home mp mon ey saru N F S クライアント ほいで / Ⅱ s て / 10Ca1 を作って、で、 mount 一発 ! ! おー し、これでいつもの環竟になったで。ちょろいもんや」 NFS とは ? 皆さんは、、ファイルシステム " とか、ディレクトリ・ ツリー " という言葉を聞いたことがありますか ? ファイル システムとは、ハードディスクなどの記慮装置を用いて、 ファイルをユーサーに提供するためのシステムです。自分 の使っているマシンを見れば分かりますが、 UNIX のファ イルシステムは、ルートディレクトリ ( / ) を項点とした、 1 つのツリー構造になっています ( 図 6 ) 。私たちは cd コ マンドなどを使って、お猿さんのようにツリーのなかを飛 び回っているわけです。 UNIX では、 1 つのディスク装置 ( 物理ディスク ) を複 数のパーティションと呼ばれる部分 ( 論理ディスク ) に分 割し、それぞれがファイルシステムを構成しています。パ ーティションは通常、、、 a " や、、 b " のような名前カイ寸けら デパイスファイルという特殊なファイル (/dev/sdOa など ) を通してワークステーションからアクセスされま す。また、複数の物理ディスクがある場合は、、、 sd0a" や、、 sdla " のようにして区別されます。 このままだとそれぞれの論理ディスクは別々に扱われま すが、 UNIX のファイルシステムでは、ある論理ディス クのルートを別の論理ディスクの枝 ( ディレクトリ ) に重 ねて接ぎ木 5 することにより、本を 1 つに見せています 5 接ぎ木す・ることを、マウンド、逆を、アンマウンにといいます。 UNIX MAGAZINE 1993.5 bin ただし、 ( 図 7 ) 。 usr home 11 emacs tmp usr bin llb マウント home 0 home emacs tex tmp tmp bin usr lib XI 1 こオけごけではローカルなマシンに直接つながっ ているディスクしか利用できません。ソフトウェアをイン ストールしようとしても、すべてのマシンに同しものを入 れなければなりませんし、マシンごとにディスクを用意し なければなりません。 そこて考えだされたのが分散ファイルシステムで、ネッ トワークに接続されたリモートマシンのディスクをあたか もローカルな ( 自分のマシンに接続されている ) ディスク のように扱う仕組みです。ソフトウェアなどを 1 つのマシ ンにインストールしておくだけで、ネットワーク上のすべ てのマシンから使えるようになります。これによってディ スクの量を節約できるだけでなく、インストールやメンテ ナンスに必要な手間を最小限に抑えることができます。 NFS (Network File System) は、 Sun か開発した分 33

8. UNIX MAGAZINE 1993年5月号

V 昼休み 午前の長い研修後のお昼休み。麗子さんは新人歓迎の昼 食会へ行きました。ご主人を待ってる Nemacs さんはち ょっと暇をもて余しています。 Nemacs : は、一つと待っているのもつまらないなあ。そう だ、 life game をしようっと。 life game といっても、「人生ゲーム平成版」のことでは ありません。昔々、ワンポード・コンピュータのころに流 行った、「孤独でも過密でも死滅する生物」のシミュレーシ ョンです。 Nemacs に向かって、 M—x life と入力してください。ⅱ fegame の始まり始まり。 life game を知らない若い世代のためにすこし説明し ておきましよう。 game という名前が付いてはいますが、 いわゆる多人数で遊ぶようなゲームではありません。トラ ンプの一人遊びにも似ていますが、何かを達成すれは終り というわけでもありません。ひたすらルールに従ってある 操作を繰り返すだけで、一人遊びのようでもあり哲学のよ うでもあります。 a. 3 個なら升目に碁石を置く ルールを説明する前に、準備をしましよう。 b. 3 個より多くても少なくても何もしない 1. 碁盤と碁石を用意する。 これをすべての升目に対しておこないます。 life game 2. 碁盤の升目に自由に碁石を置く ( 図 11 ) 。 のルールはこれだけですが、最初の碁石の置き方によって さまざまな刻ヒが楽しめます。 碁盤は物置にしまいこんで忘れていたような古いもので ルールは、 3 x 3 の升目のなかの碁石の数が少なくても かまいません。碁石も数が揃っている必要はありません。 多くても碁石を減らし、中間くらいのときにはその状態を でも、ほこりは払ってくださいね。 維持するか、碁石を増やすようになっています。この操作 それではルールの説明をします ( 図 12 ) 。 を繰り返すと、碁石の最初のパターンによって、 ・ある升目に碁石がある場合 ・碁石のなくなってしまう場所 周囲の 8 個の升目に置いてある碁石の合計が、 ・刻ヒしなくなる場所 ・変化のパターンが同しになる場所 a. 1 個以下か 4 個以上なら升目の碁石を取り除く b. 2 個または 3 個ならそのまま などが出てきます。 碁盤の上の碁石を、草原のシマウマに置き換えて考えると、 ・ある升目に碁石がない場合 周囲の 8 個の升目に置いてある碁石の合計が、 ・孤立したシマウマ ( 碁石 ) は絶滅する UNIX MAGAZINE 1993.5 emacs 入門 い。バッフアに選んだ文字が挿入されます。 図Ⅱ碁盤の上に置いた碁石 - ・・・・・ 00000 ・・ 000 ・ 0000 ・・ 000 ・■ 000 ・・ 00 ■ 0 ・・・■ ′・ 0 ・ 00 ・・・・ 0 ■・ー 00 ■■・・■ 図に life game のルール ( 中央の碁石の状態が変化するケース ) ( 1 ) 周囲の升目の碁石の合計が 1 個以下なら中央の碁石を取り除く ■ 0 ・ ( 2 ) 周囲の升目の碁石の合計が 4 個以上なら中央の碁石を取り除く ( 3 ) 周囲の升目の碁石の合計が 3 個なら中央に碁石を置く 116

9. UNIX MAGAZINE 1993年5月号

emacs 入門 //へ、 v/ N 曜日 , 日月 , 年 の順に表示するヨーロッパ型カレンダーか好きな方は、 (autoload 'phases—of—moon "lunar' "Disp1ay a windov Of diary entries . (autoload 'diary "diary "Disp1ay a three—month calendar windov. " t) (autoload ' calendar ” calendar "Prepare a list Of holidays in the previous , (autoload 'holidays "holidays" 図 calendar. el を自動的にロードする言婉 の順です。でも、 曜日 , 月日 , 年 っていて、日付の表示は、 すね。カレンダーを起動した直後は米国型カレンダーにな どうも、米国とヨーロッパでは日付の書き方が違うようで 令子 : はあ ? 麗子 : 米国表記のカレンダーは好きではないわ。 のようにきようの日付カ俵示されています。 Thu, Apr 1 , 1993 いるはすです。モード行の右のほうにも、 置を確認してください。きようの日付のところに居坐って みごと、カレンダーの起動に成功したら、カーソルの位 米国型 vs. ヨーロッパ型 を読み込むので、いちいちロードする手間が省けます。 さい。カレンダーを起動するときに自動的に calendar. el は、図 16 の autoload 設定を /. emacs に追加してくだ endar. el をロードしなければなりません。手間か嫌いな方 を実行してみてください。モード行の日付が次のようにな 上の 2 種類の方法では、 Nemacs を起動するたびに cal- ください。 で cale 記 . el をロードしてからカレンダーを起動して Load library : calendar M—x load-library Thu, 1 Apr, 1993 ったでしよう。 、 4 ー X european—cale 図ロ calendar は無限長の横長のカレンダーの一部を表示する ればよいのでしよう ? ダー、あるいは過去のカレンダーを見たいときにはどうす んが表示されています ( 図 17 ) 。では、もっとさきのカレン calendar を起動時には、今月の前後合わせて 3 カ月ぶ カレンダーのスクロール なたか元気な方が作ってくれませんかね。 残念ながら日本型カレンダーは用意されていません。ど から、日本型のカレンダーが欲しいのに んだけど・・ 。今年は平成何年なのかすぐ忘れてしまう 麗子 : ヨーロッパ型のカレンダーが好きなわけでもない 1 的 2 年 1 的 3 年 12 月 1 月 2 月 3 月 4 月 5 月 6 月 この範囲を表示する present , and next months . "Display the quarters Of the moon for last month, this month, ThiS function iS suitable for execution in a . emacs file . ” t) (autoload ' sunrlse—sunset ” S01a て " "Loca1 time of sunrise and sunset for tOday. Accurate to 十 / ー (autoload 'list—yahrzeit—dates "calendar" and ne xt month . 2 minutes . "List of Yahrzeit dates for *Gregorian* DEATH-DATE from START-YEAR to END-YEAR. When called interactively from the calendar i Ⅱ do , the date Of death is taken from the cursor position. " ) ()f (not (fboundp ' current—time—zone) ) (defun current—time—zone nil nil) ) UNIX MAGAZINE 1993.5 119

10. UNIX MAGAZINE 1993年5月号

・創立記念日 ・創設者の誕生日 など、普通のカレンダーには載っていない休日があるかも しれません。また、最近では、 ・誕生日 結婚記念日 図 26 calendar-holidays を構成する祝日変数 ( 種類月日 " 文字列 " ) リスト、 すればよいのでしよう。 calendar-holidays は次の形式の では、日本の読者の皆さんはどのように祝日変数を設定 マークを付けたからです。 は、 calendar-holidays に設定されているあらゆる祝日に す。図 24 ( b ) のカレンダーか祝日マークだらけになったの 変数は、最後に calendar-holidays 変数にまとめられま 扱う祝日変数の一覧と意味を示しています。これらの祝日 ( 祝日変数 ) を複数管理しています。図 26 は、 calendar が calendar では、祝日を保存している Emacs Lisp 変数 を説明しましよう。 の調整も必要です。そこで次に、祝日のカスタマイズ方法 ます。さらに、年によって日がすれる春分の日や秋分の日 など、個人の、、記念日休暇〃をとりいれている会社もあり emacs 入門 //\、/ N あるいは、この形式をちょっと変更した形式のリストを集 めたリストです。細かい説明は省きますが、特定の日を祝 日にするには、 (fixed 月日 " 祝日の名前 " ) のリストを祝日変数に設定してください。表 7 は祝日リス トの形式の一覧です。 具イ勺な設定の例を図 27 に示しました。 (a) は日本の祝 日の設定、 (b) はサイトごとの休日の設定、 (c) は個人用の 休日の設定、 ( d ) は日本に住んでいるならおそらく必要の ない休日の設疋の取消しです。もし、あなたが Nemacs の 管理者なら、 ( c ) の設疋だけ、個人の ~/. emacs に書くよう に指導して、残りの設疋は site. el に追加してください。 日の出 / 日の入りと月の満ち欠け calendar には天文ファンにとってちょっと嬉しい、 ・日の出 / 日の入り時刻 ・月の満ち欠け を表示する機能が付いています。 日の出 / 日の入り時刻は、以下の 2 種類のコマンドで表 示します。 ・ calendar-sunrise-sunset ( * Calendar * ノヾッファ ) general-holidays local-holidays other-holidays christian-holidays hebrew-holidays islamic-holidays solar-holidays 表 7 祝日リストの形式一覧 一般的な祝日 ( 米国の祝日が設定されているが日本の祝日を設定してもよい ) 天文 ( 太陽 ) の運行によって決まる休日 イスラム教の祝日 ユダヤ教の祝日 キリスト教の祝日 個人ごとの祝日や休日 サイトごとの祝日や休日 (fixed MONTH DAY STRING) (float MONTH DAYNAME K STRING) (hebrev MONTH DAY STRING) (islamic MONTH DAY STRING) (julian MONTH DAY STRING) (sexp SEXP STRING) ()f BOOLEAN HOLIDAY-FORM &optional HOLIDAY-FORM) (FUNCTION &optional ARGS) UNIX MAGAZINE 1993.5 内容 特定の日の指定 MONTH 月の K 曜日 ( 日曜日が 0 ) の指定 ユダヤ暦で特定の日の指定 イスラム暦で特定の日の指定 ュリウス暦で特定の日の指定 式で指定 条件判断の if 文の使用 特別な関数を用いた指定 125