IRC クライアントとして Emacs をつかいたい! ERC を試す

    はじめに

    仕事で 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)

    Bookmarks

    IRC について.

    Windows で一番有名? な IRC クライアント.

    IRC Client の比較.

    ERC

    Emacs にデフォルトで入っている.

    Riece

    Cabon Emacs にデフォルトで入っている.リースと読む.

    Circe

    けっこう最近 (2013) にでてきたやつ. 開発は盛ん.

    weechat.el

    最近でてきた CUI 用 IRC Client, weechat を Emacs から利用する.

    ngircd