comparison man/xemacs-faq.texi @ 16:0293115a14e9 r19-15b91

Import from CVS: tag r19-15b91
author cvs
date Mon, 13 Aug 2007 08:49:20 +0200
parents ac2d302a0011
children 8fc7fe29b841
comparison
equal deleted inserted replaced
15:ad457d5f7d04 16:0293115a14e9
6 @c %**end of header 6 @c %**end of header
7 7
8 @titlepage 8 @titlepage
9 @title XEmacs FAQ 9 @title XEmacs FAQ
10 @subtitle Frequently asked questions about XEmacs 10 @subtitle Frequently asked questions about XEmacs
11 @subtitle Last Modified: 1995/08/29 11 @subtitle Last Modified: 1997/01/16
12 @sp 1 12 @sp 1
13 @author Anthony Rossini <arossini@@biostats.hmc.psu.edu> 13 @author Anthony Rossini <arossini@@biostats.hmc.psu.edu>
14 @author Ben Wing <wing@@netcom.com> 14 @author Ben Wing <wing@@netcom.com>
15 @author Chuck Thompson <cthomp@@cs.uiuc.edu> 15 @author Chuck Thompson <cthomp@@cs.uiuc.edu>
16 @author Steve Baur <steve@@miranova.com>
16 @page 17 @page
17 @end titlepage 18 @end titlepage
18 19
19 @c Some of this stuff needs to go in the HTML version which means it 20 @node Top, Introduction, (dir), (dir)
20 @c needs to be put outside of the ifinfo statement. 21 @top XEmacs FAQ
21 22
22 @ifinfo 23 This is the guide to the XEmacs Frequently Asked Questions list---a
23 @node top, 1. Introductory Questions, (dir), (dir) 24 compendium of questions and answers pertaining to one of the finest
24 @unnumbered XEmacs FAQ 25 programs ever written. It is much more than just a Text Editor.
25 26
26 Version: OUT OF DATE 27 This FAQ is freely redistributable. I take no liability for the
27 28 correctness and safety of any procedures or advice given here. This
28 Current-Editor: Steven L Baur <steve@@miranova.com> 29 FAQ is distributed in the hope that it will be useful, but WITHOUT ANY
29 30 WARRANTY; without even the implied warranty of MERCHANTABILITY or
30 Copying Status: Freely Redistributable. I take no liability for the 31 FITNESS FOR A PARTICULAR PURPOSE.
31 correctness and safety of any procedures or advice given 32
32 here. This FAQ is distributed in the hope that it will 33 If you have a Web browser, the official hypertext version is at
33 be useful, but WITHOUT ANY WARRANTY; without even the 34 <URL:http://www.miranova.com/~steve/xemacs-faq.html> and also at
34 implied warranty of MERCHANTABILITY or FITNESS FOR A 35 <URL:http://www.xemacs.org/faq/xemacs-faq.html>. This version is much
35 PARTICULAR PURPOSE. 36 nicer than the unofficial hypertext versions that are archived at
36 37 Utrecht, Oxford, Smart Pages, and other FAQ archives.
37 WARNING! WARNING! Danger Will Robinson!
38
39 This file was not updated for the 19.14 release and is very out-of-date.
40 Our apologies. This situation will be corrected for 19.15. Steven Baur
41 has taken over as the FAQ maintainer and is keeping a very up-to-date
42 copy on the Web at <http://www.miranova.com/~steve/xemacs-faq.html>. Of
43 course, it is also available at <http://www.xemacs.org/faq/xemacs-faq.html>.
44
45 Out of date FAQ starts here:
46
47 This is a list of frequently asked questions for XEmacs users and
48 maintainers.
49
50 You can obtain the latest version of this file by anonymous FTP from
51 site @file{ftp.cs.uiuc.edu:/pub/xemacs/faq/xemacs-faq.FORMAT} where FORMAT
52 is text, texinfo (the master copy), postscript, dvi, html, info. Note that
53 the html version has 2 files.
54
55 Thanks to the many who contributed, especially to JWZ <jwz@@netscape.com> for
56 starting this whole wonderful mess... Special thanks to Tim Geisler
57 <tmgeisle@@faui80.informatik.uni-erlangen.de> for the initial texinfo
58 version and to Giacomo Boffi <sboff@@hp735.stru.polimi.it> for the initial
59 HTML version. Other contributors (many left out, unfortunately, due to an
60 old mail-purge) include:
61 @itemize @bullet
62 @item
63 Juergen Nickelsen <nickel@@prz.tu-berlin.de>
64 @item
65 Evelyn Ginsparg <ginsparg@@adra.com>
66 @item
67 d3h554@@foghorn.pnl.gov
68 @item
69 Marty Hall <hall@@aplcenmp.apl.jhu.edu>
70 @item
71 Richard Caley <rjc@@cogsci.ed.ac.uk>
72 @item
73 fcg@@philabs.Philips.COM
74 @item
75 Stig <stig@@hackvan.com>
76 @item
77 Arup Mukherjee <arup+@@cmu.edu>
78 @item
79 Kevin R. Powell <powell@@csl.ncsa.uiuc.edu>
80 @item
81 Eric Eide <eeide@@cs.utah.edu>
82 @item
83 William G. Dubuque <wgd@@martigny.ai.mit.edu>
84 @item
85 Chris Flatters <cflatter@@nrao.edu>
86 @item
87 John A. Turner <turner@@lanl.gov>
88 @end itemize
89
90 @end ifinfo
91 38
92 @menu 39 @menu
93 * top:: XEmacs FAQ 40 * Introduction:: Introduction, Policy, Credits.
94 * 1. Introductory Questions::. 41 * Installation:: Installation and Trouble Shooting.
95 * 2. Compiling XEmacs::. 42 * Customization:: Customization and Options.
96 * 3. Problems running XEmacs / weird messages::. 43 * Subsystems:: Major Subsystems.
97 * 4. Customization -- Emacs Lisp and the .emacs file::. 44 * Miscellaneous:: The Miscellaneous Stuff.
98 * 5. Customization -- X resources::. 45 * Current Events:: What the Future Holds.
99 * 6. Changing textual fonts and colors::.
100 * 7. The modeline::.
101 * 8. The keyboard::.
102 * 9. The cursor::.
103 * 10. The mouse; cutting and pasting::.
104 * 11. Highlighting::.
105 * 12. The menubar and toolbar::.
106 * 13. Scrollbars::.
107 * 14. Frame Geometry::.
108 * 15. Window/icon title; window manager problems::.
109 * 16. Editing source code (C mode; Lisp mode; etc.)::.
110 * 17. Text mode::.
111 * 18. Shell mode::.
112 * 19. Mail; VM; GNUS; BBDB; and related::.
113 * 20. Printing::.
114 * 21. Gnuserv::.
115 * 22. Miscellaneous::.
116 @end menu 46 @end menu
117 47
118 48 @node Introduction, Installation, Top, Top
119 49 @chapter Introduction, Policy, Credits
120 @node 1. Introductory Questions, 2. Compiling XEmacs, top, top 50
121 @chapter 1. Introductory Questions 51 Learning XEmacs is a lifelong activity. I've been using Emacs for
52 over a decade now, and I'm still discovering new features. Therefore
53 this document cannot be complete. Instead it is aimed at the person
54 who is either considering XEmacs for their own use, or has just
55 obtained it and is wondering what to do next. It is also useful as a
56 reference to available resources.
57
58 The previous maintainer of the FAQ was Anthony Rossini
59 <rossini@@stat.sc.edu>, who started it, after getting tired of hearing
60 JWZ complain about repeatedly having to answer questions. Ben Wing
61 <ben@@666.com> and Chuck Thompson <cthomp@@xemacs.org>, the principal
62 authors of XEmacs, then took over and Ben did a massive update
63 reorganizing the whole thing. At which point Anthony took back over,
64 but then had to give it up again. Some of the other contributors to
65 this FAQ are listed later in this document.
66
67 This version was converted to hypertext format, and edited by Steven
68 L. Baur <steve@@altair.xemacs.org>. It was converted back to texinfo by
69 Hrvoje Niksic <hniksic@@srce.hr>.
122 70
123 @menu 71 @menu
124 * 1.1.:: 1.1. Preface 72 Introduction:
125 * 1.2.:: 1.2. What is XEmacs? 73 * Q1.0.1:: What is XEmacs?
126 * 1.3.:: 1.3. What is the current version of XEmacs? 74 * Q1.0.2:: What is the current version of XEmacs?
127 * 1.4.:: 1.4. Where can I find it? 75 * Q1.0.3:: Where can I find it?
128 * 1.5.:: 1.5. Why another version of Emacs? 76 * Q1.0.4:: Why Another Version of Emacs?
129 * 1.6.:: 1.6. What do @kbd{M-x}, GNU, etc. mean? 77 * Q1.0.5:: Why Haven't XEmacs and GNU Emacs Merged?
130 * 1.7.:: 1.7. Where can I get help for using XEmacs? 78 * Q1.0.6:: Where can I get help?
131 * 1.8.:: 1.8. Where is the mailing list archived? 79 * Q1.0.7:: Where is the mailing list archived?
132 * 1.9.:: 1.9. What is InfoDock, how does it relate to XEmacs, and how can I obtain it? 80 * Q1.0.8:: How do you pronounce XEmacs?
81 * Q1.0.9:: What does XEmacs look like?
82 * Q1.0.10:: Is there a port of XEmacs to Microsoft ('95 or NT)?
83 * Q1.0.11:: Is there a port of XEmacs to the Macintosh?
84 * Q1.0.12:: Is there a port of XEmacs to NextStep?
85 * Q1.0.13:: Is there a port of XEmacs to OS/2?
86 * Q1.0.14:: Where can I get a printed copy of the XEmacs users manual?
87
88 Policies:
89 * Q1.1.1:: What is the FAQ editorial policy?
90 * Q1.1.2:: How do I become a Beta Tester?
91 * Q1.1.3:: How do I contribute to XEmacs itself?
92
93 Credits:
94 * Q1.2.1:: Who wrote XEmacs?
95 * Q1.2.2:: Who contributed to this version of the FAQ?
96 * Q1.2.3:: Who contributed to the FAQ in the past?
97
98 Internationalization:
99 * Q1.3.1:: What is the status of XEmacs v20?
100 * Q1.3.2:: What is the status of Asian-language support, aka @var{mule}?
101 * Q1.3.3:: How do I type non-ASCII characters?
102 * Q1.3.4:: Can XEmacs messages come out in a different language?
103 * Q1.3.5:: Please explain the various input methods in MULE/XEmacs 20.0
104 * Q1.3.6:: How do I portably code for MULE/XEmacs 20.0?
105 * Q1.3.7:: How about Cyrillic Modes?
106
107 Getting Started:
108 * Q1.4.1:: What is a @file{.emacs} and is there a sample one?
109 * Q1.4.2:: Can I use the same @file{.emacs} with the other Emacs?
110 * Q1.4.3:: Any good XEmacs tutorials around?
111 * Q1.4.4:: May I see an example of a useful XEmacs Lisp function?
112 * Q1.4.5:: And how do I bind it to a key?
113 * Q1.4.6:: What's the difference between a macro and a function?
114 * Q1.4.7:: Why options saved with 19.13 don't work with 19.14 or 20.0?
133 @end menu 115 @end menu
134 116
135 117 @node Q1.0.1, Q1.0.2, Introduction, Introduction
136 @node 1.1. 118 @section What is XEmacs?
137 @section 1.1. Preface
138
139 This is the introduction to a list of frequently asked questions (FAQ's)
140 about XEmacs with answers. This article contains a listing of the
141 questions; subsequent articles contain the questions and answers.
142
143 This is not a substitute for general Emacs questions, and actually
144 includes nothing that might help a novice learn to use Emacs or XEmacs.
145 For that, check out the regular Emacs lists, the tutorial inside of
146 XEmacs (look on the Help menu), or the O'Reilly book @cite{Learning GNU
147 Emacs}. This FAQ focuses on specific issues regarding XEmacs. If you
148 don't find the answer here, perhaps it really is a more general
149 question, and check the GNU Emacs FAQ for more information, as well.
150
151 The FAQ list is posted to reduce the noise level in the
152 @samp{comp.emacs.xemacs} newsgroup which results from the repetition of
153 frequently asked questions, wrong answers to these questions,
154 corrections to the wrong answers, corrections to the corrections,
155 debate, name calling, etc. Also, it serves as a repository of the
156 canonical ``best'' answers to these questions. However, if you know a
157 better answer or even a slight change that improves an answer, please
158 tell me!
159
160 If you know the answer of a question is in the FAQ list, please reply to
161 the question by e-mail instead of posting. Help reduce noise!
162
163 Please suggest new questions, answers, wording changes, deletions, etc.
164 The most helpful form for suggestions is a context diff (i.e. the output
165 of @samp{diff -c}). Include @samp{FAQ} in the subject of messages sent
166 to us about the FAQ list.
167
168 Please do not send questions to us just because you do not want to
169 disturb a lot of people and you think we would know the answer. We do
170 not have time to answer questions individually and keep up with
171 everything else we have to get done.
172
173 Many thanks need to go to all contributors on the old alt.lucid-emacs.*
174 and current comp.emacs.xemacs groups. This would never have been
175 collected without you.
176
177 Any directories given are usually in reference to the base directory
178 formed by unpacking XEmacs.
179
180
181 @node 1.2.
182 @section 1.2. What is XEmacs?
183 119
184 An alternative to GNU Emacs, originally based on an early alpha version 120 An alternative to GNU Emacs, originally based on an early alpha version
185 of FSF's version 19. XEmacs was known as Lucid Emacs through version 121 of FSF's version 19, and has diverged quite a bit since then. XEmacs
186 19.10. Almost all features of GNU Emacs are supported in XEmacs (the 122 was known as Lucid Emacs through version 19.10. Almost all features of
187 ones that aren't supported are generally implemented in a better way in 123 GNU Emacs are supported in XEmacs The maintainers of XEmacs actively
188 XEmacs). The maintainers of XEmacs actively track changes to GNU Emacs 124 track changes to GNU Emacs while also working to add new features.
189 while also working to add new features never before seen in Emacs. 125
190 126 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction
191 127 @section What is the current version of XEmacs?
192 @node 1.3. 128
193 @section 1.3. What is the current version of XEmacs? 129 The current version is 19.15, released in January, 1997.
194 130
195 The current version is 19.13, released on September 1, 1995. 131 It has been decided that XEmacs 19.15 will be the final release of v19.
196 132 XEmacs 19.15 is scheduled for release in mid January. After a brief
197 133 period of further testing, XEmacs v20 will be released shortly after
198 @node 1.4. 134 that.
199 @section 1.4. Where can I find it? 135
200 136 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction
201 The canonical source and binaries is found via anonymous FTP at 137 @section Where can I find it?
202 @ifinfo 138
203 @file{ftp.cs.uiuc.edu:/pub/xemacs}. 139 The canonical source and binaries is found via anonymous FTP at:
204 @end ifinfo 140
205 @ifhtml 141 @example
206 <A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/">ftp.cs.uiuc.edu:/pub/xemacs/</A> 142 <URL:ftp.xemacs.org:/pub/xemacs/>
207 @end ifhtml 143 @end example
208 144
209 @node 1.5. 145 @node Q1.0.4, Q1.0.5, Q1.0.3, Introduction
210 @section 1.5. Why Another Version of Emacs? 146 @section Why Another Version of Emacs?
211 147
212 @ifinfo
213 For a detailed description of the differences between GNU Emacs and
214 XEmacs, and a detailed history of XEmacs, see the file @file{etc/NEWS}
215 in the source distribution. However, here is a list of some of the
216 reasons why we think you might consider using it:
217 @end ifinfo
218 @ifhtml
219 For a detailed description of the differences between GNU Emacs and 148 For a detailed description of the differences between GNU Emacs and
220 XEmacs and a detailed history of XEmacs, check out the 149 XEmacs and a detailed history of XEmacs, check out the
221 <A HREF="http://xemacs.cs.uiuc.edu/NEWS.html/">NEWS</A> file. However, 150 @example
222 here is a list of some of the reasons why we think you might consider 151 <URL:http://www.xemacs.org/NEWS.html>
223 using it: 152 @end example
224 @end ifhtml 153
154 However, here is a list of some of the reasons why we think you might
155 consider using it:
225 156
226 @itemize @bullet 157 @itemize @bullet
227 @item 158 @item
228 It looks nicer 159 It looks nicer.
160
229 @item 161 @item
230 The XEmacs maintainers are generally more receptive to suggestions than 162 The XEmacs maintainers are generally more receptive to suggestions than
231 the GNU Emacs maintainers 163 the GNU Emacs maintainers.
232 @item 164
233 Many more bundled packages than GNU Emacs, all properly integrated with 165 @item
234 XEmacs 166 Many more bundled packages than GNU Emacs
235 @item 167
236 Binaries are available for many common operating systems 168 @item
237 @item 169 Binaries are available for many common operating systems.
238 Face support on TTY's 170
239 @item 171 @item
240 A built-in toolbar 172 Face support on TTY's.
241 @item 173
242 Better Motif compliance 174 @item
243 @item 175 A built-in toolbar.
244 Some internationalization support for European languages. Full MULE 176
245 (Multi-Lingual EMacs) support is being actively worked on. 177 @item
246 @item 178 Better Motif compliance.
247 Variable-width fonts 179
248 @item 180 @item
249 Variable-height lines 181 Some internationalization support (full MULE support starting with 20.0).
250 @item 182
251 Marginal annotations 183 @item
252 @item 184 Variable-width fonts.
253 ToolTalk support 185
186 @item
187 Variable-height lines.
188
189 @item
190 Marginal annotations.
191
192 @item
193 ToolTalk support.
194
254 @item 195 @item
255 XEmacs can be used as an Xt widget, and can be embedded within another 196 XEmacs can be used as an Xt widget, and can be embedded within another
256 application 197 application.
257 @item 198
258 Horizontal and vertical scrollbars (using real toolkit scrollbars) 199 @item
200 Horizontal and vertical scrollbars (using real toolkit scrollbars).
201
259 @item 202 @item
260 Better APIs (and performance) for attaching fonts, colors, and other 203 Better APIs (and performance) for attaching fonts, colors, and other
261 properties to text 204 properties to text.
262 @item 205
263 The ability to embed arbitrary graphics in a buffer 206 @item
264 @item 207 The ability to embed arbitrary graphics in a buffer.
265 Completely compatible (at the C level) with the Xt-based toolkits 208
209 @item
210 Completely compatible (at the C level) with the Xt-based toolkits.
211
212 @item
213 First production Web Browser supporting Style Sheets.
266 @end itemize 214 @end itemize
267 215
268 216 @node Q1.0.5, Q1.0.6, Q1.0.4, Introduction
269 @node 1.6. 217 @section Why Haven't XEmacs and GNU Emacs Merged?
270 @section 1.6. What do @kbd{M-x}, GNU, etc. mean? 218
271 219 There are currently irreconcilable differences in the views about
272 This is really a general Emacs question, but a table of some common 220 technical, programming, design and organizational matters between RMS
273 terms/acronyms is provided here for your convenience. 221 and the XEmacs development team which provide little hope for a merge to
274 @ifinfo 222 take place in the short-term future.
275 See the @cite{GNU Emacs FAQ} for a more complete list. 223
276 @end ifinfo 224 @node Q1.0.6, Q1.0.7, Q1.0.5, Introduction
277 @ifhtml 225 @section Where can I get help?
278 See the <A HREF="http://www.eecs.nwu.edu/emacs/faq">GNU Emacs FAQ</A>
279 for a more complete list.
280 @end ifhtml
281
282 @table @samp
283 @item BLAT FOOP
284 Historical XEmacs error message
285 @item C-x
286 @dfn{C-x} means that the @key{Control} key and the @key{X} key should be
287 pressed together, like when you use the @key{Shift} key.
288 @item E-Lisp
289 Same as @dfn{Emacs-Lisp}.
290 @item Emacs-Lisp
291 The dialect of Lisp supported by Emacs and XEmacs. You use this to
292 customize XEmacs.
293 @item FAQ
294 Frequently asked question(s).
295 @item FSF
296 The Free Software Foundation.
297 @item GNU
298 @dfn{GNU} refers to products written by the Free Software Foundation.
299 @item JWZ
300 Jamie Zawinski <jwz@@netscape.com>, the former maintainer of Lucid Emacs
301 (which XEmacs evolved from).
302 @item M-x
303 @dfn{M-x} means that the @key{Meta} key and the @key{X} key should be
304 pressed together, like when you use the @key{Shift} key. Sometimes
305 the @key{Meta} key is labelled @samp{Alt} or with a diamond. Some
306 keyboards don't have a @key{Meta} key at all; then you can get the
307 equivalent by typing the @key{Esc} key followed by the @key{X} key.
308 @item RMS
309 Richard Stallman <rms@@gnu.ai.mit.edu>, the author of GNU Emacs.
310 @item VI
311 An editor used by those heretics that don't subscribe to the Emacs religion.
312 @end table
313
314
315 @node 1.7.
316 @section 1.7. Where can I get help for using XEmacs?
317 226
318 Probably the easiest way, if everything is installed, is to use info, by 227 Probably the easiest way, if everything is installed, is to use info, by
319 pressing @kbd{C-h i}, or selecting @samp{Emacs Info} from the Help Menu. 228 pressing @kbd{C-h i}, or selecting @code{Emacs Info} from the Help Menu.
229
320 Also, @kbd{M-x apropos} will look for commands for you. 230 Also, @kbd{M-x apropos} will look for commands for you.
321 231
322 Try reading this FAQ, examining the regular GNU Emacs FAQ (which can be 232 Try reading this FAQ, examining the regular GNU Emacs FAQ (which can be
323 found with the Emacs 19 distribution) as well as at 233 found with the Emacs 19 distribution) as well as at
324 @ifinfo 234 @example
325 @file{http://www.eecs.nwu.edu/emacs/faq/} and reading the Usenet group 235 <URL:http://www.eecs.nwu.edu/emacs/faq/>
326 @end ifinfo 236 @end example
327 @ifhtml 237 and reading the Usenet group comp.emacs.xemacs.
328 <A HREF="http://www.eecs.nwu.edu/emacs/faq/">http://www.eecs.nwu.edu/emacs/faq/</A> 238
329 and reading the Usenet group 239 If that does not help, try posting your question to comp.emacs.xemacs.
330 @end ifhtml 240 Please @strong{do not} post XEmacs related questions to gnu.emacs.help.
331 @samp{comp.emacs.xemacs}. If that does not help, try posting your 241
332 question to @samp{comp.emacs.xemacs}. If you cannot post or read 242 If you cannot post or read Usenet news, there is a corresponding mailing
333 Usenet news, there is a corresponding mailing list which is available. 243 list which is available. It can be subscribed to by sending a message
334 It can be subscribed to by sending mail to 244 with a subject of @samp{subscribe} to
335 245 @example
336 @example 246 <xemacs-request@@xemacs.org>
337 xemacs-request@@cs.uiuc.edu 247 @end example
338 @end example 248 for subscription information and
339 249 @example
340 for subscription information and 250 <xemacs@@xemacs.org>
341 251 @end example
342 @example
343 xemacs@@cs.uiuc.edu
344 @end example
345
346 to send messages to the list. 252 to send messages to the list.
347 253
348 To cancel a subscription, YOU MUST use the xemacs-request address. 254 To cancel a subscription, you @strong{must} use the xemacs-request
349 255 address. Send a message with a subject of @samp{unsubscribe} to be
350 Bug reports should be sent to the same locations. 256 removed.
351 257
352 258 @node Q1.0.7, Q1.0.8, Q1.0.6, Introduction
353 @node 1.8. 259 @section Where is the mailing list archived?
354 @section 1.8. Where is the mailing list archived?
355 260
356 The mailing list is archived in the directory 261 The mailing list is archived in the directory
357 @ifinfo 262 @example
358 @file{ftp.cs.uiuc.edu:/pub/xemacs/mlists/}. 263 <URL:ftp://ftp.xemacs.org:/pub/mlists/>.
359 @end ifinfo 264 @end example
360 @ifhtml 265
361 <A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/mlists/">ftp.cs.uiuc.edu:/pub/xemacs/mlists/</A> 266 @node Q1.0.8, Q1.0.9, Q1.0.7, Introduction
362 @end ifhtml 267 @section How do you pronounce XEmacs?
363 268
364 269 I pronounce it @samp{Eks eemax}.
365 @node 1.9. 270
366 @section 1.9. What is InfoDock, how does it relate to XEmacs, and how can I obtain it? 271 @node Q1.0.9, Q1.0.10, Q1.0.8, Introduction
272 @section What does XEmacs look like?
273
274 Screen snapshots are available in the WWW version of the FAQ.
275
276 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction
277 @section Is there a port of XEmacs to Microsoft ('95 or NT)?
278
279 The closest is @dfn{Win-Emacs}, which is based on Lucid Emacs 19.6.
280 Available from <URL:http://www.pearlsoft.com/>. Someone at Microsoft
281 expressed some interest in working on a port of 19.14 to NT, but never
282 went any farther.
283
284 There's a port of GNU Emacs (not XEmacs) at
285 @example
286 <URL:http://www.cs.washington.edu/homes/voelker/ntemacs.html>.
287 @end example
288
289 @node Q1.0.11, Q1.0.12, Q1.0.10, Introduction
290 @section Is there a port of XEmacs to the Macintosh?
291
292 There has been a port to the MachTen environment of XEmacs 19.13, but no
293 patches have been submitted to the maintainers to get this in the
294 mainstream distribution.
295
296 @node Q1.0.12, Q1.0.13, Q1.0.11, Introduction
297 @section Is there a port of XEmacs to NextStep?
298
299 Carl Edman, apparently no longer at <cedman@@princeton.edu>, did the
300 port of GNU Emacs to NeXTstep and expressed interest in doing the XEmacs
301 port, but never went any farther.
302
303 @node Q1.0.13, Q1.0.14, Q1.0.12, Introduction
304 @section Is there a port of XEmacs to OS/2?
305
306 No, and there is no news of anyone working on it.
307
308 @node Q1.0.14, Q1.1.1, Q1.0.13, Introduction
309 @section Where can I obtain a printed copy of the XEmacs users manual?
310
311 InfoDock Associates, a firm specializing in Emacs-related support and
312 development, will be maintaining the XEmacs user manual. The firm plans
313 to begin publishing printed copies of the manual in March 1997.
314
315 @example
316 Web: http://www.xemacs.com
317 E-mail: <info@xemacs.com>
318 Tel: +1 408 243 3300
319 @end example
320
321 @node Q1.1.1, Q1.1.2, Q1.0.13, Introduction
322 @section What is the FAQ editorial policy?
323
324 The FAQ is actively maintained and modified regularly. All links should
325 be up to date.
326
327 Changes are displayed on a monthly basis. @dfn{Months}, for this
328 purpose are defined as the 5th of the month through the 5th of the
329 month. Preexisting questions that have been changed are marked as such.
330 Brand new questions are tagged.
331
332 All submissions are welcome. E-mail submissions to
333 <steve@@altair.xemacs.org>.
334
335 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line.
336 If you think you have a better way of answering a question, or think a
337 question should be included, I'd like to hear about it. Questions and
338 answers included into the FAQ will be edited for spelling and grammar,
339 and will be attributed. Answers appearing without attribution are
340 either from versions of the FAQ dated before May 1996, or are from one
341 of the four people listed at the top of this document. Answers quoted
342 from Usenet news articles will always be attributed, regardless of the
343 author.
344
345 @node Q1.1.2, Q1.1.3, Q1.1.1, Introduction
346 @section How do I become a Beta Tester?
347
348 Send an email message to <xemacs-beta-request@@xemacs.org> with a
349 subject line of @samp{subscribe}. Fill out and return the questionaire
350 you get back, and you will receive the password to get at the current
351 beta.
352
353 Be prepared to get your hands dirty, as beta testers are expected to
354 identify problems as best they can.
355
356 @node Q1.1.3, Q1.2.1, Q1.1.2, Introduction
357 @section How do I contribute to XEmacs itself?
358
359 Ben Wing <ben@@666.com> writes:
360
361 @quotation
362 BTW if you have a wish list of things that you want added, you have to
363 speak up about it! More specifically, you can do the following if you
364 want a feature added (in increasing order of usefulness):
365
366 @itemize @bullet
367 @item
368 Make a posting about a feature you want added.
369
370 @item
371 Become a beta tester and make more postings about those same features.
372
373 @item
374 Convince us that you're going to use the features in some cool and
375 useful way.
376
377 @item
378 Come up with a clear and well-thought-out API concerning the features.
379
380 @item
381 Write the code to implement a feature and send us a patch.
382 @end itemize
383
384 (not that we're necessarily requiring you to write the code, but we can
385 always hope :)
386 @end quotation
387
388 @node Q1.2.1, Q1.2.2, Q1.1.3, Introduction
389 @section Who wrote XEmacs?
390
391 XEmacs is the result of the time and effort of many people. The
392 developers responsible for the 19.15/20.0 release are:
393
394 @itemize @bullet
395 @item Martin Buchholz <mrb@@eng.sun.com>
396
397 @item Steve Baur <steve@@altair.xemacs.org>
398 @end itemize
399
400 The developers responsible for the 19.14 release are:
401
402 @itemize @bullet
403 @item Chuck Thompson <cthomp@@xemacs.org>
404
405 Chuck was Mr. XEmacs from 19.11 through 19.14, and is responsible
406 for XEmacs becoming a widely distributed program over the Internet.
407
408 @item Ben Wing <ben@@666.com>
409 @end itemize
410
411 Jamie Zawinski was Mr. Lucid Emacs from 19.0 through 19.10, the last
412 release actually named Lucid Emacs. Richard Mlynarik was crucial to
413 most of those releases.
414
415 @itemize @bullet
416 @item Jamie Zawinski <jwz@@netscape.com>
417
418 @item Richard Mlynarik <mly@@adoc.xerox.com>
419 @end itemize
420
421 Along with many other contributors, partially enumerated in the
422 @samp{About XEmacs} option in the Help menu.
423
424 @node Q1.2.2, Q1.2.3, Q1.2.1, Introduction
425 @section Who contributed to this version of the FAQ?
426
427 The following people contributed valuable suggestions to building this
428 version of the FAQ (listed in alphabetical order):
429
430 @itemize @bullet
431 @item Per Abrahamsen <abraham@@dina.kvl.dk>
432
433 @item Vladimir Alexiev <vladimir@@cs.ualberta.ca>
434
435 @item Martin Buchholz <Martin.Buchholz@@sun.com>
436
437 @item Brian Denheyer <briand@@iccom.com>
438
439 @item Markus Gutschke <gutschk@@ESCHER.UNI-MUENSTER.DE>
440
441 @item David Kastrup <dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de>
442
443 @item Natalie Kershaw <nataliek@@rd.scitec.com.au>
444
445 @item John Turner <turner@@lanl.gov>
446
447 @item David Vanderschel <DvdS@@eden.com>
448 @end itemize
449
450 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction
451 @section Who contributed to the FAQ in the past?
452
453 This is only a partial list, as many names were lost in a hard disk
454 crash some time ago.
455
456 @itemize @bullet
457 @item Curtis.N.Bingham <binge@@aloft.att.com>
458
459 @item Richard Caley <rjc@@cogsci.ed.ac.uk>
460
461 @item William G. Dubuque <wgd@@martigny.ai.mit.edu>
462
463 @item Eric Eide <eeide@@cs.utah.edu>
464
465 @item Chris Flatters <cflatter@@nrao.edu>
466
467 @item Evelyn Ginsparg <ginsparg@@adra.com>
468
469 @item Marty Hall <hall@@aplcenmp.apl.jhu.edu>
470
471 @item Arup Mukherjee <arup+@@cmu.edu>
472
473 @item Juergen Nickelsen <nickel@@prz.tu-berlin.de>
474
475 @item Kevin R. Powell <powell@@csl.ncsa.uiuc.edu>
476
477 @item Stig <stig@@hackvan.com>
478 @end itemize
479
480 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction
481 @section What is the status of XEmacs v20?
482
483 XEmacs v20 is the version of XEmacs that includes MULE (Asian-language)
484 support. It's currently in late beta and the tentative release date for
485 20.0 is for mid February. When compiled without MULE support 20.0 is
486 currently very similar to 19.15 (except for some changes to the
487 byte-code format, some new primitive types including @code{char},
488 @code{char-table}, and @code{range-table}) and equally stable.
489
490 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction
491 @section What is the status of Asian-language support, aka MULE?
492
493 The MULE support works OK but still needs a fair amount of work before
494 it's really solid. We could definitely use some help here, esp. people
495 who speak Japanese and will use XEmacs/MULE to work with Japanese and
496 have some experience with E-Lisp. Martin Buchholz
497 <Martin.Buchholz@@sun.com> is working full-time on this currently. If
498 you can help out here, @xref{Q1.1.2}.
499
500 @node Q1.3.3, Q1.3.4, Q1.3.2, Introduction
501 @section How do I type non-ASCII characters?
502
503 See question 3.5.7 (@xref{Q3.5.7}) in part 3 of this FAQ.
504
505 @node Q1.3.4, Q1.3.5, Q1.3.3, Introduction
506 @section Can XEmacs messages come out in a different language?
507
508 The message-catalog support has mostly been written but doesn't
509 currently work. The first release of XEmacs 20 will @emph{not} support
510 it. However, menubar localization @emph{does} work, even in 19.14. To
511 enable it, add to your @file{Emacs} file entries like this:
512
513 @example
514 Emacs*XlwMenu.resourceLabels: True
515 Emacs*XlwMenu.file.labelString: Fichier
516 Emacs*XlwMenu.openInOtherWindow.labelString: In anderem Fenster offnen
517 @end example
518
519 The name of the resource is derived from the non-localized entry by
520 removing punctuation and capitalizing as above. Martin Buchholz
521 <Martin.Buchholz@@sun.com> is working on adding support for Asian
522 language menubar localization to XEmacs 20.
523
524 @node Q1.3.5, Q1.3.6, Q1.3.4, Introduction
525 @section Please explain the various input methods in MULE/XEmacs 20.0
526
527 MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes:
528
529 @quotation
530 Original Mule supports following input methods: Wnn4, Wnn6, Canna, SJ3
531 and XIM. Interfaces for Wnn and SJ3 uses the @code{egg} user
532 interface. Interface for Canna does not use @samp{egg}. I don't know
533 about XIM. It is to support ATOK, of course, it may work for another
534 servers.
535
536 Wnn supports Japanese, Chinese and Korean. It is made by OMRON and Kyôto
537 university. It is a powerful and complex system. Wnn4 is free and Wnn6
538 is not free.
539
540 Canna supports only Japanese. It is made by NEC. It is a simple and
541 powerful system. Canna uses only grammar (Wnn uses grammar and
542 probability between words), so I think Wnn is cleverer than Canna,
543 however Canna users made a good grammar and dictionary. So for standard
544 modern Japanese, Canna seems cleverer than Wnn4. In addition, the UNIX
545 version of Canna is free (now there is a Microsoft Windows version).
546
547 SJ3 supports only Japanese. It is made by Sony. XIM supports was made
548 to use ATOK (a major input method in personal computer world). XIM is
549 the standard for accessing input methods bundled in Japanese versions of
550 Solaris. (XEmacs 20 will support XIM input).
551
552 Egg consists of following parts:
553
554 @enumerate
555 @item Input character Translation System (ITS) layer.
556 It translates ASCII inputs to Kana/PinYin/Hangul characters.
557
558 @item Kana/PinYin/Hangul to Kanji transfer layer.
559 It is
560 interface layer for network Kana-Kanji server (Wnn and Sj3).
561 @end enumerate
562
563 These input methods are modal, namely there are mode, alphabet mode and
564 Kana-Kanji transfer mode. However there are mode-less input methods for
565 Egg and Canna. @samp{Boiled-egg} is a mode-less input method running on
566 Egg. For Canna, @samp{canna.el} has a tiny boiled-egg like command,
567 @code{(canna-boil)}, and there are some boiled-egg like utilities. In
568 addition, it was planned to make an abstraction for all transfer type
569 input methods. However authors of input methods are busy, so maybe this
570 plan is stopped. Perhaps after Mule merged GNU Emacs will be released,
571 it will be continued.
572 @end quotation
573
574 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction
575 @section How do I portably code for MULE/XEmacs 20.0?
576
577 MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes:
578
579 @quotation
580 MULE and XEmacs are quite different. So the application
581 implementor must write separate code for these mule variants.
582
583 MULE and the next version of Emacs are similar but the symbols are very
584 different---requiring separate code as well.
585
586 Namely we must support 3 kinds of mule variants and 4 or 5 or 6 kinds of
587 emacs variants... (;_;) I'm shocked, so I wrote a wrapper package called
588 @code{emu} to provide a common interface.
589
590 I have the following suggestions about dealing with mule variants:
591
592 @itemize @bullet
593 @item
594 @code{(featurep 'mule)} @code{t} on all mule variants
595
596 @item
597 @code{(boundp 'MULE)} is @code{t} on only MULE. Maybe the next version
598 of Emacs will not have this symbol.
599
600 @item
601 MULE has a variable @code{mule-version}. Perhaps the next version of
602 Emacs will have this variable as well.
603 @end itemize
604
605 Following is a sample to distinguish mule variants:
606
607 @lisp
608 (if (featurep 'mule)
609 (cond ((boundp 'MULE)
610 ;; for original Mule
611 )
612 ((string-match "XEmacs" emacs-version)
613 ;; for XEmacs with Mule
614 )
615 (t
616 ;; for next version of Emacs
617 ))
618 ;; for old emacs variants
619 )
620 @end lisp
621 @end quotation
622
623 @node Q1.3.7, Q1.4.1, Q1.3.6, Introduction
624 @section How about Cyrillic Modes?
625
626 Ilya Zakharevich <ilya@@math.ohio-state.edu> writes:
627
628 @quotation
629 There is a cyrillic mode in the file @file{mysetup.zip} in
630 <URL:ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs/>. This is a
631 modification to Valery Alexeev's <ava@@math.jhu.ed> @file{russian.el}
632 which can be obtained from
633 <URL:ftp://tut.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/russian.el.Z>.
634 @end quotation
635
636 Dima Barsky <d.barsky@@ee.surrey.ac.uk> writes:
637
638 @quotation
639 There is another cyrillic mode for both GNU Emacs and XEmacs by Dmitrii
640 (Mitya) Manin <manin@@camelot.mssm.edu> at
641 <URL:http://camelot.mssm.edu/~manin/cyr.el>.
642 @end quotation
643
644 @node Q1.4.1, Q1.4.2, Q1.3.7, Introduction
645 @section What is a @file{.emacs} and is there a sample one?
646
647 The @file{.emacs} file is used to customize XEmacs to your tastes. No
648 two are alike, nor are they expected to be alike, but that's the point.
649 The XEmacs distribution contains an excellent starter example in the etc
650 directory called @file{sample.emacs}. Copy this file from there to your
651 home directory and rename it @file{.emacs}. Then edit it to suit.
652
653 Starting with 19.14, you may bring the @file{sample.emacs} into an
654 XEmacs buffer by selecting @samp{Help->Sample .emacs} from the menubar.
655 To determine the location of the @file{etc} directory type the command
656 @kbd{C-h v data-directory RET}.
657
658 @node Q1.4.2, Q1.4.3, Q1.4.1, Introduction
659 @section Can I use the same @file{.emacs} with the other Emacs?
660
661 Yes. The sample @file{.emacs} included in the XEmacs distribution will
662 show you how to handle different versions and flavors of Emacs.
663
664 @node Q1.4.3, Q1.4.4, Q1.4.2, Introduction
665 @section Any good tutorials around?
666
667 There's the XEmacs tutorial available from the Help Menu, or by typing
668 @kbd{C-h t}.
669
670 There's an Emacs Lisp tutorial at
671
672 @example
673 <URL:ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz>.
674 @end example
675
676 Erik Sundermann <erik@@petaxp.rug.ac.be> has made a tutorial web page at
677 <URL:http://petaxp.rug.ac.be/~erik/xemacs/>.
678
679 @node Q1.4.4, Q1.4.5, Q1.4.3, Introduction
680 @section May I see an example of a useful XEmacs Lisp function?
681
682 The following function does a little bit of everything useful. It does
683 something with the prefix argument, it examines the text around the
684 cursor, and it's interactive so it may be bound to a key. It inserts
685 copies of the current word the cursor is sitting on at the cursor. If
686 you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will
687 insert 3 copies.
688
689 @lisp
690 (defun double-word (count)
691 "Insert a copy of the current word underneath the cursor"
692 (interactive "*p")
693 (let (here there string)
694 (save-excursion
695 (forward-word -1)
696 (setq here (point))
697 (forward-word 1)
698 (setq there (point))
699 (setq string (buffer-substring here there)))
700 (while (>= count 1)
701 (progn
702 (insert string)
703 (setq count (1- count))))))
704 @end lisp
705
706 The best way to see what is going on here is to let XEmacs tell you.
707 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor
708 sitting just to the right of the function you want explained. Eg. move
709 the cursor to the SPACE between @code{interactive} and @samp{"*p"} and
710 hit @kbd{C-h f} to see what the function @code{interactive} does. Doing
711 this will tell you that the @code{*} requires a writable buffer, and
712 @code{p} converts the prefix argument to a number, and
713 @code{interactive} allows you to execute the command with @kbd{M-x}.
714
715 @node Q1.4.5, Q1.4.6, Q1.4.4, Introduction
716 @section And how do I bind it to a key?
717
718 To bind to a key do:
719
720 @lisp
721 (global-set-key "\C-cd" 'double-word)
722 @end lisp
723
724 Or interactively, @kbd{M-x global-set-key} and follow the prompts.
725
726 Jari Aalto has written a guide to Emacs keys binding, available at
727 <URL:ftp://cs.uta.fi/pub/ssjaaa/ema-keys.gui>.
728
729 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction
730 @section What's the difference between a macro and a function?
731
732 Quoting from the Lisp Reference (a.k.a @dfn{lispref}) Manual:
733
734 @dfn{Macros} enable you to define new control constructs and other
735 language features. A macro is defined much like a function, but instead
736 of telling how to compute a value, it tells how to compute another Lisp
737 expression which will in turn compute the value. We call this
738 expression the @dfn{expansion} of the macro.
739
740 Macros can do this because they operate on the unevaluated expressions
741 for the arguments, not on the argument values as functions do. They can
742 therefore construct an expansion containing these argument expressions
743 or parts of them.
744
745 @node Q1.4.7, , Q1.4.6, Introduction
746 @section How come options saved with 19.13 don't work with 19.14 or 20.0?
747
748 There's a problem with options of the form:
749
750 @lisp
751 (add-spec-list-to-specifier (face-property 'searchm-field 'font)
752 '((global (nil))))
753 @end lisp
754
755 saved by a 19.13 XEmacs that causes a 19.14 XEmacs grief. You must
756 delete these options. 19.14 and later no longer write the options
757 directly to @file{.emacs} which should allow us to deal with version
758 incompatibilities better in the future.
759
760 Options saved under XEmacs 19.13 are protected by code that specifically
761 requires a version 19 XEmacs. This won't be a problem unless you're
762 testing XEmacs v20. You should consider changing the code to read:
763
764 @lisp
765 (cond
766 ((and (string-match "XEmacs" emacs-version)
767 (boundp 'emacs-major-version)
768 (or (and (= emacs-major-version 19)
769 (>= emacs-minor-version 12))
770 (>= emacs-major-version 20)))
771 ...
772 @end lisp
773
774 @node Installation, Customization, Introduction, Top
775 @chapter Installation and Trouble Shooting
776
777 This is part 2 of the XEmacs Frequently Asked Questions list. This
778 section is devoted to Installation, Maintenance and Trouble Shooting.
779
780 @menu
781 Installation:
782 * Q2.0.1:: Running XEmacs without installing.
783 * Q2.0.2:: XEmacs is too big.
784 * Q2.0.3:: Compiling XEmacs with Netaudio.
785 * Q2.0.4:: Problems with Linux and ncurses.
786 * Q2.0.5:: Do I need X11 to run XEmacs?
787 * Q2.0.6:: I'm having strange crashes. What do I do?
788 * Q2.0.7:: Libraries in non-standard locations.
789 * Q2.0.8:: can't resolve symbol _h_errno
790 * Q2.0.9:: Where do I find external libraries?
791 * Q2.0.10:: After I run configure I find a coredump, is something wrong?
792 * Q2.0.11:: XEmacs can't resolve host names.
793 * Q2.0.12:: Why can't I strip XEmacs?
794 * Q2.0.13:: Can't link XEmacs on Solaris with Gcc.
795
796 Trouble Shooting:
797 * Q2.1.1:: XEmacs just crashed on me!
798 * Q2.1.2:: Cryptic Minibuffer messages.
799 * Q2.1.3:: Translation Table Syntax messages at Startup.
800 * Q2.1.4:: Startup warnings about deducing proper fonts?
801 * Q2.1.5:: XEmacs cannot connect to my X Terminal.
802 * Q2.1.6:: XEmacs just locked up my Linux X server.
803 * Q2.1.7:: HP Alt key as Meta.
804 * Q2.1.8:: got (wrong-type-argument color-instance-p nil)!
805 * Q2.1.9:: XEmacs causes my OpenWindows 3.0 server to crash.
806 * Q2.1.10:: Warnings from incorrect key modifiers.
807 * Q2.1.11:: @samp{wrong type argument: bufferp, "......"}.
808 * Q2.1.12:: Regular Expression Problems on DEC OSF1.
809 * Q2.1.13:: HP/UX 10.10 and @code{create_process} failure
810 * Q2.1.14:: @kbd{C-g} doesn't work for me. Is it broken?
811 * Q2.1.15:: How to debug an XEmacs problem with a debugger.
812 * Q2.1.16:: XEmacs crashes in @code{strcat} on HP/UX 10.
813 * Q2.1.17:: @samp{Marker does not point anywhere}.
814 * Q2.1.18:: 19.14 hangs on HP/UX 10.10.
815 * Q2.1.19:: XEmacs does not follow the local timezone.
816 * Q2.1.20:: @samp{Symbol's function definition is void: hkey-help-show.}
817 * Q2.1.21:: Every so often the XEmacs frame freezes.
818 @end menu
819
820 @node Q2.0.1, Q2.0.2, Installation, Installation
821 @section Running XEmacs without installing
822
823 The @file{INSTALL} file says that up to 108 MB of space is needed
824 temporarily during installation! How can I just try it out?
825
826 XEmacs will run in place without requiring installation and copying of
827 the Lisp directories, and without having to specify a special build-time
828 flag. It's the copying of the Lisp directories that requires so much
829 space. XEmacs is largely written in Lisp.
830
831 A good method is to make a shell alias for xemacs:
832
833 @example
834 alias xemacs=/i/xemacs-19.14/src/xemacs
835 @end example
836
837 (You will obviously use whatever directory you downloaded the source
838 tree to instead of @file{/i/xemacs-19.14}).
839
840 This will let you run XEmacs without massive copying.
841
842 @node Q2.0.2, Q2.0.3, Q2.0.1, Installation
843 @section XEmacs is too big
844
845 Steve Baur <steve@@altair.xemacs.org> writes:
846
847 @quotation
848 The 45MB of space required by the installation directories can be
849 reduced dramatically if desired. Gzip all the .el files. Remove all
850 the packages you'll never want to use (or even ones you do like the two
851 obsolete mailcrypts and Gnus 4 in 19.13). Remove the TexInfo manuals.
852 Remove the Info (and use just hardcopy versions of the manual). Remove
853 most of the stuff in etc. Remove or gzip all the source code. Gzip or
854 remove the C source code. Configure it so that copies are not made of
855 the support lisp. I'm not advocating any of these things, just pointing
856 out ways to reduce the disk requirements if desired.
857
858 Now examine the space used by directory:
859
860 @example
861 0 /usr/local/bin/xemacs
862 2048 /usr/local/bin/xemacs-19.13
863
864 1546 /usr/local/lib/xemacs-19.13/i486-miranova-sco3.2v4.2
865 1158 /usr/local/lib/xemacs-19.13/i486-unknown-linux1.2.13
866 @end example
867
868 You need to keep these. XEmacs isn't stripped by default in
869 installation, you should consider stripping. That will save you about
870 5MB right there.
871
872 @example
873 207 /usr/local/lib/xemacs-19.13/etc/w3
874 122 /usr/local/lib/xemacs-19.13/etc/sounds
875 18 /usr/local/lib/xemacs-19.13/etc/sparcworks
876 159 /usr/local/lib/xemacs-19.13/etc/vm
877 6 /usr/local/lib/xemacs-19.13/etc/e
878 21 /usr/local/lib/xemacs-19.13/etc/eos
879 172 /usr/local/lib/xemacs-19.13/etc/toolbar
880 61 /usr/local/lib/xemacs-19.13/etc/ns
881 43 /usr/local/lib/xemacs-19.13/etc/gnus
882 @end example
883
884 These are support directories for various packages. In general they
885 match a directory under ./xemacs-19.13/lib/xemacs-19.13/lisp/. If you
886 do not require the package, you may delete or gzip the support too.
887
888 @example
889 1959 /usr/local/lib/xemacs-19.13/etc
890 175 /usr/local/lib/xemacs-19.13/lisp/bytecomp
891 340 /usr/local/lib/xemacs-19.13/lisp/calendar
892 342 /usr/local/lib/xemacs-19.13/lisp/comint
893 517 /usr/local/lib/xemacs-19.13/lisp/dired
894 42 /usr/local/lib/xemacs-19.13/lisp/electric
895 212 /usr/local/lib/xemacs-19.13/lisp/emulators
896 238 /usr/local/lib/xemacs-19.13/lisp/energize
897 289 /usr/local/lib/xemacs-19.13/lisp/gnus
898 457 /usr/local/lib/xemacs-19.13/lisp/ilisp
899 1439 /usr/local/lib/xemacs-19.13/lisp/modes
900 2276 /usr/local/lib/xemacs-19.13/lisp/packages
901 1040 /usr/local/lib/xemacs-19.13/lisp/prim
902 176 /usr/local/lib/xemacs-19.13/lisp/pcl-cvs
903 154 /usr/local/lib/xemacs-19.13/lisp/rmail
904 3 /usr/local/lib/xemacs-19.13/lisp/epoch
905 45 /usr/local/lib/xemacs-19.13/lisp/term
906 860 /usr/local/lib/xemacs-19.13/lisp/utils
907 851 /usr/local/lib/xemacs-19.13/lisp/vm
908 13 /usr/local/lib/xemacs-19.13/lisp/vms
909 157 /usr/local/lib/xemacs-19.13/lisp/x11
910 19 /usr/local/lib/xemacs-19.13/lisp/tooltalk
911 14 /usr/local/lib/xemacs-19.13/lisp/sunpro
912 291 /usr/local/lib/xemacs-19.13/lisp/games
913 198 /usr/local/lib/xemacs-19.13/lisp/edebug
914 619 /usr/local/lib/xemacs-19.13/lisp/w3
915 229 /usr/local/lib/xemacs-19.13/lisp/eos
916 55 /usr/local/lib/xemacs-19.13/lisp/iso
917 59 /usr/local/lib/xemacs-19.13/lisp/mailcrypt
918 187 /usr/local/lib/xemacs-19.13/lisp/eterm
919 356 /usr/local/lib/xemacs-19.13/lisp/ediff
920 408 /usr/local/lib/xemacs-19.13/lisp/hyperbole/kotl
921 1262 /usr/local/lib/xemacs-19.13/lisp/hyperbole
922 247 /usr/local/lib/xemacs-19.13/lisp/hm--html-menus
923 161 /usr/local/lib/xemacs-19.13/lisp/mh-e
924 299 /usr/local/lib/xemacs-19.13/lisp/viper
925 53 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-x
926 4 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj/DocWindow.nib
927 3 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj/InfoPanel.nib
928 3 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj/TreeView.nib
929 11 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx/English.lproj
930 53 /usr/local/lib/xemacs-19.13/lisp/oobr/tree-nx
931 466 /usr/local/lib/xemacs-19.13/lisp/oobr
932 14142 /usr/local/lib/xemacs-19.13/lisp
933 @end example
934
935 These are all Emacs Lisp source code and bytecompiled object code. You
936 may safely gzip everything named *.el here. You may remove any package
937 you don't use. @emph{Nothing bad will happen if you delete a package
938 that you do not use}. You must be sure you do not use it though, so be
939 conservative at first.
940
941 Possible candidates for deletion include w3 (newer versions exist, or
942 you may just use Lynx or Netscape for web browsing), games, hyperbole,
943 mh-e, hm--html-menus (better packages exist), vm, viper, oobr, gnus (new
944 versions exist), etc. Ask yourself, @emph{Do I ever want to use this
945 package?} If the answer is no, then it is a candidate for removal.
946
947 First, gzip all the .el files. Then go about package by package and
948 start gzipping the .elc files. Then run XEmacs and do whatever it is
949 you normally do. If nothing bad happens, then delete the directory. Be
950 conservative about deleting directories, and it would be handy to have a
951 backup tape around in case you get too zealous.
952
953 @file{prim}, @file{modes}, @file{packages}, and @file{utils} are four
954 directories you definitely do @strong{not} want to delete, although
955 certain packages can be removed from them if you do not use them.
956
957 @example
958 1972 /usr/local/lib/xemacs-19.13/info
959 @end example
960
961 These are online texinfo sources. You may either gzip them or remove
962 them. In either case, @kbd{C-h i} (info mode) will no longer work.
963
964 @example
965 20778 /usr/local/lib/xemacs-19.13
966 @end example
967
968 The 20MB achieved is less than half of what the full distribution takes up,
969 @strong{and} can be achieved without deleting a single file.
970 @end quotation
971
972 giacomo boffi <boffi@@hp735.stru.polimi.it> provides this procedure:
973
974 @quotation
975 Substitute @file{/usr/local/lib/} with the path where the xemacs tree is
976 rooted, then use this script:
977
978 @example
979 #!/bin/sh
980
981 r=/usr/local/lib/xemacs-19.13/lisp
982
983 cd $r ; rm -f cmpr ; touch cmpr
984
985 du -s .
986
987 for d in * ; do
988 if test -d $d ; then
989 cd $d
990 for f in *.el ; do
991 # compress (remove) only (ONLY) the sources that have a
992 # corresponding compiled file --- do not (DO NOT) touch other
993 # sources
994 if test -f $@{f@}c ; then gzip -v9 $f >> $r/cmpr ; fi
995 done
996 cd ..
997 fi
998 done
999
1000 du -s .
1001 @end example
1002
1003 A step beyond would be substituting @samp{rm -f} for @samp{gzip -v9},
1004 but you have to be desperate for removing the sources (remember that
1005 emacs can access compressed files transparently).
1006
1007 Also, a good megabyte could easily be trimmed from the $r/../etc
1008 directory, e.g., the termcap files, some O+NEWS, others that I don't
1009 remember as well.
1010 @end quotation
1011
1012 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation
1013 @section Compiling XEmacs with Netaudio.
1014
1015 What is the best way to compile XEmacs with the netaudio system, since I
1016 have got the netaudio system compiled but installed at a weird place, I
1017 am not root. Also in the READMEs it does not say anything about
1018 compiling with the audioserver?
1019
1020 You should only need to add some stuff to the configure command line.
1021 To tell it to compile in netaudio support: @samp{--with-sound=both}, or
1022 @samp{--with-sound=nas} if you don't want native sound support for some
1023 reason.) To tell it where to find the netaudio includes and libraries:
1024
1025 @example
1026 --site-libraries=WHATEVER
1027 --site-includes=WHATEVER
1028 @end example
1029
1030 Then (fingers crossed) it should compile and it will use netaudio if you
1031 have a server running corresponding to the X server. The netaudio server
1032 has to be there when XEmacs starts. If the netaudio server goes away and
1033 another is run, XEmacs should cope (fingers crossed, error handling in
1034 netaudio isn't perfect).
1035
1036 BTW, netaudio has been renamed as it has a name clash with something
1037 else, so if you see references to NAS or Network Audio System, it's the
1038 same thing. It also might be found at
1039 <URL:ftp.x.org:/contrib/audio/nas/>.
1040
1041 @node Q2.0.4, Q2.0.5, Q2.0.3, Installation
1042 @section Problems with Linux and ncurses.
1043
1044 On Linux 1.3.98 with termcap 2.0.8 and the ncurses that came with libc
1045 5.2.18, xemacs 20.0b20 is unable to open a tty device:
1046
1047 @example
1048 src/xemacs -nw -q
1049 Initialization error: Terminal type `xterm' undefined (or can't access database?)
1050 @end example
1051
1052 Ben Wing <ben@@666.com&gt writes:
1053
1054 @quotation
1055 Your ncurses configuration is messed up. Your /usr/lib/terminfo is a
1056 bad pointer, perhaps to a CD-ROM that is not inserted.
1057 @end quotation
1058
1059 @node Q2.0.5, Q2.0.6, Q2.0.4, Installation
1060 @section Do I need X11 to run XEmacs?
1061
1062 No. The name @dfn{XEmacs} is unfortunate in the sense that it is
1063 @strong{not} an X Window System-only version of Emacs. Starting with
1064 19.14 XEmacs has full color support on a color capable character
1065 terminal.
1066
1067 @node Q2.0.6, Q2.0.7, Q2.0.5, Installation
1068 @section I'm having strange crashes. What do I do?
1069
1070 There have been a variety of reports of crashes due to compilers with
1071 buggy optimizers. Please see the @file{PROBLEMS} file that comes with
1072 XEmacs to read what it says about your platform.
1073
1074 @node Q2.0.7, Q2.0.8, Q2.0.6, Installation
1075 @section Libraries in non-standard locations
1076
1077 I have x-faces, jpeg, xpm etc. all in different places. I've tried
1078 space-separated, comma-separated, several --site-libraries, all to no
1079 avail.
1080
1081 @example
1082 --site-libraries='/path/one /path/two /path/etc'
1083 @end example
1084
1085 @node Q2.0.8, Q2.0.9, Q2.0.7, Installation
1086 @section can't resolve symbol _h_errno
1087
1088 You are using the Linux/ELF distribution of XEmacs 19.14, and your ELF
1089 libraries are out of date. You have the following options:
1090
1091 @enumerate
1092 @item
1093 Upgrade your libc to at least 5.2.16 (better is 5.2.18, 5.3.12, or
1094 5.4.10).
1095
1096 @item
1097 Patch the XEmacs binary by replacing all occurrences of
1098 @samp{_h_errno^@@} with @samp{h_errno^@@^@@}. Any version of Emacs will
1099 suffice. If you don't understand how to do this, don't do it.
1100
1101 @item
1102 Rebuild XEmacs yourself -- any working ELF version of libc should be
1103 O.K.
1104 @end enumerate
1105
1106 Hrvoje Niksic <hniksic@@srce.hr> writes:
1107
1108 @quotation
1109 Why not use a Perl one-liner for No. 2?
1110
1111 @example
1112 perl -pi -e 's/_h_errno\0/h_errno\0\0/g' /usr/local/bin/xemacs-19.14
1113 @end example
1114
1115 NB: You @emph{must} patch @file{/usr/local/bin/xemacs-19.14}, and not
1116 @file{xemacs} because @file{xemacs} is a link to @file{xemacs-19.14};
1117 the Perl @samp{-i} option will cause unwanted side-effects if applied to
1118 a symbolic link.
1119 @end quotation
1120
1121 @node Q2.0.9, Q2.0.10, Q2.0.8, Installation
1122 @section Where do I find external libraries?
1123
1124 All external libraries used by XEmacs can be found at the XEmacs FTP
1125 site <URL:ftp://ftp.xemacs.org/pub/aux/>.
1126
1127 The canonical locations are as follows:
1128
1129 @table @asis
1130 @item JPEG
1131 <URL:ftp://ftp.netcom.com/pub/tg/tgl/uunet/>, mirrored at
1132 <URL:ftp://ftp.uu.net/graphics/jpeg/>. Version 6a is current.
1133
1134 @item XPM
1135 <URL:ftp://ftp.x.org/contrib/libraries/>. Version 3.4j is current.
1136 Older versions of this package are known to cause XEmacs crashes.
1137
1138 @item TIFF
1139 <URL:ftp://ftp.sgi.com/graphics/tiff/>. v3.4 is current. The latest
1140 beta is v3.4b035. There is a HOWTO here.
1141
1142 @item PNG
1143 <URL:ftp://ftp.uu.net/graphics/png/>. 0.89c is current. XEmacs
1144 requires a fairly recent version to avoid using temporary files.
1145
1146 <URL:ftp://swrinde.nde.swri.edu/pub/png/src/>
1147
1148 @item Compface
1149 <URL:ftp://ftp.cs.indiana.edu/pub/faces/compface/>. This library has
1150 been frozen for about 6 years, and is distributed without version
1151 numbers. @emph{It should be compiled with the same options that X11 was
1152 compiled with on your system}. The version of this library at
1153 XEmacs.org includes the @file{xbm2xface.pl} script, written by
1154 stig@@hackvan.com, which may be useful when generating your own xface.
1155
1156 @item NAS
1157 <URL:ftp://ftp.x.org/contrib/audio/nas/>.
1158 Version 1.2p5 is current. There is a FAQ here.
1159 @end table
1160
1161 @node Q2.0.10, Q2.0.11, Q2.0.9, Installation
1162 @section After I run configure I find a coredump, is something wrong?
1163
1164 Not necessarily. If you have GNU sed 3.0 you should downgrade it to
1165 2.05. From the @file{README} at prep.ai.mit.edu:
1166
1167 @quotation
1168 sed 3.0 has been withdrawn from distribution. It has major revisions,
1169 which mostly seem to be improvements; but it turns out to have bugs too
1170 which cause trouble in some common cases.
1171
1172 Tom Lord won't be able to work fixing the bugs until May. So in the
1173 mean time, we've decided to withdraw sed 3.0 from distribution and make
1174 version 2.05 once again the recommended version.
1175 @end quotation
1176
1177 It has also been observed that the vfork test on Solaris will leave a
1178 coredump.
1179
1180 @node Q2.0.11, Q2.0.12, Q2.0.10, Installation
1181 @section XEmacs doesn't resolve hostnames.
1182
1183 This is the result of a long-standing problem with SunOS and the fact
1184 that stock SunOS systems do not ship with DNS resolver code in libc.
1185
1186 Christopher Davis <ckd@@loiosh.kei.com> writes:
1187
1188 @quotation
1189 That's correct [The SunOS 4.1.3 precompiled binaries don't do name
1190 lookup]. Since Sun figured that everyone used NIS to do name lookups
1191 (that DNS thing was apparently only a passing fad, right?), the stock
1192 SunOS 4.x systems don't have DNS-based name lookups in libc.
1193
1194 This is also why Netscape ships two binaries for SunOS 4.1.x.
1195
1196 The best solution is to compile it yourself; the configure script will
1197 check to see if you've put DNS in the shared libc and will then proceed
1198 to link against the DNS resolver library code.
1199 @end quotation
1200
1201 @node Q2.0.12, Q2.0.13, Q2.0.11, Installation
1202 @section Why can't I strip XEmacs?
1203
1204 Richard Cognot <cognot@@fronsac.ensg.u-nancy.fr> writes:
1205
1206 @quotation
1207 Because of the way XEmacs (and every other Emacsen, AFAIK) is built. The
1208 link gives you a bare-boned emacs (called temacs). temacs is then run,
1209 preloading some of the lisp files. The result is then dumped into a new
1210 executable, named xemacs, which will contain all of the preloaded lisp
1211 functions and data.
1212
1213 Now, during the dump itself, the executable (code+data+symbols) is
1214 written on disk using a special unexec() function. This function is
1215 obviously heavily system dependent. And on some systems, it leads to an
1216 executable which, although valid, cannot be stripped without damage. If
1217 memory serves, this is especially the case for AIX binaries. On other
1218 architecture it might work OK.
1219
1220 The Right Way to strip the emacs binary is to strip temacs prior to
1221 dumping xemacs. This will always work, although you can do that only if
1222 you install from sources (as temacs is @file{not} part of the binary
1223 kits).
1224 @end quotation
1225
1226 Nat Makarevitch <nat@@nataa.fr.eu.org> writes:
1227
1228 @quotation
1229 Here is the trick:
1230
1231 @enumerate
1232 @item
1233 [ configure; make ]
1234
1235 @item
1236 cd src
1237
1238 @item
1239 rm xemacs
1240
1241 @item
1242 strip temacs
1243
1244 @item
1245 cd ..
1246
1247 @item
1248 make
1249
1250 @item
1251 cp src/xemacs /usr/local/bin/xemacs
1252
1253 @item
1254 cp lib-src/DOC-19.14-XEmacs /usr/local/lib/xemacs-19.14/i586-unknown-linuxaout
1255 @end enumerate
1256 @end quotation
1257
1258 @node Q2.0.13, Q2.1.1, Q2.0.12, Installation
1259 @section Problems linking with Gcc on Solaris
1260
1261 There are known difficulties linking with Gnu ld on Solaris. A typical
1262 error message might look like:
1263
1264 @example
1265 unexec(): dlopen(../dynodump/dynodump.so): ld.so.1: ./temacs:
1266 fatal: relocation error:
1267 symbol not found: main: referenced in ../dynodump/dynodump.so
1268 @end example
1269
1270 Martin Buchholz <mrb@@eng.sun.com> writes:
1271
1272 @quotation
1273 You need to specify @samp{-fno-gnu-linker} as part of your flags to pass
1274 to ld. Future releases of XEmacs will try to do this automatically.
1275 @end quotation
1276
1277 @node Q2.1.1, Q2.1.2, Q2.0.13, Installation
1278 @section Help! XEmacs just crashed on me!
1279
1280 First of all, don't panic. Whenever XEmacs crashes, it tries extremely
1281 hard to auto-save all of your files before dying. (The main time that
1282 this will not happen is if the machine physically lost power or if you
1283 killed the XEmacs process using @code{kill -9}). The next time you try
1284 to edit those files, you will be informed that a more recent auto-save
1285 file exists. You can use @kbd{M-x recover-file} to retrieve the
1286 auto-saved version of the file.
1287
1288 Starting with 19.14, you may use the command @kbd{M-x recover-session}
1289 after a crash to pick up where you left off.
1290
1291 Now, XEmacs is not perfect, and there may occasionally be times, or
1292 particular sequences of actions, that cause it to crash. If you can
1293 come up with a reproducible way of doing this (or even if you have a
1294 pretty good memory of exactly what you were doing at the time), the
1295 maintainers would be very interested in knowing about it. Post a
1296 message to comp.emacs.xemacs or send mail to <crashes@@xemacs.org>.
1297 Please note that the @samp{crashes} address is exclusively for crash
1298 reports.
1299
1300 If at all possible, include a stack backtrace of the core dump that was
1301 produced. This shows where exactly things went wrong, and makes it much
1302 easier to diagnose problems. To do this, you need to locate the core
1303 file (it's called @file{core}, and is usually sitting in the directory
1304 that you started XEmacs from, or your home directory if that other
1305 directory was not writable). Then, go to that directory and execute a
1306 command like:
1307
1308 @example
1309 gdb `which xemacs` core
1310 @end example
1311
1312 and then issue the command @samp{where} to get the stack backtrace. You
1313 might have to use @code{dbx} or some similar debugger in place of
1314 @code{gdb}. If you don't have any such debugger available, complain to
1315 your system administrator.
1316
1317 It's possible that a core file didn't get produced, in which case you're
1318 out of luck. Go complain to your system administrator and tell him not
1319 to disable core files by default. Also @xref{Q2.1.15} for tips and
1320 techniques for dealing with a debugger.
1321
1322 When making a problem report make sure that:
1323
1324 @enumerate
1325 @item
1326 Report @strong{all} of the information output by XEmacs during the
1327 crash.
1328
1329 @item
1330 You mention what O/S & Hardware you are running XEmacs on.
1331
1332 @item
1333 What version of XEmacs you are running.
1334
1335 @item
1336 What build options you are using.
1337
1338 @item
1339 If the problem is related to graphics, we will also need to know what
1340 version of the X Window System you are running, and what window manager
1341 you are using.
1342
1343 @item
1344 If the problem happened on a tty, please include the terminal type.
1345 @end enumerate
1346
1347 @node Q2.1.2, Q2.1.3, Q2.1.1, Installation
1348 @section Cryptic Minibuffer messages.
1349
1350 When I try to use some particular option of some particular package, I
1351 get a cryptic error in the minibuffer.
1352
1353 If you can't figure out what's going on, select Options/General
1354 Options/Debug on Error from the Menubar and then try and make the error
1355 happen again. This will give you a backtrace that may be enlightening.
1356 If not, try reading through this FAQ; if that fails, you could try
1357 posting to comp.emacs.xemacs (making sure to include the backtrace) and
1358 someone may be able to help. If you can identify which Emacs lisp
1359 source file the error is coming from you can get a more detailed stack
1360 backtrace by doing the following:
1361
1362 @enumerate
1363 @item
1364 Visit the .el file in an XEmacs buffer.
1365
1366 @item
1367 Issue the command @kbd{M-x eval-current-buffer}.
1368
1369 @item
1370 Reproduce the error.
1371 @end enumerate
1372
1373 Depending on the version of XEmacs, you may either select Edit->Show
1374 Messages (19.13 and earlier) or Help->Recent Keystrokes/Messages (19.14
1375 and later) from the menubar to see the most recent messages. This
1376 command is bound to @kbd{C-h l} by default.
1377
1378 @node Q2.1.3, Q2.1.4, Q2.1.2, Installation
1379 @section Translation Table Syntax messages at Startup
1380
1381 I get tons of translation table syntax error messages during startup.
1382 How do I get rid of them?
1383
1384 There are two causes of this problem. The first usually only strikes
1385 people using the prebuilt binaries. The culprit in both cases is the
1386 file @file{XKeysymDB}.
1387
1388 @itemize @bullet
1389 @item
1390 The binary cannot find the @file{XKeysymDB} file. The location is
1391 hardcoded at compile time so if the system the binary was built on puts
1392 it a different place than your system does, you have problems. To fix,
1393 set the environment variable @var{XKEYSYMDB} to the location of the
1394 @file{XKeysymDB} file on your system or to the location of the one
1395 included with XEmacs which should be at
1396 @file{<xemacs_root_directory>/lib/xemacs-19.14/etc/XKeysymDB}.
1397
1398 @item
1399 The binary is finding the XKeysymDB but it is out-of-date on your system
1400 and does not contain the necessary lines. Either ask your system
1401 administrator to replace it with the one which comes with XEmacs (which
1402 is the stock R6 version and is backwards compatible) or set your
1403 @var{XKEYSYMDB} variable to the location of XEmacs's described above.
1404 @end itemize
1405
1406 @node Q2.1.4, Q2.1.5, Q2.1.3, Installation
1407 @section Startup warnings about deducing proper fonts?
1408
1409 How can I avoid the startup warnings about deducing proper fonts?
1410
1411 This is highly dependent on your installation, but try with the
1412 following font as your base font for XEmacs and see what it does:
1413
1414 @example
1415 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
1416 @end example
1417
1418 More precisely, do the following in your resource file:
1419
1420 @example
1421 Emacs.default.attributeFont: -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
1422 @end example
1423
1424 If you just don't want to see the @samp{*Warnings*} buffer at startup
1425 time, you can set this:
1426
1427 @lisp
1428 (setq display-warning-minimum-level 'error)
1429 @end lisp
1430
1431 The buffer still exists; it just isn't in your face.
1432
1433 @node Q2.1.5, Q2.1.6, Q2.1.4, Installation
1434 @section XEmacs cannot connect to my X Terminal!
1435
1436 Help! I can not get XEmacs to display on my Envizex X-terminal!
1437
1438 Try setting the @var{DISPLAY} variable using the numeric IP address of
1439 the host you are running XEmacs from.
1440
1441 @node Q2.1.6, Q2.1.7, Q2.1.5, Installation
1442 @section XEmacs just locked up my Linux X server!
1443
1444 Help! XEmacs just locked up my X server on my Linux box!
1445
1446 There have been several reports of the X server locking up under Linux.
1447 In all reported cases removing speedo and scaled fonts from the font
1448 path corrected the problem. This can be done with the command
1449 '@code{xset}.
1450
1451 It is possible that using a font server may also solve the problem.
1452
1453 @node Q2.1.7, Q2.1.8, Q2.1.6, Installation
1454 @section HP Alt key as Meta.
1455
1456 How can I make XEmacs recognize the Alt key of my HP workstation as a
1457 Meta key?
1458
1459 Put the following line into a file and load it with xmodmap(1) before
1460 starting XEmacs:
1461
1462 @example
1463 remove Mod1 = Mode_switch
1464 @end example
1465
1466 @node Q2.1.8, Q2.1.9, Q2.1.7, Installation
1467 @section got (wrong-type-argument color-instance-p nil)
1468
1469 Natalie Kershaw <nataliek@@rd.scitec.com.au> writes:
1470
1471 @quotation
1472 I am trying to run xemacs 19.13 under X11R4. Whenever I move the mouse I
1473 get the following error. Has anyone seen anything like this? This
1474 doesn't occur on X11R5.
1475
1476 @lisp
1477 Signalling: (error "got (wrong-type-argument color-instance-p nil) and I don't know why!")
1478 @end lisp
1479 @end quotation
1480
1481 dinos <map01kd@@gold.ac.uk> writes:
1482
1483 @quotation
1484 I think this is due to undefined resources; You need to define color
1485 backgrounds and foregrounds into your @file{.../app-defaults/Emacs}
1486 like:
1487
1488 @example
1489 *Foreground: Black ;everything will be of black on grey95,
1490 *Background: Grey95 ;unless otherwise specified.
1491 *cursorColor: Red3 ;red3 cursor with grey95 border.
1492 *pointerColor: Red3 ;red3 pointer with grey95 border.
1493 @end example
1494 @end quotation
1495
1496 Natalie Kershaw adds:
1497
1498 @quotation
1499 What fixed the problem was adding some more colors to the X color
1500 database (copying the X11R5 colors over), and also defining the
1501 following resources:
1502
1503 @example
1504 xemacs*cursorColor: black
1505 xemacs*pointerColor: black
1506 @end example
1507
1508 With the new colours installed the problem still occurs if the above
1509 resources are not defined.
1510
1511 If the new colours are not present then an additional error occurs on
1512 XEmacs startup, which says @samp{Color Red3} not defined.
1513 @end quotation
1514
1515 @node Q2.1.9, Q2.1.10, Q2.1.8, Installation
1516 @section XEmacs causes my OpenWindows 3.0 server to crash.
1517
1518 The OpenWindows 3.0 server is incredibly buggy. Your best bet is to
1519 replace it with one from the generic MIT X11 release. You might also
1520 try disabling parts of your @file{.emacs}, like enabling background
1521 pixmaps.
1522
1523 @node Q2.1.10, Q2.1.11, Q2.1.9, Installation
1524 @section Warnings from incorrect key modifiers.
1525
1526 The following information comes from the @file{PROBLEMS} file that comes
1527 with XEmacs.
1528
1529 If you're having troubles with HP/UX it is because HP/UX defines the
1530 modifiers wrong in X. Here is a shell script to fix the problem; be
1531 sure that it is run after VUE configures the X server.
1532
1533 @example
1534 #! /bin/sh
1535 xmodmap 2> /dev/null - << EOF
1536 keysym Alt_L = Meta_L
1537 keysym Alt_R = Meta_R
1538 EOF
1539
1540 xmodmap - << EOF
1541 clear mod1
1542 keysym Mode_switch = NoSymbol
1543 add mod1 = Meta_L
1544 keysym Meta_R = Mode_switch
1545 add mod2 = Mode_switch
1546 EOF
1547 @end example
1548
1549 @node Q2.1.11, Q2.1.12, Q2.1.10, Installation
1550 @section @samp{wrong type argument: bufferp, "......"}.
1551
1552 I'm using XEmacs 19.13 on Solaris 2.5. I'm having problem using the
1553 bookmark. When I try to set a bookmark, I always get the following error
1554 message:
1555
1556 @lisp
1557 wrong type argument: bufferp, "......"
1558 @end lisp
1559
1560 You are using the wrong version of @code{set-text-properties}. Please
1561 use the one given with Q5.1.3 (@xref{Q5.1.3}).
1562
1563 @node Q2.1.12, Q2.1.13, Q2.1.11, Installation
1564 @section Problems with Regular Expressions on DEC OSF1.
1565
1566 I have xemacs 19.13 running on an alpha running OSF1 V3.2 148 and ispell
1567 would not run because it claimed the version number was incorrect
1568 although it was indeed OK. I traced the problem to the regular
1569 expression handler.
1570
1571 Douglas Kosovic <douglask@@dstc.edu.au> writes:
1572
1573 @quotation
1574 Actually it's a DEC cc optimisation bug that screws up the regexp
1575 handling in XEmacs.
1576
1577 Rebuilding using the @samp{-migrate} switch for DEC cc (which uses a
1578 different sort of optimisation) works fine.
1579 @end quotation
1580
1581 See @file{xemacs-19_13-dunix-3_2c.patch} at the following URL on how to
1582 build with the @samp{-migrate} flag:
1583
1584 @example
1585 <URL:http://www-digital.cern.ch/carney/emacs/emacs.html>
1586 @end example
1587
1588 NOTE: There have been a variety of other problems reported that are
1589 fixed in this fashion.
1590
1591 @node Q2.1.13, Q2.1.14, Q2.1.12, Installation
1592 @section HP/UX 10.10 and @code{create_process} failure.
1593
1594 Dave Carrigan <Dave.Carrigan@@ipl.ca> writes:
1595
1596 @quotation
1597 With XEmacs 19.13 and HP/UX 10.10, anything that relies on the
1598 @code{create_process} function fails. This breaks a lot of things
1599 (shell-mode, compile, ange-ftp, to name a few).
1600 @end quotation
1601
1602 Phil Johnson <johnson@@dtc.hp.com> writes:
1603
1604 @quotation
1605 This is a problem specific to HP-UX 10.10. It only occurs when XEmacs
1606 is compiled for shared libraries (the default), so you can work around
1607 it by compiling a statically-linked binary (run configure with
1608 @samp{--dynamic=no}).
1609
1610 I'm not sure whether the problem is with a particular shared library or
1611 if it's a kernel problem which crept into 10.10.
1612 @end quotation
1613
1614 Richard Cognot <cognot@@ensg.u-nancy.fr> writes:
1615
1616 @quotation
1617 I had a few problems with 10.10. Apparently, some of them were solved by
1618 forcing a static link of libc (manually).
1619 @end quotation
1620
1621 @node Q2.1.14, Q2.1.15, Q2.1.13, Installation
1622 @section @kbd{C-g} doesn't work for me. Is it broken?
1623
1624 Ben Wing <ben@@666.com> writes:
1625
1626 @quotation
1627 @kbd{C-g} does work for most people in most circumstances. If it
1628 doesn't, there are only two explanations:
1629
1630 @enumerate
1631 @item
1632 The code is wrapped with a binding of @code{inhibit-quit} to
1633 @code{t}. @kbd{Ctrl-Shift-G} should still work, I think.
1634
1635 @item
1636 SIGIO is broken on your system, but BROKEN_SIGIO isn't defined.
1637 @end enumerate
1638
1639 To test #2, try executing @code{(while t)} from the @samp{*scratch*}
1640 buffer. If @kbd{C-g} doesn't interrupt, then you're seeing #2.
1641 @end quotation
1642
1643 Morten Welinder <terra@@diku.dk> writes:
1644
1645 @quotation
1646 On some (but @emph{not} all) machines a hung XEmacs can be revived by
1647 @code{kill -FPE <pid>}. This is a hack, of course, not a solution.
1648 This technique works on a Sun4 running 4.1.3_U1. To see if it works for
1649 you, start another XEmacs and test with that first. If you get a core
1650 dump the method doesn't work and if you get @samp{Arithmetic error} then
1651 it does.
1652 @end quotation
1653
1654 @node Q2.1.15, Q2.1.16, Q2.1.14, Installation
1655 @section How to Debug an XEmacs problem with a debugger
1656
1657 Ben Wing <ben@@666.com> writes:
1658
1659 @quotation
1660 If XEmacs does crash on you, one of the most productive things you can
1661 do to help get the bug fixed is to poke around a bit with the debugger.
1662 Here are some hints:
1663
1664 @itemize @bullet
1665 @item
1666 First of all, if the crash is at all reproducible, consider very
1667 strongly recompiling your XEmacs with debugging symbols, with no
1668 optimization, and with the configure options @samp{--debug=yes},
1669 @samp{--error-checking=all}, and @samp{--dynamic=no}. This will make
1670 your XEmacs run somewhat slower but make it a lot more likely to catch
1671 the problem earlier (closer to its source), and a lot easier to
1672 determine what's going on with a debugger.
1673
1674 @item
1675 If you're able to run XEmacs under a debugger and reproduce the crash
1676 (if it's inconvenient to do this because XEmacs is already running or is
1677 running in batch mode as part of a bunch of scripts, consider attaching
1678 to the existing process with your debugger; most debuggers let you do
1679 this by substituting the process ID for the core file when you invoke
1680 the debugger from the command line, or by using the @code{attach}
1681 command or something similar), here are some things you can do:
1682
1683 @item
1684 If XEmacs is hitting an assertion failure, put a breakpoint on
1685 @code{assert_failed()}.
1686
1687 @item
1688 If XEmacs is hitting some weird Lisp error that's causing it to crash
1689 (e.g. during startup), put a breakpoint on @code{signal_1()}---this is
1690 declared static in eval.c.
1691
1692 @item
1693 Internally, you will probably see lots of variables that hold objects of
1694 type @code{Lisp_Object}. These are exactly what they appear to be,
1695 i.e. references to Lisp objects. Printing them out with the debugger
1696 probably won't be too useful---you'll just see a number. To decode
1697 them, do this:
1698
1699 @example
1700 call debug_print (OBJECT)
1701 @end example
1702
1703 where @var{OBJECT} is whatever you want to decode (it can be a variable,
1704 a function call, etc.). This will print out a readable representation
1705 on the TTY from which the xemacs process was invoked.
1706
1707 @item
1708 If you want to get a Lisp backtrace showing the Lisp call
1709 stack, do this:
1710
1711 @example
1712 call debug_backtrace ()
1713 @end example
1714
1715 @item
1716 If all you've got is a core dump, all is not lost. You can still poke
1717 around somewhat, and if you're using GDB, there are some macros in the
1718 file @file{gdbinit} in the @file{src} directory of the XEmacs
1719 distribution that should make it easier for you to decode Lisp objects.
1720
1721 If you're using DBX, you may be able to get further help from Martin
1722 Buchholz, the engineer at Sun who works on XEmacs. Write to him at
1723 <Martin.Buchholz@@sun.com>.
1724
1725 @item
1726 If you're using a debugger to get a C stack backtrace and you're seeing
1727 stack traces with some of the innermost frames mangled, it may be due to
1728 dynamic linking. (This happens especially under Linux.) Consider
1729 reconfiguring with @samp{--dynamic=no}. Also, sometimes (again under
1730 Linux), stack backtraces of core dumps will have the frame where the
1731 fatal signal occurred mangled; if you can obtain a stack trace while
1732 running the XEmacs process under a debugger, the stack trace should be
1733 clean.
1734
1735 Curtiss <1CMC3466@@ibm.mtsac.edu> suggests upgrading to ld.so version 1.8
1736 if dynamic linking and debugging is a problem on Linux.
1737
1738 @item
1739 If you're using a debugger to get a C stack backtrace and you're
1740 getting a completely mangled and bogus stack trace, it's probably due to
1741 one of the following:
1742
1743 @enumerate a
1744 @item
1745 Your executable has been stripped. Bad news. Tell your sysadmin not to
1746 do this---it doesn't accomplish anything except to save a bit of disk
1747 space, and makes debugging much much harder.
1748
1749 @item
1750 Your stack is getting trashed. Debugging this is hard; you have to do a
1751 binary-search-type of narrowing down where the crash occurs, until you
1752 figure out exactly which line is causing the problem. Of course, this
1753 only works if the bug is highly reproducible.
1754
1755 @item
1756 If your stack trace has exactly one frame in it, with address 0x0, this
1757 could simply mean that XEmacs attempted to execute code at that address,
1758 e.g. through jumping to a null function pointer. Unfortunately, under
1759 those circumstances, GDB under Linux doesn't know how to get a stack
1760 trace. (Yes, this is the third Linux-related problem I've mentioned. I
1761 have no idea why GDB under Linux is so bogus. Complain to the GDB
1762 authors, or to comp.os.linux.development.system). Again, you'll have to
1763 use the narrowing-down process described above.
1764
1765 @item
1766 If you compiled 19.14 with @samp{--debug} (or by default in 19.15), you
1767 will get a Lisp backtrace output when XEmacs crashes, so you'll have
1768 something useful. If you're in 19.13, you could try doing @code{call
1769 debug_backtrace()}---sometimes this works even after a fatal signal has
1770 been received.
1771 @end enumerate
1772 @end itemize
1773 @end quotation
1774
1775 Here's some more info about using gdbinit:
1776
1777 Different version of @code{gdbinit} are provided for different
1778 platforms. One of these should be installed as @file{.gdbinit} in your
1779 home directory. If you're using XEmacs 19.14 or better, you should
1780 install the default @code{gdbinit} in the @file{src/} directory if you
1781 have GDB 4.14 or better. With GDB 4.13 or earlier, install
1782 @file{gdbinit.pre-4.14}; however, this is noticeably harder to use. If
1783 you're on a machine that uses a union type for Lisp_Objects (only the
1784 DEC Alpha, I think), you'll have to use @code{gdbinit.union}, which is
1785 of the pre-4.14 variety but should be easily upgradable.
1786
1787 With XEmacs 19.13 and earlier, only one @code{gdbinit} is provided (I
1788 think); it's of the pre-4.14 variety and of the union-type
1789 variety. (Many more machines used the union type under 19.13).
1790
1791 With the GDB 4.14+ gdbinit, you can print out a Lisp_Object using
1792 @code{p1 OBJECT} (which calls @code{debug_print()}, and hence only works
1793 if you have a running process) or @code{frob OBJECT} (which works even
1794 on core dumps, and does its own decoding of the object, but its output
1795 isn't always so convenient).
1796
1797 With the pre-GDB 4.14 gdbinit, you have to do these steps:
1798
1799 @example
1800 print OBJECT
1801 xtype
1802 <then type "xcons" or "xstring" or whatever, depending on the type>
1803 @end example
1804
1805 If the object is a record type, you'll probably have to the following
1806 steps:
1807
1808 @example
1809 print OBJECT
1810 xtype
1811 xrecord
1812 <remember what type is printed>
1813 print OBJECT
1814 <then type "xbuffer" or "xsymbol" or whatever>
1815 @end example
1816
1817 Of course, if you know in advance what type the object is of, you can
1818 omit all but the last two steps.
1819
1820 @node Q2.1.16, Q2.1.17, Q2.1.15, Installation
1821 @section XEmacs crashes in @code{strcat} on HP/UX 10
1822
1823 >From the problems database (through
1824 <URL:http://support.mayfield.hp.com/>):
1825
1826 @example
1827 Problem Report: 5003302299
1828 Status: Open
1829
1830 System/Model: 9000/700
1831 Product Name: HPUX S800 10.0X
1832 Product Vers: 9245XB.10.00
1833
1834 Description: strcat(3C) may read beyond end of source string, can cause
1835 SIGSEGV
1836
1837
1838 *** PROBLEM TEXT ***
1839 strcat(3C) may read beyond the source string onto an unmapped page,
1840 causing a segmentation violation.
1841 @end example
1842
1843 @node Q2.1.17, Q2.1.18, Q2.1.16, Installation
1844 @section @samp{Marker does not point anywhere}
1845
1846 This is a problem with line-number-mode in XEmacs 19.14, and affects a
1847 large number of other packages. If you see this error message, turn off
1848 line-number-mode.
1849
1850 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation
1851 @section 19.14 hangs on HP/UX 10.10.
1852
1853 Richard Cognot <cognot@@ensg.u-nancy.fr> writes:
1854
1855 @quotation
1856 For the record, compiling on hpux 10.10 leads to a hang in Gnus when
1857 compiled with optimization on.
1858
1859 I've just discovered that my hpux 10.01 binary was working less well
1860 than expected. In fact, on a 10.10 system, @code{(while t)} was not
1861 interupted by @kbd{C-g}. I defined @code{BROKEN_SIGIO} and recompiled on
1862 10.10, and... the hang is now gone.
1863
1864 As far as configure goes, this will be a bit tricky: @code{BROKEN_SIGIO}
1865 is needed on 10.10, but @strong{not} on 10.01: if I run my 10.01 binary
1866 on a 10.01 machine, without @code{BROKEN_SIGIO} being defined, @kbd{C-g}
1867 works as expected.
1868 @end quotation
1869
1870 Richard Cognot <cognot@@ensg.u-nancy.fr> adds:
1871
1872 @quotation
1873 Apparently somebody has found the reason why there is this @samp{poll:
1874 interrupted...} message for each event. For some reason, libcurses
1875 reimplements a @code{select()} system call, in a highly broken fashion.
1876 The fix is to add a -lc to the link line @emph{before} the
1877 -lxcurses. XEmacs will then use the right version of @code{select()}.
1878 @end quotation
1879
1880
1881 Alain Fauconnet <af@@biomath.jussieu.fr> writes:
1882
1883 @quotation
1884 The @emph{real} solution is to @emph{not} link -lcurses in! I just
1885 changed -lcurses to -ltermcap in the Makefile and it fixed:
1886
1887 @enumerate
1888 @item
1889 The @samp{poll: interrupted system call} message.
1890
1891 @item
1892 A more serious problem I had discovered in the meantime, that is the
1893 fact that subprocess handling was seriously broken: subprocesses
1894 e.g. started by AUCTeX for TeX compilation of a buffer would
1895 @emph{hang}. Actually they would wait forever for emacs to read the
1896 socket which connects stdout...
1897 @end enumerate
1898 @end quotation
1899
1900 @node Q2.1.19, Q2.1.20, Q2.1.18, Installation
1901 @section XEmacs does not follow the local timezone.
1902
1903 When using one of the prebuilt binaries many users have observed that
1904 XEmacs uses the timezone under which it was built, but not the timezone
1905 under which it is running. The solution is to add:
1906
1907 @lisp
1908 (set-time-zone-rule "MET")
1909 @end lisp
1910
1911 to your @file{.emacs} or the @file{site-start.el} file if you can.
1912 Replace @code{MET} with your local timezone.
1913
1914 @node Q2.1.20, Q2.1.21, Q2.1.19, Installation
1915 @section @samp{Symbol's function definition is void: hkey-help-show.}
1916
1917 This is a problem with a partially loaded hyperbole. Try adding:
1918
1919 @lisp
1920 (require 'hmouse-drv)
1921 @end lisp
1922
1923 where you load hyperbole and the problem should go away.
1924
1925 @node Q2.1.21, , Q2.1.20, Installation
1926 @section Every so often the XEmacs frame freezes
1927
1928 This problem has been fixed in 19.15, and was due to a not easily
1929 reproducible race condition.
1930
1931 @node Customization, Subsystems, Installation, Top
1932 @chapter Customization and Options
1933
1934 This is part 3 of the XEmacs Frequently Asked Questions list. This
1935 section is devoted to Customization and screen settings.
1936
1937 @menu
1938 Customization---Emacs Lisp and @file{.emacs}:
1939 * Q3.0.1:: What version of Emacs am I running?
1940 * Q3.0.2:: How do I evaluate Elisp expressions?
1941 * Q3.0.3:: @code{(setq tab-width 6)} behaves oddly.
1942 * Q3.0.4:: How can I add directories to the @code{load-path}?
1943 * Q3.0.5:: How to check if a lisp function is defined?
1944 * Q3.0.6:: Can I force the output of @code{(face-list)} to a buffer?
1945 * Q3.0.7:: Font selections don't get saved after @code{Save Options}.
1946 * Q3.0.8:: How do I make a single minibuffer frame?
1947
1948 X Window System & Resources:
1949 * Q3.1.1:: Where is a list of X resources?
1950 * Q3.1.2:: How can I detect a color display?
1951 * Q3.1.3:: @code{(set-screen-width)} worked in 19.6, but not in 19.13?
1952 * Q3.1.4:: Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.13?
1953 * Q3.1.5:: How can I get the icon to just say @samp{XEmacs}?
1954 * Q3.1.6:: How can I have the window title area display the full path?
1955 * Q3.1.7:: @samp{xemacs -name junk} doesn't work?
1956 * Q3.1.8:: @samp{-iconic} it doesn't work.
1957
1958 Textual Fonts & Colors:
1959 * Q3.2.1:: How can I set color options from @file{.emacs}?
1960 * Q3.2.2:: How do I set the text, menu and modeline fonts?
1961 * Q3.2.3:: How can I set the colors when highlighting a region?
1962 * Q3.2.4:: How can I limit color map usage?
1963 * Q3.2.5:: My tty supports color, but XEmacs doesn't use them.
1964
1965 The Modeline:
1966 * Q3.3.1:: How can I make the modeline go away?
1967 * Q3.3.2:: How do you have XEmacs display the line number in the modeline?
1968 * Q3.3.3:: How do I get XEmacs to put the time of day on the modeline?
1969 * Q3.3.4:: How do I turn off current chapter from AUC-TeX modeline?
1970 * Q3.3.5:: How can one change the modeline color based on the mode used?
1971
1972 3.4 Multiple Device Support:
1973 * Q3.4.1:: How do I open a frame on another screen of my multi-headed display?
1974 * Q3.4.2:: Can I really connect to a running XEmacs after calling up over a modem? How?
1975
1976 3.5 The Keyboard:
1977 * Q3.5.1:: How can I bind complex functions (or macros) to keys?
1978 * Q3.5.2:: How can I stop down-arrow from adding empty lines to the bottom of my buffers?
1979 * Q3.5.3:: How do I bind C-. and C-; to scroll one line up and down?
1980 * Q3.5.4:: Globally binding @kbd{Delete}?
1981 * Q3.5.5:: Scrolling one line at a time.
1982 * Q3.5.6:: How to map @kbd{Help} key alone on Sun type4 keyboard?
1983 * Q3.5.7:: How can you type in special characters in XEmacs?
1984 * Q3.5.8:: Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
1985 * Q3.5.9:: How do I make the Delete key delete forward?
1986 * Q3.5.10:: Can I turn on @dfn{sticky} modifier keys?
1987
1988 The Cursor:
1989 * Q3.6.1:: Is there a way to make the bar cursor thicker?
1990 * Q3.6.2:: Is there a way to get back the old block cursor where the cursor covers the character in front of the point?
1991 * Q3.6.3:: Can I make the cursor blink?
1992
1993 The Mouse and Highlighting:
1994 * Q3.7.1:: How can I turn off Mouse pasting?
1995 * Q3.7.2:: How do I set control/meta/etc modifiers on mouse buttons?
1996 * Q3.7.3:: Clicking the left button does not do anything in buffer list.
1997 * Q3.7.4:: How can I get a list of buffers when I hit mouse button 3?
1998 * Q3.7.5:: Why does cut-and-paste not work between XEmacs and a cmdtool?
1999 * Q3.7.6:: How I can set XEmacs up so that it pastes where the text cursor is?
2000 * Q3.7.7:: How do I select a rectangular region?
2001 * Q3.7.8:: Why does @kbd{M-w} take so long?
2002
2003 The Menubar and Toolbar:
2004 * Q3.8.1:: How do I get rid of the menu (or menubar)?
2005 * Q3.8.2:: Can I customize the basic menubar?
2006 * Q3.8.3:: How do I control how many buffers are listed in the menu @code{Buffers} list?
2007 * Q3.8.4:: Resources like @code{Emacs*menubar*font} are not working?
2008 * Q3.8.5:: How can I bind a key to a function to toggle the toolbar?
2009
2010 Scrollbars:
2011 * Q3.9.1:: How can I disable the scrollbar?
2012 * Q3.9.2:: How can one use resources to change scrollbar colors?
2013 * Q3.9.3:: Moving the scrollbar can move the point; can I disable this?
2014 * Q3.9.4:: How can I get automatic horizontal scrolling?
2015
2016 Text Selections:
2017 * Q3.10.1:: How can I turn off or change highlighted selections?
2018 * Q3.10.2:: How do I get that typing on an active region removes it?
2019 * Q3.10.3:: Can I turn off the highlight during isearch?
2020 * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
2021 * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling.
2022 @end menu
2023
2024 @node Q3.0.1, Q3.0.2, Customization, Customization
2025 @section What version of Emacs am I running?
2026
2027 How can @file{.emacs} determine which of the family of Emacsen I am
2028 using?
2029
2030 To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
2031 XEmacs 19, or Epoch, and use appropriate code, check out the example
2032 given in @file{etc/sample.emacs}. There are other nifty things in there
2033 as well!
2034
2035 For all new code, all you really need to do is:
2036
2037 @lisp
2038 (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
2039 @end lisp
2040
2041 @node Q3.0.2, Q3.0.3, Q3.0.1, Customization
2042 @section How can I evaluate Emacs-Lisp expressions?
2043
2044 I know I can evaluate Elisp expressions from @code{*scratch*} buffer
2045 with @kbd{C-j} after the expression. How do I do it from another
2046 buffer?
2047
2048 Use the following code:
2049
2050 @lisp
2051 (put 'eval-expression 'disabled nil)
2052 @end lisp
2053
2054 This sets it so that hitting @kbd{M-:} lets you type a single expression
2055 to be evaluated. This line can also be put into your @file{.emacs}.
2056
2057 @node Q3.0.3, Q3.0.4, Q3.0.2, Customization
2058 @section @code{(setq tab-width 6)} behaves oddly.
2059
2060 If you put @code{(setq tab-width 6)} in your @file{.emacs} file it does
2061 not work! Is there a reason for this? If you do it at the EVAL prompt
2062 it works fine!! How strange.
2063
2064 Use @code{setq-default} instead, since @code{tab-width} is
2065 all-buffer-local.
2066
2067 @node Q3.0.4, Q3.0.5, Q3.0.3, Customization
2068 @section How can I add directories to the @code{load-path}?
2069
2070 Here are two ways to do that, one that puts your directories at the
2071 front of the load-path, the other at the end:
2072
2073 @lisp
2074 ;;; Add things at the beginning of the load-path, do not add
2075 ;;; duplicate directories:
2076 (if (null (member "bar" load-path))
2077 (setq load-path (cons "bar" load-path)))
2078
2079 (if (null (member "foo" load-path))
2080 (setq load-path (cons "foo" load-path)))
2081
2082 ;;; Add things at the end, unconditionally
2083 (setq load-path (append load-path '("foo" "bar")))
2084 @end lisp
2085
2086 keith (k.p.) hanlan <keithh@@nortel.ca> writes:
2087
2088 @quotation
2089 To add directories using Unix shell metacharacters use
2090 @file{expand-file-name} like this:
2091
2092 @lisp
2093 (setq load-path (cons (expand-file-name "~keithh/.emacsdir") load-path))
2094 @end lisp
2095 @end quotation
2096
2097 @node Q3.0.5, Q3.0.6, Q3.0.4, Customization
2098 @section How to check if a lisp function is defined?
2099
2100 Use the following elisp:
2101
2102 @lisp
2103 (fboundp 'foo)
2104 @end lisp
2105
2106 It's almost always a mistake to test @code{emacs-version} or any similar
2107 variables.
2108
2109 Instead, use feature-tests, such as @code{featurep}, @code{boundp},
2110 @code{fboundp}, or even simple behavioural tests, eg.:
2111
2112 @lisp
2113 (defvar foo-old-losing-code-p
2114 (condition-case nil (progn (losing-code t) nil)
2115 (wrong-number-of-arguments t)))
2116 @end lisp
2117
2118 There is an incredible amount of broken code out there which could work
2119 much better more often in more places if it did the above instead of
2120 trying to divine its environment from the value of one variable.
2121
2122 @node Q3.0.6, Q3.0.7, Q3.0.5, Customization
2123 @section Can I force the output of @code{(face-list)} to a buffer?
2124
2125 It would be good having it in a buffer, as the output of
2126 @code{(face-list)} is too wide to fit to a minibuffer.
2127
2128 Evaluate the expression in the @samp{*scratch*} buffer with point after
2129 the rightmost paren and typing @kbd{C-j}.
2130
2131 @node Q3.0.7, Q3.0.8, Q3.0.6, Customization
2132 @section Font selections don't get saved after @code{Save Options}.
2133
2134 John Mann <mannj@@ll.mit.edu> writes:
2135
2136 @quotation
2137 You have to go to Options->Menubar Appearance and unselect
2138 @samp{Frame-Local Font Menu}. If this option is selected, font changes
2139 are only applied to the @emph{current} frame and do @emph{not} get saved
2140 when you save options.
2141 @end quotation
2142
2143 @node Q3.0.8, Q3.1.1, Q3.0.7, Customization
2144 @section How do I get a single minibuffer frame?
2145
2146 Vin Shelton <acs@@acm.org> writes:
2147
2148 @lisp
2149 (setq initial-frame-plist '(minibuffer nil))
2150 (setq default-frame-plist '(minibuffer nil))
2151 (setq default-minibuffer-frame
2152 (make-frame
2153 '(minibuffer only
2154 width 86
2155 height 1
2156 menubar-visible-p nil
2157 default-toolbar-visible-p nil
2158 name "minibuffer"
2159 top -2
2160 left -2
2161 has-modeline-p nil)))
2162 (frame-notice-user-settings)
2163 @end lisp
2164
2165 @strong{NOTE:} The single minibuffer frame may not be to everyone's
2166 taste, and there any number of other XEmacs options settings that may
2167 make it difficult or inconvenient to use.
2168
2169 @node Q3.1.1, Q3.1.2, Q3.0.8, Customization
2170 @section Where is a list of X resources?
2171
2172 Search through the @file{NEWS} file for @samp{X Resources}. A fairly
2173 comprehensive list is given after it.
2174
2175 In addition, an @file{app-defaults} file is supplied,
2176 @file{etc/Emacs.ad} listing the defaults. The file
2177 @file{etc/sample.Xdefaults} gives a set of defaults that you might
2178 consider. It is essentially the same as @file{etc/Emacs.ad} but some
2179 entries are slightly altered. Be careful about installing the contents
2180 of this file into your @file{.Xdefaults} or @file{.Xresources} file if
2181 you use GNU Emacs under X11 as well.
2182
2183 @node Q3.1.2, Q3.1.3, Q3.1.1, Customization
2184 @section How can I detect a color display?
2185
2186 You can test the return value of the function @code{(device-class)}, as
2187 in:
2188
2189 @lisp
2190 (when (eq (device-class) 'color)
2191 (set-face-foreground 'font-lock-comment-face "Grey")
2192 (set-face-foreground 'font-lock-string-face "Red")
2193 ....
2194 )
2195 @end lisp
2196
2197 @node Q3.1.3, Q3.1.4, Q3.1.2, Customization
2198 @section @code{(set-screen-width)} worked in 19.6, but not in 19.13?
2199
2200 In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and
2201 @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of
2202 specifying @code{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but
2203 this does not work in XEmacs 19.13.
2204
2205 These two functions now take frame arguments:
2206
2207 @lisp
2208 (set-frame-width (selected-frame) @var{characters})
2209 (set-frame-height (selected-frame) @var{lines})
2210 @end lisp
2211
2212 @node Q3.1.4, Q3.1.5, Q3.1.3, Customization
2213 @section Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.13?
2214
2215 In XEmacs 19.11 I specified @code{Emacs*EmacsScreen.geometry} in
2216 my @file{.emacs} but this does not work in XEmacs 19.13.
2217
2218 We have switched from using the term @dfn{screen} to using the term
2219 @dfn{frame}.
2220
2221 The correct entry for your @file{.Xdefaults} is now:
2222
2223 @example
2224 Emacs*EmacsFrame.geometry
2225 @end example
2226
2227 @node Q3.1.5, Q3.1.6, Q3.1.4, Customization
2228 @section How can I get the icon to just say @samp{XEmacs}?
2229
2230 I'd like the icon to just say @samp{XEmacs}, and not include the name of
2231 the current file in it.
2232
2233 Add the following line to your @file{.emacs}:
2234
2235 @lisp
2236 (setq frame-icon-title-format "XEmacs")
2237 @end lisp
2238
2239 @node Q3.1.6, Q3.1.7, Q3.1.5, Customization
2240 @section How can I have the window title area display the full path?
2241
2242 I'd like to have the window title area display the full directory/name
2243 of the current buffer file and not just the name.
2244
2245 Add the following line to your @file{.emacs}:
2246
2247 @lisp
2248 (setq frame-title-format "%S: %f")
2249 @end lisp
2250
2251 A more sophisticated title might be:
2252
2253 @lisp
2254 (setq frame-title-format
2255 '("%S: " (buffer-file-name "%f" (dired-directory dired-directory "%b"))))
2256 @end lisp
2257
2258 That is, use the file name, or the dired-directory, or the buffer name.
2259
2260 @node Q3.1.7, Q3.1.8, Q3.1.6, Customization
2261 @section @samp{xemacs -name junk} doesn't work?
2262
2263 When I run @samp{xterm -name junk}, I get an xterm whose class name
2264 according to xprop, is @samp{junk}. This is the way it's supposed to
2265 work, I think. When I run @samp{xemacs -name junk} the class name is
2266 not set to @samp{junk}. It's still @samp{emacs}. What does
2267 @samp{xemacs -name} really do? The reason I ask is that my window
2268 manager (fvwm) will make a window sticky and I use XEmacs to read my
2269 mail. I want that XEmacs window to be sticky, without having to use the
2270 window manager's function to set the window sticky. What gives?
2271
2272 @samp{xemacs -name} sets the application name for the program (that is,
2273 the thing which normally comes from @samp{argv[0]}). Using @samp{-name}
2274 is the same as making a copy of the executable with that new name. The
2275 @code{WM_CLASS} property on each frame is set to the frame-name, and the
2276 application-class. So, if you did @samp{xemacs -name FOO} and then
2277 created a frame named @var{BAR}, you'd get an X window with WM_CLASS =
2278 @code{( "BAR", "Emacs")}. However, the resource hierarchy for this
2279 widget would be:
2280
2281 @example
2282 Name: FOO .shell .container .BAR
2283 Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
2284 @end example
2285
2286 instead of the default
2287
2288 @example
2289 Name: xemacs.shell .container .emacs
2290 Class: Emacs .TopLevelEmacsShell.EmacsManager.EmacsFrame
2291 @end example
2292
2293
2294 It is arguable that the first element of WM_CLASS should be set to the
2295 application-name instead of the frame-name, but I think that's less
2296 flexible, since it does not give you the ability to have multiple frames
2297 with different WM_CLASS properties. Another possibility would be for
2298 the default frame name to come from the application name instead of
2299 simply being @samp{emacs}. However, at this point, making that change
2300 would be troublesome: it would mean that many users would have to make
2301 yet another change to their resource files (since the default frame name
2302 would suddenly change from @samp{emacs} to @samp{xemacs}, or whatever
2303 the executable happened to be named), so we'd rather avoid it.
2304
2305 To make a frame with a particular name use:
2306
2307 @lisp
2308 (make-frame '((name . "the-name")))
2309 @end lisp
2310
2311 @node Q3.1.8, Q3.2.1, Q3.1.7, Customization
2312 @section @samp{-iconic} doesn't work.
2313
2314 When I start up XEmacs using @samp{-iconic} it doesn't work right.
2315 Using @samp{-unmapped} on the command line, and setting the
2316 @code{initiallyUnmapped} X Resource don't seem to help much either...
2317
2318 Ben Wing <ben@@666.com> writes:
2319
2320 @quotation
2321 Ugh, this stuff is such an incredible mess that I've about given up
2322 getting it to work. The principal problem is numerous window-manager
2323 bugs...
2324 @end quotation
2325
2326 @node Q3.2.1, Q3.2.2, Q3.1.8, Customization
2327 @section How can I set color options from @file{.emacs}?
2328
2329 How can I set the most commonly used color options from my @file{.emacs}
2330 instead of from my @file{.Xdefaults}?
2331
2332 Like this:
2333
2334 @lisp
2335 (set-face-background 'default "bisque") ; frame background
2336 (set-face-foreground 'default "black") ; normal text
2337 (set-face-background 'zmacs-region "red") ; When selecting w/
2338 ; mouse
2339 (set-face-foreground 'zmacs-region "yellow")
2340 (set-face-font 'default "*courier-bold-r*120-100-100*")
2341 (set-face-background 'highlight "blue") ; Ie when selecting buffers
2342 (set-face-foreground 'highlight "yellow")
2343 (set-face-background 'modeline "blue") ; Line at bottom of buffer
2344 (set-face-foreground 'modeline "white")
2345 (set-face-font 'modeline "*bold-r-normal*140-100-100*")
2346 (set-face-background 'isearch "yellow") ; When highlighting while
2347 ; searching
2348 (set-face-foreground 'isearch "red")
2349 (setq x-pointer-foreground-color "black") ; Adds to bg color,
2350 ; so keep black
2351 (setq x-pointer-background-color "blue") ; This is color you really
2352 ; want ptr/crsr
2353 @end lisp
2354
2355 @node Q3.2.2, Q3.2.3, Q3.2.1, Customization
2356 @section How do I set the text, menu and modeline fonts?
2357
2358 Note that you should use @samp{Emacs.} and not @samp{Emacs*} when
2359 setting face values.
2360
2361 In @file{.Xdefaults}:
2362
2363 @example
2364 Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
2365 Emacs*menubar*font: fixed
2366 Emacs.modeline.attributeFont: fixed
2367 @end example
2368
2369 This is confusing because modeline is a face, and can be found listed
2370 with all faces in the current mode by using @kbd{M-x set-face-font
2371 (enter) ?}. It uses the face specification of @code{attributeFont},
2372 while menubar is a normal X thing that uses the specification
2373 @code{font}. With Motif it may be necessary to use @code{fontList}
2374 instead of @code{font}.
2375
2376 Suggestions on improving the answer to this question would be
2377 appreciated.
2378
2379 @node Q3.2.3, Q3.2.4, Q3.2.2, Customization
2380 @section How can I set the colors when highlighting a region?
2381
2382 How can I set the background/foreground colors when highlighting a
2383 region?
2384
2385 You can change the face @code{zmacs-region} either in your
2386 @file{.Xdefaults}:
2387
2388 @example
2389 Emacs.zmacs-region.attributeForeground: firebrick
2390 Emacs.zmacs-region.attributeBackground: lightseagreen
2391 @end example
2392
2393 or in your @file{.emacs}:
2394
2395 @lisp
2396 (set-face-background 'zmacs-region "red")
2397 (set-face-foreground 'zmacs-region "yellow")
2398 @end lisp
2399
2400 @node Q3.2.4, Q3.2.5, Q3.2.3, Customization
2401 @section How can I limit color map usage?
2402
2403 I'm using Netscape (or another color grabber like XEmacs);
2404 is there anyway to limit the number of available colors in the color map?
2405
2406 XEmacs 19.13 doesn't have such a mechanism (unlike netscape, or other
2407 color-hogs). One solution is to start XEmacs prior to netscape, since
2408 this will prevent Netscape from grabbing all colors (but Netscape will
2409 complain). You can use the flags for Netscape, like -mono, -ncols <#>
2410 or -install (for mono, limiting to <#> colors, or for using a private
2411 color map). Since Netscape will take the entire colormap and never
2412 release it, the only reasonable way to run it is with @samp{-install}.
2413
2414 If you have the money, another solution would be to use a truecolor or
2415 direct color video.
2416
2417 Starting with XEmacs 19.14, XEmacs uses the closest available color if
2418 the colormap is full, so it's O.K. now to start Netscape first.
2419
2420 @node Q3.2.5, Q3.3.1, Q3.2.4, Customization
2421 @section My tty supports color, but XEmacs doesn't use them.
2422
2423 XEmacs tries to automatically determine whether your tty supports color,
2424 but sometimes guesses wrong. In that case, you can make XEmacs Do The
2425 Right Thing using this Lisp code:
2426
2427 @lisp
2428 (if (eq 'tty (device-type))
2429 (set-device-class nil 'color))
2430 @end lisp
2431
2432 @node Q3.3.1, Q3.3.2, Q3.2.5, Customization
2433 @section How can I make the modeline go away?
2434
2435 @lisp
2436 (set-specifier has-modeline-p nil)
2437 @end lisp
2438
2439 Starting with XEmacs 19.14 the modeline responds to mouse clicks, so if
2440 you haven't liked or used the modeline in the past, you might want to
2441 try the new version out.
2442
2443 @node Q3.3.2, Q3.3.3, Q3.3.1, Customization
2444 @section How do you have XEmacs display the line number in the modeline?
2445
2446 Add the following line to your @file{.emacs} file to display the
2447 line number:
2448
2449 @lisp
2450 (setq line-number-mode t)
2451 @end lisp
2452
2453 Use the following to display the column number:
2454
2455 @lisp
2456 (display-column-mode)
2457 @end lisp
2458
2459 @node Q3.3.3, Q3.3.4, Q3.3.2, Customization
2460 @section How do I get XEmacs to put the time of day on the modeline?
2461
2462 @lisp
2463 (display-time)
2464 @end lisp
2465
2466 @node Q3.3.4, Q3.3.5, Q3.3.3, Customization
2467 @section How do I turn off current chapter from AUC-TeX modeline?
2468
2469 With AUC-TeX, fast typing is hard because the current chapter, section
2470 etc. are given in the modeline. How can I turn this off?
2471
2472 It's not auc-tex, it comes from @code{func-menu} in @file{func-menu.el}.
2473 Add this code to your @file{.emacs} to turn it off:
2474
2475 @lisp
2476 (setq fume-display-in-modeline-p nil)
2477 @end lisp
2478
2479 Or just add a hook to @code{TeX-mode-hook} to turn it off only for TeX
2480 mode:
2481
2482 @lisp
2483 (add-hook 'TeX-mode-hook '(lambda () (setq fume-display-in-modeline-p nil)))
2484 @end lisp
2485
2486 David Hughes <dhughes@@origin-at.co.uk> writes:
2487
2488 @quotation
2489 If you have 19.14 or later, try this instead; you'll still get the
2490 function name displayed in the modeline, but it won't attempt to keep
2491 track when you modify the file. To refresh when it gets out of synch,
2492 you simply need click on the @samp{Rescan Buffer} option in the
2493 function-menu.
2494
2495 @lisp
2496 (setq-default fume-auto-rescan-buffer-p nil)
2497 @end lisp
2498 @end quotation
2499
2500 @node Q3.3.5, Q3.4.1, Q3.3.4, Customization
2501 @section How can one change the modeline color based on the mode used?
2502
2503 You can use something like the following:
2504
2505 @lisp
2506 (add-hook 'lisp-mode-hook
2507 '(lambda () (set-face-background 'modeline "red" (current-buffer))
2508 (set-face-foreground 'modeline "yellow" (current-buffer))))
2509 @end lisp
2510
2511 Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline
2512 colors change from the default set in your @file{.emacs}. The change
2513 will only be made in the buffer you just entered (which contains the
2514 Lisp file you are editing) and will not affect the modeline colors
2515 anywhere else.
2516
2517 Notes:
2518
2519 @itemize @bullet
2520
2521 @item
2522 The hook is the mode name plus @code{-hook}. eg. c-mode-hook,
2523 c++-mode-hook, emacs-lisp-mode-hook (used for your @file{.emacs} or a
2524 @file{xx.el} file), lisp-interaction-mode-hook (the @samp{*scratch*}
2525 buffer), text-mode-hook, etc.
2526
2527 @item
2528 Be sure to use @code{add-hook}, not @code{(setq c-mode-hook xxxx)},
2529 otherwise you will erase anything that anybody has already put on the
2530 hook.
2531
2532 @item
2533 You can also do @code{(set-face-font 'modeline @var{font})},
2534 eg. @code{(set-face-font 'modeline "*bold-r-normal*140-100-100*"
2535 (current-buffer))} if you wish the modeline font to vary based on the
2536 current mode.
2537 @end itemize
2538
2539 This works in 19.14 as well, but there are additional modeline faces,
2540 @code{modeline-buffer-id}, @code{modeline-mousable}, and
2541 @code{modeline-mousable-minor-mode}, which you may want to customize.
2542
2543 @node Q3.4.1, Q3.4.2, Q3.3.5, Customization
2544 @section How do I open a frame on another screen of my multi-headed display?
2545
2546 The support for this has been revamped for 19.14. Use the command
2547 @kbd{M-x make-frame-on-display}. This command is also on the File menu
2548 in the menubar.
2549
2550 XEmacs 19.14 also has the command @code{make-frame-on-tty} which will
2551 establish a connection to any tty-like device.
2552
2553 @node Q3.4.2, Q3.5.1, Q3.4.1, Customization
2554 @section Can I really connect to a running XEmacs after calling up over a modem? How?
2555
2556 If you're not running at least XEmacs 19.14, you can't. Otherwise check
2557 out the @code{gnuattach} program supplied with XEmacs.
2558
2559 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization
2560 @section How can I bind complex functions (or macros) to keys?
2561
2562 As an example, say you want the @kbd{paste} key on a Sun keyboard to
2563 insert the current Primary X selection at point. You can accomplish this
2564 with:
2565
2566 @lisp
2567 (define-key global-map [f18] 'x-insert-selection)
2568 @end lisp
2569
2570 However, this only works if there is a current X selection (the
2571 selection will be highlighted). The functionality I like is for the
2572 @kbd{paste} key to insert the current X selection if there is one,
2573 otherwise insert the contents of the clipboard. To do this you need to
2574 pass arguments to @code{x-insert-selection}. This is done by wrapping
2575 the call in a 'lambda form:
2576
2577 @lisp
2578 (define-key global-map [f18]
2579 (function (lambda () (interactive) (x-insert-selection t nil))))
2580 @end lisp
2581
2582 This binds the f18 key to a @dfn{generic} functional object. The
2583 interactive spec is required because only interactive functions can be
2584 bound to keys. Also take a look at the doc for @code{function}.
2585
2586 For the FAQ example you could use:
2587
2588 @lisp
2589 (global-set-key [(control ?.)]
2590 (function (lambda () (interactive) (scroll-up 1))))
2591 (global-set-key [(control ?;)]
2592 (function (lambda () (interactive) (scroll-up -1))))
2593 @end lisp
2594
2595 This is fine if you only need a few functions within the lambda body.
2596 If you're doing more it's cleaner to define a separate function as in
2597 question 3.5.3 (@xref{Q3.5.3}).
2598
2599 @node Q3.5.2, Q3.5.3, Q3.5.1, Customization
2600 @section How can I stop down-arrow from adding empty lines to the bottom of my buffers?
2601
2602 Add the following line to your @file{.emacs} file:
2603
2604 @lisp
2605 (setq next-line-add-newlines nil)
2606 @end lisp
2607
2608 @node Q3.5.3, Q3.5.4, Q3.5.2, Customization
2609 @section How do I bind C-. and C-; to scroll one line up and down?
2610
2611 Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and
2612 Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}:
2613
2614 @lisp
2615 (defun scroll-up-one-line ()
2616 (interactive)
2617 (scroll-up 1))
2618
2619 (defun scroll-down-one-line ()
2620 (interactive)
2621 (scroll-down 1))
2622
2623 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
2624 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
2625 @end lisp
2626
2627 The key point is that you can only bind simple functions to keys; you
2628 can not bind a key to a function that you're also passing arguments to.
2629 (@xref{Q3.5.1} for a better answer).
2630
2631 @node Q3.5.4, Q3.5.5, Q3.5.3, Customization
2632 @section Globally binding @kbd{Delete}?
2633
2634 I cannot manage to globally bind my @kbd{Delete} key to something other
2635 than the default. How does one do this?
2636
2637 @lisp
2638 (defun Foo ()
2639 (interactive)
2640 (message "You hit DELETE"))
2641
2642 (global-set-key 'delete 'Foo)
2643 @end lisp
2644
2645 However, some modes explicitly bind @kbd{Delete}, so you would need to
2646 add a hook that does @code{local-set-key} for them. If what you want to
2647 do is make the Backspace and Delete keys work more PC/Motif-like, then
2648 take a look at the @file{delbackspace.el} package.
2649
2650 New in XEmacs 19.14 is a variable called @code{key-translation-map}
2651 which makes it easier to bind @kbd{Delete}. @file{delbackspace.el} is a
2652 good example of how to do this correctly.
2653
2654 @node Q3.5.5, Q3.5.6, Q3.5.4, Customization
2655 @section Scrolling one line at a time.
2656
2657 Can the cursor keys scroll the screen a line at a time, rather than the
2658 default half page jump? I tend it to find it disorienting.
2659
2660 Try this:
2661
2662 @lisp
2663 (defun scroll-one-line-up (&optional arg)
2664 "Scroll the selected window up (forward in the text) one line (or N lines)."
2665 (interactive "p")
2666 (scroll-up (or arg 1)))
2667
2668 (defun scroll-one-line-down (&optional arg)
2669 "Scroll the selected window down (backward in the text) one line (or N)."
2670 (interactive "p")
2671 (scroll-down (or arg 1)))
2672
2673 (global-set-key 'up 'scroll-one-line-up)
2674 (global-set-key 'down 'scroll-one-line-down)
2675 @end lisp
2676
2677
2678 The following will also work but will affect more than just the cursor
2679 keys (i.e. @kbd{C-n} and @kbd{C-p}):
2680
2681 @lisp
2682 (setq scroll-step 1)
2683 @end lisp
2684
2685 @node Q3.5.6, Q3.5.7, Q3.5.5, Customization
2686 @section How to map @kbd{Help} key alone on Sun type4 keyboard?
2687
2688 The following works in GNU Emacs 19:
2689
2690 @lisp
2691 (global-set-key [help] 'help-command) ;; Help
2692 @end lisp
2693
2694 The following works in XEmacs 19.13 with the addition of shift:
2695
2696 @lisp
2697 (global-set-key [(shift help)] 'help-command) ;; Help
2698 @end lisp
2699
2700 But it doesn't work alone. This is in the file @file{PROBLEMS} which
2701 should have come with your XEmacs installation: @emph{Emacs ignores the
2702 @kbd{help} key when running OLWM}.
2703
2704 OLWM grabs the @kbd{help} key, and retransmits it to the appropriate
2705 client using @code{XSendEvent}. Allowing Emacs to react to synthetic
2706 events is a security hole, so this is turned off by default. You can
2707 enable it by setting the variable @code{x-allow-sendevents} to t. You
2708 can also cause fix this by telling OLWM to not grab the help key, with
2709 the null binding @code{OpenWindows.KeyboardCommand.Help:}.
2710
2711 @node Q3.5.7, Q3.5.8, Q3.5.6, Customization
2712 @section How can you type in special characters in XEmacs?
2713
2714 One way is to use the package @samp{x-compose}. Then you can use
2715 sequences like @kbd{Compose " a} to get ä, etc.
2716
2717 Another way is to use the iso8859-1 package.
2718
2719 @node Q3.5.8, Q3.5.9, Q3.5.7, Customization
2720 @section Why does @code{(global-set-key [delete-forward] 'delete-char)} complain?
2721
2722 Why does @code{(define-key global-map [ delete-forward ] 'delete-char)}
2723 complain of not being able to bind an unknown key?
2724
2725 Try this instead:
2726
2727 @lisp
2728 (define-key global-map [delete_forward] 'delete-char)
2729 @end lisp
2730
2731 and it will work.
2732
2733 What you are seeing above is a bug due to code that is trying to check
2734 for GNU Emacs syntax like:
2735
2736 (define-key global-map [C-M-a] 'delete-char)
2737
2738 which otherwise would cause no errors but would not result in the
2739 expected behavior.
2740
2741 This bug has been fixed in 19.14.
2742
2743 @node Q3.5.9, Q3.5.10, Q3.5.8, Customization
2744 @section How do I make the Delete key delete forward?
2745
2746 Use the @file{delbackspace} package:
2747
2748 @lisp
2749 (load-library "delbackspace")
2750 @end lisp
2751
2752 Also @xref{Q3.5.4}.
2753
2754 @node Q3.5.10, Q3.6.1, Q3.5.9, Customization
2755 @section Can I turn on @dfn{sticky} modifier keys?
2756
2757 Yes, with @code{(setq modifier-keys-are-sticky t)}. This will give the
2758 effect of being able to press and release Shift and have the next
2759 character typed come out in upper case. This will affect all the other
2760 modifier keys like Control and Meta as well.
2761
2762 Ben Wing <ben@@666.com> writes:
2763
2764 @quotation
2765 One thing about the sticky modifiers is that if you move the mouse out
2766 of the frame and back in, it cancels all currently "stuck" modifiers.
2767 @end quotation
2768
2769 @node Q3.6.1, Q3.6.2, Q3.5.10, Customization
2770 @section Is there a way to make the bar cursor thicker?
2771
2772 I'd like to have the bar cursor a little thicker, as I tend to "lose" it
2773 often.
2774
2775 For a 1 pixel bar cursor, use:
2776
2777 @lisp
2778 (setq bar-cursor t)
2779 @end lisp
2780
2781 For a 2 pixel bar cursor, use:
2782
2783 @lisp
2784 (setq bar-cursor 'anything-else)
2785 @end lisp
2786
2787 You can use a color to make it stand out better:
2788
2789 @example
2790 Emacs*cursorColor: Red
2791 @end example
2792
2793 @node Q3.6.2, Q3.6.3, Q3.6.1, Customization
2794 @section Is there a way to get back the block cursor?
2795
2796 @lisp
2797 (setq bar-cursor nil)
2798 @end lisp
2799
2800 @node Q3.6.3, Q3.7.1, Q3.6.2, Customization
2801 @section Can I make the cursor blink?
2802
2803 If you are running a version of XEmacs older than 19.14, no. Otherwise
2804 you can do the following:
2805
2806 @lisp
2807 (blink-cursor-mode)
2808 @end lisp
2809
2810 This function toggles between a steady cursor and a blinking cursor.
2811 You may also set this mode from the menu bar by selecting @samp{Options
2812 => Frame Appearance => Blinking Cursor}.
2813
2814 @node Q3.7.1, Q3.7.2, Q3.6.3, Customization
2815 @section How can I turn off Mouse pasting?
2816
2817 I keep hitting the middle mouse button by accident and getting stuff
2818 pasted into my buffer so how can I turn this off?
2819
2820 Here is an alternative binding, whereby the middle mouse button selects
2821 (but does not cut) the expression under the mouse. Clicking middle on a
2822 left or right paren will select to the matching one. Note that you can
2823 use @code{define-key} or @code{global-set-key}.
2824
2825 @lisp
2826 (defun Mouse-Set-Point-and-Select (event)
2827 "Sets the point at the mouse location, then marks following form"
2828 (interactive "@@e")
2829 (mouse-set-point event)
2830 (mark-sexp 1)
2831 )
2832 (define-key global-map 'button2 'Mouse-Set-Point-and-Select)
2833 @end lisp
2834
2835 @node Q3.7.2, Q3.7.3, Q3.7.1, Customization
2836 @section How do I set control/meta/etc modifiers on mouse buttons?
2837
2838 Use, for instance, @code{[(meta button1)]}. For example, here is a
2839 common setting for Common Lisp programmers who use the bundled ilisp
2840 package, whereby meta-button1 on a function name will find the file
2841 where the function name was defined, and put you at that location in the
2842 source file.
2843
2844 [Inside a function that gets called by the lisp-mode-hook and
2845 ilisp-mode-hook]
2846
2847 @lisp
2848 (local-set-key [(meta button1)] 'edit-definitions-lisp)
2849 @end lisp
2850
2851 @node Q3.7.3, Q3.7.4, Q3.7.2, Customization
2852 @section Clicking the left button does not do anything in buffer list.
2853
2854 I do @kbd{C-x C-b} to get a list of buffers and the entries get
2855 highlighted when I move the mouse over them but clicking the left mouse
2856 does not do anything.
2857
2858 Use the middle mouse button.
2859
2860 @node Q3.7.4, Q3.7.5, Q3.7.3, Customization
2861 @section How can I get a list of buffers when I hit mouse button 3?
2862
2863 The following code will actually replace the default popup on button3:
2864
2865 @lisp
2866 (defun cw-build-buffers ()
2867 "Popup buffer menu."
2868 (interactive "@@")
2869 (run-hooks 'activate-menubar-hook)
2870 (popup-menu (car (find-menu-item current-menubar '("Buffers")))))
2871
2872 (define-key global-map [(button3)] 'cw-build-buffers)
2873 @end lisp
2874
2875 @node Q3.7.5, Q3.7.6, Q3.7.4, Customization
2876 @section Why does cut-and-paste not work between XEmacs and a cmdtool?
2877
2878 We don't know. It's a bug. There does seem to be a work-around,
2879 however. Try running xclipboard first. It appears to fix the problem
2880 even if you exit it. (This should be mostly fixed in 19.13, but we
2881 haven't yet verified that).
2882
2883 @node Q3.7.6, Q3.7.7, Q3.7.5, Customization
2884 @section How I can set XEmacs up so that it pastes where the text cursor is?
2885
2886 By default XEmacs pastes X selections where the mouse pointer is. How
2887 do I disable this?
2888
2889 Examine the function @code{mouse-yank}, by typing @kbd{C-h f mouse-yank
2890 RET}.
2891
2892 To get XEmacs to paste at the text cursor, add this your @file{.emacs}:
2893
2894 @lisp
2895 (setq mouse-yank-at-point t)
2896 @end lisp
2897
2898 @node Q3.7.7, Q3.7.8, Q3.7.6, Customization
2899 @section How do I select a rectangular region?
2900
2901 Just select the region normally, then use the rectangle commands (e.g.
2902 @code{kill-rectangle} on it. The region does not highlight as a
2903 rectangle, but the commands work just fine.
2904
2905 To actually sweep out rectangular regions with the mouse do the
2906 following:
2907
2908 @lisp
2909 (setq mouse-track-rectangle-p t)
2910 @end lisp
2911
2912 Aki Vehtari <Aki.Vehtari@@hut.fi> writes:
2913
2914 @quotation
2915 To actually sweep out rectangular regions with the mouse you can also
2916 use @code{mouse-track-do-rectangle} which is assigned to
2917 @kbd{M-button1}. Then use rectangle commands.
2918
2919 @example
2920 mouse-track-do-rectangle: (event)
2921 -- an interactive compiled Lisp function.
2922 Like `mouse-track' but selects rectangles instead of regions.
2923 @end example
2924 @end quotation
2925
2926 @node Q3.7.8, Q3.8.1, Q3.7.7, Customization
2927 @section Why does @kbd{M-w} take so long?
2928
2929 It actually doesn't. It leaves the region visible for a second so that
2930 you can see what area is being yanked. If you start working, though, it
2931 will immediately complete its operation. In other words, it will only
2932 delay for a second if you let it.
2933
2934 @node Q3.8.1, Q3.8.2, Q3.7.8, Customization
2935 @section How do I get rid of the menu (or menubar)?
2936
2937 If you are running XEmacs 19.13 and earlier, add this command to your
2938 @file{.emacs}.
2939
2940 @lisp
2941 (set-menubar nil)
2942 @end lisp
2943
2944 Starting with XEmacs 19.14 the preferred method is:
2945
2946 @lisp
2947 (set-specifier menubar-visible-p nil)
2948 @end lisp
2949
2950 @node Q3.8.2, Q3.8.3, Q3.8.1, Customization
2951 @section Can I customize the basic menubar?
2952
2953 For an extensive menubar, add this line to your @file{.emacs}:
2954
2955 @lisp
2956 (load "big-menubar")
2957 @end lisp
2958
2959 If you'd like to write your own, this file provides as good a set of
2960 examples as any to start from. The file is located in
2961 @file{lisp/packages/big-menubar.el} in the XEmacs installation
2962 directory.
2963
2964 @node Q3.8.3, Q3.8.4, Q3.8.2, Customization
2965 @section How do I control how many buffers are listed in the menu @code{Buffers List}?
2966
2967 Add the following to your @file{.emacs} (suit to fit):
2968
2969 @lisp
2970 (setq buffers-menu-max-size 20)
2971 @end lisp
2972
2973 For no limit, use an argument of @samp{nil}.
2974
2975 @node Q3.8.4, Q3.8.5, Q3.8.3, Customization
2976 @section Resources like @code{Emacs*menubar*font} are not working?
2977
2978 I am trying to use a resource like @code{Emacs*menubar*font} to set the
2979 font of the menubar but it's not working.
2980
2981 If you are using the real Motif menubar, this resource is not
2982 recognized; you have to say:
2983
2984 @example
2985 Emacs*menubar*fontList: FONT
2986 @end example
2987
2988 If you are using the Lucid menubar, the former resource will be
2989 recognized only if the latter resource is unset. This means that the
2990 resource
2991
2992 @example
2993 *fontList: FONT
2994 @end example
2995
2996 will override
2997
2998 @example
2999 Emacs*menubar*font: FONT
3000 @end example
3001
3002 even though the latter is more specific.
3003
3004 @node Q3.8.5, Q3.9.1, Q3.8.4, Customization
3005 @section How can I bind a key to a function to toggle the toolbar?
3006
3007 Try something like:
3008
3009 @lisp
3010 (global-set-key [(control x) T]
3011 '(lambda () (interactive)
3012 (set-specifier default-toolbar-visible-p
3013 (not (specifier-instance
3014 default-toolbar-visible-p)))))
3015 @end lisp
3016
3017 There are redisplay bugs in 19.14 that may make the preceding result in
3018 a messed-up display, especially for frames with multiple windows. You
3019 may need to resize the frame before XEmacs completely realizes the
3020 toolbar is really gone.
3021
3022 Thanks to Martin Buchholz <Martin.Buchholz@@sun.com> for the correct
3023 code.
3024
3025 @node Q3.9.1, Q3.9.2, Q3.8.5, Customization
3026 @section How can I disable the scrollbar?
3027
3028 To disable them for all frames, add the following line to
3029 your @file{.Xdefaults}:
3030
3031 @example
3032 Emacs.scrollBarWidth: 0
3033 @end example
3034
3035 To turn the scrollbar off on a per-frame basis, use the following
3036 function:
3037
3038 @lisp
3039 (set-specifier scrollbar-width (cons (selected-frame) 0))
3040 @end lisp
3041
3042 You can actually turn the scrollbars on at any level you want by
3043 substituting for (selected-frame) in the above command. For example, to
3044 turn the scrollbars off only in a single buffer:
3045
3046 @lisp
3047 (set-specifier scrollbar-width (cons (current-buffer) 0))
3048 @end lisp
3049
3050 Starting with 19.14 you can use the more logical form:
3051
3052 @lisp
3053 (set-specifier scrollbar-width 0 (selected-frame))
3054 @end lisp
3055
3056 @node Q3.9.2, Q3.9.3, Q3.9.1, Customization
3057 @section How can one use resources to change scrollbar colors?
3058
3059 Here's a recap of how to use resources to change your scrollbar colors:
3060
3061 @example
3062 ! Motif scrollbars
3063
3064 Emacs*XmScrollBar.Background: skyblue
3065 Emacs*XmScrollBar.troughColor: lightgray
3066
3067 ! Athena scrollbars
3068
3069 Emacs*Scrollbar.Foreground: skyblue
3070 Emacs*Scrollbar.Background: lightgray
3071 @end example
3072
3073 Note the capitalization of @code{Scrollbar} for the Athena widget.
3074
3075 @node Q3.9.3, Q3.9.4, Q3.9.2, Customization
3076 @section Moving the scrollbar can move the point; can I disable this?
3077
3078 When I move the scrollbar in an XEmacs window, it moves the point as
3079 well, which should not be the default behavior. Is this a bug or a
3080 feature? Can I disable it?
3081
3082 The current behavior is a feature, not a bug. Point remains at the same
3083 buffer position as long as that position does not scroll off the screen.
3084 In that event, point will end up in either the upper-left or lower-left
3085 hand corner.
3086
3087 This cannot be changed.
3088
3089 @node Q3.9.4, Q3.10.1, Q3.9.3, Customization
3090 @section How can I get automatic horizontal scrolling?
3091
3092 By the same token, how can I turn it off in specific modes?
3093
3094 To do this, add to your @file{.emacs} file:
3095
3096 @lisp
3097 (require 'auto-show)
3098 @end lisp
3099
3100 Then do @code{(setq truncate-lines t)} in the mode-hooks for any modes
3101 in which you want lines truncated.
3102
3103 More precisely: If @code{truncate-lines} is nil, horizontal scrollbars
3104 will never appear. Otherwise, they will appear only if the value of
3105 @code{scrollbar-height} for that buffer/window/etc. is non-zero. If you
3106 do
3107
3108 @lisp
3109 (set-specifier scrollbar-height 0)
3110 @end lisp
3111
3112 then horizontal scrollbars will not appear in truncated buffers unless
3113 the package specifically asked for them.
3114
3115 Automatic horizontal scrolling is now standard, starting with 19.14.
3116
3117 @node Q3.10.1, Q3.10.2, Q3.9.4, Customization
3118 @section How can I turn off or change highlighted selections?
3119
3120 The @code{zmacs} mode allows for what some might call gratuitous
3121 highlighting for selected regions (either by setting mark or by using
3122 the mouse). This is the default behavior. To turn off, add the
3123 following line to your @file{.emacs} file:
3124
3125 @lisp
3126 (setq zmacs-regions nil)
3127 @end lisp
3128
3129 To change the face for selection, look at @code{Options->Edit Faces} on
3130 the menubar.
3131
3132 @node Q3.10.2, Q3.10.3, Q3.10.1, Customization
3133 @section How do I get that typing on an active region removes it?
3134
3135 I want to change things so that if I select some text and start typing,
3136 the typed text replaces the selected text, similar to Motif.
3137
3138 You want to use something called @dfn{pending delete}. Pending delete
3139 is what happens when you select a region (with the mouse or keyboard)
3140 and you press a key to replace the selected region by the key you typed.
3141 Usually backspace kills the selected region.
3142
3143 To get this behavior, add the following line to your @file{.emacs}:
3144
3145 @lisp
3146 (require 'pending-del)
3147 @end lisp
3148
3149 Note that this will work with both Backspace and Delete.
3150
3151 @node Q3.10.3, Q3.10.4, Q3.10.2, Customization
3152 @section Can I turn off the highlight during isearch?
3153
3154 I do not like my text highlighted while I am doing isearch as I am not
3155 able to see what's underneath. How do I turn it off?
3156
3157 Put the following in your @file{.emacs}:
3158
3159 @lisp
3160 (setq isearch-highlight nil)
3161 @end lisp
3162
3163 Note also that isearch-highlight affects query-replace and ispell.
3164 Instead of disabling isearch-highlight you may find that a better
3165 solution consists of customizing the @code{isearch} face.
3166
3167 @node Q3.10.4, Q3.10.5, Q3.10.3, Customization
3168 @section How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
3169
3170 Put this in your @code{.emacs}:
3171
3172 @lisp
3173 (setq zmacs-regions nil)
3174 @end lisp
3175
3176 @strong{Warning: This command turns off all region highlighting.}
3177
3178 @node Q3.10.5, , Q3.10.4, Customization
3179 @section The region disappears when I hit the end of buffer while scrolling.
3180
3181 How do I turn this feature (if it indeed is a feature) off?
3182
3183 Like this:
3184
3185 @lisp
3186 (defadvice scroll-up (around scroll-up freeze)
3187 (interactive "_P")
3188 (let ((zmacs-region-stays t))
3189 (if (interactive-p)
3190 (condition-case nil
3191 ad-do-it
3192 (end-of-buffer (goto-char (point-max))))
3193 ad-do-it)))
3194
3195 (defadvice scroll-down (around scroll-down freeze)
3196 (interactive "_P")
3197 (let ((zmacs-region-stays t))
3198 (if (interactive-p)
3199 (condition-case nil
3200 ad-do-it
3201 (beginning-of-buffer (goto-char (point-min))))
3202 ad-do-it)))
3203 @end lisp
3204
3205 Thanks to T. V. Raman <raman@@adobe.com> for assistance in deriving this
3206 answer.
3207
3208 @node Subsystems, Miscellaneous, Customization, Top
3209 @chapter Major Subsystems
3210
3211 This is part 4 of the XEmacs Frequently Asked Questions list. This
3212 section is devoted to major XEmacs subsystems.
3213
3214 @menu
3215 Reading Mail with VM:
3216 * Q4.0.1:: How do I set up VM to retrieve remote mail using POP?
3217 * Q4.0.2:: How do I get VM to filter mail for me?
3218 * Q4.0.3:: How can I get VM to automatically check for new mail?
3219 * Q4.0.4:: [This question intentionally left blank]
3220 * Q4.0.5:: How do I get my outgoing mail archived?
3221 * Q4.0.6:: I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
3222 * Q4.0.7:: Is there a mailing list or FAQ for VM?
3223 * Q4.0.8:: Remote Mailreading with VM.
3224 * Q4.0.9:: rmail or VM gets an error incorporating new mail.
3225 * Q4.0.10:: How do I make VM stay in a single frame?
3226 * Q4.0.11:: How do I make VM or mh-e display graphical smilies?
3227 * Q4.0.12:: Customization of VM not covered in the manual or here.
3228
3229 Web browsing with W3:
3230 * Q4.1.1:: What is W3?
3231 * Q4.1.2:: How do I run W3 from behind a firewall?
3232
3233 Reading Netnews and Mail with Gnus:
3234 * Q4.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, argh!
3235 * Q4.2.2:: [This question intentionally left blank]
3236 * Q4.2.3:: How do I make Gnus stay within a single frame?
3237 * Q4.2.4:: How do I customize the From: line?
3238
3239 Other Mail & News:
3240 * Q4.3.1:: How can I read and/or compose MIME messages?
3241 * Q4.3.2:: What is TM and where do I get it?
3242 * Q4.3.3:: Why isn't this @code{movemail} program working?
3243 * Q4.3.4:: Movemail is also distributed by Netscape? Can that cause problems?
3244 * Q4.3.5:: Where do I find pstogif (required by tm)?
3245
3246 Sparcworks, EOS, and WorkShop:
3247 * Q4.4.1:: What is SPARCworks, EOS, and WorkShop
3248
3249 Energize:
3250 * Q4.5.1:: What is/was Energize?
3251
3252 Infodock:
3253 * Q4.6.1:: What is Infodock?
3254
3255 Other Unbundled Packages:
3256 * Q4.7.1:: What is AucTeX? Where do you get it?
3257 * Q4.7.2:: Are there any Emacs Lisp Spreadsheets?
3258 * Q4.7.3:: Byte compiling AucTeX on XEmacs 19.14
3259 * Q4.7.4:: Problems installing AucTeX
3260 @end menu
3261
3262 @node Q4.0.1, Q4.0.2, Subsystems, Subsystems
3263 @section How do I set up VM to retrieve mail from a remote site using POP?
3264
3265 Use @code{vm-spool-files}, like this for example:
3266
3267 @lisp
3268 (setq vm-spool-files '("/var/spool/mail/wing"
3269 "netcom23.netcom.com:110:pass:wing:MYPASS"))
3270 @end lisp
3271
3272 Of course substitute your actual password for MYPASS.
3273
3274 @node Q4.0.2, Q4.0.3, Q4.0.1, Subsystems
3275 @section How do I get VM to filter mail for me?
3276
3277 One possibility is to use procmail to split your mail before it gets to
3278 VM. I prefer this personally, since there are many strange and
3279 wonderful things one can do with procmail. Procmail may be found at
3280 <URL:ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/>.
3281
3282 Also see the Mail Filtering FAQ at:
3283 <URL:http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html>.
3284
3285 Another possibility is to check out Gnus 5. Gnus 5 has mail splitting
3286 capability, and can use VM as a mail reading backend.
3287
3288 @node Q4.0.3, Q4.0.4, Q4.0.2, Subsystems
3289 @section How can I get VM to automatically check for new mail?
3290
3291 John Turner <turner@@lanl.gov> writes:
3292
3293 @quotation
3294 Use the following:
3295
3296 @lisp
3297 (setq vm-auto-get-new-mail 60)
3298 @end lisp
3299 @end quotation
3300
3301 @node Q4.0.4, Q4.0.5, Q4.0.3, Subsystems
3302 @section [This question intentionally left blank]
3303
3304 Obsolete question, left blank to avoid renumbering.
3305
3306 @node Q4.0.5, Q4.0.6, Q4.0.4, Subsystems
3307 @section How do I get my outgoing mail archived?
3308
3309 @lisp
3310 (setq mail-archive-file-name "~/outbox")
3311 @end lisp
3312
3313 @node Q4.0.6, Q4.0.7, Q4.0.5, Subsystems
3314 @section I have various addresses at which I receive mail. How can I tell VM to ignore them when doing a "reply-all"?
3315
3316 Set @code{vm-reply-ignored-addresses} to a list, like
3317
3318 @lisp
3319 (setq vm-reply-ignored-addresses '("wing@@netcom[0-9]*.netcom.com"
3320 "wing@@netcom.com" "wing@@666.com"))
3321 @end lisp
3322
3323 Note that each string is a regular expression.
3324
3325 @node Q4.0.7, Q4.0.8, Q4.0.6, Subsystems
3326 @section Is there a mailing list or FAQ for VM?
3327
3328 There is no archived FAQ for VM.
3329
3330 Kyle Jones <kyle_jones@@wonderworks.com> writes:
3331
3332 @quotation
3333 No, I'm too atavistic to write one. For some reason I'd rather just
3334 answer the questions myself. I guess it serves a purpose in that the VM
3335 user community knows that I'm still alive, despite the 9 months since
3336 the last release.
3337 @end quotation
3338
3339 VM has its own newsgroup gnu.emacs.vm.info.
3340
3341 @node Q4.0.8, Q4.0.9, Q4.0.7, Subsystems
3342 @section Remote Mailreading with VM.
3343
3344 My mailbox lives at the office on a big honkin server. My regular INBOX
3345 lives on my honkin desktop machine. I now can PPP to the office from
3346 home which is far from honking... I'd like to be able to read mail at
3347 home without storing it here and I'd like to use xemacs and VM at
3348 home... Is there a recommended setup?
3349
3350 Joseph J. Nuspl Jr. <nuspl@@nvwls.cc.purdue.edu> writes:
3351
3352 @quotation
3353 There are several ways to do this.
3354
3355 @enumerate
3356 @item
3357 Set your display to your home machine and run dxpc or one of the other X
3358 compressors.
3359
3360 @item
3361 NFS mount your desktop machine on your home machine and modify your pop
3362 command on your home machine to rsh to your desktop machine and actually
3363 do the pop get's.
3364
3365 @item
3366 Run a POP server on your desktop machine as well and do a sort of two
3367 tiered POP get.
3368 @end enumerate
3369 @end quotation
3370
3371 William Perry <wmperry@@monolith.spry.com> adds:
3372
3373 @quotation
3374 Or you could run a pop script periodically on your desktop machine, and
3375 just use ange-ftp or NFS to get to your mailbox. I used to do this all
3376 the time back at IU.
3377 @end quotation
3378
3379 @node Q4.0.9, Q4.0.10, Q4.0.8, Subsystems
3380 @section rmail or VM gets an error incorporating new mail.
3381
3382 >From the XEmacs PROBLEMS file:
3383
3384 @quotation
3385 rmail and VM get new mail from @file{/usr/spool/mail/$USER} using a
3386 program called @code{movemail}. This program interlocks with
3387 @code{/bin/mail} using the protocol defined by @code{/bin/mail}.
3388
3389 There are two different protocols in general use. One of them uses the
3390 @code{flock} system call. The other involves creating a lock file;
3391 @code{movemail} must be able to write in @file{/usr/spool/mail} in order
3392 to do this. You control which one is used by defining, or not defining,
3393 the macro @code{MAIL_USE_FLOCK} in @file{config.h} or the m- or s- file
3394 it includes.
3395
3396 @strong{IF YOU DON'T USE THE FORM OF INTERLOCKING THAT IS NORMAL ON YOUR
3397 SYSTEM, YOU CAN LOSE MAIL!}
3398
3399 If your system uses the lock file protocol, and fascist restrictions
3400 prevent ordinary users from writing the lock files in
3401 @file{/usr/spool/mail}, you may need to make @code{movemail} setgid to a
3402 suitable group such as @samp{mail}. You can use these commands (as
3403 root):
3404
3405 @example
3406 chgrp mail movemail
3407 chmod 2755 movemail
3408 @end example
3409
3410 If your system uses the lock file protocol, and fascist restrictions
3411 prevent ordinary users from writing the lock files in
3412 @file{/usr/spool/mail}, you may need to make @code{movemail} setgid to a
3413 suitable group such as @code{mail}. To do this, use the following
3414 commands (as root) after doing the make install.
3415
3416 @example
3417 chgrp mail movemail
3418 chmod 2755 movemail
3419 @end example
3420
3421 Installation normally copies movemail from the build directory to an
3422 installation directory which is usually under @file{/usr/local/lib}.
3423 The installed copy of @code{movemail} is usually in the directory
3424 @file{/usr/local/lib/emacs/VERSION/TARGET}. You must change the group
3425 and mode of the installed copy; changing the group and mode of the build
3426 directory copy is ineffective.
3427 @end quotation
3428
3429 @node Q4.0.10, Q4.0.11, Q4.0.9, Subsystems
3430 @section How do I make VM stay in a single frame?
3431
3432 John S Cooper <John.Cooper@@Eng.Sun.COM> writes:
3433
3434 @quotation
3435 @lisp
3436 ; Don't use multiple frames
3437 (setq vm-frame-per-composition nil)
3438 (setq vm-frame-per-folder nil)
3439 (setq vm-frame-per-edit nil)
3440 (setq vm-frame-per-summary nil)
3441 @end lisp
3442 @end quotation
3443
3444 @node Q4.0.11, Q4.0.12, Q4.0.10, Subsystems
3445 @section How do I make VM or mh-e display graphical smilies?
3446
3447 For mh-e use the following:
3448
3449 @lisp
3450 (add-hook 'mh-show-mode-hook '(lambda () (smiley-region (point-min)
3451 (point-max))))
3452 @end lisp
3453
3454 For vm use the following:
3455 @lisp
3456 (require 'messagexmas)
3457 (require 'smiley)
3458 (add-hook 'vm-select-message-hook '(lambda () (smiley-region (point-min)
3459 (point-max))))
3460 @end lisp
3461
3462 For tm use the following:
3463 @lisp
3464 (autoload 'smiley-buffer "smiley" nil t)
3465 (add-hook 'mime-viewer/plain-text-preview-hook 'smiley-buffer)
3466 @end lisp
3467
3468 @node Q4.0.12, Q4.1.1, Q4.0.11, Subsystems
3469 @section Customization of VM not covered in the manual, or here.
3470
3471 giacomo boffi <boffi@@hp735.stru.polimi.it> writes:
3472
3473 @quotation
3474 The meta-answer is to look into the file @file{vm-vars.el}, in the vm
3475 directory of the lisp library.
3476
3477 @file{vm-vars.el} contains, initializes and carefully describes, with
3478 examples of usage, the plethora of user options that @emph{fully}
3479 control VM's behavior.
3480
3481 Enter vm-vars, @code{forward-search} for toolbar, find the variables
3482 that control the toolbar placement, appearance, existence, copy to your
3483 @file{.emacs} or @file{.vm} and modify according to the detailed
3484 instructions.
3485
3486 The above also applies to all the various features of VM: search for
3487 some keywords, maybe the first you conjure isn't appropriate, find the
3488 appropriate variables, copy and experiment.
3489 @end quotation
3490
3491 @node Q4.1.1, Q4.1.2, Q4.0.12, Subsystems
3492 @section What is W3?
3493
3494 W3 is an advanced graphical browser written in Emacs lisp that runs on
3495 XEmacs. It has full support for cascaded style sheets, and more...
3496
3497 It has a home web page at
3498 <URL:http://www.cs.indiana.edu/elisp/w3/docs.html>.
3499
3500 @node Q4.1.2, Q4.2.1, Q4.1.1, Subsystems
3501 @section How do I run W3 from behind a firewall?
3502
3503 There is a long, well-written, detailed section in the W3 manual that
3504 describes how to do this. Look in the section entitled "Firewalls".
3505
3506 @node Q4.2.1, Q4.2.2, Q4.1.2, Subsystems
3507 @section GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Mamey Sapote Gnus, argh!
3508
3509 Please see <URL:http://www.ccs.neu.edu/software/gnus/> for details.
3510
3511 @node Q4.2.2, Q4.2.3, Q4.2.1, Subsystems
3512 @section This question intentionally left blank.
3513
3514 Obsolete question, left blank to avoid renumbering.
3515
3516 @node Q4.2.3, Q4.2.4, Q4.2.2, Subsystems
3517 @section How do I make Gnus stay within a single frame?
3518
3519 When starting Gnus from the toolbar it is automatically put into a new
3520 frame. Gnus not being frame-aware code, has no provision to disable
3521 this feature. If you feel this is a problem here are some workarounds:
3522
3523 @enumerate
3524 @item
3525 Don't start Gnus from the toolbar, use @kbd{M-x gnus}. This is what I
3526 do.
3527
3528 @item
3529 Redefine the function called by the toolbar:
3530
3531 @lisp
3532 (defun toolbar-news ()
3533 "Run Gnus in the frame it was started from."
3534 (interactive)
3535 (gnus))
3536 @end lisp
3537 @end enumerate
3538
3539 @node Q4.2.4, Q4.3.1, Q4.2.3, Subsystems
3540 @section How do I customize the From: line?
3541
3542 How do I change the @code{From:} line? I have set gnus-user-from-line
3543 to Gail Gurman <gail.gurman@@sybase.com>, but XEmacs Gnus doesn't use
3544 it. Instead it uses Gail Mara Gurman <gailg@@deall> and then complains
3545 that it's incorrect. Also, as you perhaps can see, my Message-ID is
3546 screwy. How can I change that?
3547
3548 Lars Magne Ingebrigtsen <larsi@@aegir.ifi.uio.no> writes:
3549
3550 @quotation
3551 Set @code{user-mail-address} to @samp{gail.gurman@@sybase.com} or
3552 @code{mail-host-address} to @samp{sybase.com}.
3553 @end quotation
3554
3555 @node Q4.3.1, Q4.3.2, Q4.2.4, Subsystems
3556 @section How can I read and/or compose MIME messages?
3557
3558 One answer is @code{tra-vm-mime}. You may find it at
3559 <URL:http://lenkkari.cs.tut.fi/~tra/software/tra-vm-mime.el>.
3560
3561 Another possibility is RMIME. You may find RMIME at
3562 <URL:http://www.cinti.net/~rmoody/rmime/index.html>.
3563
3564 You probably want to use the Tools for MIME (tm). @xref{Q4.3.2} for
3565 details.
3566
3567 Trey Jackson <trey@@cs.berkeley.edu> has an Emacs & MIME web page at
3568 <URL:http://bmrc.berkeley.edu/~trey/emacs/mime.html>.
3569
3570 @node Q4.3.2, Q4.3.3, Q4.3.1, Subsystems
3571 @section What is TM and where do I get it?
3572
3573 TM stands for @dfn{Tools for MIME} and not Tiny MIME. TM integrates
3574 with all major XEmacs packages like Gnus (all flavors), VM, MH-E, and
3575 mailcrypt. It provides totally transparent and trouble-free MIME
3576 support. When appropriate a message will be decoded in place in an
3577 XEmacs buffer.
3578
3579 TM was written by MORIOKA Tomohiko <morioka@@jaist.ac.jp> and KOBAYASHI
3580 Shuhei <shuhei-k@@jaist.ac.jp>. It is based on the work of UMEDA
3581 Masanobu <umerin@@mse.kyutech.ac.jp>, the original writer of GNUS.
3582
3583 The following information is from the @file{README}:
3584
3585 @dfn{tm} is a MIME package for GNU Emacs.
3586 tm has following functions:
3587
3588 @itemize @bullet
3589 @item MIME style multilingual header.
3590 @item MIME message viewer (mime/viewer-mode).
3591 @item MIME message composer (mime/editor-mode).
3592 @item MIME extenders for mh-e, GNUS, RMAIL and VM.
3593 @end itemize
3594
3595 tm is available from following anonymous ftp sites:
3596 @itemize @bullet
3597 @item <URL:ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/> (Japan).
3598 @item <URL:ftp://ftp.nis.co.jp/pub/gnu/emacs-lisp/tm/> (Japan).
3599 @item <URL:ftp://ftp.nisiq.net/pub/gnu/emacs-lisp/tm/> (US).
3600 @item <URL:ftp://ftp.miranova.com/pub/gnus/jaist.ac.jp/> (US).
3601 @item <URL:ftp://ftp.unicamp.br/pub/mail/mime/tm/> (Brasil).
3602 @item <URL:ftp://ftp.th-darmstadt.de/pub/editors/GNU-Emacs/lisp/mime/> (Germany).
3603 @item <URL:ftp://ftp.tnt.uni-hannover.de/pub/editors/xemacs/contrib/> (Germany).
3604 @end itemize
3605
3606 Don't let the installation procedure & instructions stop you from trying
3607 this package out---it's much simpler than it looks, and once installed,
3608 trivial to use.
3609
3610 @node Q4.3.3, Q4.3.4, Q4.3.2, Subsystems
3611 @section Why isn't this @code{movemail} program working?
3612
3613 Ben Wing <ben@@666.com> writes:
3614
3615 @quotation
3616 It wasn't chown'ed/chmod'd correctly.
3617 @end quotation
3618
3619 @node Q4.3.4, Q4.3.5, Q4.3.3, Subsystems
3620 @section Movemail is also distributed by Netscape? Can that cause problems?
3621
3622 Steve Baur <steve@@altair.xemacs.org> writes:
3623
3624 @quotation
3625 Yes. Always use the movemail installed with your XEmacs. Failure to do
3626 so can result in lost mail.
3627 @end quotation
3628
3629 Please refer to Jamie Zawinski's <jwz@@netscape.com> notes at
3630 <URL:http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/movemail.html>.
3631 In particular, this document will show you how to make Netscape use the
3632 version of movemail configured for your system by the person who built
3633 XEmacs.
3634
3635 @node Q4.3.5, Q4.4.1, Q4.3.4, Subsystems
3636 @section Where do I find pstogif (required by tm)?
3637
3638 pstogif is part of the latex2html package.
3639
3640 Jan Vroonhof <vroonhof@@math.ethz.ch> writes:
3641
3642 latex2html is best found at the CTAN hosts and their mirrors
3643 in @file{tex-archive/support/latex2html}.
3644
3645 CTAN hosts are:
3646
3647 @itemize @bullet
3648 @item <URL:ftp://ftp.tex.ac.uk/tex-archive/support/latex2html/>.
3649 @item <URL:ftp://ftp.dante.de/tex-archive/support/latex2html/>.
3650 @end itemize
3651
3652 There is a good mirror at ftp.cdrom.com;
3653 <URL:ftp://ftp.cdrom.com/pub/tex/ctan/support/latex2html/>.
3654
3655 @node Q4.4.1, Q4.5.1, Q4.3.5, Subsystems
3656 @section What is SPARCworks, EOS, and WorkShop?
3657
3658 John Turner <turner@@lanl.gov> writes:
3659
3660 @quotation
3661 SPARCworks is SunSoft's development environment, comprising compilers
3662 (C, C++, FORTRAN 77, Fortran 90, Ada, and Pascal), a debugger, and other
3663 tools such as TeamWare (for configuration management), MakeTool, etc.
3664 @end quotation
3665
3666 See <URL:http://www.sun.com/sunsoft/Developer-products/products.html>
3667 for more info.
3668
3669 EOS stands for "Era on SPARCworks", but I don't know what Era stands
3670 for.
3671
3672 EOS is the integration of XEmacs with the SPARCworks debugger. It
3673 allows one to use an XEmacs frame to view code (complete with
3674 fontification, etc.), set breakpoints, print variables, etc., while
3675 using the SPARCworks debugger. It works very well and I use it all the
3676 time.
3677
3678 Chuck Thompson <cthomp@@xemacs.org> writes:
3679
3680 @quotation
3681 Era stood for "Emacs Rewritten Again". It was what we were calling the
3682 modified version of Lucid Emacs for Sun when I was dragged, er, allowed
3683 to work on this wonderful editor.
3684 @end quotation
3685
3686 Martin Buchholz <Martin.Buchholz@@sun.com> writes:
3687
3688 @quotation
3689 EOS is being replaced with a new graphical development environment
3690 called Sun WorkShop, which is currently (07/96) in Alpha Test. For more
3691 details, check out
3692 <URL:http://www.sun.com/sunsoft/Products/Developer-products/programs.html>.
3693 @end quotation
3694
3695 @node Q4.5.1, Q4.6.1, Q4.4.1, Subsystems
3696 @section What is/was Energize?
3697
3698 David N Gray <gray@@meteor.harlequin.com> writes:
3699 @quotation
3700 The files in @file{lisp/energize} are to enable Emacs to interface with
3701 the "Energize Programming System", a C and C++ development environment,
3702 which was a product of Lucid, Inc. Tragically, Lucid went out of
3703 business in 1994, so although Energize is still a great system, if you
3704 don't already have it, there isn't any way to get it now. (Unless you
3705 happen to be in Japan; INS Engineering may still be selling it there.
3706 Tartan bought the rights to sell it in the rest of the world, but never
3707 did so.)
3708 @end quotation
3709
3710 @node Q4.6.1, Q4.7.1, Q4.5.1, Subsystems
3711 @section What is Infodock?
367 3712
368 InfoDock is an integrated productivity toolset, mainly aimed at 3713 InfoDock is an integrated productivity toolset, mainly aimed at
369 technical people. It is built atop the XEmacs variant of GNU Emacs and 3714 technical people. It is developed and supported by InfoDock
370 so has all of the power of Emacs, but with an easier to use and more 3715 Associates, a firm that offers custom support and development
371 comprehensive menu-based user interface. The next section describes how 3716 for InfoDock, XEmacs and GNU Emacs. (http://www.infodock.com,
372 it differs from XEmacs and GNU Emacs from the Free Software Foundation. 3717 <info@infodock.com>, +1 408 243 3300).
373 3718
374 The quickest way to get a feel for InfoDock is to browse the InfoDock 3719 InfoDock is built atop the XEmacs variant of GNU Emacs and so has all of
375 Manual, especially the section on tools. This will help you decide 3720 the power of Emacs, but with an easier to use and more comprehensive
376 whether or not to download InfoDock for local use. This manual is 3721 menu-based user interface. The bottom portion of this text describes
377 available in gzipped Postscript form, alongside the InfoDock 3722 how it differs from XEmacs and GNU Emacs from the Free Software
378 distribution. (See below for FTP retrieval instructions.) 3723 Foundation.
379 3724
380 InfoDock is aimed at people who want a free, turn-key productivity 3725 InfoDock is aimed at people who want a free, turn-key productivity
381 environment. Although InfoDock is customizable, it is not intended for 3726 environment. Although InfoDock is customizable, it is not intended for
382 people who like basic versions of Emacs which need to be customized 3727 people who like basic versions of Emacs which need to be customized
383 extensively for local use; standard Emacs distributions are better for 3728 extensively for local use; standard Emacs distributions are better for
384 such uses. InfoDock is for those people who want a complete, 3729 such uses. InfoDock is for those people who want a complete,
385 pre-customized environment in one package, which they need not touch 3730 pre-customized environment in one package, which they need not touch
386 more than once or twice a year to update to new revisions. 3731 more than once or twice a year to update to new revisions.
387 3732
388 InfoDock is pre-built for SPARCstations running SunOS V4 or V5 3733 InfoDock is pre-built for SPARC SunOS/Solaris systems, PA-RISC HP-UX,
389 (Solaris). It is intended for use on a color display, although most 3734 and Intel Linux systems. It is intended for use on a color display,
390 features will work on monochrome monitors. Simply unpack InfoDock 3735 although most features will work on monochrome monitors. Simply unpack
391 according to the instructions in the ID-INSTALL file and you are ready 3736 InfoDock according to the instructions in the ID-INSTALL file and you
392 to run. 3737 are ready to run.
393 3738
394 The InfoDock Manual is concise, yet sufficient as a user guide for users 3739 The InfoDock Manual is concise, yet sufficient as a user guide for users
395 who have never used an Emacs-type editor before. For users who are 3740 who have never used an Emacs-type editor before. For users who are
396 already familiar with Emacs, it supplements the information in the GNU 3741 already familiar with Emacs, it supplements the information in the GNU
397 Emacs Manual. 3742 Emacs Manual.
398 3743
399 InfoDock menus are much more extensive and more mature than standard 3744 InfoDock menus are much more extensive and more mature than standard
400 Emacs menus. Each menu offers a @samp{Manual} item which displays 3745 Emacs menus. Each menu offers a @samp{Manual} item which displays
401 documentation associated with the menu's functions. 3746 documentation associated with the menu's functions.
402 3747
403 Three types of menubars are provided: 3748 @noindent
3749 Four types of menubars are provided:
404 @enumerate 3750 @enumerate
405 @item 3751 @item
406 An extensive menubar providing access to global InfoDock commands. 3752 An extensive menubar providing access to global InfoDock commands.
407 @item 3753 @item
408 Mode-specific menubars tailored to the current major mode. 3754 Mode-specific menubars tailored to the current major mode.
409 @item 3755 @item
410 A simple menubar for basic editing to help novices get started with InfoDock. 3756 A simple menubar for basic editing to help novices get started with InfoDock.
3757 @item
3758 The standard XEmacs menubar.
411 @end enumerate 3759 @end enumerate
412 3760
413 Most modes also include mode-specific popup menus. Additionally, region and 3761 Most modes also include mode-specific popup menus. Additionally, region and
414 rectangle popup menus are included. 3762 rectangle popup menus are included.
415 @itemize @bullet 3763
416 @item
417 @samp{Hyperbole}, the everyday information manager, is a core part of 3764 @samp{Hyperbole}, the everyday information manager, is a core part of
418 InfoDock. This provides context-sensitive mouse keys, a rolodex-type 3765 InfoDock. This provides context-sensitive mouse keys, a rolodex-type
419 contact manager, programmable hypertext buttons, and an autonumbered 3766 contact manager, programmable hypertext buttons, and an autonumbered
420 outliner with embedded hyperlink anchors. 3767 outliner with embedded hyperlink anchors.
421 @item 3768
422 @samp{PIEmail}, the prototype Personalized Information Environment Mail
423 Tool, is included.
424 @item
425 The @samp{OO-Browser}, a multi-language object-oriented code browser, is a 3769 The @samp{OO-Browser}, a multi-language object-oriented code browser, is a
426 standard part of InfoDock. 3770 standard part of InfoDock.
427 @end itemize
428 3771
429 InfoDock saves a more extensive set of user options than other Emacs 3772 InfoDock saves a more extensive set of user options than other Emacs
430 versions. 3773 versions.
431 3774
432 InfoDock inserts a useful file header in many file types, showing the 3775 InfoDock inserts a useful file header in many file types, showing the
442 3785
443 The @kbd{C-z} key prefix performs frame-based commands which parallel the 3786 The @kbd{C-z} key prefix performs frame-based commands which parallel the
444 @kbd{C-x} key prefix for window-based commands. 3787 @kbd{C-x} key prefix for window-based commands.
445 3788
446 The Smart Menu system is included for producing command menus on dumb 3789 The Smart Menu system is included for producing command menus on dumb
447 terminals. (InfoDock does not yet run on dumb terminals but will in 1995.) 3790 terminals.
448 3791
449 Lisp libraries are better categorized according to function. 3792 Lisp libraries are better categorized according to function.
450 3793
451 Extensions and improvements to many areas of Emacs are included, such as: 3794 Extensions and improvements to many areas of Emacs are included, such as:
452 paragraph filling, mail reading with Rmail, shell handling, outlining, code 3795 paragraph filling, mail reading with Rmail, shell handling, outlining, code
453 highlighting and browsing, and man page browsing. 3796 highlighting and browsing, and man page browsing.
454 3797
455 InfoDock questions, answers and discussion should go to the mail list 3798 InfoDock questions, answers and discussion should go to the mail list
456 @samp{infodock@@hub.ucsb.edu}. Use 3799 @samp{infodock@@infodock.com}. Use
457 @samp{infodock-request@@hub.ucsb.edu} to be added or removed from the 3800 @samp{infodock-request@@infodock.com} to be added or removed from the
458 list. Always include your InfoDock version number when sending help 3801 list. Always include your InfoDock version number when sending help
459 requests. 3802 requests.
460 3803
461 InfoDock is available across the Internet via anonymous FTP. To get 3804 InfoDock is available across the Internet via anonymous FTP. To get
462 it, first move to a directory into which you want the InfoDock archive 3805 it, first move to a directory into which you want the InfoDock archive
464 3807
465 @example 3808 @example
466 cd <DIST-DIR> 3809 cd <DIST-DIR>
467 @end example 3810 @end example
468 3811
469 FTP to ftp.cs.uiuc.edu (Internet Host ID = 128.174.252.1): 3812 Ftp to ftp.xemacs.org (Internet Host ID = 128.174.252.16):
470 3813
471 @example 3814 @example
472 prompt> ftp ftp.cs.uiuc.edu 3815 prompt> ftp ftp.xemacs.org
473 @end example 3816 @end example
474 3817
475 Login as @samp{anonymous} with your own <user-id>@@<site-name> as a password. 3818 Login as @samp{anonymous} with your own <user-id>@@<site-name> as a password.
476 3819
477 @example 3820 @example
478 Name (ftp.cs.uiuc.edu): anonymous 3821 Name (ftp.xemacs.org): anonymous
479 331 Guest login ok, send your complete e-mail address as password. 3822 331 Guest login ok, send your complete e-mail address as password.
480 Password: -<your-user-id@@your-domain> 3823 Password: -<your-user-id@@your-domain>
481 230 Guest login ok, access restrictions apply. 3824 230 Guest login ok, access restrictions apply.
482 @end example 3825 @end example
483 3826
484 Move to the location of the InfoDock archives: 3827 Move to the location of the InfoDock archives:
485 3828
486 @example 3829 @example
487 ftp> cd pub/xemacs/infodock 3830 ftp> cd pub/infodock
488 @end example 3831 @end example
489 3832
490 Set your transfer mode to binary: 3833 Set your transfer mode to binary:
491 3834
492 @example 3835 @example
518 @end example 3861 @end example
519 3862
520 Read the @file{ID-INSTALL} file which you just retrieved for 3863 Read the @file{ID-INSTALL} file which you just retrieved for
521 step-by-step installation instructions. 3864 step-by-step installation instructions.
522 3865
523 3866 @node Q4.7.1, Q4.7.2, Q4.6.1, Subsystems
524 3867 @section What is AucTeX? Where do you get it?
525 @node 2. Compiling XEmacs, 3. Problems running XEmacs / weird messages, 1. Introductory Questions, top 3868
526 @chapter 2. Compiling XEmacs 3869 AucTeX is a package written by Per Abrahamsen <abraham@@dina.kvl.dk>.
3870 The following information is from the @file{README} and website.
3871
3872 AUC TeX is an extensible package that supports writing and formatting
3873 TeX files for most variants of GNU Emacs. Many different macro packages
3874 are supported, including AMS TeX, LaTeX, and TeXinfo.
3875
3876 The most recent version is always available by ftp at
3877 <URL:ftp://sunsite.auc.dk/packages/auctex/auctex.tar.gz>.
3878
3879 In case you don't have access to anonymous ftp, you can get it by an
3880 email request to <URL:mailto:ftpmail@@decwrl.dec.com>.
3881
3882 WWW users may want to check out the AUC TeX page at
3883 <URL:http://sunsite.auc.dk/auctex/>.
3884
3885 @node Q4.7.2, Q4.7.3, Q4.7.1, Subsystems
3886 @section Are there any Emacs Lisp Spreadsheets?
3887
3888 Yes. Check out @dfn{dismal} (which stands for Dis' Mode Ain't Lotus) at
3889 <URL:ftp://cs.nyu.edu/pub/local/fox/dismal/>.
3890
3891 @node Q4.7.3, Q4.7.4, Q4.7.2, Subsystems
3892 @section Byte compiling AucTeX on XEmacs 19.14.
3893
3894 Georges Brun-Cottan <bruncott@@dormeur.inria.fr> writes:
3895
3896 @quotation
3897 When byte compiling auxtex-9.4g, you must use the command:
3898
3899 @example
3900 xemacs -batch -l lpath.el
3901 @end example
3902 @end quotation
3903
3904 @node Q4.7.4, , Q4.7.3, Subsystems
3905 @section Problems installing AucTeX.
3906
3907 Jan Vroonhof <vroonhof@@math.ethz.ch> writes:
3908
3909 @quotation
3910 AucTeX works fine on both stock Emacs and XEmacs has been doing so for a
3911 very very long time. This is mostly due to the work of Per Abrahamsen
3912 <abraham@@dina.kvl.dk> (clap clap) in particular his @file{easymenu}
3913 package. Which leads to what is probably the problem...
3914 @end quotation
3915
3916 Most problems with AucTeX are one of two things:
3917
3918 @itemize @bullet
3919 @item
3920 The TeX-lisp-directory in @file{tex-site.el} and the makefile don't
3921 match.
3922
3923 Fix: make sure you configure AucTeX properly @strong{before} installing.
3924
3925 @item
3926 You have an old version of easymenu.el in your path.
3927
3928 Fix: use @code{locate-library} and remove old versions to make sure it
3929 @strong{only} finds the one that came with XEmacs.
3930 @end itemize
3931
3932 @node Miscellaneous, Current Events, Subsystems, Top
3933 @chapter The Miscellaneous Stuff
3934
3935 This is part 5 of the XEmacs Frequently Asked Questions list. This
3936 section is devoted to anything that doesn't fit neatly into the other
3937 sections.
527 3938
528 @menu 3939 @menu
529 * 2.1.:: 2.1. What is the best way to compile XEmacs with the netaudio system, since I have got the netaudio system compiled but installed at a weird place, I am not root. Also in the READMEs it does not say anything about compiling with the audioserver? 3940 Major & Minor Modes:
3941 * Q5.0.1:: How can I do source code highlighting using font-lock?
3942 * Q5.0.2:: I do not like cc-mode. How do I use the old c-mode?
3943 * Q5.0.3:: How do I get @samp{More} Syntax Highlighting on by default?
3944 * Q5.0.4:: How can I enable auto-indent?
3945 * Q5.0.5:: How can I get XEmacs to come up in text/auto-fill mode by default?
3946 * Q5.0.6:: How do I start up a second shell buffer?
3947 * Q5.0.7:: Telnet from shell filters too much.
3948 * Q5.0.8:: Why does edt emulation not work?
3949 * Q5.0.9:: How can I emulate VI and use it as my default mode?
3950 * Q5.0.10:: What is @samp{Omit} minor mode?
3951 * Q5.0.11:: Filladapt doesn't work in 19.13?
3952 * Q5.0.12:: How do I disable gnuserv from opening a new frame?
3953 * Q5.0.13:: How do I start gnuserv so that each subsequent XEmacs is a client?
3954 * Q5.0.14:: Strange things are happening in Shell Mode.
3955 * Q5.0.15:: Where do I get the latest CC Mode?
3956 * Q5.0.16:: I find auto-show-mode disconcerting. How do I turn it off?
3957 * Q5.0.17:: How can I get two instances of info?
3958 * Q5.0.18:: I upgraded to XEmacs 19.14 and gnuserv stopped working
3959 * Q5.0.19:: Is there something better than LaTeX mode?
3960
3961 Emacs Lisp Programming Techniques:
3962 * Q5.1.1:: The difference in key sequences between XEmacs and GNU Emacs?
3963 * Q5.1.2:: Can I generate "fake" keyboard events?
3964 * Q5.1.3:: How can I visit several marked files at once in dired?
3965 * Q5.1.4:: In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX?
3966 * Q5.1.5:: How do I put a glyph as annotation in a buffer?
3967
3968 Sound:
3969 * Q5.2.1:: How do I turn off the sound?
3970 * Q5.2.2:: How do I get funky sounds instead of a boring beep?
3971 * Q5.2.3:: What's NAS, how do I get it?
3972 * Q5.2.4:: Sunsite sounds don't play.
3973
3974 Miscellaneous:
3975 * Q5.3.1:: How do you make XEmacs indent CL if-clauses correctly?
3976 * Q5.3.2:: Fontifying hangs when editing a postscript file.
3977 * Q5.3.3:: How can I print WYSIWYG a font-locked buffer?
3978 * Q5.3.4:: Getting @kbd{M-x lpr} to work with postscript printer.
3979 * Q5.3.5:: How do I specify the paths that XEmacs uses for finding files?
3980 * Q5.3.6:: [This question intentionally left blank]
3981 * Q5.3.7:: Can I have the end of the buffer delimited in some way?
3982 * Q5.3.8:: How do I insert today's date into a buffer?
3983 * Q5.3.9:: Are only certain syntactic character classes available for abbrevs?
3984 * Q5.3.10:: How can I get those oh-so-neat X-Face lines?
3985 * Q5.3.11:: How do I add new Info directories?
3986 * Q5.3.12:: What do I need to change to make printing work?
530 @end menu 3987 @end menu
531 3988
532 3989 @node Q5.0.1, Q5.0.2, Miscellaneous, Miscellaneous
533 @node 2.1. 3990 @section How can I do source code highlighting using font-lock?
534 @section 2.1. What is the best way to compile XEmacs with the netaudio system, since I have got the netaudio system compiled but installed at a weird place, I am not root. Also in the READMEs it does not say anything about compiling with the audioserver?
535
536 You should only need to add some stuff to the configure command line. To tell
537 it to compile in netaudio support:
538
539 @example
540 --with-sound=both
541 @end example
542
543 (Or @samp{--with-sound=nas} if you don't want native sound support for
544 some reason.) To tell it where to find the netaudio includes and
545 libraries:
546
547 @example
548 --site-libraries=WHATEVER
549 --site-includes=WHATEVER
550 @end example
551
552 Then (fingers crossed) it should compile and it will use netaudio if you
553 have a server running corresponding to the X server. The netaudio server
554 has to be there when XEmacs starts. If the netaudio server goes away and
555 another is run, XEmacs should cope (fingers crossed, error handling in
556 netaudio isn't perfect).
557
558 BTW, netaudio has been renamed as it has a name clash with something
559 else, so if you see references to NAS or Network Audio System, it's the
560 @ifinfo
561 same thing. It also might be found at
562
563 @example
564 ftp.x.org:/contrib/audio/nas/
565 ftp.ncd.com:/pub/ncd/technology/src/nas/
566 @end example
567 @end ifinfo
568 @ifhtml
569 same thing. It also might be found at
570 <A HREF="ftp://ftp.x.org/contrib/audio/nas/">ftp.x.org:/contrib/audio/nas/</A>
571 <A HREF="ftp://ftp.ncd.com:/pub/ncd/technology/src/nas/">ftp.ncd.com:/pub/ncd/technology/src/nas/</A>
572 @end ifhtml
573
574 @node 3. Problems running XEmacs / weird messages, 4. Customization -- Emacs Lisp and the .emacs file, 2. Compiling XEmacs, top
575 @chapter 3. Problems running XEmacs / weird messages
576
577 @menu
578 * 3.1.:: 3.1. Help! XEmacs just crashed on me!
579 * 3.2.:: 3.2. When I try to use some particular option of some particular package, I get a cryptic error in the minibuffer.
580 * 3.3.:: 3.3. I get tons of translation table syntax error messages during startup. How do I get rid of them?
581 * 3.4.:: 3.4. How can I avoid the startup warnings about deducing proper fonts?
582 * 3.5.:: 3.5. Help! I can not get XEmacs to display on my Envizex X-terminal!
583 * 3.6.:: 3.6. Why do I get weird messages about giftoppm and ppmdither not being found?
584 * 3.7.:: 3.7. How can I avoid those messages about deleting excess backup files?
585 * 3.8.:: 3.8. Help! XEmacs just locked up my X server on my Linux box!
586 @end menu
587
588
589 @node 3.1.
590 @section 3.1. Help! XEmacs just crashed on me!
591
592 First of all, don't panic. Whenever XEmacs crashes, it tries extremely
593 hard to auto-save all of your files before dying. (The main time that
594 this will not happen is if the machine physically lost power or if you
595 killed the XEmacs process using @samp{kill -9}.) The next time you
596 try to edit those files, you will be informed that a more recent
597 auto-save file exists. You can use @kbd{M-x recover-file} to retrieve
598 the auto-saved version of the file.
599
600 Now, XEmacs is not perfect, and there may occasionally be times, or
601 particular sequences of actions, that cause it to crash. If you can
602 come up with a reproducible way of doing this (or even if you have a
603 pretty good memory of exactly what you were doing at the time), the
604 maintainers would be very interested in knowing about it. Post a
605 message to @samp{comp.emacs.xemacs} or send mail to
606 @samp{xemacs@@cs.uiuc.edu}.
607
608 If at all possible, include a stack backtrace of the core dump that was
609 produced. This shows where exactly things went wrong, and makes it much
610 easier to diagnose problems. To do this, you need to locate the core
611 file (it's called @samp{core}, and is usually sitting in the directory
612 that you started XEmacs from, or your home directory if that other
613 directory was not writable). Then, go to that directory and execute a
614 command like
615
616 @example
617 gdb `which xemacs` core
618 @end example
619
620 and then issue the command @samp{where} to get the stack backtrace.
621 (You might have to use @samp{dbx} or some similar debugger in place
622 of @samp{gdb}. If you don't have any such debugger available,
623 complain to your system administrator.)
624
625 It's possible that a core file didn't get produced, in which case
626 you're out of luck. Go complain to your system administrator and
627 tell him not to disable core files by default. (If you explicitly
628 disabled core files, then double shame on you!)
629
630
631 @node 3.2.
632 @section 3.2. When I try to use some particular option of some particular package, I get a cryptic error in the minibuffer.
633
634 If you can't figure out what's going on, try typing @kbd{ESC ESC} and
635 issuing the command
636
637 @example
638 (setq debug-on-error t)
639 @end example
640
641 and then try and make the error happen again. This will give you a
642 backtrace that may be enlightening. If not, try reading farther down in
643 this FAQ; if that fails, you could try posting to
644 @samp{comp.emacs.xemacs} (making sure to include the backtrace) and
645 someone may be able to help.
646
647
648 @node 3.3.
649 @section 3.3. I get tons of translation table syntax error messages during startup. How do I get rid of them?
650
651 There are two causes of this problem. The first usually only strikes
652 people using the prebuilt binaries. The culprit in both cases is the
653 file @file{XKeysymDB}.
654 @itemize @bullet
655 @item
656 The binary cannot find the XKeysymDB file. The location is hardcoded at
657 compile time so if the system the binary was built on puts it a
658 different place than your system does, you have problems. To fix, set
659 the environment variable @samp{XKEYSYMDB} to the location of the
660 XKeysymDB file on your system or to the location of the one included
661 with XEmacs which should be at:
662
663 @example
664 <xemacs_root_directory>/lib/xemacs-19.13/etc/XKeysymDB
665 @end example
666
667 @item
668 The binary is finding the XKeysymDB but it is out-of-date on your system
669 and does not contain the necessary lines. Either ask your system
670 administrator to replace it with the one which comes with XEmacs (which
671 is the stock R6 version and is backwards compatible) or set your
672 @samp{XKEYSYMDB} variable to the location of XEmacs's described above.
673 @end itemize
674
675
676 @node 3.4.
677 @section 3.4. How can I avoid the startup warnings about deducing proper fonts?
678
679 This is highly dependent on your installation, but try with the
680 following font as your base font for XEmacs and see what it does:
681
682 @example
683 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
684 @end example
685
686 More precisely, do the following in your resource file:
687
688 @example
689 Emacs.default.attributeFont: -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
690 @end example
691
692
693 @node 3.5.
694 @section 3.5. Help! I can not get XEmacs to display on my Envizex X-terminal!
695
696 Try setting the DISPLAY variable using the numeric IP address of the
697 host you are running XEmacs from.
698
699
700 @node 3.6.
701 @section 3.6. Why do I get weird messages about giftoppm and ppmdither not being found?
702
703 Because they are not. You are probably trying to read some HTML files,
704 or using W3-mode as your Web client. To display inline pictures, this
705 requires the above programs (which can be found in the netpbm package or
706 its older version, pbmplus). The netpbm package can be found at
707 @ifinfo
708 @samp{ftp.x.org}, or any of its mirror sites. It can also be found at
709 @samp{ftp.cs.uiuc.edu:/pub/xemacs/aux}.
710 @end ifinfo
711 @ifhtml
712 <A HREF="ftp://ftp.x.org/contrib/utilities/">ftp.x.org:/contrib/utilities/</A>
713 . It can also be found at
714 <A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/aux/">ftp.cs.uiuc.edu:/pub/xemacs/aux/</A>
715 @end ifhtml
716
717
718 @node 3.7.
719 @section 3.7. How can I avoid those messages about deleting excess backup files?
720
721
722 Try the following Emacs-Lisp:
723
724 @example
725 (setq version-control t)
726 (setq kept-old-versions 0)
727 (setq kept-new-versions 8)
728 (if (string-match "XEmacs\\|Lucid" emacs-version)
729 (setq trim-versions-without-asking t)
730 (setq delete-old-versions t))
731 @end example
732
733 @node 3.8.
734 @section 3.8. Help! XEmacs just locked up my X server on my Linux box!
735
736 There have been several reports of the X server locking up under Linux.
737 In all reported cases removing speedo and scaled fonts from the font
738 path corrected the problem. This can be done with the command 'xset'.
739
740 It is possible that using a font server may also solve the problem.
741
742
743
744 @node 4. Customization -- Emacs Lisp and the .emacs file, 5. Customization -- X resources, 3. Problems running XEmacs / weird messages, top
745 @chapter 4. Customization -- Emacs Lisp and the .emacs file
746
747 @menu
748 * 4.1.:: 4.1. How can @file{.emacs} determine which of the family of emacsen I am using?
749 * 4.2.:: 4.2. How can I detect a color display?
750 * 4.3.:: 4.3. How can I evaluate emacs-lisp expressions without switching to the *scratch* buffer?
751 * 4.4.:: 4.4. If you put (setq tab-width 6) in your @file{.emacs} file it does not work! Is there a reason for this. If you do it at the EVAL prompt it works fine!! How strange.
752 * 4.5.:: 4.5. How can I add directories to the load-path?
753 * 4.6.:: 4.6. How to check if a lisp function is defined or not?
754 * 4.7.:: 4.7. Can I force the output of (list-faces) to a buffer other than the minibuffer since it is too wide to fit?
755 @end menu
756
757
758 @node 4.1.
759 @section 4.1. How can @file{.emacs} determine which of the family of Emacsen I am using?
760
761 To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
762 XEmacs 19, or Epoch, and use appropriate code, check out the example
763 given in @file{etc/sample.emacs}. There are other nifty things in there
764 as well! Alternatively, there is a package, @file{emacs-vers.el},
765 available at an Emacs-Lisp archive near you; try searching
766
767 @example
768 archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/misc/
769 @end example
770
771
772 @node 4.2.
773 @section 4.2. How can I detect a color display?
774
775 You can test the return value of the function
776 @code{(device-class)}, as in:
777
778 @example
779 (if (eq (device-class) 'color)
780 (progn
781 (set-face-foreground 'font-lock-comment-face "Grey")
782 (set-face-foreground 'font-lock-string-face "Red")
783 ....
784 ))
785 @end example
786
787
788 @node 4.3.
789 @section 4.3. How can I evaluate Emacs-Lisp expressions without switching to the *scratch* buffer?
790
791 @example
792 (put 'eval-expression 'disabled nil)
793 @end example
794
795 This sets it so that hitting @kbd{ESC ESC} lets you type a single
796 expression to be evaluated. This line can also be put into your
797 @file{.emacs}.
798
799
800 @node 4.4.
801 @section 4.4. If you put (setq tab-width 6) in your @file{.emacs} file it does not work! Is there a reason for this. If you do it at the EVAL prompt it works fine!! How strange.
802
803 Use setq-default, since tab-width is all-buffer-local.
804
805
806 @node 4.5.
807 @section 4.5. How can I add directories to the load-path?
808
809 Here are two ways to do that, one that puts your directories at the front of
810 the load-path, the other at the end:
811
812 @example
813 ;;; Add things at the beginning of the load-path
814 (setq load-path (cons "bar" load-path))
815 (setq load-path (cons "foo" load-path))
816
817 ;;; Add things at the end
818 (setq load-path (append load-path '("foo" "bar")))
819 @end example
820
821
822 @node 4.6.
823 @section 4.6. How to check if a lisp function is defined or not?
824
825 Use the following elisp:
826
827 @example
828 (fboundp 'foo)
829 @end example
830
831 It's always a mistake, under all circumstances, to test `emacs-version' or
832 any similar variables, in case they are not bound, unless you do the above.
833
834 Instead, use feature-tests, such as featurep or boundp or fboundp, or
835 even simple behavioural tests, eg
836 (defvar foo-old-losing-code? (condition-case nil (progn (losing-code t) nil)
837 (wrong-number-of-arguments t)))
838
839 There is an incredible amount of broken code out there which could
840 work much better more often in more places if it did the above instead
841 of trying to divine its environment from the value of one variable.
842
843
844 @node 4.7.
845 @section 4.7. Can I force the output of (face-list) to a buffer other than the minibuffer since it is too wide to fit?
846
847 Evaluate the expression in the "*scratch*" buffer with point on the rightmost
848 paren and typing @kbd{C-j}.
849
850
851
852 @node 5. Customization -- X resources, 6. Changing textual fonts and colors, 4. Customization -- Emacs Lisp and the .emacs file, top
853 @chapter 5. Customization -- X resources
854
855 @menu
856 * 5.1.:: 5.1. Where is a list of X resources?
857 @end menu
858
859
860 @node 5.1.
861 @section 5.1. Where is a list of X resources?
862
863 Search through the NEWS file for ``X Resources''. A fairly comprehensive list
864 is given after it.
865
866 In addition, an app-defaults file is supplied, @file{etc/Emacs.ad},
867 listing the defaults. The file @file{etc/sample.Xdefaults} gives a set
868 of defaults that you might consider. It is essentially the same as
869 @file{etc/Emacs.ad} but some entries are slightly altered. Be careful
870 about installing the contents of this file into your @file{.Xdefaults}
871 (.Xresources) file if you use FSF GNU Emacs under X11 as well.
872
873
874
875 @node 6. Changing textual fonts and colors, 7. The modeline, 5. Customization -- X resources, top
876 @chapter 6. Changing textual fonts and colors
877
878 @menu
879 * 6.1.:: 6.1. How do I set the text, menu and modeline fonts?
880 * 6.2.:: 6.2. How can I set the background/foreground colors when highlighting a region?
881 * 6.3.:: 6.3. How can I set the most commonly used color options from my @file{.emacs} instead of from my @file{.Xdefaults}?
882 @end menu
883
884
885 @node 6.1.
886 @section 6.1. How do I set the text, menu and modeline fonts?
887
888 Note that you should use @samp{Emacs.} and not @samp{Emacs*} when
889 setting face values.
890
891 In @file{.Xdefaults}:
892
893 @example
894 Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
895 Emacs*menubar*font: fixed
896 Emacs.modeline.attributeFont: fixed
897 @end example
898
899 This is confusing because modeline is a face, and can be found listed
900 with all faces in the current mode by using M-x set-face-font (enter) ?.
901 It uses the face specification of "attributeFont", while menubar is a
902 normal X thing that uses the specification "font". With Motif it may be
903 necessary to use "fontList" instead of "font". (Please rewrite this if
904 you understand this better than me ... A general description of faces
905 would be very useful. I am just saying that menubar is a FAQ because
906 it's not a face and not listed.)
907
908
909 @node 6.2.
910 @section 6.2. How can I set the background/foreground colors when highlighting a region?
911
912 You can change the face `zmacs-region' either in your @file{.Xdefaults}:
913
914 @example
915 Emacs.zmacs-region.attributeForeground: firebrick
916 Emacs.zmacs-region.attributeBackground: lightseagreen
917 @end example
918
919 or in your @file{.emacs}:
920
921 @example
922 (set-face-background 'zmacs-region "red")
923 (set-face-foreground 'zmacs-region "yellow")
924 @end example
925
926
927 @node 6.3.
928 @section 6.3. How can I set the most commonly used color options from my @file{.emacs} instead of from my @file{.Xdefaults}?
929
930 @example
931 (set-face-background 'default "bisque") ; frame background
932 (set-face-foreground 'default "black") ; normal text
933 (set-face-background 'zmacs-region "red") ; When selecting w/
934 ; mouse
935 (set-face-foreground 'zmacs-region "yellow")
936 (set-face-font 'default "*courier-bold-r*120-100-100*")
937 (set-face-background 'highlight "blue") ; Ie when selecting buffers
938 (set-face-foreground 'highlight "yellow")
939 (set-face-background 'modeline "blue") ; Line at bottom of buffer
940 (set-face-foreground 'modeline "white")
941 (set-face-font 'modeline "*bold-r-normal*140-100-100*")
942 (set-face-background 'isearch "yellow") ; When highlighting while
943 ; searching
944 (set-face-foreground 'isearch "red")
945 (setq x-pointer-foreground-color "black") ; Adds to bg color,
946 ; so keep black
947 (setq x-pointer-background-color "blue") ; This is color you really
948 @end example
949 ; want ptr/crsr
950
951
952 @node 7. The modeline, 8. The keyboard, 6. Changing textual fonts and colors, top
953 @chapter 7. The modeline
954
955 @menu
956 * 7.1.:: 7.1. How can I make the modeline go away?
957 * 7.2.:: 7.2. How do you have XEmacs display the line number in the modeline?
958 * 7.3.:: 7.3. How do I get XEmacs to put the time of day on the modeline?
959 * 7.4.:: 7.4. How can one change the color of the modeline based on the mode used? i.e. red for C mode, green for TeX mode etc.?
960 @end menu
961
962
963 @node 7.1.
964 @section 7.1. How can I make the modeline go away?
965
966 (set-specifier has-modeline-p nil)
967
968
969 @node 7.2.
970 @section 7.2. How do you have XEmacs display the line number in the modeline?
971
972 Add the following line to your @file{.emacs} file:
973
974 @example
975 (setq line-number-mode t)
976 @end example
977
978
979 @node 7.3.
980 @section 7.3. How do I get XEmacs to put the time of day on the modeline?
981
982 @example
983 (display-time)
984 @end example
985
986
987 @node 7.4.
988 @section 7.4. How can one change the color of the modeline based on the mode used? i.e. red for C mode, green for TeX mode etc.?
989
990 You can use something like the following:
991
992 @example
993 (add-hook 'lisp-mode-hook
994 '(lambda () (set-face-background 'modeline "red" (current-buffer))
995 (set-face-foreground 'modeline "yellow" (current-buffer))))
996 @end example
997
998 Then, when editing a Lisp file (ie went into Lisp mode), the modeline
999 colors change from the default set in your @file{.emacs}. The change
1000 will only be made in the buffer you just entered (which contains the
1001 Lisp file you are editing) and will not affect the modeline colors
1002 anywhere else.
1003
1004 Notes:
1005
1006 @itemize @bullet
1007 @item
1008 The hook is the mode name plus "-hook". Ie c-mode-hook, c++-mode-hook,
1009 emacs-lisp-mode-hook (ie your @file{.emacs} or a xx.el file),
1010 lisp-interaction-mode-hook (the *scratch* buffer), text-mode-hook, etc.
1011 @item
1012 Be sure to use add-hook, not (setq c-mode-hook xxxx), otherwise you will
1013 erase anything that anybody has already put on the hook.
1014 @item
1015 You can also do (set-face-font 'modeline @code{font}), eg (set-face-font
1016 'modeline "*bold-r-normal*140-100-100*" (current-buffer)) if you wish
1017 the modeline font to vary based on the current mode.
1018 @end itemize
1019
1020
1021 @node 8. The keyboard, 9. The cursor, 7. The modeline, top
1022 @chapter 8. The keyboard
1023
1024 @menu
1025 * 8.1.:: 8.1. What is the difference in key sequences between XEmacs and GNU Emacs?
1026 * 8.2.:: 8.2. How can I make XEmacs recognize the Alt key of my HP workstation as a Meta key?
1027 * 8.3.:: 8.3. How can I stop the down-arrow-key from adding empty lines at the bottom of my buffers?
1028 * 8.4.:: 8.4. I wonder if there is an interactive function that can generate "fake" keyboard events. This way, I could simply map them inside XEmacs.
1029 * 8.5.:: 8.5. I am trying to bind C-. to scroll up by one line and C-; to scroll down by one line...
1030 * 8.6.:: 8.6. I cannot manage to globally bind my @key{Delete} key to something other than the default. How does one do this?
1031 * 8.7.:: 8.7. How can I bind complex functions (or macros) to keys?
1032 * 8.8.:: 8.8. Can the cursor keys scroll the screen a line at a time, rather than the default half page jump? I tend it to find it disorienting.
1033 * 8.9.:: 8.9. How to map "Help" key alone on Sun type4 keyboard?
1034 * 8.10.:: 8.10. How can you type in special characters in XEmacs?
1035 @end menu
1036
1037
1038 @node 8.1.
1039 @section 8.1. What is the difference in in key sequences between XEmacs and GNU Emacs?
1040
1041 The real question might be rephrased as "When should one use the quoted list,
1042 vector, or escaped string representations of key sequences?" Is there any
1043 particular advantage to one representation over another?
1044
1045 From Richard Mlynarik <mly@@adoc.xerox.com>:
1046
1047 @table @asis
1048 @item (meta a)
1049 is a convenience shorthand for the sequence @code{[(meta a)]}.
1050 @code{(global-set-key 'a 'foo)} means the same thing as
1051 @code{(global-set-key '[a] 'foo)}. It could be argued that allowing
1052 such a shorthand just leads to sloppiness and bugs, but it's there, and
1053 it isn't likely to go away.
1054
1055 @item [(meta a)]
1056 is The Right Thing. It corresponds in a one-to-one way with the
1057 internal representation of key-sequences in keymaps.
1058
1059 @item [Meta-a]
1060 is typical FSF Emacs 19 brain damage. As is usual, an existing,
1061 functional design is ignored (XEmacs) and an incompatible and
1062 technically worse kludge is used.
1063
1064 @item "\ea"
1065 is compatible with Emacs 18, but suffers from ASCII Seven-Bit Brain
1066 Damage. I also find it harder to read. Use this if you're trying to
1067 write code which works in every Emacs, but be aware that you can not
1068 express all Possible key-sequences (@kbd{control-9}, @kbd{f1}, etc.)
1069 using this.
1070
1071 @end table
1072
1073
1074 @node 8.2.
1075 @section 8.2. How can I make XEmacs recognize the Alt key of my HP workstation as a Meta key?
1076
1077 Put the following line into a file and load it with xmodmap(1) before
1078 starting XEmacs:
1079
1080 @example
1081 remove Mod1 = Mode_switch
1082 @end example
1083
1084
1085 @node 8.3.
1086 @section 8.3. How can I stop the down-arrow-key from adding empty lines at the bottom of my buffers?
1087
1088 Add the following line to your @file{.emacs} file:
1089
1090 @example
1091 (setq next-line-add-newlines nil)
1092 @end example
1093
1094
1095 @node 8.4.
1096 @section 8.4. I wonder if there is an interactive function that can generate "fake" keyboard events. This way, I could simply map them inside XEmacs.
1097
1098 This seems to work:
1099 @example
1100 (defun cg--generate-char-event (ch)
1101 "Generate an event, as if ch has been typed"
1102 (dispatch-event (character-to-event ch)))
1103
1104 ;; Backspace and Delete stuff
1105 (global-set-key '(backspace)
1106 '(lambda () (interactive) (cg--generate-char-event 127)))
1107 (global-set-key '(unknown_keysym_0x4)
1108 '(lambda () (interactive) (cg--generate-char-event 4)))
1109 @end example
1110
1111
1112 @node 8.5.
1113 @section 8.5. I am trying to bind C-. to scroll up by one line and C-; to scroll down by one line...
1114
1115 Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and
1116 Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}:
1117
1118 @example
1119 (defun scroll-up-one-line ()
1120 (interactive)
1121 (scroll-up 1))
1122
1123 (defun scroll-down-one-line ()
1124 (interactive)
1125 (scroll-down 1))
1126
1127 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
1128 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
1129 @end example
1130
1131 The key point is that you can only bind simple functions to keys; you can not
1132 bind a key to a function that you're also passing arguments to. (See <A
1133 HREF="#ss8.7">8.7 How can I bind complex functions</A> for a better answer.)
1134
1135 @c Fix the above HTML specifier reference
1136
1137 @node 8.6.
1138 @section 8.6. I cannot manage to globally bind my @key{Delete} key to something other than the default. How does one do this?
1139
1140 @example
1141 (defun Foo ()
1142 (interactive)
1143 (message "You hit DELETE"))
1144
1145 (global-set-key "\C-?" 'Foo)
1146 @end example
1147
1148 However, some modes explicitly bind @key{Delete}, so you would need to
1149 add a hook that does @code{local-set-key} for them.
1150
1151
1152 @node 8.7.
1153 @section 8.7. How can I bind complex functions (or macros) to keys?
1154
1155 As an example, say you want the PASTE key on a Sun keyboard to insert the
1156 current Primary X selection at point. You can accomplish this with:
1157
1158 @example
1159 (define-key global-map 'f18 'x-insert-selection)
1160 @end example
1161
1162 However, this only works if there is a current X selection (the
1163 selection will be highlighted). The functionality I like is for the
1164 PASTE key to insert the current X selection if there is one, otherwise
1165 insert the contents of the clipboard. To do this you need to pass
1166 arguments to x-insert-selection. This is done by wrapping the call in a
1167 'lambda form:
1168
1169 @example
1170 (define-key global-map 'f18
1171 (function (lambda () (interactive) (x-insert-selection t nil))))
1172 @end example
1173
1174 This binds the 'f18 key to a "generic" functional object. The interactive
1175 spec is required because only interactive functions can be bound to keys.
1176 Also take a look at the doc for "function".
1177
1178 For the FAQ example you could use:
1179
1180 @example
1181 (global-set-key [(control ?.)]
1182 (function (lambda () (interactive) (scroll-up 1))))
1183 (global-set-key [(control ?;)]
1184 (function (lambda () (interactive) (scroll-up -1))))
1185 @end example
1186
1187 This is fine if you only need a few functions within the lambda body. If
1188 you're doing more it's cleaner to define a separate function as in the
1189 original FAQ example (<A HREF="#ss11.3">question 11.3</A>).
1190
1191 @c Fix the above HTML specifier reference
1192
1193 @node 8.8.
1194 @section 8.8. Can the cursor keys scroll the screen a line at a time, rather than the default half page jump? I tend it to find it disorienting.
1195
1196 Try this:
1197
1198 @example
1199 (defun scroll-one-line-up (&optional arg)
1200 "Scroll the selected window up (forward in the text) one line (or N lines)."
1201 (interactive "p")
1202 (scroll-up (or arg 1)))
1203
1204 (defun scroll-one-line-down (&optional arg)
1205 "Scroll the selected window down (backward in the text) one line (or N)."
1206 (interactive "p")
1207 (scroll-down (or arg 1)))
1208
1209 (global-set-key 'up 'scroll-one-line-up)
1210 (global-set-key 'down 'scroll-one-line-down)
1211 @end example
1212
1213 The following will also work but will affect more than just the cursor
1214 keys (i.e. C-n and C-p):
1215
1216 @example
1217 (setq scroll-step 1)
1218 @end example
1219
1220 @node 8.9.
1221 @section 8.9. How to map "Help" key alone on Sun type4 keyboard?
1222
1223 The following works in GNU Emacs 19:
1224
1225 @example
1226 (global-set-key [help] 'help-command) ;; Help
1227 @end example
1228
1229 The following works in XEmacs 19.13 with the addition of shift:
1230
1231 @example
1232 (global-set-key [(shift help)] 'help-command) ;; Help
1233 @end example
1234
1235 But it doesn't work alone. This is in the file @file{PROBLEMS} which
1236 should have come with your XEmacs installation:
1237
1238 @emph{Emacs ignores the @key{help} key when running OLWM}.
1239
1240 OLWM grabs the @key{help} key, and retransmits it to the appropriate
1241 client using XSendEvent. Allowing Emacs to react to synthetic events is
1242 a security hole, so this is turned off by default. You can enable it by
1243 setting the variable x-allow-sendevents to t. You can also cause fix
1244 this by telling OLWM to not grab the help key, with the null binding
1245 @samp{OpenWindows.KeyboardCommand.Help:}.
1246
1247
1248 @node 8.10.
1249 @section 8.10. How can you type in special characters in XEmacs?
1250
1251 One way is to use the package @file{x-compose}. Then you can use sequences
1252 like @kbd{Compose " a} to get d (a-umlaut), etc.
1253
1254
1255
1256 @node 9. The cursor, 10. The mouse; cutting and pasting, 8. The keyboard, top
1257 @chapter 9. The cursor
1258
1259 @menu
1260 * 9.1.:: 9.1. Is there a way to make the bar cursor a little thicker than one-pixel thick since I lose it?
1261 * 9.2.:: 9.2. On the same subject -- is there a way to get back the old "block" cursor where the cursor covers the character in front of the point?
1262 @end menu
1263
1264
1265 @node 9.1.
1266 @section 9.1. Is there a way to make the bar cursor a little thicker than one-pixel thick since I lose it?
1267
1268 For a 1 pixel bar cursor, use:
1269
1270 @example
1271 (setq bar-cursor t)
1272 @end example
1273
1274 For a 2 pixel bar cursor, use:
1275
1276 @example
1277 (setq bar-cursor 'anything-else)
1278 @end example
1279
1280 You can use a color to make it stand out better:
1281
1282 @example
1283 Emacs*cursorColor: Red
1284 @end example
1285
1286
1287 @node 9.2.
1288 @section 9.2. On the same subject -- is there a way to get back the old "block" cursor where the cursor covers the character in front of the point?
1289
1290 @example
1291 (setq bar-cursor nil)
1292 @end example
1293
1294
1295
1296 @node 10. The mouse; cutting and pasting, 11. Highlighting, 9. The cursor, top
1297 @chapter 10. The mouse; cutting and pasting
1298
1299 @menu
1300 * 10.1.:: 10.1. I keep hitting the middle mouse button by accident and getting stuff pasted into my buffer so how can I turn this off?
1301 * 10.2.:: 10.2. How do I set control/meta/etc modifiers on mouse buttons?
1302 * 10.3.:: 10.3. I do "^x ^b" to get a list of buffers and the entries get highlighted when I move the mouse over them but clicking the left mouse does not do anything.
1303 * 10.4.:: 10.4. How can I get a list of buffers to popup when I hit button 3 on the mouse?
1304 * 10.5.:: 10.5. Why does cut-and-paste not work between XEmacs and a cmdtool?
1305 * 10.6.:: 10.6. How I can set XEmacs up so that it pastes where the cursor is _not_ where the pointer lies?
1306 * 10.7.:: 10.7. How do I select a rectangular region?
1307 * 10.8.:: 10.8. Why does M-w take so long?
1308 @end menu
1309
1310
1311 @node 10.1.
1312 @section 10.1. I keep hitting the middle mouse button by accident and getting stuff pasted into my buffer so how can I turn this off?
1313
1314 Here is an alternative binding, whereby the middle mouse button selects (but
1315 does not cut) the expression under the mouse. Clicking middle on a left or
1316 right paren will select to the matching one. Note that you can use
1317 @code{define-key} or @code{global-set-key}.
1318
1319 @example
1320 (defun Mouse-Set-Point-and-Select (event)
1321 "Sets the point at the mouse location, then marks following form"
1322 (interactive "@@e")
1323 (mouse-set-point event)
1324 (mark-sexp 1)
1325 )
1326 (define-key global-map 'button2 'Mouse-Set-Point-and-Select)
1327 @end example
1328
1329 @c Get this fixed
1330 (Editor's Note -- there is a problem with texinfo/text/html conversion, so
1331 the double at-sign should only be a single, above. I'll fix it one of these
1332 days -- AJR)
1333
1334
1335 @node 10.2.
1336 @section 10.2. How do I set control/meta/etc modifiers on mouse buttons?
1337
1338 Use, for instance, @code{[(meta button1)]}. For example, here is a
1339 common setting for Common Lisp programmers who use the bundled ilisp
1340 package, whereby meta-button1 on a function name will find the file
1341 where the function name was defined, and put you at that location in
1342 the source file.
1343
1344 [Inside a function that gets called by the lisp-mode-hook and ilisp-mode-hook]
1345 @example
1346 (local-set-key [(meta button1)] 'edit-definitions-lisp)
1347 @end example
1348
1349
1350 @node 10.3.
1351 @section 10.3. I do "^x ^b" to get a list of buffers and the entries get highlighted when I move the mouse over them but clicking the left mouse does not do anything.
1352
1353 Use the middle mouse button.
1354
1355
1356 @node 10.4.
1357 @section 10.4. How can I get a list of buffers to popup when I hit button 3 on the mouse?
1358
1359 The following code will actually replace the default popup on button3:
1360
1361 @example
1362 (defun cw-build-buffers ()
1363 "Popup buffer menu."
1364 (interactive "@@")
1365 (run-hooks 'activate-menubar-hook)
1366 (popup-menu (car (find-menu-item current-menubar '("Buffers")))))
1367
1368 (define-key global-map [(button3)] 'cw-build-buffers)
1369 @end example
1370
1371 @c Get this fixed
1372
1373 (Editor's Note -- there is a problem with texinfo/text/html conversion, so
1374 the double at-sign should only be a single, above. I'll fix it one of these
1375 days -- AJR)
1376
1377
1378 @node 10.5.
1379 @section 10.5. Why does cut-and-paste not work between XEmacs and a cmdtool?
1380
1381 We don't know. It's a bug. There does seem to be a work-around,
1382 however. Try running xclipboard first. It appears to fix the problem
1383 even if you exit it. (This should be mostly fixed in 19.13, but we
1384 haven't yet verified that).
1385
1386
1387 @node 10.6.
1388 @section 10.6. How I can set XEmacs up so that it pastes where the cursor is _not_ where the pointer lies?
1389
1390
1391 Try adding the following to your @file{.emacs}:
1392
1393 @example
1394 (define-key global-map 'button2 'x-insert-selection)
1395 @end example
1396
1397 This comes from the @file{sample.emacs} file in @file{etc/}, which has
1398 lots of goodies.
1399
1400
1401 @node 10.7.
1402 @section 10.7. How do I select a rectangular region?
1403
1404
1405 Just select the region normally, then use the rectangle commands (e.g.
1406 @code{kill-rectangle}) on it. The region does not highlight as a
1407 rectangle, but the commands work just fine.
1408
1409 To actually sweep out rectangular regions with the mouse do the
1410 following:
1411
1412 @example
1413 (setq mouse-track-rectangle-p t)
1414 @end example
1415
1416
1417 @node 10.8.
1418 @section 10.8. Why does M-w take so long?
1419
1420 It actually doesn't. It leaves the region visible for a second so that
1421 you can see what area is being yanked. If you start working, though, it
1422 will immediately complete its operation. In other words, it will only
1423 delay for a second if you let it.
1424
1425
1426 @node 11. Highlighting, 12. The menubar and toolbar, 10. The mouse; cutting and pasting, top
1427 @chapter 11. Highlighting
1428
1429 @menu
1430 * 11.1.:: 11.1. How can I highlight selections?
1431 * 11.2.:: 11.2. How do I get a pending-delete type of behavior?
1432 * 11.3.:: 11.3. I do not like my text highlighted while I am doing isearch as I am not able to see whats underneath. How do I turn it off?
1433 * 11.4.:: 11.4. The text gets highlighted when I do C-x C-p (mark-page). Is there a way to turn this feature off?
1434 @end menu
1435
1436
1437 @node 11.1.
1438 @section 11.1. How can I highlight selections?
1439
1440 Use zmacs mode. This mode allows for what some might call gratuitous
1441 highlighting for selected regions (either by setting mark or by using the
1442 mouse). To use, add the following line to your @file{.emacs} file:
1443
1444 @example
1445 (setq zmacs-regions t)
1446 @end example
1447
1448 This is the default behavior.
1449
1450
1451 @node 11.2.
1452 @section 11.2. How do I get a pending-delete type of behavior?
1453
1454 @dfn{Pending delete} is what happens when you select a region (with the
1455 mouse or keyboard) and you press a key to replace the selected region by
1456 the key you typed. Usually backspace kills the selected region.
1457
1458 To get this behavior, add the following line to your @file{.emacs} file:
1459
1460 @example
1461 (require 'pending-del)
1462 @end example
1463
1464
1465 @node 11.3.
1466 @section 11.3. I do not like my text highlighted while I am doing isearch as I am not able to see whats underneath. How do I turn it off?
1467
1468 @example
1469 (setq isearch-highlight nil)
1470 @end example
1471
1472 Note also that isearch-highlight affects query-replace and ispell. Instead
1473 of disabling isearch-highlight you may find that a better solution consists
1474 of customizing the 'isearch' face.
1475
1476
1477 @node 11.4.
1478 @section 11.4. The text gets highlighted when I do C-x C-p (mark-page). Is there a way to turn this feature off?
1479
1480 @example
1481 (setq zmacs-regions nil)
1482 @end example
1483
1484
1485
1486 @node 12. The menubar and toolbar, 13. Scrollbars, 11. Highlighting, top
1487 @chapter 12. The menubar and toolbar
1488
1489 @menu
1490 * 12.1.:: 12.1. How do I get rid of the menu (or menubar) ?
1491 * 12.2.:: 12.2. Can I customize the basic menubar?
1492 * 12.3.:: 12.3. What controls how many buffers are listed in the menu "Buffers" list?
1493 * 12.4.:: 12.4. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working.
1494
1495 @end menu
1496
1497
1498 @node 12.1.
1499 @section 12.1. How do I get rid of the menu (or menubar) ?
1500
1501 Answer: To get rid of the menubar, add to @file{.emacs}:
1502
1503 @example
1504 (set-menubar nil)
1505 @end example
1506
1507
1508 @node 12.2.
1509 @section 12.2. Can I customize the basic menubar?
1510
1511 For an extensive menubar, add the line
1512
1513 @example
1514 (load "big-menubar")
1515 @end example
1516
1517 to your @file{.emacs} file. If you'd like to write your own, this file
1518 provides a good set of examples to start from:
1519
1520 @example
1521 lisp/packages/big-menubar.el
1522 @end example
1523
1524 (starting from your system XEmacs installation directory).
1525
1526
1527 @node 12.3.
1528 @section 12.3. What controls how many buffers are listed in the menu "Buffers" list?
1529
1530 Add the following to your @file{.emacs}, modified as needed:
1531
1532 @example
1533 (setq buffers-menu-max-size 20)
1534 @end example
1535
1536 If you do not want a limit, try
1537
1538 @example
1539 (setq buffers-menu-max-size nil)
1540 @end example
1541
1542
1543 @node 12.4.
1544 @section 12.4. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working.
1545
1546 If you are using the real Motif menubar, this resource is not recognized;
1547 you have to say
1548
1549 @example
1550 Emacs*menubar*fontList: FONT
1551 @end example
1552
1553 If you are using the Lucid menubar, the former resource will be recognized
1554 only if the latter resource is unset. This means that the resource
1555
1556 @example
1557 *fontList: FONT
1558 @end example
1559
1560 will override
1561
1562 @example
1563 Emacs*menubar*font: FONT
1564 @end example
1565
1566 even though the latter is more specific.
1567
1568
1569 @node 13. Scrollbars, 14. Frame Geometry, 12. The menubar and toolbar, top
1570 @chapter 13. Scrollbars
1571
1572 @menu
1573 * 13.1.:: 13.1. How can I disable the scrollbar?
1574 * 13.2.:: 13.2. How can one use resources to change scrollbar colors?
1575 * 13.3.:: 13.3. When I move the scrollbar in an XEmacs window, it moves the point as well, which should not be the default behavior. Is this a bug or a feature? Can I disable it?
1576 @end menu
1577
1578
1579 @node 13.1.
1580 @section 13.1. How can I disable the scrollbar?
1581
1582 To turn disable them for all frames, add the following line to
1583 your @file{.Xdefaults}:
1584
1585 @example
1586 Emacs.scrollBarWidth: 0
1587 @end example
1588
1589 To turn the scrollbar off on a per-frame basis, use the following function:
1590
1591 @example
1592 (set-specifier scrollbar-width (cons (selected-frame) 0))
1593 @end example
1594
1595 You can actually turn the scrollbars on at any level you want by
1596 substituting for (selected-frame) in the above command. For example, to
1597 turn the scrollbars off only in a single buffer:
1598
1599 @example
1600 (set-specifier scrollbar-width (cons (current-buffer) 0))
1601 @end example
1602
1603
1604 @node 13.2.
1605 @section 13.2. How can one use resources to change scrollbar colors?
1606
1607 Here's a recap of how to use resources to change your scrollbar colors:
1608
1609 @example
1610 ! Motif scrollbars
1611
1612 Emacs*XmScrollBar.Background: skyblue
1613 Emacs*XmScrollBar.troughColor: lightgray
1614
1615 ! Athena scrollbars
1616
1617 Emacs*Scrollbar.Foreground: skyblue
1618 Emacs*Scrollbar.Background: lightgray
1619 @end example
1620
1621 Note the capitalization of @samp{Scrollbar} for the Athena widget.
1622
1623
1624 @node 13.3.
1625 @section 13.3. When I move the scrollbar in an XEmacs window, it moves the point as well, which should not be the default behavior. Is this a bug or a feature? Can I disable it?
1626
1627 The current behavior is a feature, not a bug. Point remains at the same
1628 buffer position as long as that position does not scroll off the screen. In
1629 that event, point will end up in either the upper-left or lower-left hand
1630 corner.
1631
1632
1633
1634 @node 14. Frame Geometry, 15. Window/icon title; window manager problems, 13. Scrollbars, top
1635 @chapter 14. Frame Geometry
1636
1637 @menu
1638 * 14.1.:: 14.1. In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of specifying @samp{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but this does not work in XEmacs 19.13.
1639 * 14.2.:: 14.2. In XEmacs 19.11 I specified @samp{Emacs*EmacsScreen.geometry} in my @file{.emacs} but this does not work in XEmacs 19.13.
1640 @end menu
1641
1642
1643 @node 14.1.
1644 @section 14.1. In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of specifying @samp{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but this does not work in XEmacs 19.13.
1645
1646 These two functions now take frame arguments:
1647
1648 @example
1649 (set-frame-width (selected-frame) @var{characters})
1650 (set-frame-height (selected-frame) @var{lines})
1651 @end example
1652
1653 @node 14.2.
1654 @section 14.2. In XEmacs 19.11 I specified @samp{Emacs*EmacsScreen.geometry} in my @file{.emacs} but this does not work in XEmacs 19.13.
1655
1656 We have switched from using the term 'screen' to using the term 'frame'.
1657 The correct entry for your @file{.Xdefaults} is now:
1658
1659 @example
1660 Emacs*EmacsFrame.geometry
1661 @end example
1662
1663
1664 @node 15. Window/icon title; window manager problems, 16. Editing source code (C mode; Lisp mode; etc.), 14. Frame Geometry, top
1665 @chapter 15. Window/icon title; window manager problems
1666
1667 @menu
1668 * 15.1.:: 15.1. How can I get the icon to just say @samp{XEmacs} and not include the name of the current file in it?
1669 * 15.2.:: 15.2. How can I have the window title area display the full directory/name of the current buffer file and not just the name?
1670 * 15.3.:: 15.3. When I run @samp{xterm -name junk} I get an xterm whose class name according to xprop, is @samp{junk}. This is the way it's supposed to work, I think. When I run @samp{xemacs -name junk} the class name is not set to @samp{junk}. It's still @samp{emacs}. What does @samp{xemacs -name} really do? The reason I ask is that my window manager (fvwm) will make a window sticky and I use XEmacs to read my mail. I want that XEmacs window to be sticky, without having to use the window manager's function to set the window sticky. What gives?
1671 @end menu
1672
1673
1674 @node 15.1.
1675 @section 15.1. How can I get the icon to just say @samp{XEmacs} and not include the name of the current file in it?
1676
1677 Add the following line to your @file{.emacs} file:
1678
1679 @example
1680 (setq frame-icon-title-format "XEmacs")
1681 @end example
1682
1683
1684 @node 15.2.
1685 @section 15.2. How can I have the window title area display the full directory/name of the current buffer file and not just the name?
1686
1687 Add the following line to your @file{.emacs} file:
1688
1689 @example
1690 (setq frame-title-format "%S: %f")
1691 @end example
1692 A more sophisticated title might be:
1693
1694 @example
1695 (setq frame-title-format
1696 '("%S: " (buffer-file-name "%f" (dired-directory dired-directory "%b"))))
1697 @end example
1698
1699 That is, use the file name, or the dired-directory, or the buffer name.
1700
1701
1702 @node 15.3.
1703 @section 15.3. When I run @samp{xterm -name junk} I get an xterm whose class name according to xprop, is @samp{junk}. This is the way it's supposed to work, I think. When I run @samp{xemacs -name junk} the class name is not set to @samp{junk}. It's still @samp{emacs}. What does @samp{xemacs -name} really do? The reason I ask is that my window manager (fvwm) will make a window sticky and I use XEmacs to read my mail. I want that XEmacs window to be sticky, without having to use the window manager's function to set the window sticky. What gives?
1704
1705 @samp{xemacs -name} sets the application-name for the program (that is,
1706 the thing which normally comes from @code{argv[0]}.) Using @samp{-name}
1707 is the same as making a copy of the executable with that new name. The
1708 WM_CLASS property on each frame is set to the frame-name, and the
1709 application-class. So, if you did @samp{xemacs -name FOO} and then
1710 created a frame named @samp{BAR}, you'd get an X window with WM_CLASS =
1711 @samp{( "BAR", "Emacs")}. However, the resource hierarchy for this
1712 widget would be
1713
1714 @example
1715 Name: FOO .shell. .pane .BAR
1716 Class: Emacs.TopLevelShell.XmMainWindow.EmacsFrame
1717 @end example
1718
1719 instead of the default
1720
1721 @example
1722 Name: xemacs.shell. .pane .emacs
1723 Class: Emacs .TopLevelShell.XmMainWindow.EmacsFrame
1724 @end example
1725
1726 It is arguable that the first element of WM_CLASS should be set to the
1727 application-name instead of the frame-name, but I think that's less
1728 flexible, since it does not give you the ability to have multiple
1729 frames with different WM_CLASS properties. Another possibility would
1730 be for the default frame name to come from the application name instead
1731 of simply being @samp{emacs}. However, at this point, making that
1732 change would be troublesome: it would mean that many users would have to
1733 make yet another change to their resource files (since the default
1734 frame name would suddenly change from @samp{emacs} to @samp{xemacs}, or
1735 whatever the executable happened to be named), so we'd rather avoid it.
1736
1737 To make a frame with a particular name use:
1738
1739 @example
1740 (make-frame '((name . "the-name")))
1741 @end example
1742
1743
1744
1745 @node 16. Editing source code (C mode; Lisp mode; etc.), 17. Text mode, 15. Window/icon title; window manager problems, top
1746 @chapter 16. Editing source code (C mode; Lisp mode; etc.)
1747
1748 @menu
1749 * 16.1.:: 16.1. How can I do source code highlighting using font-lock?
1750 * 16.2.:: 16.2. How do you arrange it so that XEmacs indents all the clauses of a Common Lisp @code{if} the same amount instead of indenting the 3rd clause differently from the first two?
1751 * 16.3.:: 16.3. I do not like cc-mode. How do I use the old c-mode?
1752 * 16.4.:: 16.4. When I try to edit a postscript file it gets stuck saying: fontifying 'filename' (regexps....) and it just sits there. If I press ctrl-c in the window where XEmacs was started, it suddenly becomes alive again.
1753 * 16.5.:: 16.5. Does anyone know how to get the "More" Syntax Highlighting on by default?
1754 @end menu
1755
1756
1757 @node 16.1.
1758 @section 16.1. How can I do source code highlighting using font-lock?
1759 3991
1760 For most modes, font-lock is already set up and just needs to be turned 3992 For most modes, font-lock is already set up and just needs to be turned
1761 on. This can be done by 3993 on. This can be done by @kbd{M-x font-lock-mode}, or by having XEmacs
1762 3994 automatically start it by adding lines like:
1763 @example 3995
1764 M-x font-lock-mode 3996 @lisp
1765 @end example
1766
1767 or by having XEmacs automatically start it by adding lines like
1768
1769 @example
1770 (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock) 3997 (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)
1771 (add-hook 'dired-mode-hook 'turn-on-font-lock) 3998 (add-hook 'dired-mode-hook 'turn-on-font-lock)
1772 @end example 3999 @end lisp
1773 4000
1774 to your @file{.emacs}. See the file @code{etc/sample.emacs} for more 4001 to your @file{.emacs}. See the file @file{etc/sample.emacs} for more
1775 examples. 4002 examples.
1776 4003
1777 4004 @node Q5.0.2, Q5.0.3, Q5.0.1, Miscellaneous
1778 @node 16.2. 4005 @section I do not like cc-mode. How do I use the old c-mode?
1779 @section 16.2. How do you arrange it so that XEmacs indents all the clauses of a Common Lisp @code{if} the same amount instead of indenting the 3rd clause differently from the first two?
1780
1781 One way is to add, to @file{.emacs}:
1782
1783 @example
1784 (put 'if 'lisp-indent-function nil)
1785 @end example
1786
1787 However, note that the package @file{cl-indent.el} that comes with
1788 XEmacs sets up this kind of indentation by default. @file{cl-indent} also
1789 knows about many other CL-specific forms. To use @file{cl-indent}, one can
1790 do this:
1791
1792 @example
1793 (load "cl-indent")
1794 (setq lisp-indent-function (function common-lisp-indent-function))
1795 @end example
1796
1797 One can also customize @file{cl-indent.el} so it mimics the default @samp{if}
1798 indentation (@samp{then} indented more than the @samp{else}). Here's
1799 how:
1800
1801 @example
1802 (put 'if 'common-lisp-indent-function '(nil nil &body))
1803 @end example
1804
1805 Also, a new version (1.2) of @file{cl-indent.el} was posted to
1806 @samp{comp.emacs.xemacs} on 12/9/94. This version includes more
1807 documentation than previous versions. This may prove useful if you
1808 need to customize any indent-functions. The post can be retrieved by
1809 searching the XEmacs mail archives.
1810
1811
1812 @node 16.3.
1813 @section 16.3. I do not like cc-mode. How do I use the old c-mode?
1814 4006
1815 Well, first off, consider if you really want to do this. cc-mode is 4007 Well, first off, consider if you really want to do this. cc-mode is
1816 much more powerful than the old c-mode. But if you still insist, add 4008 much more powerful than the old c-mode. If you're having trouble
1817 the following lines to your @file{.emacs}: 4009 getting your old offsets to work, try using @code{c-set-offset} instead.
1818 4010 You might also consider using the package @code{cc-compat}.
1819 @example 4011
4012 But, if you still insist, add the following lines to your @file{.emacs}:
4013
4014 @lisp
1820 (fmakunbound 'c-mode) 4015 (fmakunbound 'c-mode)
1821 (makunbound 'c-mode-map) 4016 (makunbound 'c-mode-map)
1822 (fmakunbound 'c++-mode) 4017 (fmakunbound 'c++-mode)
1823 (makunbound 'c++-mode-map) 4018 (makunbound 'c++-mode-map)
1824 (makunbound 'c-style-alist) 4019 (makunbound 'c-style-alist)
1825 (load-library "old-c-mode") 4020 (load-library "old-c-mode")
1826 (load-library "old-c++-mode") 4021 (load-library "old-c++-mode")
1827 @end example 4022 @end lisp
1828 4023
1829 This must be done before any other reference is made to either c-mode 4024 This must be done before any other reference is made to either c-mode or
1830 or c++-mode. 4025 c++-mode.
1831 4026
1832 4027 @node Q5.0.3, Q5.0.4, Q5.0.2, Miscellaneous
1833 @node 16.4. 4028 @section How do I get @samp{More} Syntax Highlighting on by default?
1834 @section 16.4. When I try to edit a postscript file it gets stuck saying: fontifying 'filename' (regexps....) and it just sits there. If I press ctrl-c in the window where XEmacs was started, it suddenly becomes alive again. 4029
1835 4030 For C, C++, and Lisp, you can add the following to your @file{.emacs}:
1836 This was caused by a bug in the Postscript font-lock regular 4031
1837 expressions. It should be fixed in 19.13. For earlier versions of 4032 @lisp
1838 XEmacs, have a look at your @file{.emacs} file. You will probably have
1839 a line like:
1840
1841 @example
1842 (add-hook 'postscript-mode-hook 'turn-on-font-lock)
1843 @end example
1844
1845 Take it out, restart XEmacs, and it won't try to fontify your
1846 postscript files anymore.
1847
1848
1849 @node 16.5.
1850 @section 16.5. Does anyone know how to get the "More" Syntax Highlighting on by default?
1851
1852 For C, C++, and Lisp, you can try adding the following to your @file{.emacs} file:
1853
1854 @example
1855 (setq c-font-lock-keywords c-font-lock-keywords-2) 4033 (setq c-font-lock-keywords c-font-lock-keywords-2)
1856 (setq c++-font-lock-keywords c++-font-lock-keywords-2) 4034 (setq c++-font-lock-keywords c++-font-lock-keywords-2)
1857 (setq lisp-font-lock-keywords lisp-font-lock-keywords-2) 4035 (setq lisp-font-lock-keywords lisp-font-lock-keywords-2)
1858 @end example 4036 @end lisp
1859 4037
1860 4038 @node Q5.0.4, Q5.0.5, Q5.0.3, Miscellaneous
1861 4039 @section How can I enable auto-indent?
1862 @node 17. Text mode, 18. Shell mode, 16. Editing source code (C mode; Lisp mode; etc.), top 4040
1863 @chapter 17. Text mode 4041 Put the following line in your @file{.emacs}:
1864 4042
1865 @menu 4043 @lisp
1866 * 17.1.:: 17.1. How can I enable auto-indent?
1867 * 17.2.:: 17.2. How can I get XEmacs to come up in text mode (auto-fill) by default?
1868 @end menu
1869
1870
1871 @node 17.1.
1872 @section 17.1. How can I enable auto-indent?
1873
1874 Put the following line in your @file{.emacs}.
1875
1876 @example
1877 (setq indent-line-function 'indent-relative-maybe) 4044 (setq indent-line-function 'indent-relative-maybe)
1878 @end example 4045 @end lisp
1879 4046
1880 If you want to get fancy, try @file{filladapt} and @file{fa-extras}, 4047 If you want to get fancy, try the @code{filladapt} package available
1881 available from the Emacs Lisp Archive at Ohio State University. 4048 standard with XEmacs. Put this into your @file{.emacs}:
1882 @ifinfo 4049
1883 Get them at URL: 4050 @lisp
1884 4051 (require 'filladapt)
1885 @example 4052 (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
1886 ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages 4053 (add-hook 'message-mode-hook 'turn-on-filladapt-mode)
1887 @end example 4054 ;;; and so forth ...
1888 @end ifinfo 4055 @end lisp
1889 @ifhtml 4056
1890 Get them at 4057 Please note that the @code{fa-extras} package is no longer useful.
1891 <A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/</A> 4058
1892 @end ifhtml 4059 @node Q5.0.5, Q5.0.6, Q5.0.4, Miscellaneous
1893 4060 @section How can I get XEmacs to come up in text/auto-fill mode by default?
1894 4061
1895 @node 17.2. 4062 Try the following lisp in your @file{.emacs}:
1896 @section 17.2. How can I get XEmacs to come up in text mode (auto-fill) by default? 4063
1897 4064 @lisp
1898 Try the following lisp in your @file{.emacs} file
1899
1900 @example
1901 (setq default-major-mode 'text-mode) 4065 (setq default-major-mode 'text-mode)
1902 (setq text-mode-hook 'turn-on-auto-fill) 4066 (setq text-mode-hook 'turn-on-auto-fill)
1903 @end example 4067 @end lisp
1904 4068
1905 WARNING: note that changing default-major-mode from fundamental-mode can 4069 @strong{WARNING}: note that changing the value of
1906 break a large amount of built-in code that expects newly created buffers to 4070 @code{default-major-mode} from @code{fundamental-mode} can break a large
1907 be in fundamental-mode. (Changing from fundamental-mode to auto-fill 4071 amount of built-in code that expects newly created buffers to be in
1908 text-mode might not wreak too much havoc, but changing to something more 4072 @code{fundamental-mode}. (Changing from @code{fundamental-mode} to
1909 exotic like a lisp-mode would break many Emacs packages. 4073 @code{text-mode} might not wreak too much havoc, but changing to
1910 4074 something more exotic like a lisp-mode would break many Emacs packages).
1911 Note that Emacs defaultly starts up in buffer *scratch* in 4075
1912 initial-major-mode, which defaults to lisp-interaction-mode. Thus 4076 Note that Emacs by default starts up in buffer @code{*scratch*} in
1913 adding the following form to your Emacs init file will cause the 4077 @code{initial-major-mode}, which defaults to
1914 initial *scratch* buffer to be put into auto-fill'ed text-mode. 4078 @code{lisp-interaction-mode}. Thus adding the following form to your
1915 4079 Emacs init file will cause the initial @code{*scratch*} buffer to be put
1916 @example 4080 into auto-fill'ed @code{text-mode}:
4081
4082 @lisp
1917 (setq initial-major-mode 4083 (setq initial-major-mode
1918 (function (lambda () 4084 (function (lambda ()
1919 (text-mode) 4085 (text-mode)
1920 (turn-on-auto-fill)))) 4086 (turn-on-auto-fill))))
1921 @end example 4087 @end lisp
1922 4088
1923 Note that after your init file is loaded, if inhibit-startup-message 4089 Note that after your init file is loaded, if
1924 is null (the default) and the startup buffer is *scratch* then the 4090 @code{inhibit-startup-message} is null (the default) and the startup
1925 startup message will be inserted into *scratch*; it will be removed 4091 buffer is @code{*scratch*} then the startup message will be inserted
1926 after a timeout by erasing the entire *scratch* buffer. Keep in mind 4092 into @code{*scratch*}; it will be removed after a timeout by erasing the
1927 this default usage of *scratch* if you desire any prior manipulation 4093 entire @code{*scratch*} buffer. Keep in mind this default usage of
1928 of *scratch* from within your Emacs init file. In particular, anything 4094 @code{*scratch*} if you desire any prior manipulation of
1929 you insert into *scratch* from your init file will be later erased. 4095 @code{*scratch*} from within your Emacs init file. In particular,
1930 Also, if you change the mode of *scratch* be sure that this will 4096 anything you insert into @code{*scratch*} from your init file will be
1931 not interfere with possible later insertion of the startup message 4097 later erased. Also, if you change the mode of the @code{*scratch*}
1932 (e.g. if you put *scratch* into a nonstandard mode that has automatic 4098 buffer, be sure that this will not interfere with possible later
1933 font lock rules, then the startup message might get fontified in 4099 insertion of the startup message (e.g. if you put @code{*scratch*} into
1934 a strange foreign manner, e.g. as code in some programming language). 4100 a nonstandard mode that has automatic font lock rules, then the startup
1935 4101 message might get fontified in a strange foreign manner, e.g. as code in
1936 4102 some programming language).
1937 4103
1938 @node 18. Shell mode, 19. Mail; VM; GNUS; BBDB; and related, 17. Text mode, top 4104 @node Q5.0.6, Q5.0.7, Q5.0.5, Miscellaneous
1939 @chapter 18. Shell mode 4105 @section How do I start up a second shell buffer?
1940 4106
1941 @menu 4107 In the @code{*shell*} buffer:
1942 * 18.1.:: 18.1. How do I start up a second shell buffer? 4108
1943 * 18.2.:: 18.2. I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke and use a telnet session within it. Everything works fine except that now all ^M's are filtered out by Emacs. Fixes? 4109 @lisp
1944 * 18.3.:: 18.3. If I type a very long command line (like a compile command) into a shell buffer, the output seems to be messed up.
1945 @end menu
1946
1947
1948 @node 18.1.
1949 @section 18.1. How do I start up a second shell buffer?
1950
1951 In the *shell* buffer:
1952
1953 @example
1954 M-x rename-buffer RET *shell-1* RET 4110 M-x rename-buffer RET *shell-1* RET
1955 M-x shell RET 4111 M-x shell RET
1956 @end example 4112 @end lisp
1957 4113
1958 This will then start a second shell. The key is that no buffer named 4114 This will then start a second shell. The key is that no buffer named
1959 *shell* can exist. It might be preferable to use @kbd{M-x 4115 @samp{*shell*} can exist. It might be preferable to use @kbd{M-x
1960 rename-uniquely} to rename the *shell* buffer instead of @kbd{M-x 4116 rename-uniquely} to rename the @code{*shell*} buffer instead of @kbd{M-x
1961 rename-buffer}. 4117 rename-buffer}.
1962 4118
1963 4119 @node Q5.0.7, Q5.0.8, Q5.0.6, Miscellaneous
1964 @node 18.2. 4120 @section Telnet from shell filters too much
1965 @section 18.2. I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke and use a telnet session within it. Everything works fine except that now all ^M's are filtered out by Emacs. Fixes? 4121
4122 I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke
4123 and use a telnet session within it. Everything works fine except that
4124 now all @samp{^M}'s are filtered out by Emacs. Fixes?
1966 4125
1967 Use @kbd{M-x rsh} or @kbd{M-x telnet} to open remote sessions rather 4126 Use @kbd{M-x rsh} or @kbd{M-x telnet} to open remote sessions rather
1968 than doing rsh or telnet within the local shell buffer. 4127 than doing rsh or telnet within the local shell buffer.
1969 4128
1970 4129 @node Q5.0.8, Q5.0.9, Q5.0.7, Miscellaneous
1971 @node 18.3. 4130 @section Why does edt emulation not work?
1972 @section 18.3. If I type a very long command line (like a compile command) into a shell buffer, the output seems to be messed up. 4131
1973 4132 We don't know, but you can use tpu-edt emulation instead, which works
1974 If you see lots of ^G's in the buffer, you're using an old version of 4133 fine and is a little fancier than the standard edt emulation. To do
1975 XEmacs. If the command line seems to be delayed or split into pieces, 4134 this, add the following line to your @file{.emacs}:
1976 you are probably using csh with the @samp{filec} variable set. To fix 4135
1977 this, add the following line to your @file{.cshrc}, after @samp{filec} is set: 4136 @lisp
1978
1979 @example
1980 if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
1981 @end example
1982
1983 @node 19. Mail; VM; GNUS; BBDB; and related, 20. Printing, 18. Shell mode, top
1984 @chapter 19. Mail; VM; GNUS; BBDB; and related
1985
1986 @menu
1987 * 19.1.:: 19.1. How and where I am suppose to set the face attributes for customizing the appearance of messages (i.e. for VM)?
1988 * 19.2.:: 19.2. I seem to have heard that there's a package distributed with XEmacs which will use the echo area to notify you of incoming mail in a rather configurable way (multiple spool files, different actions for different files). What and where is it?
1989 * 19.3.:: 19.3. Is there any way to add more faces and regexps to GNUS without hacking gnus.el?
1990 * 19.4.:: 19.4. What is BBDB?
1991 * 19.5.:: 19.5. I noticed that BBDB evokes an XEmacs bug; is there a fix?
1992 * 19.6.:: 19.6. I'm getting the error 'Wrong type argument: listp :-pos' when I try to start BBDB. What do I do?
1993 * 19.7.:: 19.7. I'm getting the error 'movemail: Permission denied' when I try and start VM. What do I do?
1994 @end menu
1995
1996
1997 @node 19.1.
1998 @section 19.1. How and where I am suppose to set the face attributes for customizing the appearance of messages (i.e. for VM)?
1999
2000 Suppose you want to use:
2001
2002 @example
2003 (set-face-font 'message-highlighted-header-contents
2004 "-adobe-courier-bold-r-normal--12*")
2005 (set-face-foreground 'message-headers "darkslateblue")
2006 (set-face-foreground 'message-header-contents "brown")
2007 (set-face-foreground 'message-highlighted-header-contents "black")
2008 (set-face-foreground 'message-cited-text "darkgreen")
2009 @end example
2010
2011 Well, this should work, provided that @code{(require
2012 'highlight-headers)} is executed first. Also, highlight-headers is
2013 self-contained and you don't need to turn on font-lock mode.
2014
2015
2016 @node 19.2.
2017 @section 19.2. I seem to have heard that there's a package distributed with XEmacs which will use the echo area to notify you of incoming mail in a rather configurable way (multiple spool files, different actions for different files). What and where is it?
2018
2019 It's called reportmail. Add the following to your @file{.emacs}:
2020
2021 @example
2022 (load-library "reportmail")
2023 @end example
2024
2025
2026 @node 19.3.
2027 @section 19.3. Is there any way to add more faces and regexps to GNUS without hacking gnus.el?
2028
2029 You can try the folowing elisp:
2030
2031 @example
2032 (add-hook 'gnus-startup-hook
2033 '(lambda ()
2034 (font-lock-mode)
2035 (set-face-foreground 'message-headers "red")
2036 (set-face-foreground 'message-header-contents "orange")
2037 (set-face-foreground 'message-cited-text "blue")))
2038 @end example
2039
2040
2041 @node 19.4.
2042 @section 19.4. What is BBDB?
2043
2044 BBDB is the Big Brother Database, written by Jamie Zawinski
2045 <jwz@@netscape.com>. It interfaces to VM, mh-e, and GNUS and
2046 conveniently snarfs information about people and other things from
2047 articles and messages that go by.
2048
2049 BBDB is available from the elisp archive
2050
2051 @ifinfo
2052 @example
2053 archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive
2054 @end example
2055 @end ifinfo
2056 @ifhtml
2057 <A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/</A>
2058 @end ifhtml
2059
2060 BBDB has a mailing list devoted to it:
2061
2062 @example
2063 info-bbdb@@cs.uiuc.edu
2064 @end example
2065
2066 This mailing list is archived at
2067
2068 @ifinfo
2069 @example
2070 ftp.cs.uiuc.edu:/pub/bbdb
2071 @end example
2072 @end ifinfo
2073 @ifhtml
2074 <A
2075 HREF="ftp://ftp.cs.uiuc.edu:/pub/bbdb/">ftp.cs.uiuc.edu:/pub/bbdb/</A>
2076 @end ifhtml
2077
2078
2079 @node 19.5.
2080 @section 19.5. I noticed that BBDB evokes an XEmacs bug; is there a fix?
2081
2082 This worked for me:
2083
2084 @example
2085 (setq bbdb-electric-p nil)
2086 @end example
2087
2088 @node 19.6.
2089 @section 19.6. I'm getting the error 'Wrong type argument: listp :-pos' when I try to start BBDB. What do I do?
2090
2091 Discard the copy of mail-extr.el that came with bbdb.
2092
2093 XEmacs 19.12 made the change that you cannot change the value of
2094 interned symbols whose names begin with a colon. The mail-extr.el
2095 that's distributed with 19.12+ is fixed to live with this restriction,
2096 but old copies of mail-extr.el will bomb.
2097
2098
2099 @node 19.7.
2100 @section 19.7. I'm getting the error 'movemail: Permission denied' when I try and start VM. What do I do?
2101
2102 Execute the following two commands. movemail is normally located in the
2103 XEmacs install tree at @file{.../lib/xemacs-19.13/$@{arch@}/movemail}.
2104
2105 @example
2106 chgrp mail movemail
2107 chmod 2555 movemail
2108 @end example
2109
2110
2111 @node 20. Printing, 21. Gnuserv, 19. Mail; VM; GNUS; BBDB; and related, top
2112 @chapter 20. Printing
2113
2114 @menu
2115 * 20.1.:: 20.1. Font-lock looks nice. How can I print (WYSIWYG) the highlighted document?
2116 * 20.2.:: 20.2. My printer is a Postscript printer and @code{lpr} only works for Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x lpr-buffer} to work?
2117 @end menu
2118
2119
2120 @node 20.1.
2121 @section 20.1. Font-lock looks nice. How can I print (WYSIWYG) the highlighted document?
2122
2123 The package ps-print.el, which is now included with XEmacs, provides the
2124 ability to do this. It contains complete instructions on its use:
2125
2126 @example
2127 <xemacs_src_root>/lisp/packages/ps-print.el
2128 @end example
2129
2130
2131 @node 20.2.
2132 @section 20.2. My printer is a Postscript printer and @code{lpr} only works for Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x lpr-buffer} to work?
2133
2134 @example
2135 (setq lpr-command "@var{Command to print text files}")
2136 @end example
2137
2138 Please don't forget to replace @var{Command to print text files} with the
2139 actual command (@samp{enscript}, @samp{nenscript}, etc.)!
2140
2141
2142
2143 @node 21. Gnuserv, 22. Miscellaneous, 20. Printing, top
2144 @chapter 21. Gnuserv
2145
2146 @menu
2147 * 21.1.:: 21.1. How do I disable gnuserv from opening a new frame?
2148 * 21.2.:: 21.2. What do I do to start the gnuserv server so that each subseqeuent XEmacs is a client?
2149 @end menu
2150
2151
2152 @node 21.1.
2153 @section 21.1. How do I disable gnuserv from opening a new frame?
2154
2155 If you set the gnuserv-screen variable to the frame that should be
2156 used to display buffers that are pulled up, a new frame will not be
2157 created. For example, you could put
2158
2159 @example
2160 (setq gnuserv-screen (selected-frame))
2161 @end example
2162
2163 early on in your @file{.emacs}, to ensure that the first frame created is
2164 the one used for your gnuserv buffers.
2165
2166
2167 @node 21.2.
2168 @section 21.2. What do I do to start the gnuserv server so that each subseqeuent XEmacs is a client?
2169
2170 Put the following in your @file{.emacs} file to start the server:
2171
2172 @example
2173 (gnuserv-start)
2174 @end example
2175
2176 Start your first XEmacs as usual. After that, you can do
2177
2178 @example
2179 gnuclient randomfilename
2180 @end example
2181
2182 from the command line to get your existing XEmacs process to open a new
2183 frame and visit randomfilename in that window. When you're done editing
2184 randomfilename, hit @kbd{C-x #} to kill the buffer and get rid of the
2185 frame.
2186
2187
2188
2189 @node 22. Miscellaneous,, 21. Gnuserv, top
2190 @chapter 22. Miscellaneous
2191
2192 @menu
2193 * 22.1.:: 22.1. How do I specify the paths that XEmacs uses for finding files?
2194 * 22.2.:: 22.2. Why does edt emulation not work?
2195 * 22.3.:: 22.3. How can I emulate VI and use it as my default mode?
2196 * 22.4.:: 22.4. Is there some way to get the behavior so that if the current buffer has a file associated with it, the current buffer will use that files name else use the buffer name?
2197 * 22.5.:: 22.5. I have no idea where this is coming from, but ever since I moved from 19.9 to 19.13 I have started seeing that all of my buffers will get a minor mode called @samp{Omit}. I have no idea how it got there nor do I know what it does. What is it?
2198 * 22.6.:: 22.6. How do I turn off the sound?
2199 * 22.7.:: 22.7. Can I have the end of the buffer delimited in some way? Say, with: [END] ?
2200 * 22.8.:: 22.8. Can I insert today's date into buffer?
2201 * 22.9.:: 22.9. Are only certain syntactic character classes available for abbrevs? I didn't see any restrictions in the info.
2202 * 22.10.:: 22.10. Filladapt used to work after I loaded it. Now in 19.13 it doesn't. What gives?
2203 @end menu
2204
2205
2206 @node 22.1.
2207 @section 22.1. How do I specify the paths that XEmacs uses for finding files?
2208
2209 You can specify what paths to use by using a number of different flags
2210 when running configure. See the section MAKE VARIABLES in the top-level
2211 file INSTALL in the XEmacs distribution for a listing of those flags.
2212
2213 Most of the time, however, the simplest fix is: DO NOT specify paths as
2214 you might for FSF GNU Emacs. XEmacs can generally determine the
2215 necessary paths dynamically at run time. The only path that generally
2216 needs to be specified is the root directory to install into. That can
2217 be specified by passing the @code{--prefix} flag to configure. For a
2218 description of the XEmacs install tree, please consult the NEWS file.
2219
2220
2221 @node 22.2.
2222 @section 22.2. Why does edt emulation not work?
2223
2224 We don't know, but you can use tpu-edt emulation instead, which works fine
2225 and is a little fancier than the standard edt emulation. To do this, add
2226 the following line to your @file{.emacs}:
2227
2228 @example
2229 (load "tpu-edt") 4137 (load "tpu-edt")
2230 @end example 4138 @end lisp
2231 4139
2232 If you don't want it to replace Ctrl-h with edt-style help menu add this as 4140 If you don't want it to replace @kbd{C-h} with an edt-style help menu
2233 well: 4141 add this as well:
2234 4142
2235 @example 4143 @lisp
2236 (global-set-key '(control h) 'help-for-help) 4144 (global-set-key '(control h) 'help-for-help)
2237 @end example 4145 @end lisp
2238 4146
2239 4147 @node Q5.0.9, Q5.0.10, Q5.0.8, Miscellaneous
2240 @node 22.3. 4148 @section How can I emulate VI and use it as my default mode?
2241 @section 22.3. How can I emulate VI and use it as my default mode? 4149
2242 4150 Our recommended VI emulator is viper. To make viper-mode the default,
2243 Our recommended VI emulator is viper. To put the current buffer into 4151 add this to your @file{.emacs}:
2244 viper-mode, use the command: 4152
2245 4153 @lisp
2246 @example 4154 (viper-mode)
2247 M-x viper 4155 @end lisp
2248 @end example 4156
2249 4157 Michael Kifer <kifer@@CS.SunySB.EDU> writes:
2250 To make viper-mode the default, add the following lines to your @file{.emacs}: 4158
2251 4159 @quotation
2252 @example 4160 This should be added as close to the top of @file{.emacs} as you can get
2253 (load-library "viper") 4161 it, otherwise some minor modes may not get viper-ized.
2254 (setq term-setup-hook 'viper) 4162 @end quotation
2255 (setq find-file-hooks 'viper) 4163
2256 (setq find-file-not-found-hooks 'viper) 4164 @node Q5.0.10, Q5.0.11, Q5.0.9, Miscellaneous
2257 @end example 4165 @section What is @code{Omit} minor mode?
2258 4166
2259 4167 I have no idea where this is coming from, but ever since I moved from
2260 @node 22.4. 4168 19.9 to 19.13 I have started seeing that all of my buffers will get a
2261 @section 22.4. Is there some way to get the behavior so that if the current buffer has a file associated with it, the current buffer will use that files name else use the buffer name? 4169 minor mode called @code{Omit}. I have no idea how it got there nor do I
2262 4170 know what it does. What is it?
2263 Just set frame-title-format from find-file-hooks. Alternatively, look at 4171
2264 the answer to question 15.2. 4172 It's part of dired. In dired, you can type M-o to get Omit mode and
2265 4173 that will ignore uninteresting files (checkpoint files and backups, for
2266 In addition, one could set modeline-format. 4174 example). You get Omit in the modeline everywhere because the variable
2267 4175 @code{dired-omit-files-p} is globally set to some non-nil value. If you
2268 4176 want this functionality, it's probably best to use a hook:
2269 @node 22.5. 4177
2270 @section 22.5. I have no idea where this is coming from, but ever since I moved from 19.9 to 19.13 I have started seeing that all of my buffers will get a minor mode called @samp{Omit}. I have no idea how it got there nor do I know what it does. What is it? 4178 @lisp
2271
2272 It's part of dired. In dired, you can type M-o to get Omit mode and that will
2273 ignore uninteresting files (checkpoint files and backups, for example). You
2274 get Omit in the modeline everywhere because the variable `dired-omit-files-p'
2275 is globally set to some non-nil value. If you want this functionality, it's
2276 probably best to use a hook:
2277
2278 @example
2279 (add-hook 'dired-after-readin-hook '(lambda () (dired-omit-toggle))) 4179 (add-hook 'dired-after-readin-hook '(lambda () (dired-omit-toggle)))
2280 @end example 4180 @end lisp
2281 4181
2282 Alternatively, since it seems odd to toggle the omit 4182 Alternatively, since it seems odd to toggle the omit state with every
2283 state with every readin, since readin can happen many times in a Dired 4183 readin, since readin can happen many times in a Dired buffer, you can
2284 buffer, you can try this hook to correct the "Omit" problem: 4184 try this hook to correct the @code{Omit} problem:
2285 4185
2286 @example 4186 @lisp
2287 (add-hook 'dired-mode-hook 4187 (add-hook 'dired-mode-hook
2288 (function (lambda () 4188 (function (lambda ()
2289 ;; `dired-omit-files-p' is made buffer-local by "dired-x.el", but 4189 ;; `dired-omit-files-p' is made buffer-local by "dired-x.el", but
2290 ;; maybe not soon enough. 4190 ;; maybe not soon enough.
2291 (make-local-variable 'dired-omit-files-p) 4191 (make-local-variable 'dired-omit-files-p)
2292 (setq dired-omit-files-p t)))) 4192 (setq dired-omit-files-p t))))
2293 @end example 4193 @end lisp
2294 4194
2295 This is only run once, when the Dired buffer is created. 4195 This is only run once, when the Dired buffer is created.
2296 4196
2297 4197 @node Q5.0.11, Q5.0.12, Q5.0.10, Miscellaneous
2298 @node 22.6. 4198 @section Filladapt doesn't work in 19.13?
2299 @section 22.6. How do I turn off the sound? 4199
2300 4200 Filladapt 2.x is included in 19.13+. In it filladapt is now a minor
2301 Add the following line to your @file{.emacs} file: 4201 mode and minor modes are traditionally off by default. The following
2302 4202 added to your @file{.emacs} will turn it on for all buffers:
2303 @example 4203
4204 @lisp
4205 (setq-default filladapt-mode t)
4206 @end lisp
4207
4208 Use @code{turn-on-filladapt-mode} to turn Filladapt on in particular
4209 major modes, like this:
4210
4211 @lisp
4212 (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
4213 @end lisp
4214
4215 @node Q5.0.12, Q5.0.13, Q5.0.11, Miscellaneous
4216 @section How do I disable gnuserv from opening a new frame?
4217
4218 If you set the @code{gnuserv-frame} variable to the frame that should be
4219 used to display buffers that are pulled up, a new frame will not be
4220 created. For example, you could put
4221
4222 @lisp
4223 (setq gnuserv-frame (selected-frame))
4224 @end lisp
4225
4226 early on in your @file{.emacs}, to ensure that the first frame created
4227 is the one used for your gnuserv buffers.
4228
4229 Starting in 19.15, there is an option to set the gnuserv target to
4230 the current frame. See
4231 @code{Options->"Other Window" Location->Make current frame gnuserv target}
4232
4233 @node Q5.0.13, Q5.0.14, Q5.0.12, Miscellaneous
4234 @section How do I start gnuserv so that each subsequent XEmacs is a client?
4235
4236 Put the following in your @file{.emacs} file to start the server:
4237
4238 @lisp
4239 (gnuserv-start)
4240 @end lisp
4241
4242 Start your first XEmacs as usual. After that, you can do:
4243
4244 @example
4245 gnuclient randomfilename
4246 @end example
4247
4248 from the command line to get your existing XEmacs process to open a new
4249 frame and visit randomfilename in that window. When you're done editing
4250 randomfilename, hit @kbd{C-x #} to kill the buffer and get rid of the
4251 frame.
4252
4253 @node Q5.0.14, Q5.0.15, Q5.0.13, Miscellaneous
4254 @section Strange things are happening in Shell Mode.
4255
4256 Sometimes (i.e. it's not repeatable, and I can't work out why it
4257 happens) when I'm typing into shell mode, I hit return and only a
4258 portion of the command is given to the shell, and a blank prompt is
4259 returned. If I hit return again, the rest of the previous command is
4260 given to the shell.
4261
4262 Martin Buchholz <Martin.Buchholz@@sun.com> writes:
4263
4264 @quotation
4265 There is a known problem with interaction between @code{csh} and the
4266 @code{filec} option and XEmacs. You should add the following to your
4267 @file{.cshrc}:
4268
4269 @example
4270 if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
4271 @end example
4272 @end quotation
4273
4274 @node Q5.0.15, Q5.0.16, Q5.0.14, Miscellaneous
4275 @section Where do I get the latest CC Mode?
4276
4277 Barry A. Warsaw <bwarsaw@@cnri.reston.va.us> writes:
4278
4279 @quotation
4280 This can be had from <URL:http://www.python.org/ftp/emacs/>.
4281 @end quotation
4282
4283 @node Q5.0.16, Q5.0.17, Q5.0.15, Miscellaneous
4284 @section I find auto-show-mode disconcerting. How do I turn it off?
4285
4286 @code{auto-show-mode} controls whether or not a horizontal scrollbar
4287 magically appears when a line is too long to be displayed. This is
4288 enabled by default. To turn it off, put the following in your
4289 @file{.emacs}:
4290
4291 @lisp
4292 (setq auto-show-mode nil)
4293 (setq-default auto-show-mode nil)
4294 @end lisp
4295
4296 @node Q5.0.17, Q5.0.18, Q5.0.16, Miscellaneous
4297 @section How can I get two instances of info?
4298
4299 You can't. The info package does not provide for multiple info buffers.
4300
4301 @node Q5.0.18, Q5.0.19, Q5.0.17, Miscellaneous
4302 @section I upgraded to XEmacs 19.14 and gnuserv stopped working.
4303
4304 Mark Daku <daku@@nortel.ca> writes:
4305
4306 @quotation
4307 It turns out I was using an older version of gnuserv. The installation
4308 didn't put the binary into the public bin directory. It put it in
4309 @file{lib/xemacs-19.14/hppa1.1-hp-hpux9.05/gnuserv}. Shouldn't it have
4310 been put in @file{bin/hppa1.1-hp-hpux9.0}?
4311 @end quotation
4312
4313 @node Q5.0.19, Q5.1.1, Q5.0.18, Miscellaneous
4314 @section Is there something better than LaTeX mode?
4315
4316 David Kastrup <dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de> writes:
4317
4318 @quotation
4319 The standard TeX modes leave much to be desired, and are somewhat
4320 leniently maintained. Serious TeX users use AucTeX (@xref{Q4.7.1}).
4321 @end quotation
4322
4323 @node Q5.1.1, Q5.1.2, Q5.0.19, Miscellaneous
4324 @section What is the difference in key sequences between XEmacs and GNU Emacs?
4325
4326 Erik Naggum <erik@@naggum.no> writes;
4327
4328 @quotation
4329 Emacs has a legacy of keyboards that produced characters with modifier
4330 bits, and therefore map a variety of input systems into this scheme even
4331 today. XEmacs is instead optimized for X events. This causes an
4332 incompatibility in the way key sequences are specified, but both Emacs
4333 and XEmacs will accept a key sequence as a vector of lists of modifiers
4334 that ends with a key, e.g., to bind M-C-a, you would say [(meta control
4335 a)] in both Emacsen. XEmacs has an abbreviated form for a single key,
4336 just (meta control a). Emacs has an abbreviated form for the Control
4337 and the Meta modifiers to string-characters (the ASCII characters), as
4338 in "\M-\C-a". XEmacs users need to be aware that the abbreviated form
4339 works only for one-character key sequences, while Emacs users need to be
4340 aware that the string-character is rather limited. Specifically, the
4341 string-character can accomodate only 256 different values, 128 of which
4342 have the Meta modifier and 128 of which have not. In each of these
4343 blocks, only 32 characters have the Control modifier. Whereas [(meta
4344 control A)] differs from [(meta control a)] because the case differs,
4345 "\M-\C-a" and "\M-\C-A" do not. Programmers are advised to use the full
4346 common form, both because it is more readable and less error-prone, and
4347 because it is supported by both Emacsen.
4348 @end quotation
4349
4350 @node Q5.1.2, Q5.1.3, Q5.1.1, Miscellaneous
4351 @section Can I generate "fake" keyboard events?
4352
4353 I wonder if there is an interactive function that can generate "fake"
4354 keyboard events. This way, I could simply map them inside XEmacs.
4355
4356 This seems to work:
4357
4358 @lisp
4359 (defun cg--generate-char-event (ch)
4360 "Generate an event, as if ch has been typed"
4361 (dispatch-event (character-to-event ch)))
4362
4363 ;; Backspace and Delete stuff
4364 (global-set-key '(backspace)
4365 '(lambda () (interactive) (cg--generate-char-event 127)))
4366 (global-set-key '(unknown_keysym_0x4)
4367 '(lambda () (interactive) (cg--generate-char-event 4)))
4368 @end lisp
4369
4370 @node Q5.1.3, Q5.1.4, Q5.1.2, Miscellaneous
4371 @section How can I visit several marked files at once in dired?
4372
4373 You can put this in your @file{.emacs} and then @kbd{F} will find marked
4374 files:
4375
4376 @lisp
4377 (add-hook
4378 'dired-load-hook
4379 (function (lambda ()
4380 (define-key dired-mode-map "F"
4381 (function
4382 (lambda () (interactive)
4383 (mapcar 'find-file
4384 (dired-mark-get-files))))))))
4385 @end lisp
4386
4387 Aki Vehtari <Aki.Vehtari@@hut.fi> writes:
4388
4389 @quotation
4390 You can also use @file{dired-x.el} (Sebastian Kremer's Extra DIRED). It
4391 defines F and makes other improvements too. See @file{dired/dired-x.el}
4392 in the XEmacs distribution.
4393
4394 In your @file{~/.emacs}, add:
4395
4396 @lisp
4397 (setq dired-load-hook '(lambda () (load "dired-x")))
4398 @end lisp
4399 @end quotation
4400
4401 @node Q5.1.4, Q5.1.5, Q5.1.3, Miscellaneous
4402 @section In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX?
4403
4404 The real problem is out of date software. Upgrade to later versions of
4405 Gnus and AUC-TeX where this problem doesn't exist.
4406
4407 The problem lies with the needs for an Emacs function,
4408 @code{set-text-properties}, which generally isn't required by XEmacs.
4409 The solutions include adding the following code to your @file{.emacs}:
4410
4411 @lisp
4412 (fset 'set-text-properties (symbol-function 'ignore))
4413 @end lisp
4414
4415 or
4416
4417 @lisp
4418 (defadvice set-text-properties (around ignore-strings activate)
4419 "Ignore strings."
4420 (or (stringp (ad-get-arg 3))
4421 ad-do-it))
4422 @end lisp
4423
4424 The best is probably the canonical solution (posted by C.Thompson, on
4425 10/17/95):
4426
4427 @lisp
4428 (defun set-text-properties (start end props &optional buffer)
4429 "You should NEVER use this function. It is ideologically blasphemous.
4430 It is provided only to ease porting of broken FSF Emacs programs."
4431 (if (stringp buffer) nil
4432 (map-extents
4433 #'(lambda (extent ignored)
4434 (remove-text-properties
4435 start end (list (extent-property extent 'text-prop) nil)
4436 buffer))
4437 buffer start end nil nil 'text-prop)
4438 (add-text-properties start end props buffer)))
4439 @end lisp
4440
4441 @node Q5.1.5, Q5.2.1, Q5.1.4, Miscellaneous
4442 @section How do I put a glyph as annotation in a buffer?
4443
4444 Thomas Feuster <feuster@@tp4.physik.uni-giessen.de> writes:
4445
4446 @quotation
4447 @lisp
4448 (let ((image-glyph (make-glyph-internal)))
4449 (seems to be unavoidable to do 'make-glyph-internal')
4450 @end lisp
4451
4452 Now for viewing files:
4453
4454 @lisp
4455 (set-glyph-image image-glyph view-graph-file-buf))
4456 @end lisp
4457
4458 For viewing already loaded buffers:
4459
4460 @lisp
4461 (setq image-glyph (make-glyph
4462 (vector view-graph-file-format :data
4463 (buffer-substring
4464 (point-min)
4465 (point-max)))))
4466 @end lisp
4467
4468 The thing I couldn't figure out is how to make XEmacs guess the format
4469 from the contents - like it does for files. So it's a real pain to
4470 extract the format from the extensions of the file-name...
4471 @end quotation
4472
4473 @node Q5.2.1, Q5.2.2, Q5.1.5, Miscellaneous
4474 @section How do I turn off the sound?
4475
4476 Add the following line to your @file{.emacs}:
4477
4478 @lisp
2304 (setq bell-volume 0) 4479 (setq bell-volume 0)
2305 (setq sound-alist nil) 4480 (setq sound-alist nil)
2306 @end example 4481 @end lisp
2307 4482
2308 4483 @node Q5.2.2, Q5.2.3, Q5.2.1, Miscellaneous
2309 @node 22.7. 4484 @section How do I get funky sounds instead of a boring beep?
2310 @section 22.7. Can I have the end of the buffer delimited in some way? Say, with: [END] ? 4485
2311 4486 Make sure your XEmacs was compiled with sound support, and then put this
2312 @example 4487 in your @file{.emacs}:
4488
4489 @lisp
4490 (load-default-sounds)
4491 @end lisp
4492
4493 The sound support in XEmacs 19.14 is greatly improved over previous
4494 versions.
4495
4496 @node Q5.2.3, Q5.2.4, Q5.2.2, Miscellaneous
4497 @section What's NAS, how do I get it?
4498
4499 @xref{Q2.0.3} for an explanation of the @dfn{Network Audio System}.
4500
4501 @node Q5.2.4, Q5.3.1, Q5.2.3, Miscellaneous
4502 @section Sunsite sounds don't play.
4503
4504 I'm having some trouble with sounds I've downloaded from sunsite. They
4505 play when I run them through @code{showaudio} or cat them directly to
4506 @file{/dev/audio}, but XEmacs refuses to play them.
4507
4508 Markus Gutschke <gutschk@@uni-muenster.de> writes:
4509
4510 @quotation
4511 [Many of] These files have an (erroneous) 24byte header that tells about
4512 the format that they have been recorded in. If you cat them to
4513 @file{/dev/audio}, the header will be ignored and the default behavior
4514 for /dev/audio will be used. This happens to be 8kHz uLaw. It is
4515 probably possible to fix the header by piping through @code{sox} and
4516 passing explicit parameters for specifying the sampling format; you then
4517 need to perform a 'null' conversion from SunAudio to SunAudio.
4518 @end quotation
4519
4520 @node Q5.3.1, Q5.3.2, Q5.2.4, Miscellaneous
4521 @section How do you make XEmacs indent CL if-clauses correctly?
4522
4523 I'd like XEmacs to indent all the clauses of a Common Lisp @code{if} the
4524 same amount instead of indenting the 3rd clause differently from the
4525 first two.
4526
4527 One way is to add, to @file{.emacs}:
4528
4529 @lisp
4530 (put 'if 'lisp-indent-function nil)
4531 @end lisp
4532
4533 However, note that the package @file{cl-indent.el} that comes with
4534 XEmacs sets up this kind of indentation by default. @code{cl-indent}
4535 also knows about many other CL-specific forms. To use @code{cl-indent},
4536 one can do this:
4537
4538 @lisp
4539 (load "cl-indent")
4540 (setq lisp-indent-function (function common-lisp-indent-function))
4541 @end lisp
4542
4543 One can also customize @file{cl-indent.el} so it mimics the default
4544 @code{if} indentation @code{then} indented more than the @code{else}.
4545 Here's how:
4546
4547 @lisp
4548 (put 'if 'common-lisp-indent-function '(nil nil &body))
4549 @end lisp
4550
4551 Also, a new version (1.2) of @file{cl-indent.el} was posted to
4552 comp.emacs.xemacs on 12/9/94. This version includes more documentation
4553 than previous versions. This may prove useful if you need to customize
4554 any indent-functions.
4555
4556 NB: I would have thought with the passage of time this would be the
4557 standard version by now, but that appears not to be the case. The
4558 version of filladapt included with 19.14 is last dated 1993, and does
4559 not have a version number.
4560
4561 @node Q5.3.2, Q5.3.3, Q5.3.1, Miscellaneous
4562 @section Fontifying hang when editing a postscript file.
4563
4564 When I try to edit a postscript file it gets stuck saying:
4565 @samp{fontifying 'filename' (regexps....)} and it just sits there. If I
4566 press @kbd{C-c} in the window where XEmacs was started, it suddenly
4567 becomes alive again.
4568
4569 This was caused by a bug in the Postscript font-lock regular
4570 expressions. It was fixed in 19.13. For earlier versions of XEmacs,
4571 have a look at your @file{.emacs} file. You will probably have a line
4572 like:
4573
4574 @lisp
4575 (add-hook 'postscript-mode-hook 'turn-on-font-lock)
4576 @end lisp
4577
4578 Take it out, restart XEmacs, and it won't try to fontify your postscript
4579 files anymore.
4580
4581 @node Q5.3.3, Q5.3.4, Q5.3.2, Miscellaneous
4582 @section How can I print WYSIWYG a font-locked buffer?
4583
4584 Font-lock looks nice. How can I print (WYSIWYG) the highlighted
4585 document?
4586
4587 The package @file{ps-print.el}, which is now included with XEmacs,
4588 provides the ability to do this. The source code contains complete
4589 instructions on its use, in
4590 @file{<xemacs_src_root>/lisp/packages/ps-print.el}.
4591
4592 @node Q5.3.4, Q5.3.5, Q5.3.3, Miscellaneous
4593 @section Getting @kbd{M-x lpr} to work with postscript printer.
4594
4595 My printer is a Postscript printer and @code{lpr} only works for
4596 Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x
4597 lpr-buffer} to work?
4598
4599 Put something like this in your @file{.emacs}:
4600
4601 @lisp
4602 (setq lpr-command "a2ps")
4603 (setq lpr-switches '("-p" "-1"))
4604 @end lisp
4605
4606 If you don't use a2ps to convert ASCII to postscript (why not, it's
4607 free?), replace with the command you do use. Note also that some
4608 versions of a2ps require a @samp{-Pprinter} to ensure spooling.
4609
4610 @node Q5.3.5, Q5.3.6, Q5.3.4, Miscellaneous
4611 @section How do I specify the paths that XEmacs uses for finding files?
4612
4613 You can specify what paths to use by using a number of different flags
4614 when running configure. See the section MAKE VARIABLES in the top-level
4615 file INSTALL in the XEmacs distribution for a listing of those flags.
4616
4617 Most of the time, however, the simplest fix is: @strong{do not} specify
4618 paths as you might for GNU Emacs. XEmacs can generally determine the
4619 necessary paths dynamically at run time. The only path that generally
4620 needs to be specified is the root directory to install into. That can
4621 be specified by passing the @code{--prefix} flag to configure. For a
4622 description of the XEmacs install tree, please consult the @file{NEWS}
4623 file.
4624
4625 @node Q5.3.6, Q5.3.7, Q5.3.5, Miscellaneous
4626 @section [This question intentionally left blank]
4627
4628 Obsolete question, left blank to avoid renumbering.
4629
4630 @node Q5.3.7, Q5.3.8, Q5.3.6, Miscellaneous
4631 @section Can I have the end of the buffer delimited in some way?
4632
4633 Say, with: [END]?
4634
4635 Use this:
4636
4637 @lisp
2313 (make-annotation "[END]" (point-max) 'text (current-buffer)) 4638 (make-annotation "[END]" (point-max) 'text (current-buffer))
2314 @end example 4639 @end lisp
2315 4640
2316 Note that you might want to put this in a hook. 4641 Note that you might want to put this in a hook. Since
2317 4642 @code{make-annotation} is not defined by default, you might also need:
2318 You might also need: 4643
2319 4644 @lisp
2320 @example
2321 (require 'annotations) 4645 (require 'annotations)
2322 @end example 4646 @end lisp
2323 4647
2324 since @code{make-annotation} is not defined by default. 4648 @node Q5.3.8, Q5.3.9, Q5.3.7, Miscellaneous
2325 4649 @section How do I insert today's date into a buffer?
2326 4650
2327 @node 22.8. 4651 Like this:
2328 @section 22.8. Can I insert today's date into buffer? 4652
2329 4653 @lisp
2330 Use this lisp in a function:
2331
2332 @example
2333 (insert (current-time-string)) 4654 (insert (current-time-string))
2334 @end example 4655 @end lisp
2335 4656
2336 4657 @node Q5.3.9, Q5.3.10, Q5.3.8, Miscellaneous
2337 @node 22.9. 4658 @section Are only certain syntactic character classes available for abbrevs?
2338 @section 22.9. Are only certain syntactic character classes available for abbrevs? I didn't see any restrictions in the info. 4659
2339 4660 Markus Gutschke <gutschk@@uni-muenster.de> writes:
2340 Yes, abbrevs only expand word-syntax strings. So, in c-mode if you 4661
2341 wanted to expand something to @samp{define }, you would be able to 4662 @quotation
2342 expand @samp{xd} but not @samp{#d}. 4663 Yes, abbrevs only expands word-syntax strings. While XEmacs does not
2343 4664 prevent you from defining (e.g. with @kbd{C-x a g} or @kbd{C-x a l})
2344 4665 abbrevs that contain special characters, it will refuse to expand
2345 @node 22.10. 4666 them. So you need to ensure, that the abbreviation contains letters and
2346 @section 22.10. Filladapt used to work after I loaded it. Now in 19.13 it doesn't. What gives? 4667 digits only. This means that @samp{xd}, @samp{d5}, and @samp{5d} are
2347 4668 valid abbrevs, but @samp{&d}, and @samp{x d} are not.
2348 Filladapt 2.x is included in 19.13+. In it filladapt is now a minor 4669
2349 mode and minor modes are traditionally off by default. The following 4670 If this sounds confusing to you, (re-)read the online documentation for
2350 added to your .emacs will turn it on for all buffers: 4671 abbrevs (@kbd{C-h i m XEmacs RET m Abbrevs RET}), and then come back and
2351 4672 read this question/answer again.
2352 @example 4673 @end quotation
2353 (setq-default filladapt-mode t) 4674
2354 @end example 4675 @node Q5.3.10, Q5.3.11, Q5.3.9, Miscellaneous
2355 4676 @section How can I get those oh-so-neat X-Face lines?
2356 Use @code{turn-on-filladapt-mode} to turn Filladapt on in particular 4677
2357 major modes, like this: 4678 Firstly there is an ftp site which describes X-faces and has the
2358 4679 associated tools mentioned below, at
2359 @example 4680 <URL:ftp://ftp.cs.indiana.edu:/pub/faces/>.
2360 (add-hook 'text-mode-hook 'turn-on-filladapt-mode) 4681
2361 @end example 4682 Then the steps are
2362 4683
2363 4684 @enumerate
2364 @page 4685 @item
2365 @contents 4686 Create 48x48x1 bitmap with your favorite tool
4687
4688 @item
4689 Convert to "icon" format using one of xbm2ikon, pbmtoicon, etc.,
4690 and then compile the face.
4691
4692 @item
4693 @example
4694 cat file.xbm | xbm2ikon |compface > file.face
4695 @end example
4696
4697 @item
4698 Then be sure to quote things that are necessary for emacs strings:
4699
4700 @example
4701 cat ./file.face | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g' > ./file.face.quoted
4702 @end example
4703
4704 @item
4705 Then set up emacs to include the file as a mail header - there were a
4706 couple of suggestions here---either something like:
4707
4708 @lisp
4709 (setq mail-default-headers
4710 "X-Face: <Ugly looking text string here>")
4711 @end lisp
4712
4713 Or, alternatively, as:
4714
4715 @lisp
4716 (defun mail-insert-x-face ()
4717 (save-excursion
4718 (goto-char (point-min))
4719 (search-forward mail-header-separator)
4720 (beginning-of-line nil)
4721 (insert "X-Face:")
4722 (insert-file "~/.face")))
4723
4724 (add-hook 'mail-setup-hook 'mail-insert-x-face)
4725 @end lisp
4726 @end enumerate
4727
4728 However, 2 things might be wrong:
4729
4730 Some versions of pbmtoicon produces some header lines that is not
4731 expected by the version of compface that I grabbed. So I found I had to
4732 include a @code{tail +3} in the pipeline like this:
4733
4734 @example
4735 cat file.xbm | xbm2ikon | tail +3 |compface > file.face
4736 @end example
4737
4738 Some people have also found that if one uses the @code{(insert-file)}
4739 method, one should NOT quote the face string using the sed script .
4740
4741 It might also be helpful to use Stig's <stig@@hackvan.com> script
4742 (included in the compface distribution at XEmacs.org) to do the
4743 conversion. For convenience xbm2xface is available for anonymous FTP at
4744 <URL:ftp://ftp.miranova.com/pub/xemacs/xbm2xface.pl>.
4745
4746 Contributors for this item:
4747
4748 Paul Emsley,
4749 Ricardo Marek,
4750 Amir J. Katz,
4751 Glen McCort,
4752 Heinz Uphoff,
4753 Peter Arius,
4754 Paul Harrison, and
4755 Vegard Vesterheim
4756
4757 @node Q5.3.11, Q5.3.12, Q5.3.10, Miscellaneous
4758 @section How do I add new Info directories?
4759
4760 You use something like:
4761
4762 @lisp
4763 (setq Info-directory-list (cons
4764 (expand-file-name "~/info")
4765 Info-default-directory-list))
4766 @end lisp
4767
4768 David Masterson <davidm@@prism.kla.com> writes:
4769
4770 @quotation
4771 Emacs Info and XEmacs Info do many things differently. If you're trying to
4772 support a number of versions of Emacs, here are some notes to remember:
4773
4774 @enumerate
4775 @item
4776 Emacs Info scans @code{Info-directory-list} from right-to-left while
4777 XEmacs Info reads it from left-to-right, so append to the @emph{correct}
4778 end of the list.
4779
4780 @item
4781 Use @code{Info-default-directory-list} to initialize
4782 @code{Info-directory-list} @emph{if} it is available at startup, but not
4783 all Emacsen define it.
4784
4785 @item
4786 Emacs Info looks for a standard @file{dir} file in each of the
4787 directories scanned from #1 and magically concatenates them together.
4788
4789 @item
4790 XEmacs Info looks for a @file{localdir} file (which consists of just the
4791 menu entries from a @file{dir} file) in each of the directories scanned
4792 from #1 (except the first), does a simple concatentation of them, and
4793 magically attaches the resulting list to the end of the menu in the
4794 @file{dir} file in the first directory.
4795 @end enumerate
4796
4797 Another alternative is to convert the documentation to HTML with
4798 texi2html and read it from a web browser like Lynx or W3.
4799 @end quotation
4800
4801 @node Q5.3.12, , Q5.3.11, Miscellaneous
4802 @section What do I need to change to make printing work?
4803
4804 For regular printing there are two variables that can be customized.
4805
4806 @table @code
4807 @item lpr-command
4808 This should be set to a command that takes standard input and sends
4809 it to a printer. Something like:
4810
4811 @lisp
4812 (setq lpr-command "lp")
4813 @end lisp
4814
4815 @item lpr-switches
4816 This should be set to a list that contains whatever the print command
4817 requires to do its job. Something like:
4818
4819 @lisp
4820 (setq lpr-switches '("-depson"))
4821 @end lisp
4822 @end table
4823
4824 For postscript printing there are three analogous variables to
4825 customize.
4826
4827 @table @code
4828 @item ps-lpr-command
4829 This should be set to a command that takes postscript on standard input
4830 and directs it to a postscript printer.
4831
4832 @item ps-lpr-switches
4833 This should be set to a list of switches required for
4834 @code{ps-lpr-command} to do its job.
4835
4836 @item ps-print-color-p
4837 This boolean variable should be set @code{t} if printing will be done in
4838 color, otherwise it should be set to @code{nil}.
4839 @end table
4840
4841 NOTE: It is an undocumented limitation in XEmacs that postscript
4842 printing (the @code{Pretty Print Buffer} menu item) @strong{requires} a
4843 window system environment. It cannot be used outside of X11.
4844
4845 @node Current Events, , Miscellaneous, Top
4846 @chapter What the Future Holds
4847
4848 This is part 6 of the XEmacs Frequently Asked Questions list. This
4849 section will change monthly, and contains any interesting items that have
4850 transpired over the previous month. If you are reading this from the
4851 XEmacs distribution, please see the version on the Web or archived at the
4852 various FAQ FTP sites, as this file is surely out of date.
4853
4854 @menu
4855 * Q6.0.1:: What is new in 19.15?
4856 * Q6.0.3:: Procedural changes in XEmacs development.
4857 @end menu
4858
4859 @node Q6.0.1, Q6.0.3, Current Events, Current Events
4860 @section What is new in 19.15?
4861
4862 The biggest changes in 19.15 include integration of TM (a MIME package
4863 for VM and Gnus), beautifying the outlook, and bugfixing.
4864
4865 XEmacs 20.0 is now very close (currently a separate branch of XEmacs
4866 that includes full Asian-language aka MULE support). This work is being
4867 supported by Sun Microsystems.
4868
4869 @node Q6.0.3, , Q6.0.1, Current Events
4870 @section Procedural changes in XEmacs development.
4871
4872 @enumerate
4873 @item
4874 Discussion about the development of XEmacs occurs on the xemacs-beta
4875 mailing list. Subscriptions to this list will now be fully automated
4876 instead of being handled by hand. Send a mail message to
4877 <xemacs-beta-request@@xemacs.org> with a subject of subscribe to join
4878 the list. Please note this is a developers mailing list for people who
4879 have an active interest in the development process.
4880
4881 @item
4882 Due to the long development cycle in between releases, it has been
4883 decided that intermediate versions will be made available in source only
4884 form for the truly interested.
4885
4886 XEmacs 19.15 is the end of the road for version 19 XEmacs. The next
4887 release after 19.15 will be XEmacs 20.0.
4888
4889 @item
4890 As of December 1996, Steve Baur <steve@@altair.xemacs.org> has become
4891 the lead maintainer of XEmacs.
4892
2366 @bye 4893 @bye