-*- Text -*- Subject: irchat-pj の利用方法 Author: しまだ みつのぶ Date: 1999年12月20日(月) Organization: irchat-PJ Project ---------------- 0.この文書の概要 ここでは, irchat-pj の利用方法を説明します. 本来なら, 逐一利用方 法を説明すべきなのでしょうが, 私には説明する能力および時間がござ いませんので, irchat-pj での拡張部分についての説明に限らせていた だきます. なお, irchat-2.4jp24* から移行する場合, irchat-pj の拡張機能を 利用しない場合は何の変更も必要ありません. 変更しなくとも, 以下の 文書のうち, 1 および 2 の機能は有効となります. 順序 : 次の順で説明します 0. この文章の概要 1. 日本語コードの設定 2. 半角カナの扱い 3. 起動時の nickname の複数指定 4. 入力バッファのモードライン 5. Sound 機能 6. 略語展開機能 7. メッセージ一斉送信 8. スクロール関連 9. JOIN/PART/QUITした人がどこのホストから接続しているのかを表示 10. 自動的に channel oper 権限を配る (いわゆるおーとなるたー) 11. CTCP CAESAR 12. CTCP VERSION 時に返す Mule 等のコードネームの日本語化 13. ログ保存機能 14. 終了時関連バッファ削除機能 --. がが問題 (Obsolete) ∞. 最後に ---------------- 1.日本語コードの設定 日本語コードの設定は, 次の変数によって行います irchat-pj-string-in-code : サーバからの入力コードの指定 irchat-pj-string-out-code : サーバへ出力するコードの指定 次の中から, いずれかひとつを選んでください. 'iso-2022-7bit-ss2 : ISO-2022-7BIT-SS2 (RFC1554) コード 'iso-2022-jp : ISO-2022-JP (JIS) コード 'jis : (入力) ISO-2022-7BIT-SS2 (RFC1554) コード (出力) ISO-2022-JP (JIS) コード 'euc-jp : 日本語 EUC コード 'euc-japan : 日本語 EUC コード 'sjis : MS 漢字コード 'shift-jis : MS 漢字コード 'ms-kanji : MS 漢字コード 'noconv : 無変換 なお, irchat-pj-string-in-code に関しては, 受け取ったコードがど のコードかを自動的に判断する指定も可能です. 'non-euc : ISO-2022-7BIT-SS2 もしくは MS 漢字コードかを 自動的に判定する 'auto-detect : ISO-2022-7BIT-SS2, MS 漢字, 日本語 EUC コード の自動判定を行う これらを選んでおけば, 受け取った入力コードを自動的に判別し, 該当 コードに変換したうえで受け取ることができます. デフォルトは, (setq irchat-pj-string-in-code 'auto-detect) (setq irchat-pj-string-out-code 'iso-2022-7bit-ss2) です. また irchat-pj-string-in-code が 'auto-detect のとき, 変数 irchat-pj-code-verbose を t にしておくと, ISO-2022-7BIT-SS2 以外のコードを受け取ったときにその旨を minibuffer に表示されます. ---------------- 2.半角カナの扱い irchat-pj は, jisx0201カナ(いわゆる半角カナ)を送信しようとすれば, それを jisx0208(いわゆる全角カナ)に変換して送信しようとします. それを制御するために, 変数 irchat-pj-katakana-convert を用意して あります. これを nil にすると, 自動変換は行なわれなくなります. なお, デフォルトは t です. ---------------- 3.起動時の nickname の複数指定 irchat-pj では, 起動時の nickname 候補を複数指定することができます. 変数 irchat-pj-startup-nickname-list に, nickname の文字列リストを つくっておくと, 接続時, 前から順に nickname として文字列を利用します. 例: (setq irchat-pj-startup-nickname-list '("nick1" "nick2" "nick3")) この場合, まず nick1 という nickname で接続を試みます. 接続可能で あればそのまま利用します. 接続不可の場合, nick2 という nickname で接続を試みます. 以下同じように, このリストにある nickname を 順に試み, 接続できたらその時点で打ち切ります. もし, どの nickname でも接続できない場合は, nickname の入力を促されます. なお, irchat-nickname と irchat-pj-startup-nickname-list の双方を 指定した場合は, irchat-pj-startup-nickname-list が優先されます. ---------------- 4.入力バッファのモードライン irchat-2.4jp24g では, 日本語入力手段として Canna や SKK10 を利用 すると, 入力バッファのモードラインを見ても, 日本語入力モードなの かどうかの判別がつきません. そこで, Canna や SKK10 でも入力モー ドの状況を表示するようにするとともに, モードライン自体を変更でき るようにしました. 変数 irchat-pj-Commands-mode-line-format を, 次 のいずれかに設定することで, 変更できます. 汎用 : 'irchat-pj-Commands-mode-line-format-default 'irchat-pj-Commands-mode-line-format-alternative SKK10等マイナーモードを利用しているもの: 'irchat-pj-Commands-mode-line-format-minor-mode SKK9 : 'irchat-pj-Commands-mode-line-format-simple 'irchat-pj-Commands-mode-line-format-alt-simple Egg : 'irchat-pj-Commands-mode-line-format-for-egg 'irchat-pj-Commands-mode-line-format-alt-egg Canna: 'irchat-pj-Commands-mode-line-format-for-canna 'irchat-pj-Commands-mode-line-format-alt-canna Meadow使用時におけるIME: 'irchat-pj-Commands-mode-line-format-for-mw32 'irchat-pj-Commands-mode-line-format-alt-mw32 なお, デフォルトは (setq irchat-pj-Commands-mode-line-format 'irchat-pj-Commands-mode-line-format-default) です. ---------------- 5.Sound 機能 irchat-pj では, 次の状況において, 音を鳴らすことができます. デフォルトでは音が鳴らないように設定されています. 5-1. 特定の表現を受け取ったとき 5-2. バッファ未作成の人から private message を受け取ったとき 5-3. invite されたとき 5-4. 誰かが join したとき 5-5. CTCP message を受け取ったとき 5-6. error 発生時 以下, それぞれについて説明します. また、irchat-pj 2.4.24.14 以降のバージョンでは, Beep だけでは なく, 外部プロセスを呼んでサウンドファイルを再生することもでき ます. これは 5-7. サウンドファイルの再生 で説明します. サウンドファイルを設定せずに, 音を鳴らす設定だけし た場合は, 外部プロセスを呼ぶことなく Beep が鳴ります. 5-1.特定の表現を受け取ったとき irchat-pj-sound-words-list に, 音を鳴らしたい正規表現のリスト を記述します. たとえば下のように書いておくと, 「がが1」「がが4」 「ircpa」「irchat-PJ」等の文字列を受け取ったときに音が鳴ります. (setq irchat-pj-sound-words-list '("がが[1-5]" "irc.*[Pp]")) なお, デフォルトは nil で, このときは, 特定の表現に対して音が 鳴ることはありません. このときに鳴らすサウンドファイルを irchat-pj-sound-words-file で 設定することができます。 5-2.バッファ未作成の人から private message を受け取ったとき irchat-pj-sound-when-private を t にしておくことで, バッファ未作 成の人から private message を受け取ったときに音を鳴らすことがで きます. デフォルトは nil です. このときに鳴らすサウンドファイルを irchat-pj-sound-private-file で設定することができます. 5-3.invite されたとき irchat-pj-sound-when-invited を t にしておくことで, invite された ときに音を鳴らすことができます. デフォルトは nil です. このときに鳴らすサウンドファイルを irchat-pj-sound-invite-file で設定することができます. 5-4.誰かが join したとき irchat-pj-sound-when-join を t にしておくことで, 自分の join して いる channel に誰かが join したときに音を鳴らすことができます. デフォルトは nil です. このときに鳴らすサウンドファイルを irchat-pj-sound-join-file で 設定することができます. 5-5.CTCP message を受け取ったとき irchat-pj-sound-when-ctcp を t にしておくことで, 自分自身もしくは 自分の join している channel に誰かが CTCP message を受け取った ときに音を鳴らすことができます. このときに鳴らすサウンドファイルを irchat-pj-sound-ctcp-file で 設定することができます. 5-6.error 発生時 irchat-pj-sound-when-error を t にしておくことで, server から error message を受け取ったときに音を鳴らすことができます. このときに鳴らすサウンドファイルを irchat-pj-sound-error-file で 設定することができます. 5-7.サウンドファイルの再生 Beep のかわりに, 外部プロセスを呼んで任意のサウンドファイルを再 生することもできます. デフォルトでは wav, au をサポートしていま す。必要なら irchat-pj-sound-player-alist に追加してください。 まず、サウンドファイルの再生のためには再生用のプログラムを設定す る必要があります。デフォルトでは以下のように設定されています。 (defvar irchat-pj-sound-au-player "play") (defvar irchat-pj-sound-wav-player "showaudio") 以下は .wav を xplay で再生させる設定の例です。 (setq irchat-pj-sound-wav-player "xplay") リストを指定した場合には、シンボル file はファイル名に展開されます。 複雑な引数を指定したい場合はリストで設定してください。 以下は .au を cp hogehoge.au /dev/audio のようにして再生させる設 定の例です。 (setq irchat-pj-sound-wav-player '("cp" file "/dev/audio")) 次に、irchat-pj-sound-directory にサウンドファイルを置くディレク トリを設定してください. (setq irchat-pj-sound-directory "~/lib/au") 後は以下のように各変数に, 再生したいサウンドファイルのファイル名 を設定するだけです. シンボルを設定すると, 関数として呼び出すこと ができます. (setq irchat-pj-sound-words-file "hogehoge.au") (setq irchat-pj-sound-private-file "fugafuga.au") (setq irchat-pj-sound-invited-file 'ding) (setq irchat-pj-sound-join-file 'ding) (setq irchat-pj-sound-bell-file "buzz.au") デフォルトはすべて 'ding です.(ding は beep を鳴らす関数です) irchat-pj-sound-bell-file を変更することで, 本来なら beep が鳴る べき bell code を受け取ったときの音も変更することができます. (irchat-pj 2.4.24.14 での変更点) もともと irchat-pj-beep-words-alist irchat-pj-beep-when-invited irchat-pj-beep-when-private という変数があり, これらで beep を鳴らすかどうか制御しておりまし たが, これらの変数は廃止しました. それぞれ irchat-pj-sound-words-alist irchat-pj-sound-when-invited irchat-pj-sound-when-private をご利用ください. ファイルを設定しなければ, 今まで同様 beep が鳴 ります. ---------------- 6.略語展開機能 irchat-pj-abbrev-table を用意することで, irchat-pj で独自に略語 展開テーブルをもたせるようにしました. これで, 誤って IRC での略 語を他の状況で使って恥ずかしい目にあった, ということは減ること でしょう :-) なお, abbrevについての詳細は, Emacs 付属の info 等を参照のこと. ---------------- 7.メッセージ一斉送信 irchat-pj では, joinしているチャネルすべてに同じメッセージを 簡単に流すことができます. 方法は2とおりあります. 1. Commands バッファに流したいメッセージをタイプし, C-c z とする. 2. C-c M とすると minibuffer にプロンプトがでるので, そこに流したいメッセージをタイプする. それぞれ, バッファのない人に priv メッセージを流す場合の C-c p, C-c m に対応しております. なお, 対応する関数は C-c z : irchat-pj-Command-broadcast-message C-c M : irchat-pj-Command-broadcast-minibuffer です. 状況によっては, 「このチャネルにだけは流したくない」とか, 「この人にはprivで流したい」という場合もあると思います. その場合, 変数 irchat-pj-broadcast-accept-list および irchat-pj-broadcast-ignore-list にリスト形式でチャネルおよび ニックを追加します. たとえば, hoge さんと fuga さんに必ず 流したい場合は (setq irchat-pj-broadcast-accept-list '("hoge" "fuga")) となります. また, "#gaga" には流したくない場合は (setq irchat-pj-broadcast-ignore-list '("#gaga")) とします. また, バッファのある人全員にもprivで流したい場合は 変数 irchat-pj-broadcast-private を t にします. 逆に, 一斉に流すチャネルを自分で完全に制御したい人は 変数 irchat-pj-broadcast-channel を nil にし, irchat-pj-broadcast-accept-list に, チャネルリストを追加してください. なお, 変数 irchat-pj-broadcast-* の優先順位は 1. irchat-pj-broadcast-accept-list にあるチャネル・ニックに流す 2. irchat-pj-broadcast-ignore-list にあるチャネル・ニックに流さない 3. irchat-pj-broadcast-channel が t なら join しているチャネルに流す. irchat-pj-broadcast-private が t なら, バッファがある人に流す. です. (注意) この機能を用いる場合, Flood にはくれぐれも注意しましょう. ---------------- 8.スクロール関連 複数フレームのうちのいずれかで irchat-pj が動いているとき, irchat-pj 2.4.24.05 以前では, ほかのフレームが active に なっていた場合, irchat-pj のスクロールがとまる仕様でした. irchat-pj 2.4.24.05 以降では, 変数 irchat-pj-scroll-condition を変更することで, この挙動を変更することができます. t : スクロールする nil: スクロールしない デフォルトは, irchat-pj 2.4.24.05 以前の挙動である nil です. ---------------- 9.JOIN/PART/QUITした人がどこのホストから接続しているのかを表示 irchat-pj 2.4.24.04 以降では, JOIN や PART した人がどこのホストから 接続しているか表示する機能をつけました. 2.4.24.08 以降では, 2.4.24.03 以前の表示フォーマットと 2.4.24.04 以降の表示フォーマットを選択することができます. JOIN: irchat-pj-handle-join-verbose NICK: irchat-pj-handle-nick-verbose PART: irchat-pj-handle-part-verbose QUIT: irchat-pj-handle-quit-verbose これらの各変数を t にすれば, それぞれにおいて 2.4.24.04 以降の フォーマットで表示し, nil にしておけば 2.4.24.03 以前の フォーマットで表示します. デフォルトではすべて t にしておりますが, 「冗長でうっとおしい」と いう方は, nil にしてください. ---------------- 10.自動的に channel oper 権限を配る (いわゆるおーとなるたー) irchat-pj 2.4.24.14 以降では, 自らが channel oper の場合, 他の人が join してきたときに自動的に channel oper 権限を配ることができます. 変数 irchat-pj-auto-oper-list に設定を書くことで, これにしたがって 自動的に channel oper 権限が配られます. irchat-pj-auto-oper-list の 各要素は a. "nick!user@host.domain" b. ("nick!user@host.domain" . "#channel1,#channel2,...") c. ("nick!user@host.domain" "#channel1" "#channel2" ...) のいずれかの形式で, a.の場合は "nick!user@host.domain" にマッチする 場合に channel oper 権限が配られます. b.およびc.は, 指定した channel の場合のみ, "nick!user@host.domain" にマッチすれば channel oper が 配られます. なお, "nick!user@host.domain" 部分は正規表現, 各チャネルは完全一致 する文字列で記述します. +b 等の mode で用いる形式や pirc の形式とは 異なりますので, ご注意ください. ---------------- 11. CTCP CAESAR irchat-pj 2.4.24.09 で, irchat-caesar-region を全面的に書き直し, 新たに irchat-pj-caesar-region 関数を用意しました. (基本的には APEL の mule-caesar-region をパクったものです :-) これは, region として 指定した部分を, irchat-caesar-region の ROT13 / ROT13-47 や mule-caesar-region の ROT13-47-48 に若干 手を加えた ROT5-13-47-48 符号化により変換を施すものです. なお, ROT5-13-47-48 という名称は自称です. (^^; また, これを利用して, 新たに CTCP CAESAR を用意しました (送信: irchat-Command-ctcp-caesar / 受信: irchat-ctcp-caesar-msg). CTCP ACTION と同じ要領で使用することで, ROT5-13-47-48 符号による IRC を行うことができるようになります. (注) CTCP ですので FLOOD にはくれぐれも注意しましょう. ---------------- 12.CTCP VERSION 時に返す Mule 等のコードネームの日本語化 これは irchat-pj の機能ではありませんが, irchat-pj は, コードネーム 日本語化ライブラリ rail ( ftp://ftp.fan.gr.jp/pub/elisp/rail/ ) に 対応しております. rail をインストールし, .emacs に (require 'rail) と記述しておくことで, Mule / Meadow / XEmacs のコードネーム(一部)が 日本語化されます. なお, rail のインストール方法は irchat-pj と全く同じです :-) # irchat-pj のインストーラをそのまま rail にもっていっただけ説 :-) ---------------- 13.ログ保存機能 irchat-pj では, ごく簡単なログ保存機能を用意しております. 関数 irchat-pj-save-log を呼ぶと, その時点での各チャネルバッファ のうち指定したものをログファイルに追加します. 指定方法ですが, 変数 irchat-pj-save-log-directory にログ保存ディレクトリを指定 し, 変数 irchat-pj-save-log-channel-alist に '(("#channel1" . "prefix1") ("#channel2" . "prefix2") ...) の形で書いておくと, irchat-pj-save-log-directoryで指定したディ レクトリに, #channel1 のログは prefix1-mmdd というファイル名で, #channel2 のログは prefix2-mmdd の形で保存されます(mmdd は日付). privateバッファのログは (" Private" . "private") のようにします. また, 全チャネルをひとつのファイルに保存したい場合は (" Dialogue" . "all") と, チャネル名の先頭に " " をつけます. irchat-pj-save-log の挙動は, 単純に, "IRC:(channel)" の形のバッ ファを, "(prefix)-mmdd" というファイルに追加するだけですので, 何度も実行すると同じ内容が何度も保存されることになります. したがって, あまり interactive に実行するのではなくて, irchat-pj 終了時のみに実行するほうが賢明です. なお, irchat-pj-save-log-channel-alist が定義されておれば, 終了時に irchat-pj-save-log を呼びます. ---------------- 14.終了時関連バッファ削除機能 irchat-pj を終了するとき, irchat-pj がつくったバッファを完全に 削除することができます. 変数 irchat-pj-quit-with-kill-buffer を non-nil にしておくと, 終了時にバッファを削除します. 今まで手動 で削除をし, 次に irchat-pj を起動しようとしてもできなかった人は これをお使いください. ---------------- (Obsolete).がが問題 「がが問題」とは, 「が」等 ISO-2022-JP コードとして, `,' のコー ドを含む文字をチャネル名に含めることができない問題のことです. (注)この問題は, jp6 パッチ, もしくは fc パッチがあたった irc2.10.3 では解決されております. IRCnet に接続されている 日本国内のサーバおよび Friend Chat のサーバでは「が」等を 含んだチャネル名も問題ありませんので, デフォルトでは, 以下 の抑制機能はオフにしてあります. irchat-2.4jp24g では, joinするとき, チャネル名に無条件でjoinす るので, 対策済でないircdだと, 何の断りもなく文字化けしたチャネ ルを作ってしまうことになります. 挙動としてもよろしくありません し, ユーザの気分もあまりよろしくないことでしょう. irchat-pj では, irchat-pj-fix-gaga-problem を t にしておくと, 問題ある文字を含むチャネルにjoinしようとすると, minibuffer に Invalid channel name (GAGA problem occured). Cannot join #がが のように表示し, 文字化けチャネルを作成することがありません. ---------------- ∞.最後に 最後に, irchat-pj の設定は, 付属の irchat-pj.emacs を参考にして ください. ご意見・ご要望・質問・バグ報告等ございましたら, IRC 上での報告, もしくはメールでの報告をお願いします. IRC 上では, 時間が限られますが(主にテレホーダイ時間), simm[0-9]* にマッチする nick で Friend Chat および IRCnet におりますので, お気軽にお声をおかけください. Friend Chat の #irchat-pj が公式 サポートチャネルですので, なるべくはここでお願いしますが, IRCnet の #KU3G 等で報告していただいても結構です. なお, Friend Chat に関しては, http://www.friend.td.nu/ を参照く ださい. irc.friend.td.nu:6667 に接続いただければ, いずれかのサー バに接続するようになっております. メールでの報告は, simm@irc.fan.gr.jp までお願いします.