erc -- Emacs IRC Client

ERC -- The Emacs IRC Client

ERC is a Emacs extension package which allows you to connect to multiple different IRC networks simultaneously and have chat conversations with people on the Internet from within Emacs, your well known and familiar editing environment. Each channell and direct conversation (query) resides in a different buffer. A sophisticated mechanism is used to indicate activity in currently hidden buffers in the mode-line, called Channel Tracking.

ERC provides all the features you might expect from a modern IRC client such as nick completion, word highlighting and user online status change notifications. Text matching specific criteria can be transformed into buttons and you can even integrate ERC with BBDB. ERC also provides Netsplit avoidance and rudimentary support for Nickserv identification. If you are using the GNU Emacs CVS version, ERC also provides full DCC support including DCC Chat connections and the ability to send and receive files.

I came to be the lead developer of ERC in early summer 2001. Back then it was apparently abandoned, no development going on any more. We (Alex 'kensanata' Schroeder and I) decided to check it into SourceForge and create a ERC SourceForge Project. Since then many different people turned up with patches and interesting ideas, and I really have to say it was a very interesting and succesfful experience so far. We have a pretty full-blown feature set already, but useful ideas and fixes still keep coming in.

For more information please see the ERC homepage which informs you on how to download and install ERC. Or jump right in and have a look at a quickstart guide to using ERC.

erc-speak -- A speech interface to IRC

For me, one important aspect of using ERC is its speech capabilities. When I began to hack on erc, I immediately felt the need for such a thing, and wrote erc-speak.el, which uses Emacspeak to output speech to whatever speech synthesizer is configured for use with Emacspeak. A while ago I recorded a sample erc-speak usage session in MP3 format. erc-speak.el these days behaves a bit differently than illustrated in this recording, but it should give you a pretty good idea of how it works.

For more details about erc-sepak.el, see the file itself in the erc distribution.

Sample configuration for ERC

This is a small sample snippet of Emacs Lisp which demonstrates a possible configuration for ERC. It is approximately what I personally use.

(setq load-path (cons "/home/mlang/erc" load-path))
(load "erc-auto")
(eval-after-load "erc"
  '(progn
     (setq erc-auto-query t
           erc-bbdb-auto-create-on-whois-p t
	   erc-fill-column (- (window-width) 2)
	   erc-pals '("kensanata" "walters" "shapr" "gordon" "disumu"
		      "johnw" "alfie" "resolve" "mhp" "benj" "ganneff")
	   erc-notify-list erc-pals)
					;    (require 'erc-bbdb)
     (require 'erc-chess)
     (require 'erc-imenu)
     (require 'erc-menu)
     (require 'erc-notify)
     (require 'erc-ring)
     (erc-button-mode 1)
     (erc-completion-mode 1)
     (erc-fill-mode 1)
     (erc-match-mode 1)
     (erc-netsplit-mode 1)
     (erc-services-mode 1)
     (erc-timestamp-mode 1)
     (erc-track-mode 1)
     (add-hook 'erc-mode-hook 'erc-add-scroll-to-bottom)
     (add-to-list 'erc-nick-popup-alist
      '("DebianDB" .
	(shell-command
	 (format
	  "ldapsearch -x -P 2 -h db.debian.org -b dc=debian,dc=org ircnick=%s"
	  nick))))))
Last Modified: 2006-11-27 00:02:37
You can view the Source Code of this page