Initial Commit
[packages] / xemacs-packages / zenirc / doc / zenirc.texi
1 @tex
2 \def\line{\hbox to\hsize}
3 \def\centerline#1{\line{\hss#1\hss}}
4 @end tex
5 \input psfig
6 \input texinfo   @c -*-texinfo-*-
7 @c ----------------------------------------------------------------------
8 @c Time-stamp: <Fri Oct 11 1996 23:10:26 Stardate: [-31]8254.61 hwloidl>
9 @c
10 @c Hacked TeXInfo file (based on the zenirc.ascii file in version 2.107)
11 @c ----------------------------------------------------------------------
12
13 @c %**start of header
14 @setfilename zenirc.info
15 @settitle ZenIRC Info Pages
16 @direntry
17 * ZenIRC: (zenirc).      Internet Relay Chat in the Emacs World.
18 @end direntry
19 @c footnotestyle separate
20 @c paragraphindent 2
21 @c %**end of header
22
23 @comment New index for options
24 @c @defindex op
25 @c @syncodeindex op cp
26
27 @titlepage
28 @sp 10
29 @comment The title is printed in a large font.
30 @center @titlefont{ZenIRC Info Pages}
31 @center Version 2.107
32 @sp 1
33 @center October 1996
34 @sp 5
35 @c @center Hans-Wolfgang Loidl
36 @c @center @t{hwloidl@@dcs.gla.ac.uk}
37 @c The following two commands start the copyright page.
38 @page
39 @end titlepage
40
41 @c ----------------------------------------------------------------------
42
43 @ifnottex
44 @node   Top, Introduction, (dir), (dir)
45 @comment  node-name,  next,  previous,  up
46 @top ZenIRC Info Pages
47 @end ifnottex
48
49 Waste time on IRC using ZenIRC
50
51 With ZenIRC you can connect to IRC servers and waste time.
52 ZenIRC runs under Emacs-18, Emacs-19, Epoch and XEmacs.
53 This manual describes ZenIRC version 3.0.
54
55 @menu
56 * Introduction::                
57 * Using ZenIRC to waste time.::  
58 * It's working::                
59 * Function Index::              
60
61  --- The Detailed Node Listing ---
62
63 Introduction
64
65 * Finding an IRC server and connecting to it.::  
66
67 Finding an IRC server and connecting to it.
68
69 * Changing default server (and attributes).::  
70 * Those servers are all down.::  
71 * The server doesn't let me on?!::  
72
73 Changing default server (and attributes).
74
75 * The $IRCSERVER way.::         
76 * The zenirc-server-alist way.::  
77 * Using ordinary variables.::   
78
79 Using ZenIRC to waste time.
80
81 * What goes on in the background?       ::  
82 * Commands in ZenIRC major-mode.::  
83 * Keybindings in ZenIRC major-mode.::  
84
85 What goes on in the background? 
86
87 * Communicating with the server.::  
88 * Server communicating with you.::  
89
90 Commands in ZenIRC major-mode.
91
92 * Non ZenIRC specific commands.::  
93 * ZenIRC specific commands.::   
94 @end menu
95
96 @node Introduction, Using ZenIRC to waste time., Top, Top
97 @comment  node-name,  next,  previous,  up
98 @chapter Introduction
99
100
101
102 If ZenIRC is installed properly, starting ZenIRC without any
103 extensions is fairly easy--you just type `M-x zenirc' in your Emacs.
104
105 If ZenIRC isn't installed at all, you probably won't be able to read
106 this manual. Turn to the "INSTALL" file which comes with the
107 distribution of ZenIRC-3.0.
108
109 If ZenIRC is installed but you still can't start it, there's a big
110 chance that you can't connect to the default server.
111
112
113 @menu
114 * Finding an IRC server and connecting to it.::  
115 @end menu
116
117 @node Finding an IRC server and connecting to it.,  , Introduction, Introduction
118 @comment  node-name,  next,  previous,  up
119 @section Finding an IRC server and connecting to it.
120
121
122
123 There's only one default server for ZenIRC, irc.stealth.net. This
124 server might, of course, be down or unreachable. If this is so, you
125 need to connect to another server for ZenIRC to work.
126
127 ZenIRC comes with a list of servers maintained by Doug McLaren. The
128 list is from 1996-04-15 so it might not be correct. This list is
129 posted to the Usenet group alt.irc and alt.irc.questions twice a
130 month and a copy of it can be found via anonymous FTP at
131  ftp.comco.com:/pub/irc/server-list-current
132
133
134 @menu
135 * Changing default server (and attributes).::  
136 * Those servers are all down.::  
137 * The server doesn't let me on?!::  
138 @end menu
139
140 @node Changing default server (and attributes)., Those servers are all down., Finding an IRC server and connecting to it., Finding an IRC server and connecting to it.
141 @comment  node-name,  next,  previous,  up
142 @subsection Changing default server (and attributes).
143
144
145
146 There's three different ways to change your default server. They're
147 listed below in the prefered order. If you use example 1.1.1.1 or
148 1.1.1.2 you'll get some redundancy example 1.1.1.3 can't give you.
149 1.1.1.3 is good if you want to start right away and set things up
150 later on in life.
151
152
153 @menu
154 * The $IRCSERVER way.::         
155 * The zenirc-server-alist way.::  
156 * Using ordinary variables.::   
157 @end menu
158
159 @node The $IRCSERVER way., The zenirc-server-alist way., Changing default server (and attributes)., Changing default server (and attributes).
160 @comment  node-name,  next,  previous,  up
161 @subsubsection The $IRCSERVER way.
162
163
164
165 By setting your environment variable $IRCSERVER you also change the
166 default servers for most other IRC clients around. How to set this
167 variable is different in different shells. 
168
169         sh, bash, zsh;  IRCSERVER="some.server";export IRCSERVER
170         csh, tcsh;      setenv IRCSERVER "some.server"
171
172 ZenIRC uses this variable just like ircII. The correct syntax is;
173
174         server1[:port1[:password1[:nickname1[:username1]]]] server2[:port2...
175
176 To set your default server to irc.stealth.net with the nickname `ben'
177 and your secondary server to irc.funet.fi on port 6666 with the
178 nickname Vesa you would set $IRCSERVER to;
179
180         irc.stealth.net:::ben: irc.funet.fi:6666::Vesa:
181
182
183 @node The zenirc-server-alist way., Using ordinary variables., The $IRCSERVER way., Changing default server (and attributes).
184 @comment  node-name,  next,  previous,  up
185 @subsubsection The zenirc-server-alist way.
186
187
188
189 By setting the ZenIRC variable zenirc-server-alist you can do the same
190 thing as with $IRCSERVER, this way you won't have the same defaults
191 for other clients though.
192
193 To do exactly as the example in 1.1.1.1, you should set
194 zenirc-server-alist as follows;
195
196 @example
197         (setq zenirc-server-alist 
198           '(("irc.stealth.net" nil nil "ben" nil)
199             ("irc.funet.fi" 6666 nil "Vesa" nil)))
200 @end example
201
202         
203 @node Using ordinary variables.,  , The zenirc-server-alist way., Changing default server (and attributes).
204 @comment  node-name,  next,  previous,  up
205 @subsubsection Using ordinary variables.
206
207
208
209 The only thing you actually _need_ to set is zenirc-server-default.
210
211 To set your default server, use zenirc-server-default;
212
213 @example
214         (setq zenirc-server-default "irc.stealth.net")
215 @end example
216
217 To set your default nickname, use zenric-nick-default;
218
219 @example
220         (setq zenirc-nick-default "ben")
221 @end example
222
223 To set your default password, use zenric-password-default;
224
225 @example
226         (setq zenirc-password-default "mostly not used")
227 @end example
228
229 To set your default port, use zenirc-port-default;
230
231 @example
232         (setq zenirc-port-default 6667)
233 @end example
234
235 To set your default username, use zenirc-user-login-name-default;
236         
237 @example
238         (setq zenirc-user-login-name-default "oedipus rpc.rexd")
239 @end example
240
241
242 @node Those servers are all down., The server doesn't let me on?!, Changing default server (and attributes)., Finding an IRC server and connecting to it.
243 @comment  node-name,  next,  previous,  up
244 @subsection Those servers are all down.
245
246
247
248 If you don't want to restart Emacs and ZenIRC to try a new server,
249 type `M-x zenirc-select' and you will be asked a few questions.
250
251
252 @node The server doesn't let me on?!,  , Those servers are all down., Finding an IRC server and connecting to it.
253 @comment  node-name,  next,  previous,  up
254 @subsection The server doesn't let me on?!
255
256
257
258 The IRC administrators might not want people from everywhere to
259 connect to his server. I'd recomend you to use an as closeby server as
260 possible. The list of servers lists the server by country, the best
261 shot would be to use one as close to you as possible.
262
263 There's also a possiblity that the admin has banned your domain. If
264 this is true, talk to your system administrator about it.
265
266 Some servers won't let you connect if your system isn't running an
267 IDENT service. This breaks the RFC for IDENT so be sure to tell the
268 administrator of the server about this idiocy, then go on and pick a
269 better server.
270
271
272 @node Using ZenIRC to waste time., It's working, Introduction, Top
273 @comment  node-name,  next,  previous,  up
274 @chapter Using ZenIRC to waste time.
275
276
277
278 Once you've conected to a server, Emacs will enter ZenIRC
279 major-mode. This mode parses information from the server and shows it
280 to you in different ways, it also give you a nice interface to send
281 things to the server. ZenIRCs major-mode also understands CTCP and
282 parts of the DCC protocol.
283
284
285 @menu
286 * What goes on in the background?       ::  
287 * Commands in ZenIRC major-mode.::  
288 * Keybindings in ZenIRC major-mode.::  
289 @end menu
290
291 @node What goes on in the background?   , Commands in ZenIRC major-mode., Using ZenIRC to waste time., Using ZenIRC to waste time.
292 @comment  node-name,  next,  previous,  up
293 @section What goes on in the background?        
294
295
296
297 Lots of things. If you don't know much elisp and just want to use the
298 client you couldn't be less bothered actually. If you really are
299 interested in the internals of ZenIRC you should join one or more of
300 the ZenIRC mailinglists, read the source and play around a little.
301 Changing small things and adding some small nifty hooks are pretty
302 trivial though, read more about that in SECTION and SECTION.
303         
304
305 @menu
306 * Communicating with the server.::  
307 * Server communicating with you.::  
308 @end menu
309
310 @node Communicating with the server., Server communicating with you., What goes on in the background?   , What goes on in the background?       
311 @comment  node-name,  next,  previous,  up
312 @subsection Communicating with the server.
313
314
315
316 Sending stuff to the server is done by hitting return (^M). ZenIRC
317 parses the things you send to the server in two different ways,
318 depending on the first character you type. With a leading "/" (you can
319 change this by setting zenirc-commandchar) ZenIRC parses your line as
320 a command. Without the leading "/" ZenIRC sends your line as a message
321 to your current victim, this is done with PRIVMSG as described in
322 RFC1459.
323
324 Example, if the channel #se-opers is your zenric-current-victim and
325 you type;
326
327 @example
328         Hello people^M
329 @end example
330
331 the clients on channel #se-opers will see your message. Use the /query
332 command to change zenirc-current-victim. :LINK:
333
334 On the other hand, if you type;
335
336 @example
337         /part #se-opers^M
338 @end example
339
340 you will part the channel. Look in 2.2 for an extensive list of all
341 commands and how to use them.
342
343
344 @node Server communicating with you.,  , Communicating with the server., What goes on in the background?        
345 @comment  node-name,  next,  previous,  up
346 @subsection Server communicating with you.
347
348
349 ZenIRC parses all the information the servers sends to you in one way
350 or the other. On a few occasions ZenIRC might lack the information on
351 how to parse a certain thing, this is almost considered a bug (use M-x
352 zenirc-bug to report this behaviour).
353
354 To display the information, ZenIRC uses language catalogs. The default
355 catalog is English, but this can be changed easily. Writing your own
356 catalog is trivial and we'd love you if you wrote your own catalog and
357 mailed it in to the developers.
358
359 There's a lot of different variables you can change, and hooks to play
360 with if you feel adventureous. You can, for example, ignore people,
361 make ZenIRC beep when something special happens, have timestamps on
362 special messages and so forth. The variables are described in SECTION
363 and the hooks are described in SECTION. 
364
365 `zenirc.el' only contains the most important features, some very nice
366 features are placed in their own files. `zenirc-fill.el', for example,
367 fills certain messages for you so Emacs doesn't have to wrap long
368 lines in an ugly way. Read more about scripts in SECTION.
369
370
371 @node Commands in ZenIRC major-mode., Keybindings in ZenIRC major-mode., What goes on in the background?        , Using ZenIRC to waste time.
372 @comment  node-name,  next,  previous,  up
373 @section Commands in ZenIRC major-mode.
374
375
376
377 As already described, ZenIRC pareses lines with a leading "/" as a
378 command. Most of the commands are sent right off to the server, some
379 commands are ZenIRC specific though. 
380
381
382 @menu
383 * Non ZenIRC specific commands.::  
384 * ZenIRC specific commands.::   
385 @end menu
386
387 @node Non ZenIRC specific commands., ZenIRC specific commands., Commands in ZenIRC major-mode., Commands in ZenIRC major-mode.
388 @comment  node-name,  next,  previous,  up
389 @subsection Non ZenIRC specific commands.
390
391
392
393 A list of these commands can be found in RFC1459, this list is just a
394 brief description on how to use different commands. Go read RFC1459 if
395 you want to learn really nifty stuff.
396
397 Things inside []'s are optional. If the optional argument is a server,
398 using a nickname will list information about the server that nickname
399 is using.
400
401 @deffn Command /nick nickname                   
402         Change your nickname
403
404 @end deffn
405 @deffn Command /quit comment            
406         Stop wasting time, with optional comment.
407
408 @end deffn
409 @deffn Command /join channel[,channel] [key[,key]]      
410         Join one or more comma separated channels with given optional keys.
411         zenirc-current-victim is set to the last joined channel.
412
413 @end deffn
414 @deffn Command /part channel[,channel] [comment]
415         Part one or more comma separated channels, with optional comment.
416         If you part your zenirc-current-victim, it is set to 'nil'.
417
418 @end deffn
419 @deffn Command /mode nickname [mode]
420         Check or change modes for a given nickname. See RFC1459 for an
421         extensive list of modes.
422
423 @end deffn
424 @deffn Command /mode channel [mode [person]]
425         Check or change modes for a channel, or the mode of a nickname
426         on a channel. See RFC1459 for an extensive list of modes.
427
428 @end deffn
429 @deffn Command /topic channel [topic]
430         Check or change topic of a certain channel.
431
432 @end deffn
433 @deffn Command /names channel[,channel]
434         See who's on one or more comma separated channels.
435
436 @end deffn
437 @deffn Command /list [channel[,channel] [server]]
438         Lists all, one or a comma separated list of channels. With
439         given server it lists channels from that servers view.
440
441 @end deffn
442 @deffn Command /invite nickname channel
443         Invite person to given channel name.
444
445 @end deffn
446 @deffn Command /kick channel nickname [comment]
447         Kick person on given channel with an optional comment.
448
449 @end deffn
450 @deffn Command /version [server]
451         Returns version of current or given server.
452
453 @end deffn
454 @deffn Command /stats query [server]
455         Returns information about that server (go read RFC1459).
456         Read SECTION for an extensive list of query types.
457
458 @end deffn
459 @deffn Command /links [[<remote server>] <server mask>]
460         Lists all links or links matching a given mask, with optional
461         <remote server> it lists links seen from that server.
462
463 @end deffn
464 @deffn Command /time [server]
465         Returns time from current or given server.
466
467 @end deffn
468 @deffn Command /trace nickname
469         Returns the server route to given nickname.
470
471 @end deffn
472 @deffn Command /trace [server]
473         Returns information on what's connected to the current server,
474         or a route to given server as well as things connected to it.
475
476 @end deffn
477 @deffn Command /admin [server]
478         List administrative information for current or given server.
479
480 @end deffn
481 @deffn Command /info [server]
482         List version, compile date, patchlevel, starttime and other
483         various information about current or given server.
484
485 @end deffn
486 @deffn Command /privmsg nickname/channel text
487         Send text as a PRIVMSG to nickname/channel.
488
489 @end deffn
490 @deffn Command /notice nickname/channel text
491         Send text as a NOTICE to nickname/channel.
492
493 @end deffn
494 @deffn Command /who [<nick/user/server>mask [o]]
495         List short information about everyone on IRC or given
496         nickname, username or servername. With optional [o] argument
497         it lists person with their IRC operator flag set.
498         This command takes UNIX like masks ("?" and "*").
499
500 @end deffn
501 @deffn Command /whois [server] nickmask[,nickmask]
502         List long information about given nickname, with optional
503         server argument it lists information as seen from that server.
504
505 @end deffn
506 @deffn Command /whowas nickname [count [server]]
507         List long information about nickname not currently on the
508         connected servers but still in the WHOWAS database. With given
509         argument count, list that many old entries from the database.
510         With given server argument, list information as seen from that
511         server.
512
513 @end deffn
514 @deffn Command /away [message]
515         Remove away message, with optional argument it sets a new
516         away message instead.
517
518 @end deffn
519 @deffn Command /users [server]
520         List users logged in to current server or another server.
521
522 @end deffn
523 @deffn Command /summon user [server]
524         Invite a user logged in to current server or another server.
525
526 @end deffn
527 @deffn Command /userhost nickname [nickname [nickname]]
528         Returns short information about a whitespace separated list of
529         nicknames.
530
531 @end deffn
532 @deffn Command /ison nickname [nickname [nickname]]
533         Returns wheter given, whitespace separated, nicknames are
534         on this IRC net.
535 @end deffn
536
537
538 @node ZenIRC specific commands.,  , Non ZenIRC specific commands., Commands in ZenIRC major-mode.
539 @comment  node-name,  next,  previous,  up
540 @subsection ZenIRC specific commands.
541
542
543
544 @deffn Command /action nickname/channel text
545         Send text as a CTCP ACTION to given nickname/channel. To send
546         text to more then one nickname/channel, use a comma separated
547         list.
548
549 @end deffn
550 @deffn Command /commandchar char
551         Change your commandchar to char, for example;
552
553 @example
554         /commandchar &
555 @end example
556
557         A good example is then;
558
559 @example
560         &commandchar /
561 @end example
562
563 @end deffn
564 @deffn Command /ctcp nickname/channel <CTCP QUERY> 
565
566         Send @code{<CTCP QUERY>} to a comma separated list of nicknames and
567         channels. 
568
569 @end deffn
570 @deffn Command /language language
571
572         Change your language catalog to given language. Read SECTION
573         for more information about existing catalogs.
574
575 @end deffn
576 @deffn Command /m 
577 @deffnx Command /msg
578
579         A shortcut for "/privmsg"
580
581 @end deffn
582 @deffn Command /me text
583
584         Send text as a CTCP ACTION to zenirc-current-victim.
585
586 @end deffn
587 @deffn Command /ping nickname/channel
588
589         Send CTCP PING to a comma separated list of nicknames and
590         channels.
591
592 @end deffn
593 @deffn Command /query [nickname/channel]
594
595         Show or change zenirc-current-victim to a comma separated list
596         of nicknames and channels.
597
598 @end deffn
599 @deffn Command /quote text
600
601         Sends text directly to the server. You might need this as
602         ZenIRC uses the same name as the server on some commands,
603         for example;
604
605 @example
606         /quote ping server [<remote server>]
607 @end example
608                 Ping current server, with given <remote server>
609                 argument it pings the remote server instead.
610
611 @end deffn
612 @deffn Command /server [server [port [nickname]]]
613         Connect to a server in a new ZenIRC-buffer.
614         This is bound to zenirc-select. If no options are used, ZenIRC
615         will ask you some questions.
616 @end deffn
617
618
619 @node Keybindings in ZenIRC major-mode.,  , Commands in ZenIRC major-mode., Using ZenIRC to waste time.
620 @comment  node-name,  next,  previous,  up
621 @section Keybindings in ZenIRC major-mode.
622
623
624
625 Hitting certain key combinations in ZenIRC will result in ZenIRC doing
626 stuff you didn't think it would. This is really nifty, when you
627 realize what actually happens HELLO PER
628
629         2.3.1
630
631
632         Hitting return ("\n" or "^M") will send the current line to the
633 server. If you're looking through the backlog and hit return, ZenIRC
634 will throw you to the end of the buffer.
635
636 Hitting ; or : at the beginning of the line will help you while
637 communicating to others then your zenirc-current-victim. For example;
638
639 @example
640 /msg omnion meep
641 /msg ace95 meep
642 *Omnion* meep meep
643 @end example
644
645 Hitting ";" now will result in ZenIRC adding "/msg ace95 " at the
646 beginning of the line.
647 Hitting ":" will result in ZenIRC adding "/msg omnion " at the
648 beginning of the line.
649
650 By using a few of the scripts which comes with ZenIRC you can get
651 tab-completion and a shell like history feature, more about that in
652 SECTION. 
653
654
655 @node It's working, Function Index, Using ZenIRC to waste time., Top
656 @comment  node-name,  next,  previous,  up
657 @chapter It's working, now I want it to Look Good and Feel Good.
658
659
660
661 The default look of ZenIRC is pretty sparse. 
662
663 @c ----------------------------------------------------------------------
664
665 @node    Function Index,  , It's working, Top
666 @comment node-name,    next,  previous,      up
667 @unnumbered Function Index
668
669 @printindex fn
670
671 @contents
672
673 @c @shortcontents
674
675
676 @bye