(Display Custom): Add xref to Variables.
[emacs.git] / man / erc.texi
blobd4053e5e7371d5ddc5642f2b3af4e8d8183bd39b
1 \input texinfo
2 @c %**start of header
3 @setfilename ../info/erc
4 @settitle ERC Manual
5 @c %**end of header
7 @dircategory Emacs
8 @direntry
9 * ERC: (erc).  Powerful, modular, and extensible IRC client for Emacs.
10 @end direntry
12 @syncodeindex fn cp
14 @copying
15 This manual is for ERC version 5.1.
17 Copyright @copyright{} 2005, 2006 Free Software Foundation, Inc.
19 @quotation
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.
24 @end quotation
25 @end copying
27 @titlepage
28 @title ERC manual
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.
34 @page
35 @vskip 0pt plus 1filll
36 @insertcopying
37 @end titlepage
39 @c So the toc is printed at the start
40 @contents
42 @ifnottex
43 @node Top, Introduction, (dir), (dir)
44 @comment  node-name,  next,  previous,  up
45 @top ERC
47 @insertcopying
48 @end ifnottex
50 @menu
51 * Introduction::                What is ERC?
52 * Obtaining ERC::               How to get ERC releases and development
53                                   versions.
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.
63 @detailmenu
64  --- The Detailed Node Listing ---
66 Obtaining ERC
68 * Releases::                    Released versions of ERC.
69 * Development::                 Latest unreleased development changes.
71 @end detailmenu
72 @end menu
74 @node Introduction, Obtaining ERC, Top, Top
75 @comment  node-name,  next,  previous,  up
76 @chapter Introduction
78 ERC is a powerful, modular, and extensible IRC client for Emacs.
80 It comes with the following capabilities enabled by default.
82 @itemize @bullet
83 @item Flood control
84 @item Timestamps
85 @item Join channels automatically
86 @item Buttonize URLs, nicknames, and other text
87 @item Wrap long lines
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
93 @item Input history
94 @item Track channel activity in the mode-line
96 @end itemize
98 @node Obtaining ERC, Installation, Introduction, Top
99 @comment  node-name,  next,  previous,  up
100 @chapter Obtaining ERC
102 @menu
103 * Releases::                    Released versions of ERC.
104 * Development::                 Latest unreleased development changes.
105 @end menu
107 These sections may be skipped if you are using the version of ERC that
108 comes with Emacs.
110 @node Releases, Development, Obtaining ERC, Obtaining ERC
111 @comment  node-name,  next,  previous,  up
112 @section Releases
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
131 @section Development
132 @cindex development
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
138 @cindex CVS, using
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.
143 @example
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
146 @end example
148 @cindex CVS snapshot
149 Alternatively, the latest CVS snapshot may be downloaded in the
150 following forms.
152 @itemize @bullet
153 @item http://mwolson.org/static/dist/erc-latest.tar.gz
154 @item http://mwolson.org/static/dist/erc-latest.zip
155 @end itemize
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
171 steps.
173 @enumerate
174 @item Install arch
176 @itemize @bullet
177 @item Debian: @kbd{apt-get install tla}.
178 @item Other distributions: see @uref{ftp://ftp.gnu.org/gnu/gnu-arch/}.
179 @end itemize
181 @item Register the archive.
182 @example
183 tla register-archive -f http://www.mwolson.org/archives/2006
184 @end example
186 @item Download the ERC source code.
187 @example
188 # Download ERC into the @file{erc} directory.
189 tla get mwolson@@gnu.org--2006/erc--cvs--0 erc
190 @end example
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
194 to ERC.
196 @example
197 # Change to the source directory you are interested in.
198 cd erc/
200 # Display the summary of changes
201 tla missing --summary
202 @end example
204 @cindex updating ERC with Arch
205 @item Update to the latest version by replaying missing changes.
206 @example
207 cd erc
208 tla replay
209 @end example
211 @end enumerate
213 There are other ways to interact with the ERC archive.
215 @itemize
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}
218 @end itemize
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
231 comes with Emacs.
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,
237 though.
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}
241 will be used.
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
247 @env{PATH}.
249 @example
250 EMACS    = xemacs
251 SITEFLAG = -no-site-file
252 @end example
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
279 @cindex settings
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.
287 @lisp
288 (require 'erc)
290 (require 'erc-spelling)
291 @end lisp
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
298 @c - /join #emacs
299 @c - see messages flying past, point out topic lines, messages, channel
300 @c   members
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
304 @c   FreeNode)
307 @node Keystroke Summary, Modules, Getting Started, Top
308 @comment  node-name,  next,  previous,  up
309 @chapter Keys Used in ERC
310 @cindex keystrokes
312 This is a summary of keystrokes available in every ERC buffer.
314 @table @kbd
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
352 as default.
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.
367 C-g means quit.
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'.
388 @end table
391 @node Modules, Advanced Usage, Keystroke Summary, Top
392 @comment  node-name,  next,  previous,  up
393 @chapter Modules
394 @cindex modules
396 One way to add functionality to ERC is to customize which of its many
397 modules are loaded.
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.
405 @table @code
407 @cindex modules, autoaway
408 @item autoaway
409 Set away status automatically.
411 @cindex modules, autojoin
412 @item autojoin
413 Join channels automatically
415 @cindex modules, bbdb
416 @item bbdb
417 Integrate with the Big Brother Database
419 @cindex modules, button
420 @item button
421 Buttonize URLs, nicknames, and other text
423 @cindex modules, fill
424 @item fill
425 Wrap long lines
427 @cindex modules, irccontrols
428 @item irccontrols
429 Highlight or remove IRC control characters
431 @cindex modules, log
432 @item log
433 Save buffers in logs
435 @cindex modules, match
436 @item match
437 Highlight pals, fools, and other keywords
439 @cindex modules, netsplit
440 @item netsplit
441 Detect netsplits
443 @cindex modules, noncommands
444 @item noncommands
445 Don't display non-IRC commands after evaluation
447 @cindex modules, notify
448 @item notify
449 Notify when the online status of certain users changes
451 @cindex modules, pcomplete
452 @item pcomplete
453 Complete nicknames and commands (programmable)
455 @cindex modules, readonly
456 @item readonly
457 Make displayed lines read-only
459 @cindex modules, replace
460 @item replace
461 Replace text in messages
463 @cindex modules, ring
464 @item ring
465 Enable an input history
467 @cindex modules, scrolltobottom
468 @item scrolltobottom
469 Scroll to the bottom of the buffer
471 @cindex modules, services
472 @item services
473 Identify to Nickserv (IRC Services) automatically
475 @cindex modules, smiley
476 @item smiley
477 Convert smileys to pretty icons
479 @cindex modules, sound
480 @item sound
481 Play sounds when you receive CTCP SOUND requests
483 @cindex modules, spell
484 @item spell
485 Check spelling
487 @cindex modules, stamp
488 @item stamp
489 Add timestamps to messages
491 @cindex modules, track
492 @item track
493 Track channel activity in the mode-line
495 @cindex modules, truncate
496 @item truncate
497 Truncate buffers to a certain size
499 @cindex modules, unmorse
500 @item unmorse
501 Translate morse code in messages
503 @end table
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
513 Write me.
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.
531 @itemize @bullet
533 @item
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
536 descriptions to it.
538 @item
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.
548 @item
549 You can visit the IRC Freenode channel @samp{#emacs}. Many of the
550 contributors are frequently around and willing to answer your
551 questions.
553 @end itemize
556 @node History, Concept Index, Getting Help and Reporting Bugs, Top
557 @comment  node-name,  next,  previous,  up
558 @chapter History
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
568 general.
570 @itemize
571 @item 2001
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
575 sourceforge.net.
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
581 project entirely."
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.
592 @item 2003
594 ERC 3.0 is released.
596 @item 2004
598 ERC 4.0 is released.
600 @item 2005
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.
608 @item 2006
610 ERC 5.1 is released.
612 @end itemize
614 @node Concept Index,  , History, Top
615 @comment  node-name,  next,  previous,  up
616 @unnumbered Index
618 @printindex cp
620 @bye
622 @ignore
623    arch-tag: cf9cfaff-fc12-4297-ad15-ec2493002b1e
624 @end ignore