rcirc is a next generation IRC client. It blends seamlessly with the rest of emacs, it’s tight, fast, and doesn’t light up like a christmas tree. rcirc also has sane defaults. There is little or no reason to customize it because it does what you want by default (except that many people still do. :))
rcirc is part of GNU Emacs since release 22.0.
If you want to chat about rcirc, the place is #rcirc on freenode.
If you are running Emacs 22, you already have it. Skip this section.
To check out rcirc.el from EmacsFromCVS: GIT:net/rcirc.el.
New versions of rcirc do not work in Emacs 21. You can get the last version of rcirc working in Emacs 21 here: Lisp:rcirc.el.
In Emacs 22, just type M-x irc.
On Emacs 21 and/or very old rcirc version, you will have to add this to your .emacs:
(eval-after-load "rcirc" ; for emacs 21
'(if (not (functionp 'irc))
(defun irc (x)
(interactive "P")
(if x
(call-interactively 'rcirc)
(rcirc rcirc-server rcirc-port rcirc-nick
(rcirc-startup-channels rcirc-server))))))then just do as usual.
rcirc comes set up with default values for IRC server and port (irc.freenode.net 6667), nickname (your login name), and channel (#rcirc). You can override these settings in your .emacs file or use C-u M-x rcirc to set these values. You also can define a key to start it for you:
(global-set-key (kbd "C-c I") 'irc)
Please also consider visiting these pages in order to getting started:
The trunk (emacs 24) has SSL support out of the box.
For emacs 23 you need a fork of rcirc:
https://github.com/nealey/rcirc/wiki which makes possible to use an arbitrary connection method (ssl/proxy/whatever)
or this (SSL with an optional :use-tls for ‘rcirc-server-alist’ and :custom-connect-function for arbitrary connection method (ssl/proxy/whatever) similar to the neale’s patch) https://github.com/melmothx/rcirc/tree/to-emacs
/color – color each nick using a separate color/retake – send RECOVER and RELEASE messages to NickServ/reconnect – quit and reconnect immediately for users waking their laptop from sleep after the server has closed the connection/pounce, /unpounce – store messages for people and send them when they join one of the channels you’re on/all – run a command such as /away for all connections /sv – show rcirc version/help – list rcirc commands and show their documentation‘rcirc-dim-nicks’.‘rcirc-connect’/occur – find stuff in all your rcirc buffers/op, /deop, /mute, /unmute, /ban, /unban, /kickbanrcirc-activities/switch-to-buffer to see and switch to buffers with activities, using ido.‘M-x bs-show’ users(setq rcirc-switch-to-buffer-function 'elscreen-find-and-goto-by-buffer). This has a problem though: automatic switching after some actions (joining a channel, for example) will stop working. One possible solution is: (defun rcirc-switch-buffer-or-screen (buffer) (if (elscreen-find-screen-by-buffer buffer) (elscreen-find-and-goto-by-buffer buffer) (switch-to-buffer buffer))) (setq rcirc-switch-to-buffer-function 'rcirc-switch-buffer-or-screen)
For developers:
VincentFoley asks: could anyone describe the differences between rcirc and ERC from an end-user point of view?
AlexSchroeder replies: For beginners, there should be no significant differences. After all, both claim to be easy-to-use IRC clients. The differences begin when customizing or hacking it. Neither of the two has introduced radical changes to the user interface.
WeakishJiang: I have not used ERC. But I found this piece on this page:
I used ERC for a while, but I was not very fond of the 20 odd files required in my elisp directory, so I switched to rcirc and haven’t looked back since. It does everything I need, the (very clean) code is contained in a single file, I’m very happy! – VincentFoley
Hope it helps.