3 @setfilename ../info/erc
9 * ERC: (erc). Powerful, modular, and extensible IRC client for Emacs.
15 This manual is for ERC version 5.1.
17 Copyright @copyright{} 2005, 2006 Free Software Foundation, Inc.
20 Permission is granted to copy, distribute and/or modify this document
21 under the terms of the GNU Free Documentation License, Version 1.2 or
22 any later version published by the Free Software Foundation; with no
23 Invariant Sections, Front-Cover texts, or Back-Cover Texts.
29 @subtitle a full-featured IRC client
30 @subtitle for GNU Emacs and XEmacs
32 @c The following two commands
33 @c start the copyright page.
35 @vskip 0pt plus 1filll
39 @c So the toc is printed at the start
43 @node Top, Introduction, (dir), (dir)
44 @comment node-name, next, previous, up
51 * Introduction:: What is ERC?
52 * Obtaining ERC:: How to get ERC releases and development
54 * Installation:: Compiling and installing ERC.
55 * Getting Started:: Quick Start guide to using ERC.
56 * Keystroke Summary:: Keystrokes used in ERC buffers.
57 * Modules:: Available modules for ERC.
58 * Advanced Usage:: Cool ways of using ERC.
59 * Getting Help and Reporting Bugs::
60 * History:: The history of ERC.
61 * Concept Index:: Search for terms.
64 --- The Detailed Node Listing ---
68 * Releases:: Released versions of ERC.
69 * Development:: Latest unreleased development changes.
74 @node Introduction, Obtaining ERC, Top, Top
75 @comment node-name, next, previous, up
78 ERC is a powerful, modular, and extensible IRC client for Emacs.
80 It comes with the following capabilities enabled by default.
85 @item Join channels automatically
86 @item Buttonize URLs, nicknames, and other text
88 @item Highlight or remove IRC control characters
89 @item Highlight pals, fools, and other keywords
90 @item Detect netsplits
91 @item Complete nicknames and commands in a programmable fashion
92 @item Make displayed lines read-only
94 @item Track channel activity in the mode-line
98 @node Obtaining ERC, Installation, Introduction, Top
99 @comment node-name, next, previous, up
100 @chapter Obtaining ERC
103 * Releases:: Released versions of ERC.
104 * Development:: Latest unreleased development changes.
107 These sections may be skipped if you are using the version of ERC that
110 @node Releases, Development, Obtaining ERC, Obtaining ERC
111 @comment node-name, next, previous, up
114 Choose to install a release if you want to minimize risk.
116 Errors are corrected in development first. User-visible changes will be
117 announced on the @email{erc-help@@lists.sourceforge.net} mailing list.
118 @pxref{Getting Help and Reporting Bugs}.
120 @cindex releases, Debian package
121 @cindex Debian package for ERC
122 Debian users can get ERC via apt-get. The @file{erc} package is
123 available in the official Debian repository.
125 @cindex releases, from source
126 Alternatively, you can download the latest release from
127 @uref{http://sourceforge.net/project/showfiles.php?group_id=30118}.
129 @node Development, , Releases, Obtaining ERC
130 @comment node-name, next, previous, up
134 Choose the development version if you want to live on the bleeding edge
135 of ERC development or try out new features before release.
137 @subsection Using CVS
140 ERC is primarily developed using a CVS repository on sourceforge.net.
141 To check out a copy of the latest changes, do the following.
144 cvs -d:pserver:anonymous@@cvs.sourceforge.net:/cvsroot/erc login
145 cvs -z3 -d:pserver:anonymous@@cvs.sourceforge.net:/cvsroot/erc co -P erc
149 Alternatively, the latest CVS snapshot may be downloaded in the
153 @item http://mwolson.org/static/dist/erc-latest.tar.gz
154 @item http://mwolson.org/static/dist/erc-latest.zip
157 @subsection Using the GNU Arch Revision Control System
158 @cindex arch revision control system, using
159 The Arch revision control system allows you to retrieve previous
160 versions and select specific features and bug fixes.
162 Michael Olson maintains an official Arch branch for ERC which stays
163 current with the CVS repository for ERC. If you would like to
164 contribute to ERC development, and would prefer to use a modern Revision
165 Control System, feel free to make your own branch.
167 If you are new to Arch, you might find this tutorial helpful:
168 @uref{http://www.mwolson.org/projects/ArchTutorial.html}.
170 Downloading ERC with Arch and staying up-to-date involves the following
177 @item Debian: @kbd{apt-get install tla}.
178 @item Other distributions: see @uref{ftp://ftp.gnu.org/gnu/gnu-arch/}.
181 @item Register the archive.
183 tla register-archive -f http://www.mwolson.org/archives/2006
186 @item Download the ERC source code.
188 # Download ERC into the @file{erc} directory.
189 tla get mwolson@@gnu.org--2006/erc--cvs--0 erc
192 @item List upstream changes that are missing from your local copy.
193 Do this whenever you want to see whether new changes have been committed
197 # Change to the source directory you are interested in.
200 # Display the summary of changes
201 tla missing --summary
204 @cindex updating ERC with Arch
205 @item Update to the latest version by replaying missing changes.
213 There are other ways to interact with the ERC archive.
216 @item Browse arch repository: @uref{http://www.mwolson.org/archives/}
217 @item Latest development snapshot: @uref{http://www.mwolson.org/static/dist/erc-latest.tar.gz}
220 The latest development snapshot will be kept up-to-date since it is
221 updated at the same time as the Arch repository.
224 @node Installation, Getting Started, Obtaining ERC, Top
225 @comment node-name, next, previous, up
226 @chapter Installation
228 ERC may be compiled and installed on your machine.
230 This section may be skipped if you are using the version of ERC that
233 @subsubheading Compilation
235 This is an optional step, since Emacs Lisp source code does not
236 necessarily have to be byte-compiled. It will yield a speed increase,
239 A working copy of Emacs or XEmacs is needed in order to compile ERC. By
240 default, the program that is installed with the name @command{emacs}
243 If you want to use the @command{xemacs} binary to perform the
244 compilation, you would need to edit @file{Makefile} in the top-level
245 directory as follows. You can put either a full path to an Emacs or
246 XEmacs binary or just the command name, as long as it is in the
251 SITEFLAG = -no-site-file
254 Running @code{make} should compile the ERC source files in the
255 @file{lisp} directory.
257 @subsubheading Installation
259 ERC may be installed into your file hierarchy by doing the following.
261 Edit the @file{Makefile} file so that @env{ELISPDIR} points to where you
262 want the source and compiled ERC files to be installed and
263 @env{INFODIR} indicates where to put the ERC manual. Of course, you
264 will want to edit @env{EMACS} and @env{SITEFLAG} as shown in the
265 Compilation section if you are using XEmacs.
267 If you are installing ERC on a Debian system, you might want to change
268 the value of @env{INSTALLINFO} as specified in @file{Makefile}.
270 Run @code{make} as a normal user.
272 Run @code{make install} as the root user if you have chosen installation
273 locations that require this.
276 @node Getting Started, Keystroke Summary, Installation, Top
277 @comment node-name, next, previous, up
278 @chapter Getting Started
281 @c PRE5_2: Mention .ercrc.el
283 To use ERC, add the directory containing its files to your
284 @code{load-path} variable, in your @file{.emacs} file. Then, load ERC
285 itself along with any extra modules you desire. An example follows.
290 (require 'erc-spelling)
293 Once this is loaded, the command @kbd{M-x erc-select} will start ERC and
294 prompt for the server to connect to.
296 @c PRE5_2: Sample session, including:
297 @c - connect to Freenode
299 @c - see messages flying past, point out topic lines, messages, channel
301 @c - identifying your nick with NickServ (most IRC servers have this)
302 @c - talking to the channel
303 @c - open a /query buffer to talk to someone (must identify first in
307 @node Keystroke Summary, Modules, Getting Started, Top
308 @comment node-name, next, previous, up
309 @chapter Keys Used in ERC
312 This is a summary of keystrokes available in every ERC buffer.
316 @item C-a or <home> (`erc-bol')
317 Go to beginning of line or end of prompt.
319 @item RET (`erc-send-current-line')
320 Send the current line
322 @item TAB (`erc-complete-word')
323 If at prompt, complete the current word.
324 Otherwise, move to the next link or button.
326 @item M-TAB (`ispell-complete-word')
327 Complete the given word, using ispell.
329 @item C-c C-a (`erc-bol')
330 Go to beginning of line or end of prompt.
332 @item C-c C-b (`erc-iswitchb')
333 Use `iswitchb-read-buffer' to prompt for a ERC buffer to switch to.
335 @item C-c C-c (`erc-toggle-interpret-controls')
336 Toggle interpretation of control sequences in messages.
338 @item C-c C-d (`erc-input-action')
339 Interactively input a user action and send it to IRC.
341 @item C-c C-e (`erc-toggle-ctcp-autoresponse')
342 Toggle automatic CTCP replies (like VERSION and PING).
344 @item C-c C-f (`erc-toggle-flood-control')
345 Toggle use of flood control on sent messages.
347 @item C-c TAB (`erc-invite-only-mode')
348 Turn on the invite only mode (+i) for the current channel.
350 @item C-c C-j (`erc-join-channel')
351 Join channel. If point is at the beginning of a channel name, use that
354 @item C-c C-k (`erc-go-to-log-matches-buffer')
355 Interactively open an erc-log-matches buffer
357 @item C-c C-l (`erc-save-buffer-in-logs')
358 Append buffer contents to the log file, if logging is enabled.
360 @item C-c C-n (`erc-channel-names')
361 Run "/names #channel" in the current channel.
363 @item C-c C-o (`erc-get-channel-mode-from-keypress')
364 Read a key sequence and call the corresponding channel mode function.
365 After doing C-c C-o type in a channel mode letter.
368 RET let's you type more than one mode at a time.
369 If "l" is pressed, `erc-set-channel-limit' gets called.
370 If "k" is pressed, `erc-set-channel-key' gets called.
371 Anything else will be sent to `erc-toggle-channel-mode'.
373 @item C-c C-p (`erc-part-from-channel')
374 Part from the current channel and prompt for a reason.
376 @item C-c C-q (`erc-quit-server')
377 Disconnect from current server after prompting for reason.
379 @item C-c C-r (`erc-remove-text-properties-region')
380 Clears the region (start,end) in object from all colors, etc.
382 @item C-c C-t (`erc-set-topic')
383 Prompt for a topic for the current channel.
385 @item C-c C-u (`erc-kill-input')
386 Kill current input line using `erc-bol' followed by `kill-line'.
391 @node Modules, Advanced Usage, Keystroke Summary, Top
392 @comment node-name, next, previous, up
396 One way to add functionality to ERC is to customize which of its many
399 There is a spiffy customize interface, which may be reached by typing
400 @kbd{M-x customize-option erc-modules RET}. Alternatively, set
401 @code{erc-modules} manually and then call @code{erc-update-modules}.
403 The following is a list of available modules.
407 @cindex modules, autoaway
409 Set away status automatically.
411 @cindex modules, autojoin
413 Join channels automatically
415 @cindex modules, bbdb
417 Integrate with the Big Brother Database
419 @cindex modules, button
421 Buttonize URLs, nicknames, and other text
423 @cindex modules, fill
427 @cindex modules, irccontrols
429 Highlight or remove IRC control characters
435 @cindex modules, match
437 Highlight pals, fools, and other keywords
439 @cindex modules, netsplit
443 @cindex modules, noncommands
445 Don't display non-IRC commands after evaluation
447 @cindex modules, notify
449 Notify when the online status of certain users changes
451 @cindex modules, pcomplete
453 Complete nicknames and commands (programmable)
455 @cindex modules, readonly
457 Make displayed lines read-only
459 @cindex modules, replace
461 Replace text in messages
463 @cindex modules, ring
465 Enable an input history
467 @cindex modules, scrolltobottom
469 Scroll to the bottom of the buffer
471 @cindex modules, services
473 Identify to Nickserv (IRC Services) automatically
475 @cindex modules, smiley
477 Convert smileys to pretty icons
479 @cindex modules, sound
481 Play sounds when you receive CTCP SOUND requests
483 @cindex modules, spell
487 @cindex modules, stamp
489 Add timestamps to messages
491 @cindex modules, track
493 Track channel activity in the mode-line
495 @cindex modules, truncate
497 Truncate buffers to a certain size
499 @cindex modules, unmorse
501 Translate morse code in messages
505 @c PRE5_2: Document every option of every module in its own subnode
508 @node Advanced Usage, Getting Help and Reporting Bugs, Modules, Top
509 @comment node-name, next, previous, up
510 @chapter Advanced Usage
511 @cindex advanced topics
515 @c PRE5_2: (Node) Document every ERC option
517 @c PRE5_2: (Node) Tips and tricks
519 @c PRE5_2: (Node) Sample configs
522 @node Getting Help and Reporting Bugs, History, Advanced Usage, Top
523 @comment node-name, next, previous, up
524 @chapter Getting Help and Reporting Bugs
525 @cindex help, getting
526 @cindex bugs, reporting
528 After you have read this guide, if you still have questions about ERC,
529 or if you have bugs to report, there are several places you can go.
534 @uref{http://www.emacswiki.org/cgi-bin/wiki/EmacsIRCClient} is the
535 emacswiki.org page for ERC. Anyone may add tips, hints, or bug
539 You can join the mailing list at @email{erc-help@@lists.sourceforge.net}
540 using the subscription form at
541 @uref{http://lists.sourceforge.net/lists/listinfo/erc-help}.
543 This mailing list is also available via Gmane
544 (@url{http://gmane.org/}). The group is called
545 @samp{gmane.emacs.erc.general}. This provides additional methods for
546 accessing the mailing list, adding content to it, and searching it.
549 You can visit the IRC Freenode channel @samp{#emacs}. Many of the
550 contributors are frequently around and willing to answer your
556 @node History, Concept Index, Getting Help and Reporting Bugs, Top
557 @comment node-name, next, previous, up
559 @cindex history, of ERC
561 ERC was originally written by Alexander L. Belikoff
562 @email{abel@@bfr.co.il} and Sergey Berezin
563 @email{sergey.berezin@@cs.cmu.edu}. They stopped development around
564 december 1999. Their last released version was ERC 2.0.
566 P.S.: If one of the original developers of ERC reads this, we'd like to
567 receive additional information for this file and hear comments in
573 In June 2001, Mario Lang @email{mlang@@delysid.org} and Alex Schroeder
574 @email{alex@@gnu.org} took over development and created a ERC Project at
577 In reaction to a mail about the new erc development, Sergey Berezin
578 said, "First of all, I'm glad that my version of ERC is being used out
579 there. The thing is, I do not have free time and enough incentive
580 anymore to work on ERC, so I would be happy if you guys take over the
583 So we happily hacked away on ERC, and soon after (september 2001)
584 released the next "stable" version, 2.1.
586 Most of the development of the new ERC happend on #emacs on
587 irc.openprojects.net. Over time, many people contributed code, ideas,
588 bugfixes. And not to forget alot of alpha/beta/gamma testing.
590 See the @file{CREDITS} file for a list of contributors.
602 ERC 5.0 is released. Michael Olson @email{mwolson@@gnu.org} becomes
603 the release manager and eventually the maintainer.
605 After some discussion between him and the Emacs developers, it is
606 decided to include ERC in Emacs.
614 @node Concept Index, , History, Top
615 @comment node-name, next, previous, up
623 arch-tag: cf9cfaff-fc12-4297-ad15-ec2493002b1e