comparison man/xemacs-faq.texi @ 70:131b0175ea99 r20-0b30

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