erc.texi 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902
  1. \input texinfo
  2. @c %**start of header
  3. @setfilename ../../info/erc.info
  4. @settitle ERC Manual
  5. @include docstyle.texi
  6. @syncodeindex fn cp
  7. @include emacsver.texi
  8. @c %**end of header
  9. @copying
  10. This manual is for ERC as distributed with Emacs @value{EMACSVER}.
  11. Copyright @copyright{} 2005--2017 Free Software Foundation, Inc.
  12. @quotation
  13. Permission is granted to copy, distribute and/or modify this document
  14. under the terms of the GNU Free Documentation License, Version 1.3 or
  15. any later version published by the Free Software Foundation; with no
  16. Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
  17. and with the Back-Cover Texts as in (a) below. A copy of the license
  18. is included in the section entitled ``GNU Free Documentation License''.
  19. (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
  20. modify this GNU manual.''
  21. All Emacs Lisp code contained in this document may be used, distributed,
  22. and modified without restriction.
  23. @end quotation
  24. @end copying
  25. @dircategory Emacs network features
  26. @direntry
  27. * ERC: (erc). Powerful and extensible IRC client for Emacs.
  28. @end direntry
  29. @titlepage
  30. @title ERC manual
  31. @subtitle a full-featured IRC client
  32. @subtitle for Emacs and XEmacs
  33. @c The following two commands
  34. @c start the copyright page.
  35. @page
  36. @vskip 0pt plus 1filll
  37. @insertcopying
  38. @end titlepage
  39. @contents
  40. @ifnottex
  41. @node Top
  42. @top ERC
  43. @insertcopying
  44. @end ifnottex
  45. @menu
  46. * Introduction:: What is ERC?
  47. * Getting Started:: Quick Start guide to using ERC.
  48. * Keystroke Summary:: Keystrokes used in ERC buffers.
  49. * Modules:: Available modules for ERC.
  50. * Advanced Usage:: Cool ways of using ERC.
  51. * Getting Help and Reporting Bugs::
  52. * History:: The history of ERC.
  53. * GNU Free Documentation License:: The license for this documentation.
  54. * Concept Index:: Search for terms.
  55. @detailmenu
  56. --- The Detailed Node Listing ---
  57. Getting Started
  58. * Sample Session:: Example of connecting to the #emacs channel
  59. * Special Features:: Differences from standalone IRC clients
  60. Advanced Usage
  61. * Connecting:: Ways of connecting to an IRC server.
  62. * Sample Configuration:: An example configuration file.
  63. * Options:: Options that are available for ERC.
  64. @end detailmenu
  65. @end menu
  66. @node Introduction
  67. @chapter Introduction
  68. ERC is a powerful, modular, and extensible IRC client for Emacs.
  69. It is distributed with Emacs since version 22.1.
  70. It comes with the following capabilities enabled by default.
  71. @itemize @bullet
  72. @item Flood control
  73. @item Timestamps
  74. @item Join channels automatically
  75. @item Buttonize URLs, nicknames, and other text
  76. @item Wrap long lines
  77. @item Highlight or remove IRC control characters
  78. @item Highlight pals, fools, and other keywords
  79. @item Detect netsplits
  80. @item Complete nicknames and commands in a programmable fashion
  81. @item Make displayed lines read-only
  82. @item Input history
  83. @item Track channel activity in the mode-line
  84. @end itemize
  85. @node Getting Started
  86. @chapter Getting Started
  87. @cindex settings
  88. The command @kbd{M-x erc} will start ERC and prompt for the server to
  89. connect to.
  90. If you want to place ERC settings in their own file, you can place them
  91. in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
  92. If you would rather use the Customize interface to change how ERC works,
  93. do @kbd{M-x customize-group RET erc RET}. In particular, ERC comes with
  94. lots of modules that may be enabled or disabled; to select which ones
  95. you want, do @kbd{M-x customize-variable RET erc-modules RET}.
  96. @menu
  97. * Sample Session:: Example of connecting to the #emacs channel
  98. * Special Features:: Differences from standalone IRC clients
  99. @end menu
  100. @node Sample Session
  101. @section Sample Session
  102. This is an example ERC session which shows how to connect to the #emacs
  103. channel on Freenode. Another IRC channel on Freenode that may be of
  104. interest is #erc, which is a channel where ERC users and developers hang
  105. out.
  106. @itemize @bullet
  107. @item Connect to Freenode
  108. Run @kbd{M-x erc}. Use ``irc.freenode.net'' as the IRC server, ``6667''
  109. as the port, and choose a nickname.
  110. @item Get used to the interface
  111. Switch to the ``irc.freenode.net:6667'' buffer, if you're not already
  112. there. You will see first some messages about checking for ident, and
  113. then a bunch of other messages that describe the current IRC server.
  114. @item Join the #emacs channel
  115. In that buffer, type ``/join @key{SPC} #emacs'' and hit @kbd{RET}. Depending
  116. on how you've set up ERC, either a new buffer for ``#emacs'' will be
  117. displayed, or a new buffer called ``#emacs'' will be created in the
  118. background. If the latter, switch to the ``#emacs'' buffer. You will
  119. see the channel topic and a list of the people who are currently on the
  120. channel.
  121. @item Register your nickname with Freenode
  122. If you would like to be able to talk with people privately on the
  123. Freenode network, you will have to ``register'' your nickname. To do
  124. so, switch to the ``irc.freenode.net:6667'' buffer and type ``/msg
  125. NickServ register <password>'', replacing ``<password>'' with your
  126. desired password. It should tell you that the operation was successful.
  127. @item Talk to people in the channel
  128. If you switch back to the ``#emacs'' buffer, you can type a message, and
  129. everyone on the channel will see it.
  130. @item Open a query buffer to talk to someone
  131. If you want to talk with someone in private (this should usually not be
  132. done for technical help, only for personal questions), type ``/query
  133. <nick>'', replacing ``<nick>'' with the nickname of the person you would
  134. like to talk to. Depending on how ERC is set up, you will either see a
  135. new buffer with the name of the person, or such a buffer will be created
  136. in the background and you will have to switch to it. Begin typing
  137. messages, and you will be able to have a conversation.
  138. Note that if the other person is not registered, you will not be able to
  139. talk with them.
  140. @end itemize
  141. @node Special Features
  142. @section Special Features
  143. ERC has some features that distinguish it from some IRC clients.
  144. @itemize @bullet
  145. @item multiple channels and multiple servers
  146. Every channel is put in a separate buffer. Several IRC servers may be
  147. connected to at the same time.
  148. @cindex query buffers
  149. @item private message separation
  150. Private conversations are treated as channels, and are put into separate
  151. buffers in Emacs. We call these ``query buffers''.
  152. @item highlighting
  153. Some occurrences of words can be highlighted, which makes it easier to
  154. track different kinds of conversations.
  155. @item notification
  156. ERC can notify you that certain users are online.
  157. @item channel tracking
  158. Channels can be hidden and conversation continue in the background. You
  159. are notified when something is said in such a channel that is not
  160. currently visible. This makes it easy to get Real Work done while still
  161. maintaining an IRC presence.
  162. @item nick completion
  163. ERC can complete words upon hitting @kbd{TAB}, which eases the writing
  164. of nicknames in messages.
  165. @cindex history ring
  166. @item history
  167. Past actions are kept in history rings for future use. To navigate a
  168. history ring, hit @kbd{M-p} to go backwards and @kbd{M-n} to go
  169. forwards.
  170. @item multiple languages
  171. Different channels and servers may have different language encodings.
  172. multiple languages. Please contact the Emacs developers
  173. if you are interested in helping with the
  174. translation effort.
  175. @item user scripting
  176. Users can load scripts (e.g., auto greeting scripts) when ERC starts up.
  177. It is also possible to make custom IRC commands, if you know a little
  178. Emacs Lisp. Just make an Emacs Lisp function and call it
  179. @code{erc-cmd-NEWCOMMAND}, where @code{NEWCOMMAND} is the name of the
  180. new command in capital letters.
  181. @item auto reconnect
  182. If the connection goes away at some point, ERC will try to reconnect
  183. automatically. If it fails to reconnect, and you want to try to
  184. manually reestablish the connection at some later point, switch to an
  185. ERC buffer and run the @code{/RECONNECT} command.
  186. @end itemize
  187. @node Keystroke Summary
  188. @chapter Keys Used in ERC
  189. @cindex keystrokes
  190. This is a summary of keystrokes available in every ERC buffer.
  191. @table @kbd
  192. @item C-a or <home> (@code{erc-bol})
  193. Go to beginning of line or end of prompt.
  194. @item RET (@code{erc-send-current-line})
  195. Send the current line
  196. @item TAB (@code{erc-complete-word})
  197. If at prompt, complete the current word.
  198. Otherwise, move to the next link or button.
  199. @item M-TAB (@code{ispell-complete-word})
  200. Complete the given word, using ispell.
  201. @item C-c C-a (@code{erc-bol})
  202. Go to beginning of line or end of prompt.
  203. @item C-c C-b (@code{erc-iswitchb})
  204. Use @code{iswitchb-read-buffer} to prompt for a ERC buffer to switch to.
  205. @item C-c C-c (@code{erc-toggle-interpret-controls})
  206. Toggle interpretation of control sequences in messages.
  207. @item C-c C-d (@code{erc-input-action})
  208. Interactively input a user action and send it to IRC.
  209. @item C-c C-e (@code{erc-toggle-ctcp-autoresponse})
  210. Toggle automatic CTCP replies (like VERSION and PING).
  211. @item C-c C-f (@code{erc-toggle-flood-control})
  212. Toggle use of flood control on sent messages.
  213. @item C-c TAB (@code{erc-invite-only-mode})
  214. Turn on the invite only mode (+i) for the current channel.
  215. @item C-c C-j (@code{erc-join-channel})
  216. Join channel. If point is at the beginning of a channel name, use that
  217. as default.
  218. @item C-c C-k (@code{erc-go-to-log-matches-buffer})
  219. Interactively open an erc-log-matches buffer
  220. @item C-c C-l (@code{erc-save-buffer-in-logs})
  221. Append buffer contents to the log file, if logging is enabled.
  222. @item C-c C-n (@code{erc-channel-names})
  223. Run "/names #channel" in the current channel.
  224. @item C-c C-o (@code{erc-get-channel-mode-from-keypress})
  225. Read a key sequence and call the corresponding channel mode function.
  226. After doing @kbd{C-c C-o}, type in a channel mode letter.
  227. @kbd{C-g} means quit.
  228. @kbd{RET} lets you type more than one mode at a time.
  229. If @kbd{l} is pressed, @code{erc-set-channel-limit} gets called.
  230. If @kbd{k} is pressed, @code{erc-set-channel-key} gets called.
  231. Anything else will be sent to @code{erc-toggle-channel-mode}.
  232. @item C-c C-p (@code{erc-part-from-channel})
  233. Part from the current channel and prompt for a reason.
  234. @item C-c C-q (@code{erc-quit-server})
  235. Disconnect from current server after prompting for reason.
  236. @item C-c C-r (@code{erc-remove-text-properties-region})
  237. Clears the region (start,end) in object from all colors, etc.
  238. @item C-c C-t (@code{erc-set-topic})
  239. Prompt for a topic for the current channel.
  240. @item C-c C-u (@code{erc-kill-input})
  241. Kill current input line using @code{erc-bol} followed by @code{kill-line}.
  242. @end table
  243. @node Modules
  244. @chapter Modules
  245. @cindex modules
  246. One way to add functionality to ERC is to customize which of its many
  247. modules are loaded.
  248. There is a spiffy customize interface, which may be reached by typing
  249. @kbd{M-x customize-option erc-modules RET}. Alternatively, set
  250. @code{erc-modules} manually and then call @code{erc-update-modules}.
  251. The following is a list of available modules.
  252. @table @code
  253. @cindex modules, autoaway
  254. @item autoaway
  255. Set away status automatically
  256. @cindex modules, autojoin
  257. @item autojoin
  258. Join channels automatically
  259. @cindex modules, bbdb
  260. @item bbdb
  261. Integrate with the Big Brother Database
  262. @cindex modules, button
  263. @item button
  264. Buttonize URLs, nicknames, and other text
  265. @cindex modules, capab-identify
  266. @item capab-identify
  267. Mark unidentified users on freenode and other servers supporting CAPAB.
  268. @cindex modules, completion
  269. @cindex modules, pcomplete
  270. @item completion (aka pcomplete)
  271. Complete nicknames and commands (programmable)
  272. @cindex modules, fill
  273. @item fill
  274. Wrap long lines
  275. @cindex modules, identd
  276. @item identd
  277. Launch an identd server on port 8113
  278. @cindex modules, irccontrols
  279. @item irccontrols
  280. Highlight or remove IRC control characters
  281. @cindex modules, log
  282. @item log
  283. Save buffers in logs
  284. @cindex modules, match
  285. @item match
  286. Highlight pals, fools, and other keywords
  287. @cindex modules, menu
  288. @item menu
  289. Display a menu in ERC buffers
  290. @cindex modules, netsplit
  291. @item netsplit
  292. Detect netsplits
  293. @cindex modules, noncommands
  294. @item noncommands
  295. Don't display non-IRC commands after evaluation
  296. @cindex modules, notify
  297. @item notify
  298. Notify when the online status of certain users changes
  299. @cindex modules, notifications
  300. @item notifications
  301. Send you a notification when you get a private message,
  302. or your nickname is mentioned
  303. @cindex modules, page
  304. @item page
  305. Process CTCP PAGE requests from IRC
  306. @cindex modules, readonly
  307. @item readonly
  308. Make displayed lines read-only
  309. @cindex modules, replace
  310. @item replace
  311. Replace text in messages
  312. @cindex modules, ring
  313. @item ring
  314. Enable an input history
  315. @cindex modules, scrolltobottom
  316. @item scrolltobottom
  317. Scroll to the bottom of the buffer
  318. @cindex modules, services
  319. @item services
  320. Identify to Nickserv (IRC Services) automatically
  321. @cindex modules, smiley
  322. @item smiley
  323. Convert smileys to pretty icons
  324. @cindex modules, sound
  325. @item sound
  326. Play sounds when you receive CTCP SOUND requests
  327. @cindex modules, spelling
  328. @item spelling
  329. Check spelling of messages
  330. @cindex modules, stamp
  331. @item stamp
  332. Add timestamps to messages
  333. @cindex modules, track
  334. @item track
  335. Track channel activity in the mode-line
  336. @cindex modules, truncate
  337. @item truncate
  338. Truncate buffers to a certain size
  339. @cindex modules, unmorse
  340. @item unmorse
  341. Translate morse code in messages
  342. @end table
  343. @c PRE5_4: Document every option of every module in its own subnode
  344. @node Advanced Usage
  345. @chapter Advanced Usage
  346. @cindex advanced topics
  347. @menu
  348. * Connecting:: Ways of connecting to an IRC server.
  349. * Sample Configuration:: An example configuration file.
  350. * Options:: Options that are available for ERC.
  351. @end menu
  352. @node Connecting
  353. @section Connecting to an IRC Server
  354. @cindex connecting
  355. The easiest way to connect to an IRC server is to call @kbd{M-x erc}.
  356. If you want to assign this function to a keystroke, the following will
  357. help you figure out its parameters.
  358. @defun erc
  359. Select connection parameters and run ERC@.
  360. Non-interactively, it takes the following keyword arguments.
  361. @itemize @bullet
  362. @item @var{server}
  363. @item @var{port}
  364. @item @var{nick}
  365. @item @var{password}
  366. @item @var{full-name}
  367. @end itemize
  368. That is, if called with the following arguments, @var{server} and
  369. @var{full-name} will be set to those values, whereas
  370. @code{erc-compute-port}, @code{erc-compute-nick} and
  371. @code{erc-compute-full-name} will be invoked for the values of the other
  372. parameters.
  373. @example
  374. (erc :server "irc.freenode.net" :full-name "Harry S Truman")
  375. @end example
  376. @end defun
  377. @subheading Server
  378. @defun erc-compute-server &optional server
  379. Return an IRC server name.
  380. This tries a number of increasingly more default methods until a non-@code{nil}
  381. value is found.
  382. @itemize @bullet
  383. @item @var{server} (the argument passed to this function)
  384. @item The @code{erc-server} option
  385. @item The value of the IRCSERVER environment variable
  386. @item The @code{erc-default-server} variable
  387. @end itemize
  388. @end defun
  389. @defopt erc-server
  390. IRC server to use if one is not provided.
  391. @end defopt
  392. @subheading Port
  393. @defun erc-compute-port &optional port
  394. Return a port for an IRC server.
  395. This tries a number of increasingly more default methods until a non-@code{nil}
  396. value is found.
  397. @itemize @bullet
  398. @item @var{port} (the argument passed to this function)
  399. @item The @code{erc-port} option
  400. @item The @code{erc-default-port} variable
  401. @end itemize
  402. @end defun
  403. @defopt erc-port
  404. IRC port to use if not specified.
  405. This can be either a string or a number.
  406. @end defopt
  407. @subheading Nick
  408. @defun erc-compute-nick &optional nick
  409. Return user's IRC nick.
  410. This tries a number of increasingly more default methods until a
  411. non-@code{nil} value is found.
  412. @itemize
  413. @item @var{nick} (the argument passed to this function)
  414. @item The @code{erc-nick} option
  415. @item The value of the IRCNICK environment variable
  416. @item The result from the @code{user-login-name} function
  417. @end itemize
  418. @end defun
  419. @defopt erc-nick
  420. Nickname to use if one is not provided.
  421. This can be either a string, or a list of strings.
  422. In the latter case, if the first nick in the list is already in use,
  423. other nicks are tried in the list order.
  424. @end defopt
  425. @defopt erc-format-nick-function
  426. A function to format a nickname for message display
  427. You can set this to @code{erc-format-@@nick} to display user mode prefix
  428. @end defopt
  429. @example
  430. (setq erc-format-nick-function 'erc-format-@@nick)
  431. @end example
  432. @defopt erc-nick-uniquifier
  433. The string to append to the nick if it is already in use.
  434. @end defopt
  435. @defopt erc-try-new-nick-p
  436. If the nickname you chose isn't available, and this option is non-@code{nil},
  437. ERC should automatically attempt to connect with another nickname.
  438. You can manually set another nickname with the /NICK command.
  439. @end defopt
  440. @subheading Password
  441. @cindex password
  442. @defopt erc-prompt-for-password
  443. If non-@code{nil} (the default), @kbd{M-x erc} prompts for a password.
  444. @end defopt
  445. If you prefer, you can set this option to @code{nil} and use the
  446. @code{auth-source} mechanism to store your password. For instance, if
  447. you use @file{~/.authinfo} as your auth-source backend, then put
  448. something like the following in that file:
  449. @example
  450. machine irc.example.net login "#fsf" password sEcReT
  451. @end example
  452. @noindent
  453. ERC also consults @code{auth-source} to find any channel keys required
  454. for the channels that you wish to autojoin, as specified by the
  455. variable @code{erc-autojoin-channels-alist}.
  456. For more details, @pxref{Top,,auth-source, auth, Emacs auth-source Library}.
  457. @subheading Full name
  458. @defun erc-compute-full-name &optional full-name
  459. Return user's full name.
  460. This tries a number of increasingly more default methods until a
  461. non-@code{nil} value is found.
  462. @itemize @bullet
  463. @item @var{full-name} (the argument passed to this function)
  464. @item The @code{erc-user-full-name} option
  465. @item The value of the IRCNAME environment variable
  466. @item The result from the @code{user-full-name} function
  467. @end itemize
  468. @end defun
  469. @defopt erc-user-full-name
  470. User full name.
  471. This can be either a string or a function to call.
  472. @end defopt
  473. @node Sample Configuration
  474. @section Sample Configuration
  475. @cindex configuration, sample
  476. Here is an example of configuration settings for ERC@. This can go into
  477. your Emacs configuration file. Everything after the @code{(require
  478. 'erc)} command can optionally go into @file{~/.emacs.d/.ercrc.el}.
  479. @lisp
  480. ;;; Sample ERC configuration
  481. ;; Load authentication info from an external source. Put sensitive
  482. ;; passwords and the like in here.
  483. (load "~/.emacs.d/.erc-auth")
  484. ;; This is an example of how to make a new command. Type "/uptime" to
  485. ;; use it.
  486. (defun erc-cmd-UPTIME (&rest ignore)
  487. "Display the uptime of the system, as well as some load-related
  488. stuff, to the current ERC buffer."
  489. (let ((uname-output
  490. (replace-regexp-in-string
  491. ", load average: " "] @{Load average@} ["
  492. ;; Collapse spaces, remove
  493. (replace-regexp-in-string
  494. " +" " "
  495. ;; Remove beginning and trailing whitespace
  496. (replace-regexp-in-string
  497. "^ +\\|[ \n]+$" ""
  498. (shell-command-to-string "uptime"))))))
  499. (erc-send-message
  500. (concat "@{Uptime@} [" uname-output "]"))))
  501. ;; This causes ERC to connect to the Freenode network upon hitting
  502. ;; C-c e f. Replace MYNICK with your IRC nick.
  503. (global-set-key "\C-cef" (lambda () (interactive)
  504. (erc :server "irc.freenode.net" :port "6667"
  505. :nick "MYNICK")))
  506. ;; This causes ERC to connect to the IRC server on your own machine (if
  507. ;; you have one) upon hitting C-c e b. Replace MYNICK with your IRC
  508. ;; nick. Often, people like to run bitlbee (http://bitlbee.org/) as an
  509. ;; AIM/Jabber/MSN to IRC gateway, so that they can use ERC to chat with
  510. ;; people on those networks.
  511. (global-set-key "\C-ceb" (lambda () (interactive)
  512. (erc :server "localhost" :port "6667"
  513. :nick "MYNICK")))
  514. ;; Make C-c RET (or C-c C-RET) send messages instead of RET. This has
  515. ;; been commented out to avoid confusing new users.
  516. ;; (define-key erc-mode-map (kbd "RET") nil)
  517. ;; (define-key erc-mode-map (kbd "C-c RET") 'erc-send-current-line)
  518. ;; (define-key erc-mode-map (kbd "C-c C-RET") 'erc-send-current-line)
  519. ;;; Options
  520. ;; Join the #emacs and #erc channels whenever connecting to Freenode.
  521. (setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
  522. ;; Rename server buffers to reflect the current network name instead
  523. ;; of SERVER:PORT (e.g., "freenode" instead of "irc.freenode.net:6667").
  524. ;; This is useful when using a bouncer like ZNC where you have multiple
  525. ;; connections to the same server.
  526. (setq erc-rename-buffers t)
  527. ;; Interpret mIRC-style color commands in IRC chats
  528. (setq erc-interpret-mirc-color t)
  529. ;; The following are commented out by default, but users of other
  530. ;; non-Emacs IRC clients might find them useful.
  531. ;; Kill buffers for channels after /part
  532. ;; (setq erc-kill-buffer-on-part t)
  533. ;; Kill buffers for private queries after quitting the server
  534. ;; (setq erc-kill-queries-on-quit t)
  535. ;; Kill buffers for server messages after quitting the server
  536. ;; (setq erc-kill-server-buffer-on-quit t)
  537. @end lisp
  538. @node Options
  539. @section Options
  540. @cindex options
  541. @c PRE5_4: (Node) Document every ERC option (module options go in
  542. @c previous chapter)
  543. This section is extremely incomplete. For now, the easiest way to
  544. check out all the available options for ERC is to do
  545. @kbd{M-x customize-group erc RET}.
  546. @defopt erc-hide-list
  547. If non, @code{nil}, this is a list of IRC message types to hide, e.g.:
  548. @example
  549. (setq erc-hide-list '("JOIN" "PART" "QUIT"))
  550. @end example
  551. @end defopt
  552. @defopt erc-network-hide-list
  553. If non, @code{nil}, this is a list of IRC networks and message types
  554. to hide, e.g.:
  555. @example
  556. (setq erc-network-hide-list (("freenode" "JOIN" "PART" "QUIT")
  557. ("OFTC" "JOIN" "PART""))
  558. @end example
  559. @end defopt
  560. @defopt erc-channel-hide-list
  561. If non, @code{nil}, this is a list of IRC channels and message types
  562. to hide, e.g.:
  563. @example
  564. (setq erc-channel-hide-list (("#erc" "JOIN" "PART" "QUIT")
  565. ("#emacs" "NICK"))
  566. @end example
  567. @end defopt
  568. @defopt erc-lurker-hide-list
  569. Like @code{erc-hide-list}, but only applies to messages sent by
  570. lurkers. The function @code{erc-lurker-p} determines whether a given
  571. nickname is considered a lurker.
  572. @end defopt
  573. @defopt erc-rename-buffers
  574. If non, @code{nil}, this will rename server buffers to reflect the
  575. current network name instead of IP:PORT
  576. @example
  577. (setq erc-rename-buffers t)
  578. @end example
  579. @end defopt
  580. @node Getting Help and Reporting Bugs
  581. @chapter Getting Help and Reporting Bugs
  582. @cindex help, getting
  583. @cindex bugs, reporting
  584. After you have read this guide, if you still have questions about ERC,
  585. or if you have bugs to report, there are several places you can go.
  586. @itemize @bullet
  587. @item
  588. @uref{http://www.emacswiki.org/cgi-bin/wiki/ERC} is the
  589. emacswiki.org page for ERC@. Anyone may add tips, hints, etc.@: to it.
  590. @item
  591. You can ask questions about using ERC on the Emacs mailing list,
  592. @uref{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs}.
  593. @item
  594. You can visit the IRC Freenode channel @samp{#emacs}. Many of the
  595. contributors are frequently around and willing to answer your
  596. questions.
  597. @item
  598. To report a bug in ERC, use @kbd{M-x report-emacs-bug}.
  599. @end itemize
  600. @node History
  601. @chapter History
  602. @cindex history, of ERC
  603. @c abel@@bfr.co.il, sergey.berezin@@cs.cmu.edu
  604. ERC was originally written by Alexander L. Belikoff and Sergey Berezin.
  605. They stopped development around
  606. December 1999. Their last released version was ERC 2.0.
  607. P.S.: If one of the original developers of ERC reads this, we'd like to
  608. receive additional information for this file and hear comments in
  609. general.
  610. @itemize
  611. @item 2001
  612. @c mlang@@delysid.org, alex@@gnu.org
  613. In June 2001, Mario Lang and Alex Schroeder
  614. took over development and created a ERC Project at
  615. @uref{http://sourceforge.net/projects/erc}.
  616. In reaction to a mail about the new ERC development effort, Sergey
  617. Berezin said, ``First of all, I'm glad that my version of ERC is being
  618. used out there. The thing is, I do not have free time and enough
  619. incentive anymore to work on ERC, so I would be happy if you guys take
  620. over the project entirely.''
  621. So we happily hacked away on ERC, and soon after (September 2001)
  622. released the next "stable" version, 2.1.
  623. Most of the development of the new ERC happened on #emacs on
  624. irc.openprojects.net. Over time, many people contributed code, ideas,
  625. bugfixes, and a lot of alpha/beta/gamma testing.
  626. See the @file{CREDITS} file for a list of contributors.
  627. @item 2003
  628. ERC 3.0 was released.
  629. @item 2004
  630. ERC 4.0 was released.
  631. @item 2005
  632. @c mwolson@@gnu.org
  633. ERC 5.0 was released. Michael Olson became
  634. the release manager and eventually the maintainer.
  635. After some discussion between him and the Emacs developers, it was
  636. decided to include ERC in Emacs.
  637. @item 2006
  638. ERC 5.1 was released. It was subsequently included in Emacs 22.
  639. ERC became an official GNU project, and development moved to
  640. @uref{http://sv.gnu.org/projects/erc}. We switched to using GNU Arch as
  641. our revision control system. Our mailing list address changed as well.
  642. @item 2007
  643. We switched to using git for our version control system.
  644. @item 2009+
  645. Since about 2009, ERC is no longer developed as a separate project, but
  646. is maintained as part of Emacs.
  647. @end itemize
  648. @node GNU Free Documentation License
  649. @appendix GNU Free Documentation License
  650. @include doclicense.texi
  651. @node Concept Index
  652. @unnumbered Index
  653. @printindex cp
  654. @bye