Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
(Re)generate: (find-rcirc-intro)
Source code:  (find-efunction 'find-rcirc-intro)
More intros:  (find-eev-intro)
This buffer is _temporary_ and _editable_.
Is is meant as both a tutorial and a sandbox.

Recent versions with Emacs come with two IRC clients built-in:
Rcirc and ERC. I never understood ERC well enough, and I found
Rcirc quite easy to understand and to hack, so eev has some
support for Rcirc (and no support for ERC).

The server buffer and the channel buffers
If you type `M-6 M-6 M-j' - or `M-e' on the line below - then eev
runs this,

  (find-freenode-3a "#eev")

which tells Emacs to connect to Freenode and to the channel #eev,
using this window setting:

  |           |             |
  |           |   Freenode  |
  |           |    server   |
  |           |   messages  |
  |  current  |_____________|    
  |  buffer   |             |
  |           |    #eev     |
  |           |   channel   |
  |           |             |

You will then be able to watch the process of connecting to
Freenode, which takes about 20s on my machine, by the messages
that will appear at the Freenode server buffer; at some point
rcirc will be allowed by the server to connect to channels, it
will request to connect to the channel #eev, and some login
messages, plus at list of all users connected to #eev and a
prompt, will appear at the #eev channel buffer.

`M-66j' is mostly for establishing a connection to an IRC server
and watching if any errors occur; once we know that we are
connected we can use `M-6j' - with just one `M-6' - which just
takes us to the #eev channel without changing the current window
configuration. A mnemonic: `M-66j', which is one keypress longer,
is to be used less often - essentially only once per session, or
when we want to check the status of our connection to Freenode.

Messages and commands
IRC is a command-line-ish protocol, in which lines starting with
"/" are treated as commands and other lines as messages. A
message typed at the #eev channel buffer is broadcast to all
other users also connected to #eev; some commands, like

  /join #emacs

work in the same way no matter where they are typed, while
others, like for example "/part", work differently when typed
in #eev than when in #emacs. See:

  (find-rcircnode "rcirc commands" "/join #emacs")
  (find-rcircnode "rcirc commands" "/part")

Other channels

where `find-freenode-3a' is based on `find-3a', described here:

  (find-multiwindow-intro "High-level words")

  (find-eev "eev-rcirc.el")

If you are new to IRC
Most of the discussions between Free Software developers still
happen in IRC channels, and mostly at Freenode. The best way to
understand what IRC is - for modern people, I mean - is probably
to try this first:


IRC is a command-line-ish protocol, in which lines starting with
"/" are treated as commands and other lines are messages to be
broadcast. Try to "/join" the channels "#emacs" and "#eev",
with "/join #emacs" and "/join #eev"; in that webchat, try to
switch between the channels you're connected to by clicking on
the tabs at the top - and note that there is also a tab for a
channel-ish thing that has only messages from the server. Try
also to leave these channels with "/part", "/part #emacs",
"/part #eev".

In Rcirc each one of these channels, including the server
channel, becomes an Emacs buffer. The names of these buffers will


  (defun eejump-66 () (find-freenode-3a "#eev"))

For more information see:

  (find-node "(rcirc)Top")
  (find-node "(rcirc)Internet Relay Chat")
  (find-node "(rcirc)rcirc commands")

  (find-node "(erc)Top")