• このエントリーをはてなブックマークに追加

スポンサードリンク

はじめに

仕事で IRC をコミュケーションツールとして利用しはじめた.

Emacs のなかで生きているので, IRC も Emacs から接続したい. ということで, Emacs の IRC クライアントを調べる.

IRC とは

Internet Relay Chat の略.インターネットを利用したチャット専用システム.

詳細は, 以下のページ参照.

Emacs 用 IRC クライアント

Emacs Wiki によると, いつくも種類があるようだ.

Emacs にデフォルトで入っていて, ネット上でも情報のおおい ERC を試す.

IRC サーバを用意

なんでもよかったのだが, 有名そうな ngiIRCd をいれる.

設定はひとまず Default 設定で起動.

$ sudo ngircd

Emacs

まずは, Emacs 上で M-x erc で ERC を起動.

ERC の Web マニュアル.

まずは, default の サーバに接続

  • IRC Server: rc.freenode.net
  • port: 6667
  • username: tsu-nera
  • password: はじめは未設定.

つづいて, /join #emacs とタイプすると, emacs のチャットに参加できる.

ログアウトは, M-x erc-quit-server (C-c C-x).

ngircd を利用

自分で用意したサーバでもう少し遊ぶ.

ログイン

  • IRC Server: localhost
  • port: 6667
  • username: tsu-nera
  • password: はじめは未設定.

これで, ログインできる.

設定ファイルにログイン情報を書くとログインが簡単になる.

(setq erc-server "localhost")
(setq erc-port "6667")
(setq erc-nick "tsu-nera")
;; (setq erc-password "")

オートログインもできる. 以下を書いて, M-x erc-opn

(autoload 'erc "erc" "" t)
(defmacro de-erc-connect (command server port nick)
  "Create interactive command `command', for connecting to an IRC server. The
command uses interactive mode if passed an argument."
  (fset command
	`(lambda (arg)
	   (interactive "p")
	   (if (not (= 1 arg))
	       (call-interactively 'erc)
	     (erc :server ,server :port ,port :nick ,nick)))))

(de-erc-connect erc-opn "localhost" 6667 "tsu-nera")
#  Channel 接続 /JOIN or /j
/j #test

# 直接話す
/query <nick>

これでも Chanel に接続 できる.

(setq erc-autojoin-channels-alist
      '(("localhost" "#test")))
;;	("oftc.net" "#bitlbee")))
(erc :server "localhost" :port 6667 :nick "tsu-nera")

ログアウト

# Channel からぬける
/PART

# メッセージを残してサーバをさる
/QUIT msg
;; Kill buffers for channels after /part
(setq erc-kill-buffer-on-part t)

Highlight

(require 'erc-match)
(setq erc-keywords '("tsu-nera"))

erc-highlight-nicknames

ニックネームをハイライト

(and
  (require 'erc-highlight-nicknames)
  (add-to-list 'erc-modules 'highlight-nicknames)
  (erc-update-modules))

erc-hl-nicks

erc-highlight-nicknames の改良版か?

(require 'erc-hl-nicks)

nerc-nick-notify

ニックネームが呼ばれたら反応する.

(autoload 'erc-nick-notify-mode "erc-nick-notify"
  "Minor mode that calls `erc-nick-notify-cmd' when his nick gets
mentioned in an erc channel" t)
(eval-after-load 'erc '(erc-nick-notify-mode t))

Encoding

こんな感じか?

;; UTF-8
(setq  erc-server-coding-system '(utf-8 . utf-8))

;; Shift-JIS
(setq erc-server-coding-system に (iso-2022-jp . iso-2022-jp))

Color

ダークにはデフォルトのいろがみずらい

 (add-to-list 'custom-theme-load-path "~/.emacs.d/elisp")
 (load-theme 'blue-erc t t)
 (enable-theme 'blue-erc)