comparison man/xemacs-faq.texi @ 82:6a378aca36af r20-0b91

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