Mercurial > hg > xemacs-beta
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 |