Mercurial > hg > xemacs-beta
comparison man/xemacs-faq.texi @ 163:0132846995bd r20-3b8
Import from CVS: tag r20-3b8
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:43:35 +0200 |
parents | 1370575f1259 |
children | 15872534500d |
comparison
equal
deleted
inserted
replaced
162:4de2936b4e77 | 163:0132846995bd |
---|---|
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/04/15 | 11 @subtitle Last Modified: 1997-06-18 |
12 @sp 1 | 12 @sp 1 |
13 @author Tony Rossini <arossini@@stat.sc.edu> | 13 @author Tony Rossini <arossini@@stat.sc.edu> |
14 @author Ben Wing <wing@@netcom.com> | 14 @author Ben Wing <wing@@netcom.com> |
15 @author Chuck Thompson <cthomp@@cs.uiuc.edu> | 15 @author Chuck Thompson <cthomp@@cs.uiuc.edu> |
16 @author Steve Baur <steve@@miranova.com> | 16 @author Steve Baur <steve@@miranova.com> |
30 FAQ is distributed in the hope that it will be useful, but WITHOUT ANY | 30 FAQ is distributed in the hope that it will be useful, but WITHOUT ANY |
31 WARRANTY; without even the implied warranty of MERCHANTABILITY or | 31 WARRANTY; without even the implied warranty of MERCHANTABILITY or |
32 FITNESS FOR A PARTICULAR PURPOSE. | 32 FITNESS FOR A PARTICULAR PURPOSE. |
33 | 33 |
34 If you have a Web browser, the official hypertext version is at | 34 If you have a Web browser, the official hypertext version is at |
35 <URL:http://www.miranova.com/~steve/xemacs-faq.html> and also at | 35 <URL:http://www.sccon.com/~andreas/xemacs-faq.html> and also at |
36 <URL:http://www.xemacs.org/faq/xemacs-faq.html>. This version is much | 36 <URL:http://www.xemacs.org/faq/xemacs-faq.html>. This version is much |
37 nicer than the unofficial hypertext versions that are archived at | 37 nicer than the unofficial hypertext versions that are archived at |
38 Utrecht, Oxford, Smart Pages, and other FAQ archives. | 38 Utrecht, Oxford, Smart Pages, and other FAQ archives. |
39 | 39 |
40 @menu | 40 @menu |
81 * Q1.0.1:: What is XEmacs? | 81 * Q1.0.1:: What is XEmacs? |
82 * Q1.0.2:: What is the current version of XEmacs? | 82 * Q1.0.2:: What is the current version of XEmacs? |
83 * Q1.0.3:: Where can I find it? | 83 * Q1.0.3:: Where can I find it? |
84 * Q1.0.4:: Why Another Version of Emacs? | 84 * Q1.0.4:: Why Another Version of Emacs? |
85 * Q1.0.5:: Why Haven't XEmacs and GNU Emacs Merged? | 85 * Q1.0.5:: Why Haven't XEmacs and GNU Emacs Merged? |
86 * Q1.0.6:: Where can I get help? @strong{update 4/97} | 86 * Q1.0.6:: Where can I get help? |
87 * Q1.0.7:: Where is the mailing list archived? | 87 * Q1.0.7:: Where is the mailing list archived? |
88 * Q1.0.8:: How do you pronounce XEmacs? | 88 * Q1.0.8:: How do you pronounce XEmacs? |
89 * Q1.0.9:: What does XEmacs look like? @strong{updated 4/97} | 89 * Q1.0.9:: What does XEmacs look like? |
90 * Q1.0.10:: Is there a port of XEmacs to Microsoft ('95 or NT)? | 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? | 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? | 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? | 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? | 94 * Q1.0.14:: Where can I get a printed copy of the XEmacs users manual? |
98 * Q1.1.2:: How do I become a Beta Tester? | 98 * Q1.1.2:: How do I become a Beta Tester? |
99 * Q1.1.3:: How do I contribute to XEmacs itself? | 99 * Q1.1.3:: How do I contribute to XEmacs itself? |
100 | 100 |
101 Credits: | 101 Credits: |
102 * Q1.2.1:: Who wrote XEmacs? | 102 * Q1.2.1:: Who wrote XEmacs? |
103 * Q1.2.2:: Who contributed to this version of the FAQ? @strong{updated 4/97} | 103 * Q1.2.2:: Who contributed to this version of the FAQ? |
104 * Q1.2.3:: Who contributed to the FAQ in the past? @strong{updated 4/97} | 104 * Q1.2.3:: Who contributed to the FAQ in the past? |
105 | 105 |
106 Internationalization: | 106 Internationalization: |
107 * Q1.3.1:: What is the status of XEmacs v20? @strong{updated 4/97} | 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}? | 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? | 109 * Q1.3.3:: How do I type non-ASCII characters? |
110 * Q1.3.4:: Can XEmacs messages come out in a different language? | 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 | 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? | 112 * Q1.3.6:: How do I portably code for MULE/XEmacs 20.0? |
113 * Q1.3.7:: How about Cyrillic Modes? @strong{updated 4/97} | 113 * Q1.3.7:: How about Cyrillic Modes? |
114 | 114 |
115 Getting Started: | 115 Getting Started: |
116 * Q1.4.1:: What is a @file{.emacs} and is there a sample one? | 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? @strong{updated 4/97} | 117 * Q1.4.2:: Can I use the same @file{.emacs} with the other Emacs? |
118 * Q1.4.3:: Any good XEmacs tutorials around? | 118 * Q1.4.3:: Any good XEmacs tutorials around? |
119 * Q1.4.4:: May I see an example of a useful XEmacs Lisp function? | 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? | 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? | 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? | 122 * Q1.4.7:: Why options saved with 19.13 don't work with 19.14 or later? |
132 track changes to GNU Emacs while also working to add new features. | 132 track changes to GNU Emacs while also working to add new features. |
133 | 133 |
134 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction | 134 @node Q1.0.2, Q1.0.3, Q1.0.1, Introduction |
135 @section What is the current version of XEmacs? | 135 @section What is the current version of XEmacs? |
136 | 136 |
137 The current version is 19.15, released in March, 1997. | 137 The current stable version of XEmacs is 20.2, released in May, 1997. |
138 | 138 The next feature release will XEmacs 20.3. |
139 It has been decided that XEmacs 19.15 will be the final release of v19. | 139 |
140 XEmacs 19.15 is scheduled for release in late March. After a brief | 140 XEmacs 19.15 was the last release of v19, released in March, 1997. |
141 period of further testing, XEmacs v20.1 will be released the later part | 141 |
142 of April, 1997. | 142 To help users who are not yet ready to move to XEmacs 20, we run a |
143 | 143 patch-page with official bugfixes for 19.15 at: |
144 | |
145 @example | |
146 <URL:http://www.xemacs.org/xemacs-19.15-patches/patch-page.html> | |
147 @end example | |
148 | |
149 The page is maintained by Vinnie Shelton @code{<acs@@acm.org>}. These | |
150 fixes will be integrated to a XEmacs and released as 19.16, which would | |
151 serve as stable XEmacs until 20.x settles completely. | |
144 | 152 |
145 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction | 153 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction |
146 @section Where can I find it? | 154 @section Where can I find it? |
147 | 155 |
148 The canonical source and binaries is found via anonymous FTP at: | 156 The canonical source and binaries is found via anonymous FTP at: |
185 | 193 |
186 @item | 194 @item |
187 Better Motif compliance. | 195 Better Motif compliance. |
188 | 196 |
189 @item | 197 @item |
190 Some internationalization support (full MULE support starting with 20.0). | 198 Some internationalization support (including full MULE support, if |
199 compiled with it.) | |
191 | 200 |
192 @item | 201 @item |
193 Variable-width fonts. | 202 Variable-width fonts. |
194 | 203 |
195 @item | 204 @item |
286 @end example | 295 @end example |
287 | 296 |
288 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction | 297 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction |
289 @section Is there a port of XEmacs to Microsoft ('95 or NT)? | 298 @section Is there a port of XEmacs to Microsoft ('95 or NT)? |
290 | 299 |
300 Altrasoft is actively seeking corporate and government sponsors to help | |
301 fund a fully native port of XEmacs to Windows 95 and NT using full-time, | |
302 senior-level staff working under a professionally managed project | |
303 structure. See <URL:http://www.altrasoft.com/> for more details or | |
304 contact Altrasoft directly at 1-888-ALTSOFT. | |
305 | |
291 The closest is @dfn{Win-Emacs}, which is based on Lucid Emacs 19.6. | 306 The closest is @dfn{Win-Emacs}, which is based on Lucid Emacs 19.6. |
292 Available from <URL:http://www.pearlsoft.com/>. | 307 Available from <URL:http://www.pearlsoft.com/>. |
293 | |
294 There are some people actively working on a NT port of v20.1: David | |
295 Hobley started the port. Marc Paquette | |
296 @example | |
297 <marcpa@@cam.org> | |
298 @end example | |
299 has also became part of this effort. | |
300 | |
301 Email the beta list | |
302 @example | |
303 <xemacs-beta@@xemacs.org> | |
304 @end example | |
305 if you are interested in helping. | |
306 | 308 |
307 There's a port of GNU Emacs (not XEmacs) at | 309 There's a port of GNU Emacs (not XEmacs) at |
308 @example | 310 @example |
309 <URL:http://www.cs.washington.edu/homes/voelker/ntemacs.html>. | 311 <URL:http://www.cs.washington.edu/homes/voelker/ntemacs.html>. |
310 @end example | 312 @end example |
350 Changes are displayed on a monthly basis. @dfn{Months}, for this | 352 Changes are displayed on a monthly basis. @dfn{Months}, for this |
351 purpose are defined as the 5th of the month through the 5th of the | 353 purpose are defined as the 5th of the month through the 5th of the |
352 month. Preexisting questions that have been changed are marked as such. | 354 month. Preexisting questions that have been changed are marked as such. |
353 Brand new questions are tagged. | 355 Brand new questions are tagged. |
354 | 356 |
355 All submissions are welcome. E-mail submissions to | 357 All submissions are welcome. E-mail submissions to Andreas Kaempf |
356 <andreas@@sccon.com>. | 358 <andreas@@sccon.com>. |
357 | 359 |
358 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line. | 360 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line. |
359 If you think you have a better way of answering a question, or think a | 361 If you think you have a better way of answering a question, or think a |
360 question should be included, I'd like to hear about it. Questions and | 362 question should be included, I'd like to hear about it. Questions and |
451 version of the FAQ (listed in alphabetical order): | 453 version of the FAQ (listed in alphabetical order): |
452 | 454 |
453 @itemize @bullet | 455 @itemize @bullet |
454 @item Steven L Baur <steve@@miranova.com> | 456 @item Steven L Baur <steve@@miranova.com> |
455 | 457 |
458 @item Hrvoje Niksic <hniksic@@srce.hr> | |
459 | |
460 @end itemize | |
461 | |
462 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction | |
463 @section Who contributed to the FAQ in the past? | |
464 | |
465 This is only a partial list, as many names were lost in a hard disk | |
466 crash some time ago. | |
467 | |
468 @itemize @bullet | |
469 @item Curtis.N.Bingham <binge@@aloft.att.com> | |
470 | |
471 @item Richard Caley <rjc@@cogsci.ed.ac.uk> | |
472 | |
456 @item Richard Cognot <cognot@@ensg.u-nancy.fr> | 473 @item Richard Cognot <cognot@@ensg.u-nancy.fr> |
457 | 474 |
458 @item Hrvoje Niksic <hniksic@@srce.hr> | 475 @item William G. Dubuque <wgd@@martigny.ai.mit.edu> |
476 | |
477 @item Eric Eide <eeide@@cs.utah.edu> | |
478 | |
479 @item Chris Flatters <cflatter@@nrao.edu> | |
480 | |
481 @item Evelyn Ginsparg <ginsparg@@adra.com> | |
482 | |
483 @item Marty Hall <hall@@aplcenmp.apl.jhu.edu> | |
484 | |
485 @item Darrell Kindred <dkindred@@cmu.edu> | |
486 | |
487 @item David Moore <dmoore@@ucsd.edu> | |
488 | |
489 @item Arup Mukherjee <arup+@@cmu.edu> | |
490 | |
491 @item Juergen Nickelsen <nickel@@prz.tu-berlin.de> | |
492 | |
493 @item Kevin R. Powell <powell@@csl.ncsa.uiuc.edu> | |
494 | |
495 @item Justin Sheehy <dworkin@@ccs.neu.edu> | |
496 | |
497 @item Stig <stig@@hackvan.com> | |
459 | 498 |
460 @item Aki Vehtari <Aki.Vehtari@@hut.fi> | 499 @item Aki Vehtari <Aki.Vehtari@@hut.fi> |
461 @end itemize | 500 @end itemize |
462 | 501 |
463 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction | |
464 @section Who contributed to the FAQ in the past? | |
465 | |
466 This is only a partial list, as many names were lost in a hard disk | |
467 crash some time ago. | |
468 | |
469 @itemize @bullet | |
470 @item Curtis.N.Bingham <binge@@aloft.att.com> | |
471 | |
472 @item Richard Caley <rjc@@cogsci.ed.ac.uk> | |
473 | |
474 @item William G. Dubuque <wgd@@martigny.ai.mit.edu> | |
475 | |
476 @item Eric Eide <eeide@@cs.utah.edu> | |
477 | |
478 @item Chris Flatters <cflatter@@nrao.edu> | |
479 | |
480 @item Evelyn Ginsparg <ginsparg@@adra.com> | |
481 | |
482 @item Marty Hall <hall@@aplcenmp.apl.jhu.edu> | |
483 | |
484 @item Darrell Kindred <dkindred@@cmu.edu> | |
485 | |
486 @item David Moore <dmoore@@ucsd.edu> | |
487 | |
488 @item Arup Mukherjee <arup+@@cmu.edu> | |
489 | |
490 @item Juergen Nickelsen <nickel@@prz.tu-berlin.de> | |
491 | |
492 @item Kevin R. Powell <powell@@csl.ncsa.uiuc.edu> | |
493 | |
494 @item Justin Sheehy <dworkin@@ccs.neu.edu> | |
495 | |
496 @item Stig <stig@@hackvan.com> | |
497 @end itemize | |
498 | |
499 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction | 502 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction |
500 @section What is the status of XEmacs v20? | 503 @section What is the status of XEmacs v20? |
501 | 504 |
502 XEmacs v20 is the version of XEmacs that includes MULE (Asian-language) | 505 XEmacs v20 is the version of XEmacs that includes MULE (Asian-language) |
503 support. XEmacs 20.0 was released in February 1997. When compiled | 506 support. XEmacs 20.0 was released in February 1997, followed by XEmacs |
504 without MULE support 20.0 is currently very similar to 19.15 (except for | 507 20.2 in May. When compiled without MULE support 20.2 is currently very |
505 some changes to the byte-code format, some new primitive types including | 508 similar to 19.15 (except for some changes to the byte-code format, some |
506 @code{char}, @code{char-table}, and @code{range-table}) and equally | 509 new primitive types including @code{char}, @code{char-table}, and |
507 stable. | 510 @code{range-table}) and equally stable. |
508 | 511 |
509 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction | 512 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction |
510 @section What is the status of Asian-language support, aka MULE? | 513 @section What is the status of Asian-language support, aka MULE? |
511 | 514 |
512 The MULE support works OK but still needs a fair amount of work before | 515 The MULE support works OK but still needs a fair amount of work before |
588 plan is stopped. Perhaps after Mule merged GNU Emacs will be released, | 591 plan is stopped. Perhaps after Mule merged GNU Emacs will be released, |
589 it will be continued. | 592 it will be continued. |
590 @end quotation | 593 @end quotation |
591 | 594 |
592 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction | 595 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction |
593 @section How do I portably code for MULE/XEmacs 20.0? | 596 @section How do I portably code for MULE/XEmacs 20? |
594 | 597 |
595 MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes: | 598 MORIOKA Tomohiko <morioka@@jaist.ac.jp> writes: |
596 | 599 |
597 @quotation | 600 @quotation |
598 MULE and XEmacs are quite different. So the application | 601 MULE and XEmacs are quite different. So the application |
714 (setq here (point)) | 717 (setq here (point)) |
715 (forward-word 1) | 718 (forward-word 1) |
716 (setq there (point)) | 719 (setq there (point)) |
717 (setq string (buffer-substring here there))) | 720 (setq string (buffer-substring here there))) |
718 (while (>= count 1) | 721 (while (>= count 1) |
719 (progn | 722 (insert string) |
720 (insert string) | 723 (decf count)))) |
721 (setq count (1- count)))))) | |
722 @end lisp | 724 @end lisp |
723 | 725 |
724 The best way to see what is going on here is to let XEmacs tell you. | 726 The best way to see what is going on here is to let XEmacs tell you. |
725 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor | 727 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor |
726 sitting just to the right of the function you want explained. Eg. move | 728 sitting just to the right of the function you want explained. Eg. move |
739 (global-set-key "\C-cd" 'double-word) | 741 (global-set-key "\C-cd" 'double-word) |
740 @end lisp | 742 @end lisp |
741 | 743 |
742 Or interactively, @kbd{M-x global-set-key} and follow the prompts. | 744 Or interactively, @kbd{M-x global-set-key} and follow the prompts. |
743 | 745 |
744 Jari Aalto has written a guide to Emacs keys binding, available at | 746 You can also view Jari Aalto's <jaalto@@tre.ntc.nokia.com> file: |
745 <URL:ftp://cs.uta.fi/pub/ssjaaa/ema-keys.gui>. | 747 |
748 @example | |
749 <URL:ftp://cs.uta.fi/pub/ssjaaa/ema-keys.html> | |
750 @end example | |
746 | 751 |
747 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction | 752 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction |
748 @section What's the difference between a macro and a function? | 753 @section What's the difference between a macro and a function? |
749 | 754 |
750 Quoting from the Lisp Reference (a.k.a @dfn{lispref}) Manual: | 755 Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual: |
751 | 756 |
752 @dfn{Macros} enable you to define new control constructs and other | 757 @dfn{Macros} enable you to define new control constructs and other |
753 language features. A macro is defined much like a function, but instead | 758 language features. A macro is defined much like a function, but instead |
754 of telling how to compute a value, it tells how to compute another Lisp | 759 of telling how to compute a value, it tells how to compute another Lisp |
755 expression which will in turn compute the value. We call this | 760 expression which will in turn compute the value. We call this |
757 | 762 |
758 Macros can do this because they operate on the unevaluated expressions | 763 Macros can do this because they operate on the unevaluated expressions |
759 for the arguments, not on the argument values as functions do. They can | 764 for the arguments, not on the argument values as functions do. They can |
760 therefore construct an expansion containing these argument expressions | 765 therefore construct an expansion containing these argument expressions |
761 or parts of them. | 766 or parts of them. |
767 | |
768 Do not confuse the two terms with @dfn{keyboard macros}, which are | |
769 another matter, entirely. A keyboard macro is a key bound to several | |
770 other keys. Refer to manual for details. | |
762 | 771 |
763 @node Q1.4.7, , Q1.4.6, Introduction | 772 @node Q1.4.7, , Q1.4.6, Introduction |
764 @section How come options saved with 19.13 don't work with 19.14 or later? | 773 @section How come options saved with 19.13 don't work with 19.14 or later? |
765 | 774 |
766 There's a problem with options of the form: | 775 There's a problem with options of the form: |
785 (boundp 'emacs-major-version) | 794 (boundp 'emacs-major-version) |
786 (or (and (= emacs-major-version 19) | 795 (or (and (= emacs-major-version 19) |
787 (>= emacs-minor-version 12)) | 796 (>= emacs-minor-version 12)) |
788 (>= emacs-major-version 20))) | 797 (>= emacs-major-version 20))) |
789 ... | 798 ... |
799 )) | |
790 @end lisp | 800 @end lisp |
791 | 801 |
792 @node Installation, Customization, Introduction, Top | 802 @node Installation, Customization, Introduction, Top |
793 @chapter Installation and Trouble Shooting | 803 @chapter Installation and Trouble Shooting |
794 | 804 |
795 This is part 2 of the XEmacs Frequently Asked Questions list. This | 805 This is part 2 of the XEmacs Frequently Asked Questions list. This |
796 section is devoted to Installation, Maintenance and Trouble Shooting. | 806 section is devoted to Installation, Maintenance and Trouble Shooting. |
797 | 807 |
798 @menu | 808 @menu |
799 Installation: | 809 Installation: |
800 * Q2.0.1:: Running XEmacs without installing. @strong{updated 4/97} | 810 * Q2.0.1:: Running XEmacs without installing. |
801 * Q2.0.2:: XEmacs is too big. @strong{updated 4/97} | 811 * Q2.0.2:: XEmacs is too big. |
802 * Q2.0.3:: Compiling XEmacs with Netaudio. | 812 * Q2.0.3:: Compiling XEmacs with Netaudio. |
803 * Q2.0.4:: Problems with Linux and ncurses. @strong{updated 4/97} | 813 * Q2.0.4:: Problems with Linux and ncurses. |
804 * Q2.0.5:: Do I need X11 to run XEmacs? | 814 * Q2.0.5:: Do I need X11 to run XEmacs? |
805 * Q2.0.6:: I'm having strange crashes. What do I do? | 815 * Q2.0.6:: I'm having strange crashes. What do I do? |
806 * Q2.0.7:: Libraries in non-standard locations. | 816 * Q2.0.7:: Libraries in non-standard locations. |
807 * Q2.0.8:: can't resolve symbol _h_errno | 817 * Q2.0.8:: can't resolve symbol _h_errno |
808 * Q2.0.9:: Where do I find external libraries? @strong{updated 4/97} | 818 * Q2.0.9:: Where do I find external libraries? |
809 * Q2.0.10:: After I run configure I find a coredump, is something wrong? | 819 * Q2.0.10:: After I run configure I find a coredump, is something wrong? |
810 * Q2.0.11:: XEmacs can't resolve host names. | 820 * Q2.0.11:: XEmacs can't resolve host names. |
811 * Q2.0.12:: Why can't I strip XEmacs? @strong{updated 4/97} | 821 * Q2.0.12:: Why can't I strip XEmacs? |
812 * Q2.0.13:: Can't link XEmacs on Solaris with Gcc. | 822 * Q2.0.13:: Can't link XEmacs on Solaris with Gcc. |
813 * Q2.0.14:: Make on HP/UX 9 fails after linking temacs @strong{new 4/97} | 823 * Q2.0.14:: Make on HP/UX 9 fails after linking temacs |
814 | 824 |
815 Trouble Shooting: | 825 Trouble Shooting: |
816 * Q2.1.1:: XEmacs just crashed on me! | 826 * Q2.1.1:: XEmacs just crashed on me! |
817 * Q2.1.2:: Cryptic Minibuffer messages. | 827 * Q2.1.2:: Cryptic Minibuffer messages. |
818 * Q2.1.3:: Translation Table Syntax messages at Startup. @strong{updated 4/97} | 828 * Q2.1.3:: Translation Table Syntax messages at Startup. |
819 * Q2.1.4:: Startup warnings about deducing proper fonts? | 829 * Q2.1.4:: Startup warnings about deducing proper fonts? |
820 * Q2.1.5:: XEmacs cannot connect to my X Terminal. | 830 * Q2.1.5:: XEmacs cannot connect to my X Terminal. |
821 * Q2.1.6:: XEmacs just locked up my Linux X server. | 831 * Q2.1.6:: XEmacs just locked up my Linux X server. |
822 * Q2.1.7:: HP Alt key as Meta. | 832 * Q2.1.7:: HP Alt key as Meta. |
823 * Q2.1.8:: got (wrong-type-argument color-instance-p nil)! | 833 * Q2.1.8:: got (wrong-type-argument color-instance-p nil)! |
824 * Q2.1.9:: XEmacs causes my OpenWindows 3.0 server to crash. | 834 * Q2.1.9:: XEmacs causes my OpenWindows 3.0 server to crash. |
825 * Q2.1.10:: Warnings from incorrect key modifiers. | 835 * Q2.1.10:: Warnings from incorrect key modifiers. |
826 * Q2.1.11:: [This question intentionally left blank] @strong{removed 4/97} | 836 * Q2.1.11:: [This question intentionally left blank] |
827 * Q2.1.12:: Regular Expression Problems on DEC OSF1. | 837 * Q2.1.12:: Regular Expression Problems on DEC OSF1. |
828 * Q2.1.13:: HP/UX 10.10 and @code{create_process} failure | 838 * Q2.1.13:: HP/UX 10.10 and @code{create_process} failure |
829 * Q2.1.14:: @kbd{C-g} doesn't work for me. Is it broken? | 839 * Q2.1.14:: @kbd{C-g} doesn't work for me. Is it broken? |
830 * Q2.1.15:: How to debug an XEmacs problem with a debugger. | 840 * Q2.1.15:: How to debug an XEmacs problem with a debugger. |
831 * Q2.1.16:: XEmacs crashes in @code{strcat} on HP/UX 10. | 841 * Q2.1.16:: XEmacs crashes in @code{strcat} on HP/UX 10. |
833 * Q2.1.18:: 19.14 hangs on HP/UX 10.10. | 843 * Q2.1.18:: 19.14 hangs on HP/UX 10.10. |
834 * Q2.1.19:: XEmacs does not follow the local timezone. | 844 * Q2.1.19:: XEmacs does not follow the local timezone. |
835 * Q2.1.20:: @samp{Symbol's function definition is void: hkey-help-show.} | 845 * Q2.1.20:: @samp{Symbol's function definition is void: hkey-help-show.} |
836 * Q2.1.21:: Every so often the XEmacs frame freezes. | 846 * Q2.1.21:: Every so often the XEmacs frame freezes. |
837 * Q2.1.22:: XEmacs seems to take a really long time to do some things. | 847 * Q2.1.22:: XEmacs seems to take a really long time to do some things. |
838 * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. @strong{new 4/97} | 848 * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. |
839 @end menu | 849 @end menu |
840 | 850 |
841 @node Q2.0.1, Q2.0.2, Installation, Installation | 851 @node Q2.0.1, Q2.0.2, Installation, Installation |
842 @section Running XEmacs without installing | 852 @section Running XEmacs without installing |
843 | 853 |
850 space. XEmacs is largely written in Lisp. | 860 space. XEmacs is largely written in Lisp. |
851 | 861 |
852 A good method is to make a shell alias for xemacs: | 862 A good method is to make a shell alias for xemacs: |
853 | 863 |
854 @example | 864 @example |
855 alias xemacs=/i/xemacs-19.15/src/xemacs | 865 alias xemacs=/i/xemacs-20.2/src/xemacs |
856 @end example | 866 @end example |
857 | 867 |
858 (You will obviously use whatever directory you downloaded the source | 868 (You will obviously use whatever directory you downloaded the source |
859 tree to instead of @file{/i/xemacs-19.15}). | 869 tree to instead of @file{/i/xemacs-20.2}). |
860 | 870 |
861 This will let you run XEmacs without massive copying. | 871 This will let you run XEmacs without massive copying. |
862 | 872 |
863 @node Q2.0.2, Q2.0.3, Q2.0.1, Installation | 873 @node Q2.0.2, Q2.0.3, Q2.0.1, Installation |
864 @section XEmacs is too big | 874 @section XEmacs is too big |
865 | 875 |
866 Steve Baur <steve@@altair.xemacs.org> writes: | 876 Steve Baur <steve@@altair.xemacs.org> writes: |
867 | 877 |
868 @quotation | 878 @quotation |
869 XEmacs 20.2 will unbundle the lisp hierarchy and allow the installer | 879 XEmacs 20.3 will unbundle the lisp hierarchy and allow the installer |
870 to choose exactly how much support code gets installed. | 880 to choose exactly how much support code gets installed. |
871 @end quotation | 881 @end quotation |
872 | 882 |
873 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation | 883 @node Q2.0.3, Q2.0.4, Q2.0.2, Installation |
874 @section Compiling XEmacs with Netaudio. | 884 @section Compiling XEmacs with Netaudio. |
1001 @section Where do I find external libraries? | 1011 @section Where do I find external libraries? |
1002 | 1012 |
1003 All external libraries used by XEmacs can be found at the XEmacs FTP | 1013 All external libraries used by XEmacs can be found at the XEmacs FTP |
1004 site <URL:ftp://ftp.xemacs.org/pub/aux/>. | 1014 site <URL:ftp://ftp.xemacs.org/pub/aux/>. |
1005 | 1015 |
1006 The canonical locations are as follows: | 1016 The canonical locations (at the time of this writing) are as follows: |
1007 | 1017 |
1008 @table @asis | 1018 @table @asis |
1009 @item JPEG | 1019 @item JPEG |
1010 <URL:ftp://ftp.uu.net/graphics/jpeg/>. Version 6a is current. | 1020 <URL:ftp://ftp.uu.net/graphics/jpeg/>. Version 6a is current. |
1011 | 1021 |
1106 @quotation | 1116 @quotation |
1107 Here is the trick: | 1117 Here is the trick: |
1108 | 1118 |
1109 @enumerate | 1119 @enumerate |
1110 @item | 1120 @item |
1111 [ configure; make ] | 1121 [ ./configure; make ] |
1112 | 1122 |
1113 @item | 1123 @item |
1114 cd src | 1124 rm src/xemacs |
1115 | 1125 |
1116 @item | 1126 @item |
1117 rm xemacs | 1127 strip src/temacs |
1118 | |
1119 @item | |
1120 strip temacs | |
1121 | |
1122 @item | |
1123 cd .. | |
1124 | 1128 |
1125 @item | 1129 @item |
1126 make | 1130 make |
1127 | 1131 |
1128 @item | 1132 @item |
1174 | 1178 |
1175 @node Q2.1.1, Q2.1.2, Q2.0.14, Installation | 1179 @node Q2.1.1, Q2.1.2, Q2.0.14, Installation |
1176 @section Help! XEmacs just crashed on me! | 1180 @section Help! XEmacs just crashed on me! |
1177 | 1181 |
1178 First of all, don't panic. Whenever XEmacs crashes, it tries extremely | 1182 First of all, don't panic. Whenever XEmacs crashes, it tries extremely |
1179 hard to auto-save all of your files before dying. (The main time that | 1183 hard to auto-save all of your files before dying. (The main time that |
1180 this will not happen is if the machine physically lost power or if you | 1184 this will not happen is if the machine physically lost power or if you |
1181 killed the XEmacs process using @code{kill -9}). The next time you try | 1185 killed the XEmacs process using @code{kill -9}). The next time you try |
1182 to edit those files, you will be informed that a more recent auto-save | 1186 to edit those files, you will be informed that a more recent auto-save |
1183 file exists. You can use @kbd{M-x recover-file} to retrieve the | 1187 file exists. You can use @kbd{M-x recover-file} to retrieve the |
1184 auto-saved version of the file. | 1188 auto-saved version of the file. |
1185 | 1189 |
1186 Starting with 19.14, you may use the command @kbd{M-x recover-session} | 1190 Starting with 19.14, you may use the command @kbd{M-x recover-session} |
1337 the host you are running XEmacs from. | 1341 the host you are running XEmacs from. |
1338 | 1342 |
1339 @node Q2.1.6, Q2.1.7, Q2.1.5, Installation | 1343 @node Q2.1.6, Q2.1.7, Q2.1.5, Installation |
1340 @section XEmacs just locked up my Linux X server! | 1344 @section XEmacs just locked up my Linux X server! |
1341 | 1345 |
1342 Help! XEmacs just locked up my X server on my Linux box! | |
1343 | |
1344 There have been several reports of the X server locking up under Linux. | 1346 There have been several reports of the X server locking up under Linux. |
1345 In all reported cases removing speedo and scaled fonts from the font | 1347 In all reported cases removing speedo and scaled fonts from the font |
1346 path corrected the problem. This can be done with the command | 1348 path corrected the problem. This can be done with the command |
1347 '@code{xset}. | 1349 @code{xset}. |
1348 | 1350 |
1349 It is possible that using a font server may also solve the problem. | 1351 It is possible that using a font server may also solve the problem. |
1350 | 1352 |
1351 @node Q2.1.7, Q2.1.8, Q2.1.6, Installation | 1353 @node Q2.1.7, Q2.1.8, Q2.1.6, Installation |
1352 @section HP Alt key as Meta. | 1354 @section HP Alt key as Meta. |
1650 have no idea why GDB under Linux is so bogus. Complain to the GDB | 1652 have no idea why GDB under Linux is so bogus. Complain to the GDB |
1651 authors, or to comp.os.linux.development.system). Again, you'll have to | 1653 authors, or to comp.os.linux.development.system). Again, you'll have to |
1652 use the narrowing-down process described above. | 1654 use the narrowing-down process described above. |
1653 | 1655 |
1654 @item | 1656 @item |
1655 If you compiled 19.14 with @samp{--debug} (or by default in 19.15), you | 1657 If you compiled 19.14 with @samp{--debug} (or by default in later |
1656 will get a Lisp backtrace output when XEmacs crashes, so you'll have | 1658 versions), you will get a Lisp backtrace output when XEmacs crashes, so |
1657 something useful. If you're in 19.13, you could try doing @code{call | 1659 you'll have something useful. If you're in 19.13, you could try doing |
1658 debug_backtrace()}---sometimes this works even after a fatal signal has | 1660 @code{call debug_backtrace()}---sometimes this works even after a fatal |
1659 been received. | 1661 signal has been received. |
1660 @end enumerate | 1662 @end enumerate |
1661 @end itemize | 1663 @end itemize |
1662 @end quotation | 1664 @end quotation |
1663 | 1665 |
1664 Here's some more info about using gdbinit: | 1666 Here's some more info about using gdbinit: |
1730 @end example | 1732 @end example |
1731 | 1733 |
1732 @node Q2.1.17, Q2.1.18, Q2.1.16, Installation | 1734 @node Q2.1.17, Q2.1.18, Q2.1.16, Installation |
1733 @section @samp{Marker does not point anywhere} | 1735 @section @samp{Marker does not point anywhere} |
1734 | 1736 |
1735 This is a problem with line-number-mode in XEmacs 19.14, and affects a | 1737 As with other errors, set @code{debug-on-error} to @code{t} to get the |
1736 large number of other packages. If you see this error message, turn off | 1738 backtrace when the error occurs. Specifically, two problems have been |
1739 reported (and fixed). | |
1740 | |
1741 @enumerate | |
1742 @item | |
1743 A problem with line-number-mode in XEmacs 19.14 affected a large number | |
1744 of other packages. If you see this error message, turn off | |
1737 line-number-mode. | 1745 line-number-mode. |
1746 | |
1747 @item | |
1748 A problem with some early versions of Gnus 5.4 caused this error. | |
1749 Upgrade your Gnus. | |
1750 @end enumerate | |
1738 | 1751 |
1739 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation | 1752 @node Q2.1.18, Q2.1.19, Q2.1.17, Installation |
1740 @section 19.14 hangs on HP/UX 10.10. | 1753 @section 19.14 hangs on HP/UX 10.10. |
1741 | 1754 |
1742 Richard Cognot <cognot@@ensg.u-nancy.fr> writes: | 1755 Richard Cognot <cognot@@ensg.u-nancy.fr> writes: |
1778 The @samp{poll: interrupted system call} message. | 1791 The @samp{poll: interrupted system call} message. |
1779 | 1792 |
1780 @item | 1793 @item |
1781 A more serious problem I had discovered in the meantime, that is the | 1794 A more serious problem I had discovered in the meantime, that is the |
1782 fact that subprocess handling was seriously broken: subprocesses | 1795 fact that subprocess handling was seriously broken: subprocesses |
1783 e.g. started by AUCTeX for TeX compilation of a buffer would | 1796 e.g. started by AUC TeX for TeX compilation of a buffer would |
1784 @emph{hang}. Actually they would wait forever for emacs to read the | 1797 @emph{hang}. Actually they would wait forever for emacs to read the |
1785 socket which connects stdout... | 1798 socket which connects stdout... |
1786 @end enumerate | 1799 @end enumerate |
1787 @end quotation | 1800 @end quotation |
1788 | 1801 |
1833 | 1846 |
1834 @example | 1847 @example |
1835 gdb /path/to/xemacs/xemacs #### | 1848 gdb /path/to/xemacs/xemacs #### |
1836 @end example | 1849 @end example |
1837 | 1850 |
1838 Where #### is the process id of your xemacs, instead of specifying the | 1851 Where @code{####} is the process id of your xemacs, instead of |
1839 core. When gdb attaches, the xemacs will stop [1] and you can type | 1852 specifying the core. When gdb attaches, the xemacs will stop [1] and |
1840 `where' in gdb to get a stack trace as usual. To get things moving | 1853 you can type `where' in gdb to get a stack trace as usual. To get |
1841 again, you can just type `quit' in gdb. It'll tell you the program is | 1854 things moving again, you can just type `quit' in gdb. It'll tell you |
1842 running and ask if you want to quit anyways. Say 'y' and it'll quit and | 1855 the program is running and ask if you want to quit anyways. Say 'y' and |
1843 have your emacs continue from where it was at. | 1856 it'll quit and have your emacs continue from where it was at. |
1844 | 1857 |
1845 2) Lisp level: | 1858 2) Lisp level: |
1846 | 1859 |
1847 Turn on debug-on-quit early on. When you think things are going slow | 1860 Turn on debug-on-quit early on. When you think things are going slow |
1848 hit C-g and it may pop you in the debugger so you can see what routine | 1861 hit C-g and it may pop you in the debugger so you can see what routine |
1859 and 20.x. I am using Linux. | 1872 and 20.x. I am using Linux. |
1860 | 1873 |
1861 Steven L Baur <steve@@miranova.com> writes: | 1874 Steven L Baur <steve@@miranova.com> writes: |
1862 | 1875 |
1863 @quotation | 1876 @quotation |
1864 Movemail on Linux used to default to using flock file locking. | 1877 Movemail on Linux used to default to using flock file locking. With |
1865 With 19.15 and 20.0 it now defaults to using .lock file locking. | 1878 19.15 and later versions it now defaults to using @code{.lock} file |
1866 If this is not appropriate for your system, edit src/s/linux.h and | 1879 locking. If this is not appropriate for your system, edit src/s/linux.h |
1867 uncomment the line that reads: | 1880 and uncomment the line that reads: |
1868 | 1881 |
1869 @code{#define MAIL_USE_FLOCK} | 1882 @example |
1883 #define MAIL_USE_FLOCK | |
1884 @end example | |
1870 @end quotation | 1885 @end quotation |
1871 | 1886 |
1872 @node Customization, Subsystems, Installation, Top | 1887 @node Customization, Subsystems, Installation, Top |
1873 @chapter Customization and Options | 1888 @chapter Customization and Options |
1874 | 1889 |
1875 This is part 3 of the XEmacs Frequently Asked Questions list. This | 1890 This is part 3 of the XEmacs Frequently Asked Questions list. This |
1876 section is devoted to Customization and screen settings. | 1891 section is devoted to Customization and screen settings. |
1877 | 1892 |
1878 @menu | 1893 @menu |
1879 Customization---Emacs Lisp and @file{.emacs}: | 1894 Customization---Emacs Lisp and @file{.emacs}: |
1880 * Q3.0.1:: What version of Emacs am I running? @strong{updated 4/97} | 1895 * Q3.0.1:: What version of Emacs am I running? |
1881 * Q3.0.2:: How do I evaluate Elisp expressions? | 1896 * Q3.0.2:: How do I evaluate Elisp expressions? |
1882 * Q3.0.3:: @code{(setq tab-width 6)} behaves oddly. | 1897 * Q3.0.3:: @code{(setq tab-width 6)} behaves oddly. |
1883 * Q3.0.4:: How can I add directories to the @code{load-path}? | 1898 * Q3.0.4:: How can I add directories to the @code{load-path}? |
1884 * Q3.0.5:: How to check if a lisp function is defined? | 1899 * Q3.0.5:: How to check if a lisp function is defined? |
1885 * Q3.0.6:: Can I force the output of @code{(face-list)} to a buffer? | 1900 * Q3.0.6:: Can I force the output of @code{(face-list)} to a buffer? |
1886 * Q3.0.7:: Font selections don't get saved after @code{Save Options}. @strong{updated 4/97} | 1901 * Q3.0.7:: Font selections don't get saved after @code{Save Options}. |
1887 * Q3.0.8:: How do I make a single minibuffer frame? | 1902 * Q3.0.8:: How do I make a single minibuffer frame? |
1888 | 1903 |
1889 X Window System & Resources: | 1904 X Window System & Resources: |
1890 * Q3.1.1:: Where is a list of X resources? | 1905 * Q3.1.1:: Where is a list of X resources? |
1891 * Q3.1.2:: How can I detect a color display? | 1906 * Q3.1.2:: How can I detect a color display? |
1892 * Q3.1.3:: @code{(set-screen-width)} worked in 19.6, but not in 19.13? | 1907 * Q3.1.3:: @code{(set-screen-width)} worked in 19.6, but not in 19.13? |
1893 * Q3.1.4:: Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15? @strong{updated 4/97} | 1908 * Q3.1.4:: Specifiying @code{Emacs*EmacsScreen.geometry} in @file{.emacs} does not work in 19.15? |
1894 * Q3.1.5:: How can I get the icon to just say @samp{XEmacs}? | 1909 * Q3.1.5:: How can I get the icon to just say @samp{XEmacs}? |
1895 * Q3.1.6:: How can I have the window title area display the full path? | 1910 * Q3.1.6:: How can I have the window title area display the full path? |
1896 * Q3.1.7:: @samp{xemacs -name junk} doesn't work? | 1911 * Q3.1.7:: @samp{xemacs -name junk} doesn't work? |
1897 * Q3.1.8:: @samp{-iconic} it doesn't work. | 1912 * Q3.1.8:: @samp{-iconic} it doesn't work. |
1898 | 1913 |
1899 Textual Fonts & Colors: | 1914 Textual Fonts & Colors: |
1900 * Q3.2.1:: How can I set color options from @file{.emacs}? | 1915 * Q3.2.1:: How can I set color options from @file{.emacs}? |
1901 * Q3.2.2:: How do I set the text, menu and modeline fonts? | 1916 * Q3.2.2:: How do I set the text, menu and modeline fonts? |
1902 * Q3.2.3:: How can I set the colors when highlighting a region? | 1917 * Q3.2.3:: How can I set the colors when highlighting a region? |
1903 * Q3.2.4:: How can I limit color map usage? @strong{updated 4/97} | 1918 * Q3.2.4:: How can I limit color map usage? |
1904 * Q3.2.5:: My tty supports color, but XEmacs doesn't use them. | 1919 * Q3.2.5:: My tty supports color, but XEmacs doesn't use them. |
1905 | 1920 |
1906 The Modeline: | 1921 The Modeline: |
1907 * Q3.3.1:: How can I make the modeline go away? | 1922 * Q3.3.1:: How can I make the modeline go away? |
1908 * Q3.3.2:: How do you have XEmacs display the line number in the modeline? | 1923 * Q3.3.2:: How do you have XEmacs display the line number in the modeline? |
1909 * Q3.3.3:: How do I get XEmacs to put the time of day on the modeline? | 1924 * Q3.3.3:: How do I get XEmacs to put the time of day on the modeline? |
1910 * Q3.3.4:: How do I turn off current chapter from AUC-TeX modeline? | 1925 * Q3.3.4:: How do I turn off current chapter from AUC TeX modeline? |
1911 * Q3.3.5:: How can one change the modeline color based on the mode used? @strong{updated 4/97} | 1926 * Q3.3.5:: How can one change the modeline color based on the mode used? |
1912 | 1927 |
1913 3.4 Multiple Device Support: | 1928 3.4 Multiple Device Support: |
1914 * Q3.4.1:: How do I open a frame on another screen of my multi-headed display? @strong{updated 4/97} | 1929 * Q3.4.1:: How do I open a frame on another screen of my multi-headed display? |
1915 * Q3.4.2:: Can I really connect to a running XEmacs after calling up over a modem? How? | 1930 * Q3.4.2:: Can I really connect to a running XEmacs after calling up over a modem? How? |
1916 | 1931 |
1917 3.5 The Keyboard: | 1932 3.5 The Keyboard: |
1918 * Q3.5.1:: How can I bind complex functions (or macros) to keys? | 1933 * Q3.5.1:: How can I bind complex functions (or macros) to keys? |
1919 * Q3.5.2:: How can I stop down-arrow from adding empty lines to the bottom of my buffers? | 1934 * Q3.5.2:: How can I stop down-arrow from adding empty lines to the bottom of my buffers? |
1920 * Q3.5.3:: How do I bind C-. and C-; to scroll one line up and down? | 1935 * Q3.5.3:: How do I bind C-. and C-; to scroll one line up and down? |
1921 * Q3.5.4:: Globally binding @kbd{Delete}? | 1936 * Q3.5.4:: Globally binding @kbd{Delete}? |
1922 * Q3.5.5:: Scrolling one line at a time. | 1937 * Q3.5.5:: Scrolling one line at a time. |
1923 * Q3.5.6:: How to map @kbd{Help} key alone on Sun type4 keyboard? @strong{updated 4/97} | 1938 * Q3.5.6:: How to map @kbd{Help} key alone on Sun type4 keyboard? |
1924 * Q3.5.7:: How can you type in special characters in XEmacs? | 1939 * Q3.5.7:: How can you type in special characters in XEmacs? |
1925 * Q3.5.8:: Why does @code{(global-set-key [delete-forward] 'delete-char)} complain? | 1940 * Q3.5.8:: Why does @code{(global-set-key [delete-forward] 'delete-char)} complain? |
1926 * Q3.5.9:: How do I make the Delete key delete forward? | 1941 * Q3.5.9:: How do I make the Delete key delete forward? |
1927 * Q3.5.10:: Can I turn on @dfn{sticky} modifier keys? | 1942 * Q3.5.10:: Can I turn on @dfn{sticky} modifier keys? |
1928 | 1943 |
1953 * Q3.9.2:: How can one use resources to change scrollbar colors? | 1968 * Q3.9.2:: How can one use resources to change scrollbar colors? |
1954 * Q3.9.3:: Moving the scrollbar can move the point; can I disable this? | 1969 * Q3.9.3:: Moving the scrollbar can move the point; can I disable this? |
1955 * Q3.9.4:: How can I get automatic horizontal scrolling? | 1970 * Q3.9.4:: How can I get automatic horizontal scrolling? |
1956 | 1971 |
1957 Text Selections: | 1972 Text Selections: |
1958 * Q3.10.1:: How can I turn off or change highlighted selections? @strong{updated 4/97} | 1973 * Q3.10.1:: How can I turn off or change highlighted selections? |
1959 * Q3.10.2:: How do I get that typing on an active region removes it? | 1974 * Q3.10.2:: How do I get that typing on an active region removes it? |
1960 * Q3.10.3:: Can I turn off the highlight during isearch? | 1975 * Q3.10.3:: Can I turn off the highlight during isearch? |
1961 * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? | 1976 * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? |
1962 * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. | 1977 * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. |
1963 @end menu | 1978 @end menu |
1984 | 1999 |
1985 I know I can evaluate Elisp expressions from @code{*scratch*} buffer | 2000 I know I can evaluate Elisp expressions from @code{*scratch*} buffer |
1986 with @kbd{C-j} after the expression. How do I do it from another | 2001 with @kbd{C-j} after the expression. How do I do it from another |
1987 buffer? | 2002 buffer? |
1988 | 2003 |
1989 Use the following code: | 2004 Press @kbd{M-:} (the default binding of @code{eval-expression}), and |
1990 | 2005 enter the expression to the minibuffer. In XEmacs prior to 19.15 |
1991 @lisp | 2006 @code{eval-expression} used to be a disabled command by default. If |
1992 (put 'eval-expression 'disabled nil) | 2007 this is the case, upgrade your XEmacs. |
1993 @end lisp | |
1994 | |
1995 This sets it so that hitting @kbd{M-:} lets you type a single expression | |
1996 to be evaluated. This line can also be put into your @file{.emacs}. | |
1997 | 2008 |
1998 @node Q3.0.3, Q3.0.4, Q3.0.2, Customization | 2009 @node Q3.0.3, Q3.0.4, Q3.0.2, Customization |
1999 @section @code{(setq tab-width 6)} behaves oddly. | 2010 @section @code{(setq tab-width 6)} behaves oddly. |
2000 | 2011 |
2001 If you put @code{(setq tab-width 6)} in your @file{.emacs} file it does | 2012 If you put @code{(setq tab-width 6)} in your @file{.emacs} file it does |
2012 front of the load-path, the other at the end: | 2023 front of the load-path, the other at the end: |
2013 | 2024 |
2014 @lisp | 2025 @lisp |
2015 ;;; Add things at the beginning of the load-path, do not add | 2026 ;;; Add things at the beginning of the load-path, do not add |
2016 ;;; duplicate directories: | 2027 ;;; duplicate directories: |
2017 (if (null (member "bar" load-path)) | 2028 (pushnew "bar" load-path :test 'equal) |
2018 (setq load-path (cons "bar" load-path))) | 2029 |
2019 | 2030 (pushnew "foo" load-path :test 'equal) |
2020 (if (null (member "foo" load-path)) | |
2021 (setq load-path (cons "foo" load-path))) | |
2022 | 2031 |
2023 ;;; Add things at the end, unconditionally | 2032 ;;; Add things at the end, unconditionally |
2024 (setq load-path (append load-path '("foo" "bar"))) | 2033 (setq load-path (nconc load-path '("foo" "bar"))) |
2025 @end lisp | 2034 @end lisp |
2026 | 2035 |
2027 keith (k.p.) hanlan <keithh@@nortel.ca> writes: | 2036 keith (k.p.) hanlan <keithh@@nortel.ca> writes: |
2028 | 2037 |
2029 @quotation | 2038 @quotation |
2030 To add directories using Unix shell metacharacters use | 2039 To add directories using Unix shell metacharacters use |
2031 @file{expand-file-name} like this: | 2040 @file{expand-file-name} like this: |
2032 | 2041 |
2033 @lisp | 2042 @lisp |
2034 (setq load-path (cons (expand-file-name "~keithh/.emacsdir") load-path)) | 2043 (push (expand-file-name "~keithh/.emacsdir") load-path) |
2035 @end lisp | 2044 @end lisp |
2036 @end quotation | 2045 @end quotation |
2037 | 2046 |
2038 @node Q3.0.5, Q3.0.6, Q3.0.4, Customization | 2047 @node Q3.0.5, Q3.0.6, Q3.0.4, Customization |
2039 @section How to check if a lisp function is defined? | 2048 @section How to check if a lisp function is defined? |
2066 It would be good having it in a buffer, as the output of | 2075 It would be good having it in a buffer, as the output of |
2067 @code{(face-list)} is too wide to fit to a minibuffer. | 2076 @code{(face-list)} is too wide to fit to a minibuffer. |
2068 | 2077 |
2069 Evaluate the expression in the @samp{*scratch*} buffer with point after | 2078 Evaluate the expression in the @samp{*scratch*} buffer with point after |
2070 the rightmost paren and typing @kbd{C-j}. | 2079 the rightmost paren and typing @kbd{C-j}. |
2080 | |
2081 If the minibuffer smallness is the only problem you encounter, you can | |
2082 simply press @kbd{C-h l} to get the former minibuffer contents in a | |
2083 buffer. | |
2071 | 2084 |
2072 @node Q3.0.7, Q3.0.8, Q3.0.6, Customization | 2085 @node Q3.0.7, Q3.0.8, Q3.0.6, Customization |
2073 @section Font selections in don't get saved after @code{Save Options}. | 2086 @section Font selections in don't get saved after @code{Save Options}. |
2074 | 2087 |
2075 For XEmacs 19.14 and previous: | 2088 For XEmacs 19.14 and previous: |
2086 For XEmacs 19.15 and later: | 2099 For XEmacs 19.15 and later: |
2087 | 2100 |
2088 Implement the above as well as set the following in your @file{.emacs} | 2101 Implement the above as well as set the following in your @file{.emacs} |
2089 | 2102 |
2090 @lisp | 2103 @lisp |
2091 (setq options-save-faces 't) | 2104 (setq options-save-faces t) |
2092 @end lisp | 2105 @end lisp |
2093 | 2106 |
2094 @node Q3.0.8, Q3.1.1, Q3.0.7, Customization | 2107 @node Q3.0.8, Q3.1.1, Q3.0.7, Customization |
2095 @section How do I get a single minibuffer frame? | 2108 @section How do I get a single minibuffer frame? |
2096 | 2109 |
2322 (enter) ?}. It uses the face specification of @code{attributeFont}, | 2335 (enter) ?}. It uses the face specification of @code{attributeFont}, |
2323 while menubar is a normal X thing that uses the specification | 2336 while menubar is a normal X thing that uses the specification |
2324 @code{font}. With Motif it may be necessary to use @code{fontList} | 2337 @code{font}. With Motif it may be necessary to use @code{fontList} |
2325 instead of @code{font}. | 2338 instead of @code{font}. |
2326 | 2339 |
2327 Suggestions on improving the answer to this question would be | |
2328 appreciated. | |
2329 | |
2330 @node Q3.2.3, Q3.2.4, Q3.2.2, Customization | 2340 @node Q3.2.3, Q3.2.4, Q3.2.2, Customization |
2331 @section How can I set the colors when highlighting a region? | 2341 @section How can I set the colors when highlighting a region? |
2332 | 2342 |
2333 How can I set the background/foreground colors when highlighting a | 2343 How can I set the background/foreground colors when highlighting a |
2334 region? | 2344 region? |
2413 @lisp | 2423 @lisp |
2414 (display-time) | 2424 (display-time) |
2415 @end lisp | 2425 @end lisp |
2416 | 2426 |
2417 @node Q3.3.4, Q3.3.5, Q3.3.3, Customization | 2427 @node Q3.3.4, Q3.3.5, Q3.3.3, Customization |
2418 @section How do I turn off current chapter from AUC-TeX modeline? | 2428 @section How do I turn off current chapter from AUC TeX modeline? |
2419 | 2429 |
2420 With AUC-TeX, fast typing is hard because the current chapter, section | 2430 With AUC TeX, fast typing is hard because the current chapter, section |
2421 etc. are given in the modeline. How can I turn this off? | 2431 etc. are given in the modeline. How can I turn this off? |
2422 | 2432 |
2423 It's not auc-tex, it comes from @code{func-menu} in @file{func-menu.el}. | 2433 It's not AUC TeX, it comes from @code{func-menu} in @file{func-menu.el}. |
2424 Add this code to your @file{.emacs} to turn it off: | 2434 Add this code to your @file{.emacs} to turn it off: |
2425 | 2435 |
2426 @lisp | 2436 @lisp |
2427 (setq fume-display-in-modeline-p nil) | 2437 (setq fume-display-in-modeline-p nil) |
2428 @end lisp | 2438 @end lisp |
2453 | 2463 |
2454 You can use something like the following: | 2464 You can use something like the following: |
2455 | 2465 |
2456 @lisp | 2466 @lisp |
2457 (add-hook 'lisp-mode-hook | 2467 (add-hook 'lisp-mode-hook |
2458 '(lambda () (set-face-background 'modeline "red" (current-buffer)) | 2468 (lambda () |
2459 (set-face-foreground 'modeline "yellow" (current-buffer)))) | 2469 (set-face-background 'modeline "red" (current-buffer)))) |
2460 @end lisp | 2470 @end lisp |
2461 | 2471 |
2462 Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline | 2472 Then, when editing a Lisp file (i.e. when in Lisp mode), the modeline |
2463 colors change from the default set in your @file{.emacs}. The change | 2473 colors change from the default set in your @file{.emacs}. The change |
2464 will only be made in the buffer you just entered (which contains the | 2474 will only be made in the buffer you just entered (which contains the |
2492 @code{modeline-mousable-minor-mode}, which you may want to customize. | 2502 @code{modeline-mousable-minor-mode}, which you may want to customize. |
2493 | 2503 |
2494 @node Q3.4.1, Q3.4.2, Q3.3.5, Customization | 2504 @node Q3.4.1, Q3.4.2, Q3.3.5, Customization |
2495 @section How do I open a frame on another screen of my multi-headed display? | 2505 @section How do I open a frame on another screen of my multi-headed display? |
2496 | 2506 |
2497 The support for this has been revamped for 19.14. Use the command | 2507 The support for this was revamped for 19.14. Use the command |
2498 @kbd{M-x make-frame-on-display}. This command is also on the File menu | 2508 @kbd{M-x make-frame-on-display}. This command is also on the File menu |
2499 in the menubar. | 2509 in the menubar. |
2500 | 2510 |
2501 XEmacs 19.14 and later also has the command @code{make-frame-on-tty} | 2511 XEmacs 19.14 and later also have the command @code{make-frame-on-tty} |
2502 which will establish a connection to any tty-like device. | 2512 which will establish a connection to any tty-like device. Opening the |
2513 TTY devices should be left to @code{gnuclient}, though. | |
2503 | 2514 |
2504 @node Q3.4.2, Q3.5.1, Q3.4.1, Customization | 2515 @node Q3.4.2, Q3.5.1, Q3.4.1, Customization |
2505 @section Can I really connect to a running XEmacs after calling up over a modem? How? | 2516 @section Can I really connect to a running XEmacs after calling up over a modem? How? |
2506 | 2517 |
2507 If you're not running at least XEmacs 19.14, you can't. Otherwise check | 2518 If you're not running at least XEmacs 19.14, you can't. Otherwise check |
2508 out the @code{gnuattach} program supplied with XEmacs. | 2519 out the @code{gnuattach} program supplied with XEmacs. Starting with |
2520 XEmacs 20.3, @code{gnuattach} and @code{gnudoit} functionality will be | |
2521 provided by @code{gnuclient}. | |
2509 | 2522 |
2510 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization | 2523 @node Q3.5.1, Q3.5.2, Q3.4.2, Customization |
2511 @section How can I bind complex functions (or macros) to keys? | 2524 @section How can I bind complex functions (or macros) to keys? |
2512 | 2525 |
2513 As an example, say you want the @kbd{paste} key on a Sun keyboard to | 2526 As an example, say you want the @kbd{paste} key on a Sun keyboard to |
2524 otherwise insert the contents of the clipboard. To do this you need to | 2537 otherwise insert the contents of the clipboard. To do this you need to |
2525 pass arguments to @code{x-insert-selection}. This is done by wrapping | 2538 pass arguments to @code{x-insert-selection}. This is done by wrapping |
2526 the call in a 'lambda form: | 2539 the call in a 'lambda form: |
2527 | 2540 |
2528 @lisp | 2541 @lisp |
2529 (define-key global-map [f18] | 2542 (global-set-key [f18] |
2530 (function (lambda () (interactive) (x-insert-selection t nil)))) | 2543 (lambda () (interactive) (x-insert-selection t nil))) |
2531 @end lisp | 2544 @end lisp |
2532 | 2545 |
2533 This binds the f18 key to a @dfn{generic} functional object. The | 2546 This binds the f18 key to a @dfn{generic} functional object. The |
2534 interactive spec is required because only interactive functions can be | 2547 interactive spec is required because only interactive functions can be |
2535 bound to keys. Also take a look at the doc for @code{function}. | 2548 bound to keys. |
2536 | 2549 |
2537 For the FAQ example you could use: | 2550 For the FAQ example you could use: |
2538 | 2551 |
2539 @lisp | 2552 @lisp |
2540 (global-set-key [(control ?.)] | 2553 (global-set-key [(control ?.)] |
2541 (function (lambda () (interactive) (scroll-up 1)))) | 2554 (lambda () (interactive) (scroll-up 1))) |
2542 (global-set-key [(control ?;)] | 2555 (global-set-key [(control ?;)] |
2543 (function (lambda () (interactive) (scroll-up -1)))) | 2556 (lambda () (interactive) (scroll-up -1))) |
2544 @end lisp | 2557 @end lisp |
2545 | 2558 |
2546 This is fine if you only need a few functions within the lambda body. | 2559 This is fine if you only need a few functions within the lambda body. |
2547 If you're doing more it's cleaner to define a separate function as in | 2560 If you're doing more it's cleaner to define a separate function as in |
2548 question 3.5.3 (@xref{Q3.5.3}). | 2561 question 3.5.3 (@xref{Q3.5.3}). |
2554 | 2567 |
2555 @lisp | 2568 @lisp |
2556 (setq next-line-add-newlines nil) | 2569 (setq next-line-add-newlines nil) |
2557 @end lisp | 2570 @end lisp |
2558 | 2571 |
2572 This has been the default setting in XEmacs for some time. | |
2573 | |
2559 @node Q3.5.3, Q3.5.4, Q3.5.2, Customization | 2574 @node Q3.5.3, Q3.5.4, Q3.5.2, Customization |
2560 @section How do I bind C-. and C-; to scroll one line up and down? | 2575 @section How do I bind C-. and C-; to scroll one line up and down? |
2561 | 2576 |
2562 Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and | 2577 Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and |
2563 Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}: | 2578 Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}: |
2569 | 2584 |
2570 (defun scroll-down-one-line () | 2585 (defun scroll-down-one-line () |
2571 (interactive) | 2586 (interactive) |
2572 (scroll-down 1)) | 2587 (scroll-down 1)) |
2573 | 2588 |
2574 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-. | 2589 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-. |
2575 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-; | 2590 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-; |
2576 @end lisp | 2591 @end lisp |
2577 | 2592 |
2578 The key point is that you can only bind simple functions to keys; you | 2593 The key point is that you can only bind simple functions to keys; you |
2579 can not bind a key to a function that you're also passing arguments to. | 2594 can not bind a key to a function that you're also passing arguments to. |
2580 (@xref{Q3.5.1} for a better answer). | 2595 (@xref{Q3.5.1} for a better answer). |
2584 | 2599 |
2585 I cannot manage to globally bind my @kbd{Delete} key to something other | 2600 I cannot manage to globally bind my @kbd{Delete} key to something other |
2586 than the default. How does one do this? | 2601 than the default. How does one do this? |
2587 | 2602 |
2588 @lisp | 2603 @lisp |
2589 (defun Foo () | 2604 (defun foo () |
2590 (interactive) | 2605 (interactive) |
2591 (message "You hit DELETE")) | 2606 (message "You hit DELETE")) |
2592 | 2607 |
2593 (global-set-key 'delete 'Foo) | 2608 (global-set-key 'delete 'foo) |
2594 @end lisp | 2609 @end lisp |
2595 | 2610 |
2596 However, some modes explicitly bind @kbd{Delete}, so you would need to | 2611 However, some modes explicitly bind @kbd{Delete}, so you would need to |
2597 add a hook that does @code{local-set-key} for them. If what you want to | 2612 add a hook that does @code{local-set-key} for them. If what you want to |
2598 do is make the Backspace and Delete keys work more PC/Motif-like, then | 2613 do is make the Backspace and Delete keys work more PC/Motif-like, then |
2619 (defun scroll-one-line-down (&optional arg) | 2634 (defun scroll-one-line-down (&optional arg) |
2620 "Scroll the selected window down (backward in the text) one line (or N)." | 2635 "Scroll the selected window down (backward in the text) one line (or N)." |
2621 (interactive "p") | 2636 (interactive "p") |
2622 (scroll-down (or arg 1))) | 2637 (scroll-down (or arg 1))) |
2623 | 2638 |
2624 (global-set-key 'up 'scroll-one-line-up) | 2639 (global-set-key [up] 'scroll-one-line-up) |
2625 (global-set-key 'down 'scroll-one-line-down) | 2640 (global-set-key [down] 'scroll-one-line-down) |
2626 @end lisp | 2641 @end lisp |
2627 | |
2628 | 2642 |
2629 The following will also work but will affect more than just the cursor | 2643 The following will also work but will affect more than just the cursor |
2630 keys (i.e. @kbd{C-n} and @kbd{C-p}): | 2644 keys (i.e. @kbd{C-n} and @kbd{C-p}): |
2631 | 2645 |
2632 @lisp | 2646 @lisp |
2663 @section How can you type in special characters in XEmacs? | 2677 @section How can you type in special characters in XEmacs? |
2664 | 2678 |
2665 One way is to use the package @samp{x-compose}. Then you can use | 2679 One way is to use the package @samp{x-compose}. Then you can use |
2666 sequences like @kbd{Compose " a} to get ä, etc. | 2680 sequences like @kbd{Compose " a} to get ä, etc. |
2667 | 2681 |
2668 Another way is to use the iso8859-1 package. | 2682 Another way is to use the iso-ascii package, provided in XEmacs 19.15 |
2683 and later. | |
2669 | 2684 |
2670 @node Q3.5.8, Q3.5.9, Q3.5.7, Customization | 2685 @node Q3.5.8, Q3.5.9, Q3.5.7, Customization |
2671 @section Why does @code{(global-set-key [delete-forward] 'delete-char)} complain? | 2686 @section Why does @code{(global-set-key [delete-forward] 'delete-char)} complain? |
2672 | 2687 |
2673 Why does @code{(define-key global-map [ delete-forward ] 'delete-char)} | 2688 Why does @code{(define-key global-map [ delete-forward ] 'delete-char)} |
2692 This bug has been fixed in 19.14. | 2707 This bug has been fixed in 19.14. |
2693 | 2708 |
2694 @node Q3.5.9, Q3.5.10, Q3.5.8, Customization | 2709 @node Q3.5.9, Q3.5.10, Q3.5.8, Customization |
2695 @section How do I make the Delete key delete forward? | 2710 @section How do I make the Delete key delete forward? |
2696 | 2711 |
2697 Use the @file{delbackspace} package: | 2712 Use the @file{delbs} package: |
2698 | 2713 |
2699 @lisp | 2714 @lisp |
2700 (load-library "delbackspace") | 2715 (require 'delbs) |
2701 @end lisp | 2716 @end lisp |
2717 | |
2718 This will give you the functions @code{delbs-enable-delete-forward} to | |
2719 set things up, and @code{delbs-disable-delete-forward} to revert to | |
2720 ``normal'' behavior. | |
2702 | 2721 |
2703 Also @xref{Q3.5.4}. | 2722 Also @xref{Q3.5.4}. |
2704 | 2723 |
2705 @node Q3.5.10, Q3.6.1, Q3.5.9, Customization | 2724 @node Q3.5.10, Q3.6.1, Q3.5.9, Customization |
2706 @section Can I turn on @dfn{sticky} modifier keys? | 2725 @section Can I turn on @dfn{sticky} modifier keys? |
2712 | 2731 |
2713 Ben Wing <ben@@666.com> writes: | 2732 Ben Wing <ben@@666.com> writes: |
2714 | 2733 |
2715 @quotation | 2734 @quotation |
2716 One thing about the sticky modifiers is that if you move the mouse out | 2735 One thing about the sticky modifiers is that if you move the mouse out |
2717 of the frame and back in, it cancels all currently "stuck" modifiers. | 2736 of the frame and back in, it cancels all currently ``stuck'' modifiers. |
2718 @end quotation | 2737 @end quotation |
2719 | 2738 |
2720 @node Q3.6.1, Q3.6.2, Q3.5.10, Customization | 2739 @node Q3.6.1, Q3.6.2, Q3.5.10, Customization |
2721 @section Is there a way to make the bar cursor thicker? | 2740 @section Is there a way to make the bar cursor thicker? |
2722 | 2741 |
2772 (but does not cut) the expression under the mouse. Clicking middle on a | 2791 (but does not cut) the expression under the mouse. Clicking middle on a |
2773 left or right paren will select to the matching one. Note that you can | 2792 left or right paren will select to the matching one. Note that you can |
2774 use @code{define-key} or @code{global-set-key}. | 2793 use @code{define-key} or @code{global-set-key}. |
2775 | 2794 |
2776 @lisp | 2795 @lisp |
2777 (defun Mouse-Set-Point-and-Select (event) | 2796 (defun mouse-set-point-and-select (event) |
2778 "Sets the point at the mouse location, then marks following form" | 2797 "Sets the point at the mouse location, then marks following form" |
2779 (interactive "@@e") | 2798 (interactive "@@e") |
2780 (mouse-set-point event) | 2799 (mouse-set-point event) |
2781 (mark-sexp 1) | 2800 (mark-sexp 1)) |
2782 ) | 2801 (define-key global-map [button2] 'mouse-set-point-and-select) |
2783 (define-key global-map 'button2 'Mouse-Set-Point-and-Select) | |
2784 @end lisp | 2802 @end lisp |
2785 | 2803 |
2786 @node Q3.7.2, Q3.7.3, Q3.7.1, Customization | 2804 @node Q3.7.2, Q3.7.3, Q3.7.1, Customization |
2787 @section How do I set control/meta/etc modifiers on mouse buttons? | 2805 @section How do I set control/meta/etc modifiers on mouse buttons? |
2788 | 2806 |
2809 Use the middle mouse button. | 2827 Use the middle mouse button. |
2810 | 2828 |
2811 @node Q3.7.4, Q3.7.5, Q3.7.3, Customization | 2829 @node Q3.7.4, Q3.7.5, Q3.7.3, Customization |
2812 @section How can I get a list of buffers when I hit mouse button 3? | 2830 @section How can I get a list of buffers when I hit mouse button 3? |
2813 | 2831 |
2814 The following code will actually replace the default popup on button3: | 2832 The following code will replace the default popup on button3: |
2815 | 2833 |
2816 @lisp | 2834 @lisp |
2817 (defun cw-build-buffers () | 2835 (global-set-key [button3] 'popup-buffer-menu) |
2818 "Popup buffer menu." | |
2819 (interactive "@@") | |
2820 (run-hooks 'activate-menubar-hook) | |
2821 (popup-menu (car (find-menu-item current-menubar '("Buffers"))))) | |
2822 | |
2823 (define-key global-map [(button3)] 'cw-build-buffers) | |
2824 @end lisp | 2836 @end lisp |
2825 | 2837 |
2826 @node Q3.7.5, Q3.7.6, Q3.7.4, Customization | 2838 @node Q3.7.5, Q3.7.6, Q3.7.4, Customization |
2827 @section Why does cut-and-paste not work between XEmacs and a cmdtool? | 2839 @section Why does cut-and-paste not work between XEmacs and a cmdtool? |
2828 | 2840 |
2956 @section How can I bind a key to a function to toggle the toolbar? | 2968 @section How can I bind a key to a function to toggle the toolbar? |
2957 | 2969 |
2958 Try something like: | 2970 Try something like: |
2959 | 2971 |
2960 @lisp | 2972 @lisp |
2961 (global-set-key [(control x) T] | 2973 (defun my-toggle-toolbar () |
2962 '(lambda () (interactive) | 2974 (interactive) |
2963 (set-specifier default-toolbar-visible-p | 2975 (set-specifier default-toolbar-visible-p |
2964 (not (specifier-instance | 2976 (not (specifier-instance default-toolbar-visible-p)))) |
2965 default-toolbar-visible-p))))) | 2977 (global-set-key "\C-xT" 'my-toggle-toolbar) |
2966 @end lisp | 2978 @end lisp |
2967 | 2979 |
2968 There are redisplay bugs in 19.14 that may make the preceding result in | 2980 There are redisplay bugs in 19.14 that may make the preceding result in |
2969 a messed-up display, especially for frames with multiple windows. You | 2981 a messed-up display, especially for frames with multiple windows. You |
2970 may need to resize the frame before XEmacs completely realizes the | 2982 may need to resize the frame before XEmacs completely realizes the |
2985 | 2997 |
2986 To turn the scrollbar off on a per-frame basis, use the following | 2998 To turn the scrollbar off on a per-frame basis, use the following |
2987 function: | 2999 function: |
2988 | 3000 |
2989 @lisp | 3001 @lisp |
2990 (set-specifier scrollbar-width (cons (selected-frame) 0)) | 3002 (set-specifier scrollbar-width 0 (selected-frame)) |
2991 @end lisp | 3003 @end lisp |
2992 | 3004 |
2993 You can actually turn the scrollbars on at any level you want by | 3005 You can actually turn the scrollbars on at any level you want by |
2994 substituting for (selected-frame) in the above command. For example, to | 3006 substituting for (selected-frame) in the above command. For example, to |
2995 turn the scrollbars off only in a single buffer: | 3007 turn the scrollbars off only in a single buffer: |
2996 | 3008 |
2997 @lisp | 3009 @lisp |
2998 (set-specifier scrollbar-width (cons (current-buffer) 0)) | 3010 (set-specifier scrollbar-width 0 (current-buffer)) |
2999 @end lisp | 3011 @end lisp |
3000 | 3012 |
3001 Starting with 19.14 you can use the more logical form: | 3013 In XEmacs versions prior to 19.14, you had to use the hairier construct: |
3002 | 3014 |
3003 @lisp | 3015 @lisp |
3004 (set-specifier scrollbar-width 0 (selected-frame)) | 3016 (set-specifier scrollbar-width (cons (selected-frame) 0)) |
3005 @end lisp | 3017 @end lisp |
3006 | 3018 |
3007 @node Q3.9.2, Q3.9.3, Q3.9.1, Customization | 3019 @node Q3.9.2, Q3.9.3, Q3.9.1, Customization |
3008 @section How can one use resources to change scrollbar colors? | 3020 @section How can one use resources to change scrollbar colors? |
3009 | 3021 |
3178 * Q4.0.12:: Customization of VM not covered in the manual or here. | 3190 * Q4.0.12:: Customization of VM not covered in the manual or here. |
3179 | 3191 |
3180 Web browsing with W3: | 3192 Web browsing with W3: |
3181 * Q4.1.1:: What is W3? | 3193 * Q4.1.1:: What is W3? |
3182 * Q4.1.2:: How do I run W3 from behind a firewall? | 3194 * Q4.1.2:: How do I run W3 from behind a firewall? |
3195 * Q4.1.3:: Is it true that W3 supports style sheets and tables? | |
3183 | 3196 |
3184 Reading Netnews and Mail with Gnus: | 3197 Reading Netnews and Mail with Gnus: |
3185 * Q4.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus,argh! @strong{updated 4/97} | 3198 * Q4.2.1:: GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus,argh! |
3186 * Q4.2.2:: [This question intentionally left blank] | 3199 * Q4.2.2:: [This question intentionally left blank] |
3187 * Q4.2.3:: How do I make Gnus stay within a single frame? | 3200 * Q4.2.3:: How do I make Gnus stay within a single frame? |
3188 * Q4.2.4:: How do I customize the From: line? | 3201 * Q4.2.4:: How do I customize the From: line? |
3189 | 3202 |
3190 Other Mail & News: | 3203 Other Mail & News: |
3193 * Q4.3.3:: Why isn't this @code{movemail} program working? | 3206 * Q4.3.3:: Why isn't this @code{movemail} program working? |
3194 * Q4.3.4:: Movemail is also distributed by Netscape? Can that cause problems? | 3207 * Q4.3.4:: Movemail is also distributed by Netscape? Can that cause problems? |
3195 * Q4.3.5:: Where do I find pstogif (required by tm)? | 3208 * Q4.3.5:: Where do I find pstogif (required by tm)? |
3196 | 3209 |
3197 Sparcworks, EOS, and WorkShop: | 3210 Sparcworks, EOS, and WorkShop: |
3198 * Q4.4.1:: What is SPARCworks, EOS, and WorkShop @strong{updated 4/97} | 3211 * Q4.4.1:: What is SPARCworks, EOS, and WorkShop |
3199 | 3212 |
3200 Energize: | 3213 Energize: |
3201 * Q4.5.1:: What is/was Energize? | 3214 * Q4.5.1:: What is/was Energize? |
3202 | 3215 |
3203 Infodock: | 3216 Infodock: |
3204 * Q4.6.1:: What is Infodock? | 3217 * Q4.6.1:: What is Infodock? |
3205 | 3218 |
3206 Other Unbundled Packages: | 3219 Other Unbundled Packages: |
3207 * Q4.7.1:: What is AucTeX? Where do you get it? | 3220 * Q4.7.1:: What is AUC TeX? Where do you get it? |
3208 * Q4.7.2:: Are there any Emacs Lisp Spreadsheets? | 3221 * Q4.7.2:: Are there any Emacs Lisp Spreadsheets? |
3209 * Q4.7.3:: Byte compiling AucTeX on XEmacs 19.14 | 3222 * Q4.7.3:: Byte compiling AUC TeX on XEmacs 19.14 |
3210 * Q4.7.4:: Problems installing AucTeX | 3223 * Q4.7.4:: Problems installing AUC TeX |
3224 * Q4.7.5:: Is there a reason for an Emacs package not to be included in XEmacs? | |
3211 @end menu | 3225 @end menu |
3212 | 3226 |
3213 @node Q4.0.1, Q4.0.2, Subsystems, Subsystems | 3227 @node Q4.0.1, Q4.0.2, Subsystems, Subsystems |
3214 @section How do I set up VM to retrieve mail from a remote site using POP? | 3228 @section How do I set up VM to retrieve mail from a remote site using POP? |
3215 | 3229 |
3231 <URL:ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/>. | 3245 <URL:ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/>. |
3232 | 3246 |
3233 Also see the Mail Filtering FAQ at: | 3247 Also see the Mail Filtering FAQ at: |
3234 <URL:http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html>. | 3248 <URL:http://www.cis.ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html>. |
3235 | 3249 |
3236 Another possibility is to check out Gnus 5. Gnus 5 has mail splitting | |
3237 capability, and can use VM as a mail reading backend. | |
3238 | |
3239 @node Q4.0.3, Q4.0.4, Q4.0.2, Subsystems | 3250 @node Q4.0.3, Q4.0.4, Q4.0.2, Subsystems |
3240 @section How can I get VM to automatically check for new mail? | 3251 @section How can I get VM to automatically check for new mail? |
3241 | 3252 |
3242 John Turner <turner@@lanl.gov> writes: | 3253 John Turner <turner@@lanl.gov> writes: |
3243 | 3254 |
3285 answer the questions myself. I guess it serves a purpose in that the VM | 3296 answer the questions myself. I guess it serves a purpose in that the VM |
3286 user community knows that I'm still alive, despite the 9 months since | 3297 user community knows that I'm still alive, despite the 9 months since |
3287 the last release. | 3298 the last release. |
3288 @end quotation | 3299 @end quotation |
3289 | 3300 |
3290 VM has its own newsgroup gnu.emacs.vm.info. | 3301 VM has its own newsgroups gnu.emacs.vm.info and gnu.emacs.vm.bug. |
3291 | 3302 |
3292 @node Q4.0.8, Q4.0.9, Q4.0.7, Subsystems | 3303 @node Q4.0.8, Q4.0.9, Q4.0.7, Subsystems |
3293 @section Remote Mailreading with VM. | 3304 @section Remote Mailreading with VM. |
3294 | 3305 |
3295 My mailbox lives at the office on a big honkin server. My regular INBOX | 3306 My mailbox lives at the office on a big honkin server. My regular INBOX |
3328 @end quotation | 3339 @end quotation |
3329 | 3340 |
3330 @node Q4.0.9, Q4.0.10, Q4.0.8, Subsystems | 3341 @node Q4.0.9, Q4.0.10, Q4.0.8, Subsystems |
3331 @section rmail or VM gets an error incorporating new mail. | 3342 @section rmail or VM gets an error incorporating new mail. |
3332 | 3343 |
3333 >From the XEmacs PROBLEMS file: | 3344 Quoting the XEmacs PROBLEMS file: |
3334 | 3345 |
3335 @quotation | 3346 @quotation |
3336 rmail and VM get new mail from @file{/usr/spool/mail/$USER} using a | 3347 rmail and VM get new mail from @file{/usr/spool/mail/$USER} using a |
3337 program called @code{movemail}. This program interlocks with | 3348 program called @code{movemail}. This program interlocks with |
3338 @code{/bin/mail} using the protocol defined by @code{/bin/mail}. | 3349 @code{/bin/mail} using the protocol defined by @code{/bin/mail}. |
3446 XEmacs. It has full support for cascaded style sheets, and more... | 3457 XEmacs. It has full support for cascaded style sheets, and more... |
3447 | 3458 |
3448 It has a home web page at | 3459 It has a home web page at |
3449 <URL:http://www.cs.indiana.edu/elisp/w3/docs.html>. | 3460 <URL:http://www.cs.indiana.edu/elisp/w3/docs.html>. |
3450 | 3461 |
3451 @node Q4.1.2, Q4.2.1, Q4.1.1, Subsystems | 3462 @node Q4.1.2, Q4.1.3, Q4.1.1, Subsystems |
3452 @section How do I run W3 from behind a firewall? | 3463 @section How do I run W3 from behind a firewall? |
3453 | 3464 |
3454 There is a long, well-written, detailed section in the W3 manual that | 3465 There is a long, well-written, detailed section in the W3 manual that |
3455 describes how to do this. Look in the section entitled "Firewalls". | 3466 describes how to do this. Look in the section entitled "Firewalls". |
3456 | 3467 |
3457 @node Q4.2.1, Q4.2.2, Q4.1.2, Subsystems | 3468 @node Q4.1.3, Q4.2.1, Q4.1.2, Subsystems |
3469 @section Is it true that W3 supports style sheets and tables? | |
3470 | |
3471 Yes, and much more. W3, as distributed with the latest XEmacs is a | |
3472 full-featured web browser. | |
3473 | |
3474 @node Q4.2.1, Q4.2.2, Q4.1.3, Subsystems | |
3458 @section GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Mamey Sapote Gnus, argh! | 3475 @section GNUS, (ding) Gnus, Gnus 5, September Gnus, Red Gnus, Mamey Sapote Gnus, argh! |
3459 | 3476 |
3460 Please see the FAQ <URL:http://www.ccs.neu.edu/software/gnus/> for details. | 3477 The Gnus numbering issues are not meant for mere mortals to know them. |
3478 If you feel you @emph{must} enter the muddy waters of Gnus, visit the | |
3479 excellent FAQ, maintained by Justin Sheehy, at: | |
3480 | |
3481 @example | |
3482 <URL:http://www.ccs.neu.edu/software/gnus/> | |
3483 @end example | |
3461 | 3484 |
3462 @node Q4.2.2, Q4.2.3, Q4.2.1, Subsystems | 3485 @node Q4.2.2, Q4.2.3, Q4.2.1, Subsystems |
3463 @section This question intentionally left blank. | 3486 @section This question intentionally left blank. |
3464 | 3487 |
3465 Obsolete question, left blank to avoid renumbering. | 3488 Obsolete question, left blank to avoid renumbering. |
3466 | 3489 |
3467 @node Q4.2.3, Q4.2.4, Q4.2.2, Subsystems | 3490 @node Q4.2.3, Q4.2.4, Q4.2.2, Subsystems |
3468 @section How do I make Gnus stay within a single frame? | 3491 @section How do I make Gnus stay within a single frame? |
3469 | 3492 |
3470 When starting Gnus from the toolbar it is automatically put into a new | 3493 The toolbar code to start Gnus opens the new frame---and it's a feature |
3471 frame. Gnus not being frame-aware code, has no provision to disable | 3494 rather than a bug. If you don't like it, but would still like to click |
3472 this feature. If you feel this is a problem here are some workarounds: | 3495 on the seemly icon, use the following code: |
3473 | |
3474 @enumerate | |
3475 @item | |
3476 Don't start Gnus from the toolbar, use @kbd{M-x gnus}. This is what I | |
3477 do. | |
3478 | |
3479 @item | |
3480 Redefine the function called by the toolbar: | |
3481 | 3496 |
3482 @lisp | 3497 @lisp |
3483 (defun toolbar-news () | 3498 (defun toolbar-news () |
3484 "Run Gnus in the frame it was started from." | |
3485 (interactive) | |
3486 (gnus)) | 3499 (gnus)) |
3487 @end lisp | 3500 @end lisp |
3488 @end enumerate | 3501 |
3502 It will redefine the callback function of the icon to just call | |
3503 @code{gnus}, without all the fancy frame stuff. | |
3489 | 3504 |
3490 @node Q4.2.4, Q4.3.1, Q4.2.3, Subsystems | 3505 @node Q4.2.4, Q4.3.1, Q4.2.3, Subsystems |
3491 @section How do I customize the From: line? | 3506 @section How do I customize the From: line? |
3492 | 3507 |
3493 How do I change the @code{From:} line? I have set gnus-user-from-line | 3508 How do I change the @code{From:} line? I have set gnus-user-from-line |
3815 | 3830 |
3816 Read the @file{ID-INSTALL} file which you just retrieved for | 3831 Read the @file{ID-INSTALL} file which you just retrieved for |
3817 step-by-step installation instructions. | 3832 step-by-step installation instructions. |
3818 | 3833 |
3819 @node Q4.7.1, Q4.7.2, Q4.6.1, Subsystems | 3834 @node Q4.7.1, Q4.7.2, Q4.6.1, Subsystems |
3820 @section What is AucTeX? Where do you get it? | 3835 @section What is AUC TeX? Where do you get it? |
3821 | 3836 |
3822 AucTeX is a package written by Per Abrahamsen <abraham@@dina.kvl.dk>. | 3837 AUC TeX is a package written by Per Abrahamsen <abraham@@dina.kvl.dk>. |
3823 The following information is from the @file{README} and website. | 3838 Starting with XEmacs 19.15, AUC TeX is bundled with XEmacs. The |
3839 following information is from the @file{README} and website. | |
3824 | 3840 |
3825 AUC TeX is an extensible package that supports writing and formatting | 3841 AUC TeX is an extensible package that supports writing and formatting |
3826 TeX files for most variants of GNU Emacs. Many different macro packages | 3842 TeX files for most variants of GNU Emacs. Many different macro packages |
3827 are supported, including AMS TeX, LaTeX, and TeXinfo. | 3843 are supported, including AMS TeX, LaTeX, and TeXinfo. |
3828 | 3844 |
3840 | 3856 |
3841 Yes. Check out @dfn{dismal} (which stands for Dis' Mode Ain't Lotus) at | 3857 Yes. Check out @dfn{dismal} (which stands for Dis' Mode Ain't Lotus) at |
3842 <URL:ftp://cs.nyu.edu/pub/local/fox/dismal/>. | 3858 <URL:ftp://cs.nyu.edu/pub/local/fox/dismal/>. |
3843 | 3859 |
3844 @node Q4.7.3, Q4.7.4, Q4.7.2, Subsystems | 3860 @node Q4.7.3, Q4.7.4, Q4.7.2, Subsystems |
3845 @section Byte compiling AucTeX on XEmacs 19.14. | 3861 @section Byte compiling AUC TeX on XEmacs 19.14. |
3846 | 3862 |
3847 Georges Brun-Cottan <bruncott@@dormeur.inria.fr> writes: | 3863 Georges Brun-Cottan <bruncott@@dormeur.inria.fr> writes: |
3848 | 3864 |
3849 @quotation | 3865 @quotation |
3850 When byte compiling auxtex-9.4g, you must use the command: | 3866 When byte compiling auxtex-9.4g, you must use the command: |
3852 @example | 3868 @example |
3853 xemacs -batch -l lpath.el | 3869 xemacs -batch -l lpath.el |
3854 @end example | 3870 @end example |
3855 @end quotation | 3871 @end quotation |
3856 | 3872 |
3857 @node Q4.7.4, , Q4.7.3, Subsystems | 3873 @node Q4.7.4, Q4.7.5, Q4.7.3, Subsystems |
3858 @section Problems installing AucTeX. | 3874 @section Problems installing AUC TeX. |
3859 | 3875 |
3860 Jan Vroonhof <vroonhof@@math.ethz.ch> writes: | 3876 Jan Vroonhof <vroonhof@@math.ethz.ch> writes: |
3861 | 3877 |
3862 @quotation | 3878 @quotation |
3863 AucTeX works fine on both stock Emacs and XEmacs has been doing so for a | 3879 AUC TeX works fine on both stock Emacs and XEmacs has been doing so for |
3864 very very long time. This is mostly due to the work of Per Abrahamsen | 3880 a very very long time. This is mostly due to the work of Per Abrahamsen |
3865 <abraham@@dina.kvl.dk> (clap clap) in particular his @file{easymenu} | 3881 <abraham@@dina.kvl.dk> (clap clap) in particular his @file{easymenu} |
3866 package. Which leads to what is probably the problem... | 3882 package. Which leads to what is probably the problem... |
3867 @end quotation | 3883 @end quotation |
3868 | 3884 |
3869 Most problems with AucTeX are one of two things: | 3885 Most problems with AUC TeX are one of two things: |
3870 | 3886 |
3871 @itemize @bullet | 3887 @itemize @bullet |
3872 @item | 3888 @item |
3873 The TeX-lisp-directory in @file{tex-site.el} and the makefile don't | 3889 The TeX-lisp-directory in @file{tex-site.el} and the makefile don't |
3874 match. | 3890 match. |
3875 | 3891 |
3876 Fix: make sure you configure AucTeX properly @strong{before} installing. | 3892 Fix: make sure you configure AUC TeX properly @strong{before} installing. |
3877 | 3893 |
3878 @item | 3894 @item |
3879 You have an old version of easymenu.el in your path. | 3895 You have an old version of easymenu.el in your path. |
3880 | 3896 |
3881 Fix: use @code{locate-library} and remove old versions to make sure it | 3897 Fix: use @code{locate-library} and remove old versions to make sure it |
3882 @strong{only} finds the one that came with XEmacs. | 3898 @strong{only} finds the one that came with XEmacs. |
3883 @end itemize | 3899 @end itemize |
3900 | |
3901 | |
3902 @node Q4.7.5, , Q4.7.4, Subsystems | |
3903 @section Is there a reason for an Emacs package not to be included in XEmacs? | |
3904 | |
3905 The reason for an Emacs package not to be included in XEmacs is | |
3906 usually one or more of the following: | |
3907 | |
3908 @enumerate | |
3909 @item | |
3910 The package has not been ported to XEmacs. This will typically happen | |
3911 when it uses GNU-Emacs-specific features, which make it fail under | |
3912 XEmacs. | |
3913 | |
3914 Porting a package to XEmacs can range from a trivial amount of change to | |
3915 a partial or full rewrite. Fortunately, the authors of modern packages | |
3916 usually choose to support both Emacsen themselves. | |
3917 | |
3918 @item | |
3919 The package has been decided not to be appropriate for XEmacs. It may | |
3920 have an equivalent or better replacement within XEmacs, in which case | |
3921 the developers may choose not to burden themselves with supporting an | |
3922 additional package. | |
3923 | |
3924 Each package bundled with XEmacs means more work for the maintainers, | |
3925 whether they want it or not. If you are ready to take over the | |
3926 maintainence responsibilities for the package you port, be sure to say | |
3927 so -- we will more likely include it. | |
3928 | |
3929 @item | |
3930 The package simply hasn't been noted by the XEmacs development. If | |
3931 that's the case, the messages like yours are very useful for attracting | |
3932 our attention. | |
3933 | |
3934 @item | |
3935 The package was noted by the developers, but they simply haven't yet | |
3936 gotten around to including/porting it. Wait for the next release or, | |
3937 even better, offer your help. It will be gladly accepted and | |
3938 appreciated. | |
3939 @end enumerate | |
3884 | 3940 |
3885 @node Miscellaneous, Current Events, Subsystems, Top | 3941 @node Miscellaneous, Current Events, Subsystems, Top |
3886 @chapter The Miscellaneous Stuff | 3942 @chapter The Miscellaneous Stuff |
3887 | 3943 |
3888 This is part 5 of the XEmacs Frequently Asked Questions list. This | 3944 This is part 5 of the XEmacs Frequently Asked Questions list. This |
3898 * Q5.0.5:: How can I get XEmacs to come up in text/auto-fill mode by default? | 3954 * Q5.0.5:: How can I get XEmacs to come up in text/auto-fill mode by default? |
3899 * Q5.0.6:: How do I start up a second shell buffer? | 3955 * Q5.0.6:: How do I start up a second shell buffer? |
3900 * Q5.0.7:: Telnet from shell filters too much. | 3956 * Q5.0.7:: Telnet from shell filters too much. |
3901 * Q5.0.8:: Why does edt emulation not work? | 3957 * Q5.0.8:: Why does edt emulation not work? |
3902 * Q5.0.9:: How can I emulate VI and use it as my default mode? | 3958 * Q5.0.9:: How can I emulate VI and use it as my default mode? |
3903 * Q5.0.10:: [This question intentionally left blank] @strong{removed 4/97} | 3959 * Q5.0.10:: [This question intentionally left blank] |
3904 * Q5.0.11:: Filladapt doesn't work in 19.15? @strong{updated 4/97} | 3960 * Q5.0.11:: Filladapt doesn't work in 19.15? |
3905 * Q5.0.12:: How do I disable gnuserv from opening a new frame? | 3961 * Q5.0.12:: How do I disable gnuserv from opening a new frame? |
3906 * Q5.0.13:: How do I start gnuserv so that each subsequent XEmacs is a client? | 3962 * Q5.0.13:: How do I start gnuserv so that each subsequent XEmacs is a client? |
3907 * Q5.0.14:: Strange things are happening in Shell Mode. | 3963 * Q5.0.14:: Strange things are happening in Shell Mode. |
3908 * Q5.0.15:: Where do I get the latest CC Mode? | 3964 * Q5.0.15:: Where do I get the latest CC Mode? |
3909 * Q5.0.16:: I find auto-show-mode disconcerting. How do I turn it off? | 3965 * Q5.0.16:: I find auto-show-mode disconcerting. How do I turn it off? |
3912 * Q5.0.19:: Is there something better than LaTeX mode? | 3968 * Q5.0.19:: Is there something better than LaTeX mode? |
3913 | 3969 |
3914 Emacs Lisp Programming Techniques: | 3970 Emacs Lisp Programming Techniques: |
3915 * Q5.1.1:: The difference in key sequences between XEmacs and GNU Emacs? | 3971 * Q5.1.1:: The difference in key sequences between XEmacs and GNU Emacs? |
3916 * Q5.1.2:: Can I generate "fake" keyboard events? | 3972 * Q5.1.2:: Can I generate "fake" keyboard events? |
3917 * Q5.1.3:: [This question intentionally left blank] @strong{removed 4/97} | 3973 * Q5.1.3:: Could you explain @code{read-kbd-macro} in more detail? |
3918 * Q5.1.4:: In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX? | 3974 * Q5.1.4:: What is the performance hit of @code{let}? |
3919 * Q5.1.5:: How do I put a glyph as annotation in a buffer? | 3975 * Q5.1.5:: What is the recommended use of @code{setq}? |
3976 * Q5.1.6:: What is the typical misuse of @code{setq} ? | |
3977 * Q5.1.7:: I like the the @code{do} form of cl, does it slow things down? | |
3978 * Q5.1.8:: I like recursion, does it slow things down? | |
3979 * Q5.1.9:: How do I put a glyph as annotation in a buffer? | |
3920 | 3980 |
3921 Sound: | 3981 Sound: |
3922 * Q5.2.1:: How do I turn off the sound? | 3982 * Q5.2.1:: How do I turn off the sound? |
3923 * Q5.2.2:: How do I get funky sounds instead of a boring beep? @strong{updated 4/97} | 3983 * Q5.2.2:: How do I get funky sounds instead of a boring beep? |
3924 * Q5.2.3:: What's NAS, how do I get it? | 3984 * Q5.2.3:: What's NAS, how do I get it? |
3925 * Q5.2.4:: Sunsite sounds don't play. | 3985 * Q5.2.4:: Sunsite sounds don't play. |
3926 | 3986 |
3927 Miscellaneous: | 3987 Miscellaneous: |
3928 * Q5.3.1:: How do you make XEmacs indent CL if-clauses correctly? | 3988 * Q5.3.1:: How do you make XEmacs indent CL if-clauses correctly? |
3978 c++-mode. | 4038 c++-mode. |
3979 | 4039 |
3980 @node Q5.0.3, Q5.0.4, Q5.0.2, Miscellaneous | 4040 @node Q5.0.3, Q5.0.4, Q5.0.2, Miscellaneous |
3981 @section How do I get @samp{More} Syntax Highlighting on by default? | 4041 @section How do I get @samp{More} Syntax Highlighting on by default? |
3982 | 4042 |
3983 For C, C++, and Lisp, you can add the following to your @file{.emacs}: | 4043 Use the following code in your @file{.emacs}: |
3984 | 4044 |
3985 @lisp | 4045 @lisp |
3986 (setq c-font-lock-keywords c-font-lock-keywords-2) | 4046 (setq-default font-lock-maximum-decoration t) |
3987 (setq c++-font-lock-keywords c++-font-lock-keywords-2) | 4047 @end lisp |
3988 (setq lisp-font-lock-keywords lisp-font-lock-keywords-2) | 4048 |
3989 @end lisp | 4049 In versions of XEmacs prior to 19.14, you had to use a kludgy solution |
4050 like this: | |
4051 | |
4052 @lisp | |
4053 (setq c-font-lock-keywords c-font-lock-keywords-2 | |
4054 c++-font-lock-keywords c++-font-lock-keywords-2 | |
4055 lisp-font-lock-keywords lisp-font-lock-keywords-2) | |
4056 @end lisp | |
4057 | |
4058 It will work for C, C++ and Lisp. | |
3990 | 4059 |
3991 @node Q5.0.4, Q5.0.5, Q5.0.3, Miscellaneous | 4060 @node Q5.0.4, Q5.0.5, Q5.0.3, Miscellaneous |
3992 @section How can I enable auto-indent? | 4061 @section How can I enable auto-indent? |
3993 | 4062 |
3994 Put the following line in your @file{.emacs}: | 4063 Put the following line in your @file{.emacs}: |
4001 standard with XEmacs. Put this into your @file{.emacs}: | 4070 standard with XEmacs. Put this into your @file{.emacs}: |
4002 | 4071 |
4003 @lisp | 4072 @lisp |
4004 (require 'filladapt) | 4073 (require 'filladapt) |
4005 (add-hook 'text-mode-hook 'turn-on-filladapt-mode) | 4074 (add-hook 'text-mode-hook 'turn-on-filladapt-mode) |
4006 (add-hook 'message-mode-hook 'turn-on-filladapt-mode) | 4075 ;;; and others ... |
4007 ;;; and so forth ... | 4076 @end lisp |
4008 @end lisp | 4077 |
4078 Note that well-behaving text-lookalike modes will run | |
4079 @code{text-mode-hook} by default (e.g. that's what Message does). For | |
4080 the nasty ones, you'll have to provide the @code{add-hook}s yourself. | |
4009 | 4081 |
4010 Please note that the @code{fa-extras} package is no longer useful. | 4082 Please note that the @code{fa-extras} package is no longer useful. |
4011 | 4083 |
4012 @node Q5.0.5, Q5.0.6, Q5.0.4, Miscellaneous | 4084 @node Q5.0.5, Q5.0.6, Q5.0.4, Miscellaneous |
4013 @section How can I get XEmacs to come up in text/auto-fill mode by default? | 4085 @section How can I get XEmacs to come up in text/auto-fill mode by default? |
4032 Emacs init file will cause the initial @code{*scratch*} buffer to be put | 4104 Emacs init file will cause the initial @code{*scratch*} buffer to be put |
4033 into auto-fill'ed @code{text-mode}: | 4105 into auto-fill'ed @code{text-mode}: |
4034 | 4106 |
4035 @lisp | 4107 @lisp |
4036 (setq initial-major-mode | 4108 (setq initial-major-mode |
4037 (function (lambda () | 4109 (lambda () |
4038 (text-mode) | 4110 (text-mode) |
4039 (turn-on-auto-fill)))) | 4111 (turn-on-auto-fill))) |
4040 @end lisp | 4112 @end lisp |
4041 | 4113 |
4042 Note that after your init file is loaded, if | 4114 Note that after your init file is loaded, if |
4043 @code{inhibit-startup-message} is null (the default) and the startup | 4115 @code{inhibit-startup-message} is @code{nil} (the default) and the |
4044 buffer is @code{*scratch*} then the startup message will be inserted | 4116 startup buffer is @code{*scratch*} then the startup message will be |
4045 into @code{*scratch*}; it will be removed after a timeout by erasing the | 4117 inserted into @code{*scratch*}; it will be removed after a timeout by |
4046 entire @code{*scratch*} buffer. Keep in mind this default usage of | 4118 erasing the entire @code{*scratch*} buffer. Keep in mind this default |
4047 @code{*scratch*} if you desire any prior manipulation of | 4119 usage of @code{*scratch*} if you desire any prior manipulation of |
4048 @code{*scratch*} from within your Emacs init file. In particular, | 4120 @code{*scratch*} from within your Emacs init file. In particular, |
4049 anything you insert into @code{*scratch*} from your init file will be | 4121 anything you insert into @code{*scratch*} from your init file will be |
4050 later erased. Also, if you change the mode of the @code{*scratch*} | 4122 later erased. Also, if you change the mode of the @code{*scratch*} |
4051 buffer, be sure that this will not interfere with possible later | 4123 buffer, be sure that this will not interfere with possible later |
4052 insertion of the startup message (e.g. if you put @code{*scratch*} into | 4124 insertion of the startup message (e.g. if you put @code{*scratch*} into |
4085 We don't know, but you can use tpu-edt emulation instead, which works | 4157 We don't know, but you can use tpu-edt emulation instead, which works |
4086 fine and is a little fancier than the standard edt emulation. To do | 4158 fine and is a little fancier than the standard edt emulation. To do |
4087 this, add the following line to your @file{.emacs}: | 4159 this, add the following line to your @file{.emacs}: |
4088 | 4160 |
4089 @lisp | 4161 @lisp |
4090 (load "tpu-edt") | 4162 (tpu-edt) |
4091 @end lisp | 4163 @end lisp |
4092 | 4164 |
4093 If you don't want it to replace @kbd{C-h} with an edt-style help menu | 4165 If you don't want it to replace @kbd{C-h} with an edt-style help menu |
4094 add this as well: | 4166 add this as well: |
4095 | 4167 |
4096 @lisp | 4168 @lisp |
4097 (global-set-key '(control h) 'help-for-help) | 4169 (global-set-key [(control h)] 'help-for-help) |
4098 @end lisp | 4170 @end lisp |
4099 | 4171 |
4100 @node Q5.0.9, Q5.0.10, Q5.0.8, Miscellaneous | 4172 @node Q5.0.9, Q5.0.10, Q5.0.8, Miscellaneous |
4101 @section How can I emulate VI and use it as my default mode? | 4173 @section How can I emulate VI and use it as my default mode? |
4102 | 4174 |
4240 | 4312 |
4241 David Kastrup <dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de> writes: | 4313 David Kastrup <dak@@fsnif.neuroinformatik.ruhr-uni-bochum.de> writes: |
4242 | 4314 |
4243 @quotation | 4315 @quotation |
4244 The standard TeX modes leave much to be desired, and are somewhat | 4316 The standard TeX modes leave much to be desired, and are somewhat |
4245 leniently maintained. Serious TeX users use AucTeX (@xref{Q4.7.1}). | 4317 leniently maintained. Serious TeX users use AUC TeX (@xref{Q4.7.1}). |
4246 @end quotation | 4318 @end quotation |
4247 | 4319 |
4248 @node Q5.1.1, Q5.1.2, Q5.0.19, Miscellaneous | 4320 @node Q5.1.1, Q5.1.2, Q5.0.19, Miscellaneous |
4249 @section What is the difference in key sequences between XEmacs and GNU Emacs? | 4321 @section What is the difference in key sequences between XEmacs and GNU Emacs? |
4250 | 4322 |
4254 Emacs has a legacy of keyboards that produced characters with modifier | 4326 Emacs has a legacy of keyboards that produced characters with modifier |
4255 bits, and therefore map a variety of input systems into this scheme even | 4327 bits, and therefore map a variety of input systems into this scheme even |
4256 today. XEmacs is instead optimized for X events. This causes an | 4328 today. XEmacs is instead optimized for X events. This causes an |
4257 incompatibility in the way key sequences are specified, but both Emacs | 4329 incompatibility in the way key sequences are specified, but both Emacs |
4258 and XEmacs will accept a key sequence as a vector of lists of modifiers | 4330 and XEmacs will accept a key sequence as a vector of lists of modifiers |
4259 that ends with a key, e.g., to bind M-C-a, you would say [(meta control | 4331 that ends with a key, e.g., to bind @kbd{M-C-a}, you would say |
4260 a)] in both Emacsen. XEmacs has an abbreviated form for a single key, | 4332 @code{[(meta control a)]} in both Emacsen. XEmacs has an abbreviated |
4261 just (meta control a). Emacs has an abbreviated form for the Control | 4333 form for a single key, just (meta control a). Emacs has an abbreviated |
4262 and the Meta modifiers to string-characters (the ASCII characters), as | 4334 form for the Control and the Meta modifiers to string-characters (the |
4263 in "\M-\C-a". XEmacs users need to be aware that the abbreviated form | 4335 ASCII characters), as in @samp{\M-\C-a}. XEmacs users need to be aware |
4264 works only for one-character key sequences, while Emacs users need to be | 4336 that the abbreviated form works only for one-character key sequences, |
4265 aware that the string-character is rather limited. Specifically, the | 4337 while Emacs users need to be aware that the string-character is rather |
4266 string-character can accomodate only 256 different values, 128 of which | 4338 limited. Specifically, the string-character can accomodate only 256 |
4267 have the Meta modifier and 128 of which have not. In each of these | 4339 different values, 128 of which have the Meta modifier and 128 of which |
4268 blocks, only 32 characters have the Control modifier. Whereas [(meta | 4340 have not. In each of these blocks, only 32 characters have the Control |
4269 control A)] differs from [(meta control a)] because the case differs, | 4341 modifier. Whereas @code{[(meta control A)]} differs from @code{[(meta |
4270 "\M-\C-a" and "\M-\C-A" do not. Programmers are advised to use the full | 4342 control a)]} because the case differs, @samp{\M-\C-a} and @samp{\M-\C-A} |
4271 common form, both because it is more readable and less error-prone, and | 4343 do not. Programmers are advised to use the full common form, both |
4272 because it is supported by both Emacsen. | 4344 because it is more readable and less error-prone, and because it is |
4273 @end quotation | 4345 supported by both Emacsen. |
4346 @end quotation | |
4347 | |
4348 Another (even safer) way to be sure of the key-sequences is to use the | |
4349 @code{read-kbd-macro} function, which takes a string like @samp{C-c | |
4350 <up>}, and converts it to the internal key representation of the Emacs | |
4351 you use. The function is available both on XEmacs and GNU Emacs. | |
4274 | 4352 |
4275 @node Q5.1.2, Q5.1.3, Q5.1.1, Miscellaneous | 4353 @node Q5.1.2, Q5.1.3, Q5.1.1, Miscellaneous |
4276 @section Can I generate "fake" keyboard events? | 4354 @section Can I generate "fake" keyboard events? |
4277 | 4355 |
4278 I wonder if there is an interactive function that can generate "fake" | 4356 I wonder if there is an interactive function that can generate |
4279 keyboard events. This way, I could simply map them inside XEmacs. | 4357 @dfn{fake} keyboard events. This way, I could simply map them inside |
4358 XEmacs. | |
4280 | 4359 |
4281 This seems to work: | 4360 This seems to work: |
4282 | 4361 |
4283 @lisp | 4362 @lisp |
4284 (defun cg--generate-char-event (ch) | 4363 (defun cg--generate-char-event (ch) |
4285 "Generate an event, as if ch has been typed" | 4364 "Generate an event, as if ch has been typed" |
4286 (dispatch-event (character-to-event ch))) | 4365 (dispatch-event (character-to-event ch))) |
4287 | 4366 |
4288 ;; Backspace and Delete stuff | 4367 ;; Backspace and Delete stuff |
4289 (global-set-key '(backspace) | 4368 (global-set-key [backspace] |
4290 '(lambda () (interactive) (cg--generate-char-event 127))) | 4369 (lambda () (interactive) (cg--generate-char-event 127))) |
4291 (global-set-key '(unknown_keysym_0x4) | 4370 (global-set-key [unknown_keysym_0x4] |
4292 '(lambda () (interactive) (cg--generate-char-event 4))) | 4371 (lambda () (interactive) (cg--generate-char-event 4))) |
4293 @end lisp | 4372 @end lisp |
4294 | 4373 |
4295 @node Q5.1.3, Q5.1.4, Q5.1.2, Miscellaneous | 4374 @node Q5.1.3, Q5.1.4, Q5.1.2, Miscellaneous |
4296 @section [This question intentionally left blank] | 4375 @section Could you explain @code{read-kbd-macro} in more detail? |
4297 | 4376 |
4298 Obsolete question, left blank to avoid renumbering. | 4377 The @code{read-kbd-macro} function returns the internal Emacs |
4378 representation of a human-readable string (which is its argument). | |
4379 Thus: | |
4380 | |
4381 @lisp | |
4382 (read-kbd-macro "C-c C-a") | |
4383 @result{} [(control ?c) (control ?a)] | |
4384 | |
4385 (read-kbd-macro "C-c C-. <up>") | |
4386 @result{} [(control ?c) (control ?.) up] | |
4387 @end lisp | |
4388 | |
4389 In GNU Emacs the same forms will be evaluated to what GNU Emacs | |
4390 understands internally---the sequences @code{"\C-x\C-c"} and @code{[3 | |
4391 67108910 up]}, respectively. | |
4392 | |
4393 The exact @dfn{human-readable} syntax is defined in the docstring of | |
4394 @code{edmacro-mode}. I'll repeat it here, for completeness. | |
4395 | |
4396 @quotation | |
4397 Format of keyboard macros during editing: | |
4398 | |
4399 Text is divided into @dfn{words} separated by whitespace. Except for | |
4400 the words described below, the characters of each word go directly as | |
4401 characters of the macro. The whitespace that separates words is | |
4402 ignored. Whitespace in the macro must be written explicitly, as in | |
4403 @kbd{foo SPC bar RET}. | |
4404 | |
4405 @itemize @bullet | |
4406 @item | |
4407 The special words @kbd{RET}, @kbd{SPC}, @kbd{TAB}, @kbd{DEL}, @kbd{LFD}, | |
4408 @kbd{ESC}, and @kbd{NUL} represent special control characters. The | |
4409 words must be written in uppercase. | |
4410 | |
4411 @item | |
4412 A word in angle brackets, e.g., @code{<return>}, @code{<down>}, or | |
4413 @code{<f1>}, represents a function key. (Note that in the standard | |
4414 configuration, the function key @code{<return>} and the control key | |
4415 @kbd{RET} are synonymous.) You can use angle brackets on the words | |
4416 @kbd{RET}, @kbd{SPC}, etc., but they are not required there. | |
4417 | |
4418 @item | |
4419 Keys can be written by their @sc{ascii} code, using a backslash followed | |
4420 by up to six octal digits. This is the only way to represent keys with | |
4421 codes above \377. | |
4422 | |
4423 @item | |
4424 One or more prefixes @kbd{M-} (meta), @kbd{C-} (control), @kbd{S-} | |
4425 (shift), @kbd{A-} (alt), @kbd{H-} (hyper), and @kbd{s-} (super) may | |
4426 precede a character or key notation. For function keys, the prefixes | |
4427 may go inside or outside of the brackets: @code{C-<down>} @equiv{} | |
4428 @code{<C-down>}. The prefixes may be written in any order: @kbd{M-C-x} | |
4429 @equiv{} @kbd{C-M-x}. | |
4430 | |
4431 Prefixes are not allowed on multi-key words, e.g., @kbd{C-abc}, except | |
4432 that the Meta prefix is allowed on a sequence of digits and optional | |
4433 minus sign: @kbd{M--123} @equiv{} @kbd{M-- M-1 M-2 M-3}. | |
4434 | |
4435 @item | |
4436 The @code{^} notation for control characters also works: @kbd{^M} | |
4437 @equiv{} @kbd{C-m}. | |
4438 | |
4439 @item | |
4440 Double angle brackets enclose command names: @code{<<next-line>>} is | |
4441 shorthand for @kbd{M-x next-line RET}. | |
4442 | |
4443 @item | |
4444 Finally, @code{REM} or @code{;;} causes the rest of the line to be | |
4445 ignored as a comment. | |
4446 @end itemize | |
4447 | |
4448 Any word may be prefixed by a multiplier in the form of a decimal number | |
4449 and @code{*}: @code{3*<right>} @equiv{} @code{<right> <right> <right>}, | |
4450 and @code{10*foo} @equiv{} @code{foofoofoofoofoofoofoofoofoofoo}. | |
4451 | |
4452 Multiple text keys can normally be strung together to form a word, but | |
4453 you may need to add whitespace if the word would look like one of the | |
4454 above notations: @code{; ; ;} is a keyboard macro with three semicolons, | |
4455 but @code{;;;} is a comment. Likewise, @code{\ 1 2 3} is four keys but | |
4456 @code{\123} is a single key written in octal, and @code{< right >} is | |
4457 seven keys but @code{<right>} is a single function key. When in doubt, | |
4458 use whitespace. | |
4459 @end quotation | |
4299 | 4460 |
4300 @node Q5.1.4, Q5.1.5, Q5.1.3, Miscellaneous | 4461 @node Q5.1.4, Q5.1.5, Q5.1.3, Miscellaneous |
4301 @section In 19.13, why do I get @samp{set-text-something} lisp errors with Gnus and AUC-TeX? | 4462 @section What is the performance hit of @code{let}? |
4302 | 4463 |
4303 The real problem is out of date software. Upgrade to later versions of | 4464 In most cases, not noticable. Besides, there's no avoiding |
4304 Gnus and AUC-TeX where this problem doesn't exist. | 4465 @code{let}---you have to bind your local variables, after all. Some |
4305 | 4466 pose a question whether to nest @code{let}s, or use one @code{let} per |
4306 The problem lies with the needs for an Emacs function, | 4467 function. I think because of clarity and maintenance (and possible |
4307 @code{set-text-properties}, which generally isn't required by XEmacs. | 4468 future implementation), @code{let}-s should be used (nested) in a way to |
4308 The solutions include adding the following code to your @file{.emacs}: | 4469 provide the clearest code. |
4309 | 4470 |
4310 @lisp | 4471 @node Q5.1.5, Q5.1.6, Q5.1.4, Miscellaneous |
4311 (fset 'set-text-properties (symbol-function 'ignore)) | 4472 @section What is the recommended use of @code{setq}? |
4312 @end lisp | 4473 |
4313 | 4474 @itemize @bullet |
4314 or | 4475 @item Global variables |
4315 | 4476 |
4316 @lisp | 4477 You will typically @code{defvar} your global variable to a default |
4317 (defadvice set-text-properties (around ignore-strings activate) | 4478 value, and use @code{setq} to set it later. |
4318 "Ignore strings." | 4479 |
4319 (or (stringp (ad-get-arg 3)) | 4480 It is never a good practice to @code{setq} user variables (like |
4320 ad-do-it)) | 4481 @code{case-fold-search}, etc.), as it ignores the user's choice |
4321 @end lisp | 4482 unconditionally. Note that @code{defvar} doesn't change the value of a |
4322 | 4483 variable if it was bound previously. If you wish to change a |
4323 The best is probably the canonical solution (posted by C.Thompson, on | 4484 user-variable temporarily, use @code{let}: |
4324 10/17/95): | 4485 |
4325 | 4486 @lisp |
4326 @lisp | 4487 (let ((case-fold-search nil)) |
4327 (defun set-text-properties (start end props &optional buffer) | 4488 ... ; code with searches that must be case-sensitive |
4328 "You should NEVER use this function. It is ideologically blasphemous. | 4489 ...) |
4329 It is provided only to ease porting of broken FSF Emacs programs." | 4490 @end lisp |
4330 (if (stringp buffer) nil | 4491 |
4331 (map-extents | 4492 You will notice the user-variables by their docstrings beginning with an |
4332 #'(lambda (extent ignored) | 4493 asterisk (a convention). |
4333 (remove-text-properties | 4494 |
4334 start end (list (extent-property extent 'text-prop) nil) | 4495 @item Local variables |
4335 buffer)) | 4496 |
4336 buffer start end nil nil 'text-prop) | 4497 Bind them with @code{let}, which will unbind them (or restore their |
4337 (add-text-properties start end props buffer))) | 4498 previous value, if they were bound) after exiting from the @code{let} |
4338 @end lisp | 4499 form. Change the value of local variables with @code{setq} or whatever |
4339 | 4500 you like (e.g. @code{incf}, @code{setf} and such). The @code{let} form |
4340 @node Q5.1.5, Q5.2.1, Q5.1.4, Miscellaneous | 4501 can even return one of its local variables. |
4502 | |
4503 Typical usage: | |
4504 | |
4505 @lisp | |
4506 ;; iterate through the elements of the list returned by | |
4507 ;; `hairy-function-that-returns-list' | |
4508 (let ((l (hairy-function-that-returns-list))) | |
4509 (while l | |
4510 ... do something with (car l) ... | |
4511 (setq l (cdr l)))) | |
4512 @end lisp | |
4513 | |
4514 Another typical usage includes building a value simply to work with it. | |
4515 | |
4516 @lisp | |
4517 ;; Build the mode keymap out of the key-translation-alist | |
4518 (let ((inbox (file-truename (expand-file-name box))) | |
4519 (i 0)) | |
4520 ... code dealing with inbox ... | |
4521 inbox) | |
4522 @end lisp | |
4523 | |
4524 This piece of code uses the local variable @code{inbox}, which becomes | |
4525 unbound (or regains old value) after exiting the form. The form also | |
4526 returns the value of @code{inbox}, which can be reused, for instance: | |
4527 | |
4528 @lisp | |
4529 (setq foo-processed-inbox | |
4530 (let .....)) | |
4531 @end lisp | |
4532 @end itemize | |
4533 | |
4534 @node Q5.1.6, Q5.1.7, Q5.1.5, Miscellaneous | |
4535 @section What is the typical misuse of @code{setq} ? | |
4536 | |
4537 A typical misuse is probably @code{setq}ing a variable that was meant to | |
4538 be local. Such a variable will remain bound forever, never to be | |
4539 garbage-collected. For example, the code doing: | |
4540 | |
4541 @lisp | |
4542 (defun my-function (whatever) | |
4543 (setq a nil) | |
4544 ... build a large list ... | |
4545 ... and exit ...) | |
4546 @end lisp | |
4547 | |
4548 does a bad thing, as @code{a} will keep consuming memory, never to be | |
4549 unbound. The correct thing is to do it like this: | |
4550 | |
4551 @lisp | |
4552 (defun my-function (whatever) | |
4553 (let (a) ; default initialization is to nil | |
4554 ... build a large list ... | |
4555 ... and exit, unbinding `a' in the process ...) | |
4556 @end lisp | |
4557 | |
4558 Not only is this prettier syntactically, but it makes it possible for | |
4559 Emacs to garbage-collect the objects which @code{a} used to reference. | |
4560 | |
4561 Note that even global variables should not be @code{setq}ed without | |
4562 @code{defvar}ing them first, because the byte-compiler issues warnings. | |
4563 The reason for the warning is the following: | |
4564 | |
4565 @lisp | |
4566 (defun flurgoze nil) ; ok, global internal variable | |
4567 ... | |
4568 | |
4569 (setq flurghoze t) ; ops! a typo, but semantically correct. | |
4570 ; however, the byte-compiler warns. | |
4571 | |
4572 While compiling toplevel forms: | |
4573 ** assignment to free variable flurghoze | |
4574 @end lisp | |
4575 | |
4576 @node Q5.1.7, Q5.1.8, Q5.1.6, Miscellaneous | |
4577 @section I like the the @code{do} form of cl, does it slow things down? | |
4578 | |
4579 It shouldn't. Here is what Dave Gillespie has to say about cl.el | |
4580 performance: | |
4581 | |
4582 @quotation | |
4583 Many of the advanced features of this package, such as @code{defun*}, | |
4584 @code{loop}, and @code{setf}, are implemented as Lisp macros. In | |
4585 byte-compiled code, these complex notations will be expanded into | |
4586 equivalent Lisp code which is simple and efficient. For example, the | |
4587 forms | |
4588 | |
4589 @lisp | |
4590 (incf i n) | |
4591 (push x (car p)) | |
4592 @end lisp | |
4593 | |
4594 are expanded at compile-time to the Lisp forms | |
4595 | |
4596 @lisp | |
4597 (setq i (+ i n)) | |
4598 (setcar p (cons x (car p))) | |
4599 @end lisp | |
4600 | |
4601 which are the most efficient ways of doing these respective operations | |
4602 in Lisp. Thus, there is no performance penalty for using the more | |
4603 readable @code{incf} and @code{push} forms in your compiled code. | |
4604 | |
4605 @emph{Interpreted} code, on the other hand, must expand these macros | |
4606 every time they are executed. For this reason it is strongly | |
4607 recommended that code making heavy use of macros be compiled. (The | |
4608 features labelled @dfn{Special Form} instead of @dfn{Function} in this | |
4609 manual are macros.) A loop using @code{incf} a hundred times will | |
4610 execute considerably faster if compiled, and will also garbage-collect | |
4611 less because the macro expansion will not have to be generated, used, | |
4612 and thrown away a hundred times. | |
4613 | |
4614 You can find out how a macro expands by using the @code{cl-prettyexpand} | |
4615 function. | |
4616 @end quotation | |
4617 | |
4618 @node Q5.1.8, Q5.1.9, Q5.1.7, Miscellaneous | |
4619 @section I like recursion, does it slow things down? | |
4620 | |
4621 Yes. Emacs byte-compiler cannot do much to optimize recursion. But | |
4622 think well whether this is a real concern in Emacs. Much of the Emacs | |
4623 slowness comes from internal mechanisms such as redisplay, or from the | |
4624 fact that it is an interpreter. | |
4625 | |
4626 Please try not to make your code much uglier to gain a very small speed | |
4627 gain. It's not usually worth it. | |
4628 | |
4629 @node Q5.1.9, Q5.2.1, Q5.1.8, Miscellaneous | |
4341 @section How do I put a glyph as annotation in a buffer? | 4630 @section How do I put a glyph as annotation in a buffer? |
4342 | 4631 |
4343 Thomas Feuster <feuster@@tp4.physik.uni-giessen.de> writes: | 4632 Here is a solution that will insert the glyph annotation at the |
4344 | 4633 beginning of buffer: |
4345 @quotation | 4634 |
4346 @lisp | 4635 @lisp |
4347 (let ((image-glyph (make-glyph-internal))) | 4636 (make-annotation (make-glyph '([FORMAT :file FILE] |
4348 (seems to be unavoidable to do 'make-glyph-internal') | 4637 [string :data "fallback-text"])) |
4349 @end lisp | 4638 (point-min) |
4350 | 4639 'text |
4351 Now for viewing files: | 4640 (current-buffer)) |
4352 | 4641 @end lisp |
4353 @lisp | 4642 |
4354 (set-glyph-image image-glyph view-graph-file-buf)) | 4643 Replace @samp{FORMAT} with an unquoted symbol representing the format of |
4355 @end lisp | 4644 the image (e.g. @code{xpm}, @code{xbm}, @code{gif}, @code{jpeg}, etc.) |
4356 | 4645 Instead of @samp{FILE}, use the image file name |
4357 For viewing already loaded buffers: | 4646 (e.g. @file{/usr/local/lib/xemacs-20.2/etc/recycle.xpm}). |
4358 | 4647 |
4359 @lisp | 4648 You can turn this to a function (that optionally prompts you for a file |
4360 (setq image-glyph (make-glyph | 4649 name), and inserts the glyph at @code{(point)} instead of |
4361 (vector view-graph-file-format :data | 4650 @code{(point-min)}. |
4362 (buffer-substring | 4651 |
4363 (point-min) | 4652 @node Q5.2.1, Q5.2.2, Q5.1.9, Miscellaneous |
4364 (point-max))))) | |
4365 @end lisp | |
4366 | |
4367 The thing I couldn't figure out is how to make XEmacs guess the format | |
4368 from the contents - like it does for files. So it's a real pain to | |
4369 extract the format from the extensions of the file-name... | |
4370 @end quotation | |
4371 | |
4372 @node Q5.2.1, Q5.2.2, Q5.1.5, Miscellaneous | |
4373 @section How do I turn off the sound? | 4653 @section How do I turn off the sound? |
4374 | 4654 |
4375 Add the following line to your @file{.emacs}: | 4655 Add the following line to your @file{.emacs}: |
4376 | 4656 |
4377 @lisp | 4657 @lisp |
4378 (setq bell-volume 0) | 4658 (setq bell-volume 0) |
4379 (setq sound-alist nil) | 4659 (setq sound-alist nil) |
4380 @end lisp | 4660 @end lisp |
4661 | |
4662 That will make your XEmacs totally silent -- even the default ding sound | |
4663 (TTY beep on TTY-s) will be gone. | |
4381 | 4664 |
4382 @node Q5.2.2, Q5.2.3, Q5.2.1, Miscellaneous | 4665 @node Q5.2.2, Q5.2.3, Q5.2.1, Miscellaneous |
4383 @section How do I get funky sounds instead of a boring beep? | 4666 @section How do I get funky sounds instead of a boring beep? |
4384 | 4667 |
4385 Make sure your XEmacs was compiled with sound support, and then put this | 4668 Make sure your XEmacs was compiled with sound support, and then put this |
4450 Also, a new version (1.2) of @file{cl-indent.el} was posted to | 4733 Also, a new version (1.2) of @file{cl-indent.el} was posted to |
4451 comp.emacs.xemacs on 12/9/94. This version includes more documentation | 4734 comp.emacs.xemacs on 12/9/94. This version includes more documentation |
4452 than previous versions. This may prove useful if you need to customize | 4735 than previous versions. This may prove useful if you need to customize |
4453 any indent-functions. | 4736 any indent-functions. |
4454 | 4737 |
4455 NB: I would have thought with the passage of time this would be the | |
4456 standard version by now, but that appears not to be the case. The | |
4457 version of filladapt included with 19.14 is last dated 1993, and does | |
4458 not have a version number. | |
4459 | |
4460 @node Q5.3.2, Q5.3.3, Q5.3.1, Miscellaneous | 4738 @node Q5.3.2, Q5.3.3, Q5.3.1, Miscellaneous |
4461 @section Fontifying hang when editing a postscript file. | 4739 @section Fontifying hang when editing a postscript file. |
4462 | 4740 |
4463 When I try to edit a postscript file it gets stuck saying: | 4741 When I try to edit a postscript file it gets stuck saying: |
4464 @samp{fontifying 'filename' (regexps....)} and it just sits there. If I | 4742 @samp{fontifying 'filename' (regexps....)} and it just sits there. If I |
4527 Obsolete question, left blank to avoid renumbering. | 4805 Obsolete question, left blank to avoid renumbering. |
4528 | 4806 |
4529 @node Q5.3.7, Q5.3.8, Q5.3.6, Miscellaneous | 4807 @node Q5.3.7, Q5.3.8, Q5.3.6, Miscellaneous |
4530 @section Can I have the end of the buffer delimited in some way? | 4808 @section Can I have the end of the buffer delimited in some way? |
4531 | 4809 |
4532 Say, with: [END]? | 4810 Say, with: @samp{[END]}? |
4533 | 4811 |
4534 Use this: | 4812 Try this: |
4535 | 4813 |
4536 @lisp | 4814 @lisp |
4537 (make-annotation "[END]" (point-max) 'text (current-buffer)) | 4815 (let ((ext (make-extent (point-min) (point-max)))) |
4538 @end lisp | 4816 (set-extent-property ext 'start-closed t) |
4539 | 4817 (set-extent-property ext 'end-closed t) |
4540 Note that you might want to put this in a hook. Since | 4818 (set-extent-property ext 'detachable nil) |
4541 @code{make-annotation} is not defined by default, you might also need: | 4819 (set-extent-end-glyph ext (make-glyph [string :data "[END]"]))) |
4542 | 4820 @end lisp |
4543 @lisp | 4821 |
4544 (require 'annotations) | 4822 Since this is XEmacs, you can specify an icon to be shown on |
4545 @end lisp | 4823 window-system devices. To do so, change the @code{make-glyph} call to |
4824 something like this: | |
4825 | |
4826 @lisp | |
4827 (make-glyph '([xpm :file "~/something.xpm"] | |
4828 [string :data "[END]"])) | |
4829 @end lisp | |
4830 | |
4831 You can inline the @sc{xpm} definition yourself by specifying | |
4832 @code{:data} instead of @code{:file}. Here is such a full-featured | |
4833 version that works on both X and TTY devices: | |
4834 | |
4835 @lisp | |
4836 (let ((ext (make-extent (point-min) (point-max)))) | |
4837 (set-extent-property ext 'start-closed t) | |
4838 (set-extent-property ext 'end-closed t) | |
4839 (set-extent-property ext 'detachable nil) | |
4840 (set-extent-end-glyph ext (make-glyph '([xpm :data "\ | |
4841 /* XPM */ | |
4842 static char* eye = @{ | |
4843 \"20 11 7 2\", | |
4844 \"__ c None\" | |
4845 \"_` c #7f7f7f\", | |
4846 \"_a c #fefefe\", | |
4847 \"_b c #7f0000\", | |
4848 \"_c c #fefe00\", | |
4849 \"_d c #fe0000\", | |
4850 \"_e c #bfbfbf\", | |
4851 \"___________`_`_`___b_b_b_b_________`____\", | |
4852 \"_________`_`_`___b_c_c_c_b_b____________\", | |
4853 \"_____`_`_`_e___b_b_c_c_c___b___b_______`\", | |
4854 \"___`_`_e_a___b_b_d___b___b___b___b______\", | |
4855 \"_`_`_e_a_e___b_b_d_b___b___b___b___b____\", | |
4856 \"_`_`_a_e_a___b_b_d___b___b___b___b___b__\", | |
4857 \"_`_`_e_a_e___b_b_d_b___b___b___b___b_b__\", | |
4858 \"___`_`_e_a___b_b_b_d_c___b___b___d_b____\", | |
4859 \"_____`_`_e_e___b_b_b_d_c___b_b_d_b______\", | |
4860 \"_`_____`_`_`_`___b_b_b_d_d_d_d_b________\", | |
4861 \"___`_____`_`_`_`___b_b_b_b_b_b__________\", | |
4862 @} ;"] | |
4863 [string :data "[END]"])))) | |
4864 @end lisp | |
4865 | |
4866 Note that you might want to make this a function, and put it to a hook. | |
4867 We leave that as an excercise for the reader. | |
4546 | 4868 |
4547 @node Q5.3.8, Q5.3.9, Q5.3.7, Miscellaneous | 4869 @node Q5.3.8, Q5.3.9, Q5.3.7, Miscellaneous |
4548 @section How do I insert today's date into a buffer? | 4870 @section How do I insert today's date into a buffer? |
4549 | 4871 |
4550 Like this: | 4872 Like this: |
4569 If this sounds confusing to you, (re-)read the online documentation for | 4891 If this sounds confusing to you, (re-)read the online documentation for |
4570 abbrevs (@kbd{C-h i m XEmacs RET m Abbrevs RET}), and then come back and | 4892 abbrevs (@kbd{C-h i m XEmacs RET m Abbrevs RET}), and then come back and |
4571 read this question/answer again. | 4893 read this question/answer again. |
4572 @end quotation | 4894 @end quotation |
4573 | 4895 |
4896 Hrvoje Niksic <hniksic@@srce.hr> writes: | |
4897 | |
4898 @quotation | |
4899 I consider this a bug. I may attempt to fix it one day (and add a | |
4900 variable to revert to the current behavior). | |
4901 | |
4902 If many people wants to see this fixed, send me mails---they will move | |
4903 me to start hacking sooner. | |
4904 @end quotation | |
4905 | |
4574 @node Q5.3.10, Q5.3.11, Q5.3.9, Miscellaneous | 4906 @node Q5.3.10, Q5.3.11, Q5.3.9, Miscellaneous |
4575 @section How can I get those oh-so-neat X-Face lines? | 4907 @section How can I get those oh-so-neat X-Face lines? |
4576 | 4908 |
4577 Firstly there is an ftp site which describes X-faces and has the | 4909 Firstly there is an ftp site which describes X-faces and has the |
4578 associated tools mentioned below, at | 4910 associated tools mentioned below, at |
4614 @lisp | 4946 @lisp |
4615 (defun mail-insert-x-face () | 4947 (defun mail-insert-x-face () |
4616 (save-excursion | 4948 (save-excursion |
4617 (goto-char (point-min)) | 4949 (goto-char (point-min)) |
4618 (search-forward mail-header-separator) | 4950 (search-forward mail-header-separator) |
4619 (beginning-of-line nil) | 4951 (beginning-of-line) |
4620 (insert "X-Face:") | 4952 (insert "X-Face:") |
4621 (insert-file "~/.face"))) | 4953 (insert-file-contents "~/.face"))) |
4622 | 4954 |
4623 (add-hook 'mail-setup-hook 'mail-insert-x-face) | 4955 (add-hook 'mail-setup-hook 'mail-insert-x-face) |
4624 @end lisp | 4956 @end lisp |
4625 @end enumerate | 4957 @end enumerate |
4626 | 4958 |
4749 transpired over the previous month. If you are reading this from the | 5081 transpired over the previous month. If you are reading this from the |
4750 XEmacs distribution, please see the version on the Web or archived at the | 5082 XEmacs distribution, please see the version on the Web or archived at the |
4751 various FAQ FTP sites, as this file is surely out of date. | 5083 various FAQ FTP sites, as this file is surely out of date. |
4752 | 5084 |
4753 @menu | 5085 @menu |
4754 * Q6.0.1:: What is new in 20.1? @strong{updated 4/97} | 5086 * Q6.0.1:: What is new in 20.2? |
5087 * Q6.0.2:: What is new in 20.3? | |
4755 * Q6.0.3:: Procedural changes in XEmacs development. | 5088 * Q6.0.3:: Procedural changes in XEmacs development. |
4756 @end menu | 5089 @end menu |
4757 | 5090 |
4758 @node Q6.0.1, Q6.0.3, Current Events, Current Events | 5091 @node Q6.0.1, Q6.0.2, Current Events, Current Events |
4759 @section What is new in 20.1? | 5092 @section What is new in 20.2? |
4760 | 5093 |
4761 The biggest changes in 20.1 include intergration of EFS (the next | 5094 The biggest changes in 20.2 include intergration of EFS (the next |
4762 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a | 5095 generation of ange-ftp) and AUC Tex (the Emacs subsystem that includes a |
4763 major mode for editing Tex and LaTeX, and a lot of other stuff). Many | 5096 major mode for editing Tex and LaTeX, and a lot of other stuff). Many |
4764 bugs from 20.0 have been fixed for this release. | 5097 bugs from 20.0 have been fixed for this release. 20.2 also contains a |
4765 | 5098 new system for customizing XEmacs options, invoked via @kbd{M-x |
4766 XEmacs 20.1 is the development release, and is no longer considered | 5099 customize}. |
4767 unstable. | 5100 |
4768 | 5101 XEmacs 20.2 is the development release (20.0 was beta), and is no longer |
4769 @node Q6.0.3, , Q6.0.1, Current Events | 5102 considered unstable. |
5103 | |
5104 @node Q6.0.2, Q6.0.3, Q6.0.1, Current Events | |
5105 @section What is new in 20.3? | |
5106 | |
5107 XEmacs release 20.3 is planned for autumn 1997. It will likely contain | |
5108 a much smaller amount of code for basic functionality, with all the | |
5109 popular Lisp packages being available in the form of easy-to-install | |
5110 add-ons. | |
5111 | |
5112 Other input methods (such as skk) will be made available for Mule, as | |
5113 well as more user-level documentation. | |
5114 | |
5115 Many new features are planned, such as multiple TTY frames, support for | |
5116 Autoconf 2, synches with Emacs 20.1, and more; much of this is already | |
5117 running in various beta versions. Ask at | |
5118 @code{<xemacs-beta-request@@xemacs.org>} for more details. | |
5119 | |
5120 @node Q6.0.3, , Q6.0.2, Current Events | |
4770 @section Procedural changes in XEmacs development. | 5121 @section Procedural changes in XEmacs development. |
4771 | 5122 |
4772 @enumerate | 5123 @enumerate |
4773 @item | 5124 @item |
4774 Discussion about the development of XEmacs occurs on the xemacs-beta | 5125 Discussion about the development of XEmacs occurs on the xemacs-beta |
4781 @item | 5132 @item |
4782 Due to the long development cycle in between releases, it has been | 5133 Due to the long development cycle in between releases, it has been |
4783 decided that intermediate versions will be made available in source only | 5134 decided that intermediate versions will be made available in source only |
4784 form for the truly interested. | 5135 form for the truly interested. |
4785 | 5136 |
4786 No further XEmacs 19 releases are planned. | 5137 No further XEmacs 19 feature releases are planned. XEmacs 19.16 will |
5138 consist of 19.15 plus the collected bugfixes, and will probably be the | |
5139 final version of XEmacs 19. | |
4787 | 5140 |
4788 @item | 5141 @item |
4789 As of December 1996, Steve Baur <steve@@altair.xemacs.org> has become | 5142 As of December 1996, Steve Baur <steve@@altair.xemacs.org> has become |
4790 the lead maintainer of XEmacs. | 5143 the lead maintainer of XEmacs. |
5144 @end enumerate | |
4791 | 5145 |
4792 @bye | 5146 @bye |
4793 < |