Mercurial > hg > xemacs-beta
comparison man/xemacs-faq.texi @ 2537:b7b90f750a78
[xemacs-hg @ 2005-01-31 20:08:32 by ben]
Documentation updates
GETTING.GNU.SOFTWARE, Makefile.in.in: Delete GETTING.GNU.SOFTWARE from SOURCES.
PROBLEMS: Delete reference to check_cygwin_setup.sh.
Delete stuff that is irrelevant, mislocated or woefully out-of-date.
GNU, SERVICE: Delete.
* ORDERS, ORDERS.EUROPE, ORDERS.JAPAN: Delete.
* CHARSETS, CODINGS: Delete.
* DEBUG, LPF, MORE.STUFF, MOTIVATION: Delete.
aliases.ksh: Delete. (moved to xemacs-builds/steve)
* README.HYPERBOLE, README.OO-BROWSER: Delete.
* chr.png, chrm.png: Move to photos/.
check_cygwin_setup.sh: Delete.
* gnu.xpm, gnu.xbm, sink.xbm: Delete.
* ms-kermit, ms-kermit-7bit: Delete.
TERMS: Delete.
* DISTRIB, FTP, MACHINES, MAILINGLISTS, PACKAGES:
Delete and move to FAQ.
BETA: Delete and move to man/beta.texi.
README: Update.
help.el: Removed.
xemacs/help.texi: Delete references to DISTRIB. Point to FAQ.
xemacs/new.texi: Update sample code for version checking.
xemacs/xemacs.texi: Delete references to DISTRIB. Point directly to web site.
Update stuff referring to GNU Emacs. Delete references to Win-Emacs.
Makefile: Add beta.texi and built files.
xemacs-faq.texi: Major overhaul of section 1. Add mailing list info, update
downloading info, add info on CVS, etc.
xemacs.mak: Also copy BUGS, README, COPYING and Installation.
author | ben |
---|---|
date | Mon, 31 Jan 2005 20:08:52 +0000 |
parents | 4c1db13742bc |
children | 0e04aba50e0b |
comparison
equal
deleted
inserted
replaced
2536:7edc33019aa4 | 2537:b7b90f750a78 |
---|---|
5 @setchapternewpage off | 5 @setchapternewpage off |
6 @c %**end of header | 6 @c %**end of header |
7 @finalout | 7 @finalout |
8 @titlepage | 8 @titlepage |
9 @title XEmacs FAQ | 9 @title XEmacs FAQ |
10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2004/12/29 05:08:26 $ | 10 @subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2005/01/31 20:08:48 $ |
11 @sp 1 | 11 @sp 1 |
12 @author Ben Wing <ben@@xemacs.org> | 12 @author Ben Wing <ben@@xemacs.org> |
13 @author Tony Rossini <rossini@@u.washington.edu> | 13 @author Tony Rossini <rossini@@u.washington.edu> |
14 @author Chuck Thompson <cthomp@@xemacs.org> | 14 @author Chuck Thompson <cthomp@@xemacs.org> |
15 @author Steve Baur <steve@@xemacs.org> | 15 @author Steve Baur <steve@@xemacs.org> |
192 @detailmenu | 192 @detailmenu |
193 --- The Detailed Node Listing --- | 193 --- The Detailed Node Listing --- |
194 | 194 |
195 1 Introduction, Policy, Credits | 195 1 Introduction, Policy, Credits |
196 | 196 |
197 1.0: Introduction | 197 1.0: What is XEmacs? |
198 * Q1.0.1:: What is XEmacs? | 198 * Q1.0.1:: What is XEmacs? |
199 * Q1.0.2:: What is the current version of XEmacs? | 199 * Q1.0.2:: What is the current version of XEmacs? |
200 * Q1.0.3:: Where can I find it? | 200 * Q1.0.3:: How do you pronounce XEmacs? |
201 * Q1.0.4:: Are binaries available? | 201 * Q1.0.4:: What does XEmacs look like? |
202 * Q1.0.5:: How does XEmacs differ from GNU Emacs? | 202 * Q1.0.5:: Who wrote XEmacs? |
203 * Q1.0.6:: How much does XEmacs differ? | 203 * Q1.0.6:: Who wrote the FAQ? |
204 * Q1.0.7:: Is XEmacs "GNU"? | 204 |
205 * Q1.0.8:: What is the correct way to refer to XEmacs and GNU Emacs? | 205 1.1: Getting XEmacs |
206 * Q1.0.9:: Why haven't XEmacs and GNU Emacs merged? | 206 * Q1.1.1:: Where can I find XEmacs? |
207 * Q1.0.10:: Where can I get help? | 207 * Q1.1.2:: Are binaries available? |
208 * Q1.0.11:: Where are the mailing lists archived? | 208 * Q1.1.3:: How do I get the bleeding-edge sources? |
209 * Q1.0.12:: How do you pronounce XEmacs? | 209 * Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual? |
210 * Q1.0.13:: What does XEmacs look like? | 210 |
211 * Q1.0.14:: Where can I obtain a printed copy of the XEmacs User's Manual? | 211 1.2: Versions for Different Operating Systems |
212 | 212 * Q1.2.1:: Do I need X11 to run XEmacs? |
213 1.1: Versions for Different Operating Systems | 213 * Q1.2.2:: What versions of Unix does XEmacs run on? |
214 * Q1.1.1:: Do I need X11 to run XEmacs? | 214 * Q1.2.3:: Is there a port of XEmacs to Microsoft Windows? |
215 * Q1.1.2:: Is there a port of XEmacs to Microsoft Windows? | 215 * Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to? |
216 * Q1.1.3:: Can I build XEmacs on MS Windows with X support? Do I need to? | 216 * Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs? |
217 * Q1.1.4:: What are Cygwin and MinGW, and do I need them to run XEmacs? | 217 * Q1.2.6:: What are the differences between the various MS Windows emacsen? |
218 * Q1.1.5:: What are the differences between the various MS Windows emacsen? | 218 * Q1.2.7:: How does the port cope with differences in the Windows user interface? |
219 * Q1.1.6:: Is there a port of XEmacs to the Macintosh? | 219 * Q1.2.8:: Is there a port of XEmacs to the Macintosh? |
220 * Q1.1.7:: Is there a port of XEmacs to NextStep? | 220 * Q1.2.9:: Is there a port of XEmacs to MS-DOS? |
221 * Q1.1.8:: Is there a port of XEmacs to OS/2? | 221 * Q1.2.10:: Is there a port of XEmacs to OS/2? |
222 * Q1.1.9:: How does the port cope with differences in the Windows user interface? | 222 * Q1.2.11:: Is there a port of XEmacs to NextStep? |
223 | 223 * Q1.2.12:: Is there a port of XEmacs to VMS? |
224 1.2: Policies | 224 |
225 * Q1.2.1:: What is the FAQ editorial policy? | 225 1.3: Getting Started |
226 * Q1.2.2:: How do I become a beta tester? | 226 * Q1.3.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one? |
227 * Q1.2.3:: How do I contribute to XEmacs itself? | 227 * Q1.3.2:: Where do I put my @file{init.el} file? |
228 | 228 * Q1.3.3:: Can I use the same @file{init.el} with the other Emacs? |
229 1.3: Credits | 229 * Q1.3.4:: Any good XEmacs tutorials around? |
230 * Q1.3.1:: Who wrote XEmacs? | 230 * Q1.3.5:: May I see an example of a useful XEmacs Lisp function? |
231 * Q1.3.2:: Who contributed to this version of the FAQ? | 231 * Q1.3.6:: And how do I bind it to a key? |
232 * Q1.3.3:: Who contributed to the FAQ in the past? | 232 * Q1.3.7:: What's the difference between a macro and a function? |
233 | 233 * Q1.3.8:: What is @code{Custom}? |
234 1.4: Internationalization | 234 |
235 * Q1.4.1:: What is the status of internationalization support aka MULE (including Asian language support)? | 235 1.4: Getting Help |
236 * Q1.4.2:: How can I help with internationalization? | 236 * Q1.4.1:: Where can I get help? |
237 * Q1.4.3:: How do I type non-ASCII characters? | 237 * Q1.4.2:: Which mailing lists are there? |
238 * Q1.4.4:: Can XEmacs messages come out in a different language? | 238 * Q1.4.2:: Where are the mailing lists archived? |
239 * Q1.4.5:: Please explain the various input methods in MULE/XEmacs | 239 * Q1.4.3:: How can I get two instances of info? |
240 * Q1.4.6:: How do I portably code for MULE/XEmacs? | 240 * Q1.4.4:: How do I add new Info directories? |
241 * Q1.4.7:: How about Cyrillic modes? | 241 |
242 * Q1.4.8:: Does XEmacs support Unicode? | 242 1.5: Contributing to XEmacs |
243 * Q1.4.9:: How does XEmacs display Unicode? | 243 * Q1.5.1:: How do I submit changes to the FAQ? |
244 | 244 * Q1.5.2:: How do I become a beta tester? |
245 1.5: Getting Started | 245 * Q1.5.3:: How do I contribute to XEmacs itself? |
246 * Q1.5.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one? | 246 |
247 * Q1.5.2:: Where do I put my @file{init.el} file? | 247 1.6: Politics (XEmacs vs. GNU Emacs) |
248 * Q1.5.3:: Can I use the same @file{init.el} with the other Emacs? | 248 * Q1.6.1:: What is GNU Emacs? |
249 * Q1.5.4:: Any good XEmacs tutorials around? | 249 * Q1.6.2:: How does XEmacs differ from GNU Emacs? |
250 * Q1.5.5:: May I see an example of a useful XEmacs Lisp function? | 250 * Q1.6.3:: How much does XEmacs differ? |
251 * Q1.5.6:: And how do I bind it to a key? | 251 * Q1.6.4:: Is XEmacs "GNU"? |
252 * Q1.5.7:: What's the difference between a macro and a function? | 252 * Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs? |
253 * Q1.5.8:: What is @code{Custom}? | 253 * Q1.6.6:: Why haven't XEmacs and GNU Emacs merged? |
254 | |
255 1.7: External Packages | |
256 * Q1.7.1:: Which external packages are there? | |
257 | |
258 1.8: Internationalization | |
259 * Q1.8.1:: What is the status of internationalization support aka MULE (including Asian language support)? | |
260 * Q1.8.2:: How can I help with internationalization? | |
261 * Q1.8.3:: How do I type non-ASCII characters? | |
262 * Q1.8.4:: Can XEmacs messages come out in a different language? | |
263 * Q1.8.5:: Please explain the various input methods in MULE/XEmacs | |
264 * Q1.8.6:: How do I portably code for MULE/XEmacs? | |
265 * Q1.8.7:: How about Cyrillic modes? | |
266 * Q1.8.8:: Does XEmacs support Unicode? | |
267 * Q1.8.9:: How does XEmacs display Unicode? | |
254 | 268 |
255 2 Installation and Troubleshooting | 269 2 Installation and Troubleshooting |
256 | 270 |
257 2.0: Installation (General), Packages | 271 2.0: Installation (General), Packages |
258 * Q2.0.1:: How do I install the packages? | 272 * Q2.0.1:: How do I install the packages? |
471 * Q6.4.2:: How do I run W3 from behind a firewall? | 485 * Q6.4.2:: How do I run W3 from behind a firewall? |
472 * Q6.4.3:: Is it true that W3 supports style sheets and tables? | 486 * Q6.4.3:: Is it true that W3 supports style sheets and tables? |
473 | 487 |
474 7 Advanced Customization Using XEmacs Lisp | 488 7 Advanced Customization Using XEmacs Lisp |
475 | 489 |
476 7.0: Online Help | 490 7.0: Emacs Lisp and @file{init.el} |
477 * Q7.0.1:: How can I get two instances of info? | 491 * Q7.0.1:: What version of Emacs am I running? |
478 * Q7.0.2:: How do I add new Info directories? | 492 * Q7.0.2:: How can I evaluate Emacs-Lisp expressions? |
479 | 493 * Q7.0.3:: @code{(setq tab-width 6)} behaves oddly. |
480 7.1: Emacs Lisp and @file{init.el} | 494 * Q7.0.4:: How can I add directories to the @code{load-path}? |
481 * Q7.1.1:: What version of Emacs am I running? | 495 * Q7.0.5:: How to check if a lisp function is defined? |
482 * Q7.1.2:: How can I evaluate Emacs-Lisp expressions? | 496 * Q7.0.6:: Can I force the output of @code{(face-list)} to a buffer? |
483 * Q7.1.3:: @code{(setq tab-width 6)} behaves oddly. | 497 |
484 * Q7.1.4:: How can I add directories to the @code{load-path}? | 498 7.1: Emacs Lisp Programming Techniques |
485 * Q7.1.5:: How to check if a lisp function is defined? | 499 * Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs? |
486 * Q7.1.6:: Can I force the output of @code{(face-list)} to a buffer? | 500 * Q7.1.2:: Can I generate "fake" keyboard events? |
487 | 501 * Q7.1.3:: Could you explain @code{read-kbd-macro} in more detail? |
488 7.2: Emacs Lisp Programming Techniques | 502 * Q7.1.4:: What is the performance hit of @code{let}? |
489 * Q7.2.1:: What is the difference in key sequences between XEmacs and GNU Emacs? | 503 * Q7.1.5:: What is the recommended use of @code{setq}? |
490 * Q7.2.2:: Can I generate "fake" keyboard events? | 504 * Q7.1.6:: What is the typical misuse of @code{setq}? |
491 * Q7.2.3:: Could you explain @code{read-kbd-macro} in more detail? | 505 * Q7.1.7:: I like the @code{do} form of cl, does it slow things down? |
492 * Q7.2.4:: What is the performance hit of @code{let}? | 506 * Q7.1.8:: I like recursion, does it slow things down? |
493 * Q7.2.5:: What is the recommended use of @code{setq}? | 507 * Q7.1.9:: How do I put a glyph as annotation in a buffer? |
494 * Q7.2.6:: What is the typical misuse of @code{setq}? | 508 * Q7.1.10:: @code{map-extents} won't traverse all of my extents! |
495 * Q7.2.7:: I like the @code{do} form of cl, does it slow things down? | 509 * Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time? |
496 * Q7.2.8:: I like recursion, does it slow things down? | 510 |
497 * Q7.2.9:: How do I put a glyph as annotation in a buffer? | 511 7.2: Mathematics |
498 * Q7.2.10:: @code{map-extents} won't traverse all of my extents! | 512 * Q7.1.1:: What are bignums, ratios, and bigfloats in Lisp? |
499 * Q7.2.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time? | 513 * Q7.1.2:: XEmacs segfaults when I use very big numbers! |
500 | 514 * Q7.1.3:: Bignums are really slow! |
501 7.3: Mathematics | 515 * Q7.1.4:: Equal bignums don't compare as equal! What gives? |
502 * Q7.3.1:: What are bignums, ratios, and bigfloats in Lisp? | |
503 * Q7.3.2:: XEmacs segfaults when I use very big numbers! | |
504 * Q7.3.3:: Bignums are really slow! | |
505 * Q7.3.4:: Equal bignums don't compare as equal! What gives? | |
506 | 516 |
507 8 Other External Packages | 517 8 Other External Packages |
508 | 518 |
509 8.0: TeX | 519 8.0: TeX |
510 * Q8.0.1:: Is there something better than LaTeX mode? | 520 * Q8.0.1:: Is there something better than LaTeX mode? |
535 | 545 |
536 10 New information about old XEmacsen | 546 10 New information about old XEmacsen |
537 | 547 |
538 10.0: XEmacs 21.1 | 548 10.0: XEmacs 21.1 |
539 * Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1. | 549 * Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1. |
540 | |
541 @end detailmenu | 550 @end detailmenu |
542 @end menu | 551 @end menu |
543 | 552 |
544 @node Introduction, Installation, Top, Top | 553 @node Introduction, Installation, Top, Top |
545 @unnumbered 1 Introduction, Policy, Credits | 554 @unnumbered 1 Introduction, Policy, Credits |
572 If you notice any errors or items which should be added or amended to | 581 If you notice any errors or items which should be added or amended to |
573 this FAQ please send email to @email{xemacs-beta@@xemacs.org}. | 582 this FAQ please send email to @email{xemacs-beta@@xemacs.org}. |
574 Include @samp{XEmacs FAQ} on the Subject: line. | 583 Include @samp{XEmacs FAQ} on the Subject: line. |
575 | 584 |
576 @menu | 585 @menu |
577 1.0: Introduction | 586 1.0: What is XEmacs? |
578 * Q1.0.1:: What is XEmacs? | 587 * Q1.0.1:: What is XEmacs? |
579 * Q1.0.2:: What is the current version of XEmacs? | 588 * Q1.0.2:: What is the current version of XEmacs? |
580 * Q1.0.3:: Where can I find it? | 589 * Q1.0.3:: How do you pronounce XEmacs? |
581 * Q1.0.4:: Are binaries available? | 590 * Q1.0.4:: What does XEmacs look like? |
582 * Q1.0.5:: How does XEmacs differ from GNU Emacs? | 591 * Q1.0.5:: Who wrote XEmacs? |
583 * Q1.0.6:: How much does XEmacs differ? | 592 * Q1.0.6:: Who wrote the FAQ? |
584 * Q1.0.7:: Is XEmacs "GNU"? | 593 |
585 * Q1.0.8:: What is the correct way to refer to XEmacs and GNU Emacs? | 594 1.1: Getting XEmacs |
586 * Q1.0.9:: Why haven't XEmacs and GNU Emacs merged? | 595 * Q1.1.1:: Where can I find XEmacs? |
587 * Q1.0.10:: Where can I get help? | 596 * Q1.1.2:: Are binaries available? |
588 * Q1.0.11:: Where are the mailing lists archived? | 597 * Q1.1.3:: How do I get the bleeding-edge sources? |
589 * Q1.0.12:: How do you pronounce XEmacs? | 598 * Q1.1.4:: Where can I obtain a printed copy of the XEmacs User's Manual? |
590 * Q1.0.13:: What does XEmacs look like? | 599 |
591 * Q1.0.14:: Where can I obtain a printed copy of the XEmacs User's Manual? | 600 1.2: Versions for Different Operating Systems |
592 | 601 * Q1.2.1:: Do I need X11 to run XEmacs? |
593 1.1: Versions for Different Operating Systems | 602 * Q1.2.2:: What versions of Unix does XEmacs run on? |
594 * Q1.1.1:: Do I need X11 to run XEmacs? | 603 * Q1.2.3:: Is there a port of XEmacs to Microsoft Windows? |
595 * Q1.1.2:: Is there a port of XEmacs to Microsoft Windows? | 604 * Q1.2.4:: Can I build XEmacs on MS Windows with X support? Do I need to? |
596 * Q1.1.3:: Can I build XEmacs on MS Windows with X support? Do I need to? | 605 * Q1.2.5:: What are Cygwin and MinGW, and do I need them to run XEmacs? |
597 * Q1.1.4:: What are Cygwin and MinGW, and do I need them to run XEmacs? | 606 * Q1.2.6:: What are the differences between the various MS Windows emacsen? |
598 * Q1.1.5:: What are the differences between the various MS Windows emacsen? | 607 * Q1.2.7:: How does the port cope with differences in the Windows user interface? |
599 * Q1.1.6:: Is there a port of XEmacs to the Macintosh? | 608 * Q1.2.8:: Is there a port of XEmacs to the Macintosh? |
600 * Q1.1.7:: Is there a port of XEmacs to NextStep? | 609 * Q1.2.9:: Is there a port of XEmacs to MS-DOS? |
601 * Q1.1.8:: Is there a port of XEmacs to OS/2? | 610 * Q1.2.10:: Is there a port of XEmacs to OS/2? |
602 * Q1.1.9:: How does the port cope with differences in the Windows user interface? | 611 * Q1.2.11:: Is there a port of XEmacs to NextStep? |
603 | 612 * Q1.2.12:: Is there a port of XEmacs to VMS? |
604 1.2: Policies | 613 |
605 * Q1.2.1:: What is the FAQ editorial policy? | 614 1.3: Getting Started |
606 * Q1.2.2:: How do I become a beta tester? | 615 * Q1.2.13:: |
607 * Q1.2.3:: How do I contribute to XEmacs itself? | 616 * Q1.3.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one? |
608 | 617 * Q1.3.2:: Where do I put my @file{init.el} file? |
609 1.3: Credits | 618 * Q1.3.3:: Can I use the same @file{init.el} with the other Emacs? |
610 * Q1.3.1:: Who wrote XEmacs? | 619 * Q1.3.4:: Any good XEmacs tutorials around? |
611 * Q1.3.2:: Who contributed to this version of the FAQ? | 620 * Q1.3.5:: May I see an example of a useful XEmacs Lisp function? |
612 * Q1.3.3:: Who contributed to the FAQ in the past? | 621 * Q1.3.6:: And how do I bind it to a key? |
613 | 622 * Q1.3.7:: What's the difference between a macro and a function? |
614 1.4: Internationalization | 623 * Q1.3.8:: What is @code{Custom}? |
615 * Q1.4.1:: What is the status of internationalization support aka MULE (including Asian language support)? | 624 |
616 * Q1.4.2:: How can I help with internationalization? | 625 1.4: Getting Help |
617 * Q1.4.3:: How do I type non-ASCII characters? | 626 * Q1.4.1:: Where can I get help? |
618 * Q1.4.4:: Can XEmacs messages come out in a different language? | 627 * Q1.4.2:: Which mailing lists are there? |
619 * Q1.4.5:: Please explain the various input methods in MULE/XEmacs | 628 * Q1.4.3:: How can I get two instances of info? |
620 * Q1.4.6:: How do I portably code for MULE/XEmacs? | 629 * Q1.4.4:: How do I add new Info directories? |
621 * Q1.4.7:: How about Cyrillic modes? | 630 |
622 * Q1.4.8:: Does XEmacs support Unicode? | 631 1.5: Contributing to XEmacs |
623 * Q1.4.9:: How does XEmacs display Unicode? | 632 * Q1.4.5:: |
624 | 633 * Q1.5.1:: How do I submit changes to the FAQ? |
625 1.5: Getting Started | 634 * Q1.5.2:: How do I become a beta tester? |
626 * Q1.5.1:: What is an @file{init.el} or @file{.emacs} and is there a sample one? | 635 * Q1.5.3:: How do I contribute to XEmacs itself? |
627 * Q1.5.2:: Where do I put my @file{init.el} file? | 636 |
628 * Q1.5.3:: Can I use the same @file{init.el} with the other Emacs? | 637 1.6: Politics (XEmacs vs. GNU Emacs) |
629 * Q1.5.4:: Any good XEmacs tutorials around? | 638 * Q1.6.1:: What is GNU Emacs? |
630 * Q1.5.5:: May I see an example of a useful XEmacs Lisp function? | 639 * Q1.6.2:: How does XEmacs differ from GNU Emacs? |
631 * Q1.5.6:: And how do I bind it to a key? | 640 * Q1.6.3:: How much does XEmacs differ? |
632 * Q1.5.7:: What's the difference between a macro and a function? | 641 * Q1.6.4:: Is XEmacs "GNU"? |
633 * Q1.5.8:: What is @code{Custom}? | 642 * Q1.6.5:: What is the correct way to refer to XEmacs and GNU Emacs? |
643 * Q1.6.6:: Why haven't XEmacs and GNU Emacs merged? | |
644 | |
645 1.7: External Packages | |
646 * Q1.7.1:: Which external packages are there? | |
647 | |
648 1.8: Internationalization | |
649 * Q1.8.1:: What is the status of internationalization support aka MULE (including Asian language support)? | |
650 * Q1.8.2:: How can I help with internationalization? | |
651 * Q1.8.3:: How do I type non-ASCII characters? | |
652 * Q1.8.4:: Can XEmacs messages come out in a different language? | |
653 * Q1.8.5:: Please explain the various input methods in MULE/XEmacs | |
654 * Q1.8.6:: How do I portably code for MULE/XEmacs? | |
655 * Q1.8.7:: How about Cyrillic modes? | |
656 * Q1.8.8:: Does XEmacs support Unicode? | |
657 * Q1.8.9:: How does XEmacs display Unicode? | |
634 @end menu | 658 @end menu |
635 | 659 |
636 @unnumberedsec 1.0: Introduction | 660 @unnumberedsec 1.0: What is XEmacs? |
637 | 661 |
638 @node Q1.0.1, Q1.0.2, Introduction, Introduction | 662 @node Q1.0.1, Q1.0.2, Introduction, Introduction |
639 @unnumberedsubsec Q1.0.1: What is XEmacs? | 663 @unnumberedsubsec Q1.0.1: What is XEmacs? |
640 | 664 |
641 XEmacs is a powerful, highly customizable open source text editor and | 665 XEmacs is a powerful, highly customizable open source text editor and |
665 | 689 |
666 XEmacs 19.16, released in November, 1997. was the last release of v19, | 690 XEmacs 19.16, released in November, 1997. was the last release of v19, |
667 and was also the last version without international language support. | 691 and was also the last version without international language support. |
668 | 692 |
669 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction | 693 @node Q1.0.3, Q1.0.4, Q1.0.2, Introduction |
670 @unnumberedsubsec Q1.0.3: Where can I find it? | 694 @unnumberedsubsec Q1.0.3: How do you pronounce XEmacs? |
671 | 695 |
672 The canonical source and binaries can be found at: | 696 The most common pronounciation is @samp{Eks eemax}. |
673 | |
674 @example | |
675 @uref{http://ftp.xemacs.org/pub/xemacs/} | |
676 @end example | |
677 | 697 |
678 @node Q1.0.4, Q1.0.5, Q1.0.3, Introduction | 698 @node Q1.0.4, Q1.0.5, Q1.0.3, Introduction |
679 @unnumberedsubsec Q1.0.4: Are binaries available? | 699 @unnumberedsubsec Q1.0.4: What does XEmacs look like? |
700 | |
701 Screen snapshots are available at | |
702 @uref{http://www.xemacs.org/About/Screenshots/index.html} | |
703 as part of the XEmacs website. | |
704 | |
705 @node Q1.0.5, Q1.0.6, Q1.0.4, Introduction | |
706 @unnumberedsubsec Q1.0.5: Who wrote XEmacs? | |
707 | |
708 XEmacs is the result of the time and effort of many people, and the | |
709 active developers have changed over time. There are two major | |
710 components of the XEmacs effort -- writing the code itself and providing | |
711 all the support work (testing the code, releasing beta and final | |
712 versions, handling patches, reading bug reports, maintaining the web | |
713 site, managing the mailing lists, etc. etc.). Neither component would | |
714 work without the other. | |
715 | |
716 @subheading CODING | |
717 | |
718 The primary code contributor over the years has been Ben Wing (active | |
719 since late 1992). Between 1991 and 1995, large amounts of coding was | |
720 contributed by Jamie Zawinski and Chuck Thompson. Many other people | |
721 have authored major subsystems or otherwise contributed large amounts of | |
722 code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris, | |
723 Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard | |
724 Mlynarik, Stig, William Perry and plenty of others. | |
725 | |
726 Primary XEmacs-specific subsystems and their authors: | |
727 | |
728 @table @asis | |
729 @item Objects | |
730 @itemize @minus | |
731 @item | |
732 Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard Mlynarik, 1994 | |
733 @item | |
734 Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz | |
735 @item | |
736 Portable dumper, object descriptions: Olivier Galibert | |
737 @item | |
738 KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students | |
739 @item | |
740 Random object work (object equal and hash methods, weak lists, lcrecord lists, bit vectors, dynarr, blocktype, opaque, string resizing): Ben Wing | |
741 @item | |
742 Profiling: Ben Wing | |
743 @item | |
744 Some byte-compilation and hash-table improvements: Martin Buchholz | |
745 @item | |
746 Bignum: Jerry James | |
747 @end itemize | |
748 | |
749 @item Internationalization/Mule | |
750 @itemize @minus | |
751 @item | |
752 mostly Ben Wing; many ideas for future work, Stephen Turnbull | |
753 @end itemize | |
754 | |
755 @item I/O | |
756 @itemize @minus | |
757 @item | |
758 Basic event/event-stream implementation: Jamie Zawinski | |
759 @item | |
760 Most event work since 1994: Ben Wing | |
761 @item | |
762 Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing | |
763 @item | |
764 Process method abstraction, Windows process work: Kirill Katsnelson | |
765 @item | |
766 Misc-user events, async timeouts, most quit-checking and signal code, most other work since 1994: Ben Wing | |
767 @item | |
768 Lstreams: Ben Wing | |
769 @end itemize | |
770 | |
771 @item Display | |
772 @itemize @minus | |
773 @item | |
774 Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people | |
775 @item | |
776 Glyphs: mostly Ben Wing | |
777 @item | |
778 Specifiers: Ben Wing | |
779 @item | |
780 Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing | |
781 @item | |
782 Widgets: Andy Piper | |
783 @item | |
784 JPEG/PNG/TIFF image converters: Ben Wing, William Perry, Jareth Hein, others (see comment in @file{glyphs-eimage.c}) | |
785 @item | |
786 Menus: Jamie Zawinski, someone at Lucid (Lucid menus) | |
787 @item | |
788 Scrollbars: Chuck Thompson, ??? (Lucid scrollbar) | |
789 @item | |
790 Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson | |
791 @item | |
792 Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing | |
793 @item | |
794 Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing | |
795 @item | |
796 Toolbars: implementation, chuck, much interface work, Ben Wing | |
797 @item | |
798 Gutters, tabs: andy piper | |
799 @end itemize | |
800 | |
801 @item Device subsystems | |
802 @itemize @minus | |
803 @item | |
804 X Windows: Jamie Zawinksi, Ben Wing, others | |
805 @item | |
806 GTK: William Perry, Malcolm Purvis | |
807 @item | |
808 MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing | |
809 @item | |
810 TTY: Chuck Thompson, Ben Wing | |
811 @item | |
812 Cygwin: Andy Piper | |
813 @end itemize | |
814 | |
815 @item Misc | |
816 @itemize @minus | |
817 @item | |
818 Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz | |
819 @item | |
820 Most initialization-related code: Ben Wing | |
821 @item | |
822 Internals manual, much of Lisp manual: Ben Wing | |
823 @item | |
824 FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing | |
825 @end itemize | |
826 @end table | |
827 | |
828 @subheading SUPPORT | |
829 | |
830 Currently, support duties are handled by many different people. | |
831 | |
832 Release managers have been | |
833 | |
834 @itemize @minus | |
835 @item | |
836 Stephen Turnbull (April 2001 - January 2003, March 2004 - present, 21.2.47 - 21.4.12, 21.5.2 - 21.5.7, 21.5.17 - present) | |
837 @item | |
838 Vin Shelton (May 2003 - present, 21.4.13 - present) | |
839 @item | |
840 Steve Youngs (July 2002 - September 2003, 21.5.8 - 21.5.16) | |
841 @item | |
842 Martin Buchholz (December 1998, November 1999 - May 2001, 21.2.7 - 21.2.8, 21.2.21 - 21.2.46, 21.5.0 - 21.5.1) | |
843 @item | |
844 Steve Baur (early 1997 - December 1998, February 1999 - November 1999, 19.15 - 21.2.5, 21.2.9 - 21.2.20) | |
845 @item | |
846 Andy Piper (December 1998, 21.2.6) | |
847 @item | |
848 Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14) | |
849 @item | |
850 Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10) | |
851 @end itemize | |
852 | |
853 The recent overlapping dates are intentional, since two or three trees | |
854 are maintained simultaneously at any point. | |
855 | |
856 Other major support work: | |
857 | |
858 @itemize @minus | |
859 @item | |
860 Adrian Aichner wrote and maintains the web site. | |
861 @item | |
862 Stephen Turnbull has produced many of the beta and semi-stable releases | |
863 and has attempted to be the "face" of XEmacs on the newsgroups and | |
864 mailing lists. | |
865 @item | |
866 Steve Youngs currently produces the beta releases (???). | |
867 @item | |
868 Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns | |
869 maintaining the packages. | |
870 @item | |
871 Vin Shelton maintains the stable releases. | |
872 @item | |
873 Testing - #### Norbert, Adrian, ??? | |
874 @end itemize | |
875 | |
876 Portraits and email of some of the major developers: | |
877 | |
878 @itemize @bullet | |
879 @item @email{andy@@xemacs.org, Andy Piper} | |
880 @html | |
881 <br><img src="piper.png" alt="Portrait of Andy Piper"><br> | |
882 @end html | |
883 | |
884 @item @email{ben@@xemacs.org, Ben Wing} | |
885 @html | |
886 <br><img src="ben.png" alt="Portrait of Ben Wing"><br> | |
887 @end html | |
888 | |
889 @item @email{cthomp@@xemacs.org, Chuck Thompson} | |
890 @html | |
891 <br><img src="cthomp.png" alt="Portrait of Chuck Thompson"><br> | |
892 @end html | |
893 | |
894 @item @email{hniksic@@xemacs.org, Hrvoje Niksic} | |
895 | |
896 @html | |
897 <br><img src="hniksic.png" alt="Portrait of Hrvoje Niksic"><br> | |
898 @end html | |
899 | |
900 @item @email{jwz@@jwz.org, Jamie Zawinski} | |
901 @html | |
902 <br><img src="jwz.png" alt="Portrait of Jamie Zawinski"><br> | |
903 @end html | |
904 | |
905 @item @email{martin@@xemacs.org, Martin Buchholz} | |
906 @html | |
907 <br><img src="martin.png" alt="Portrait of Martin Buchholz"><br> | |
908 @end html | |
909 | |
910 @item @email{mly@@adoc.xerox.com, Richard Mlynarik} | |
911 @html | |
912 <br><img src="mly.png" alt="Portrait of Richard Mlynarik"><br> | |
913 @end html | |
914 | |
915 @item @email{stephen@@xemacs.org, Stephen Turnbull} | |
916 | |
917 @item @email{steve@@xemacs.org, Steve Baur} | |
918 @html | |
919 <br><img src="slb.png" alt="Portrait of Steve Baur"><br> | |
920 @end html | |
921 @end itemize | |
922 | |
923 Many other people have contributed to XEmacs; this is partially | |
924 enumerated in the @samp{About XEmacs} option in the Help menu. | |
925 | |
926 @node Q1.0.6, Q1.1.1, Q1.0.5, Introduction | |
927 @unnumberedsubsec Q1.0.6: Who wrote the FAQ? | |
928 | |
929 The current version of this FAQ was created by @email{ben@@xemacs.org, | |
930 Ben Wing}. | |
931 | |
932 Previous contributors to the FAQ include | |
933 | |
934 @itemize @bullet | |
935 @item @email{steve@@xemacs.org, SL Baur} | |
936 | |
937 @item @email{hniksic@@xemacs.org, Hrvoje Niksic} | |
938 | |
939 @item @email{binge@@aloft.att.com, Curtis.N.Bingham} | |
940 | |
941 @item @email{bruncott@@dormeur.inria.fr, Georges Brun-Cottan} | |
942 | |
943 @item @email{rjc@@cogsci.ed.ac.uk, Richard Caley} | |
944 | |
945 @item @email{cognot@@ensg.u-nancy.fr, Richard Cognot} | |
946 | |
947 @item @email{daku@@nortel.ca, Mark Daku} | |
948 | |
949 @item @email{wgd@@martigny.ai.mit.edu, William G. Dubuque} | |
950 | |
951 @item @email{eeide@@cs.utah.edu, Eric Eide} | |
952 | |
953 @item @email{af@@biomath.jussieu.fr, Alain Fauconnet} | |
954 | |
955 @item @email{cflatter@@nrao.edu, Chris Flatters} | |
956 | |
957 @item @email{ginsparg@@adra.com, Evelyn Ginsparg} | |
958 | |
959 @item @email{hall@@aplcenmp.apl.jhu.edu, Marty Hall} | |
960 | |
961 @item @email{dkindred@@cmu.edu, Darrell Kindred} | |
962 | |
963 @item @email{dmoore@@ucsd.edu, David Moore} | |
964 | |
965 @item @email{arup+@@cmu.edu, Arup Mukherjee} | |
966 | |
967 @item @email{nickel@@prz.tu-berlin.de, Juergen Nickelsen} | |
968 | |
969 @item @email{powell@@csl.ncsa.uiuc.edu, Kevin R. Powell} | |
970 | |
971 @item @email{dworkin@@ccs.neu.edu, Justin Sheehy} | |
972 | |
973 @item @email{stig@@hackvan.com, Stig} | |
974 | |
975 @item @email{Aki.Vehtari@@hut.fi, Aki Vehtari} | |
976 @end itemize | |
977 | |
978 @unnumberedsec 1.1: Getting XEmacs | |
979 | |
980 @node Q1.1.1, Q1.1.2, Q1.0.6, Introduction | |
981 @unnumberedsubsec Q1.1.1: Where can I find XEmacs? | |
982 | |
983 To download XEmacs, visit the XEmacs WWW page at | |
984 @uref{http://www.xemacs.org/Download/}. The most up-to-date list of | |
985 distribution sites can always be found there. Try to pick a site that | |
986 is networkologically close to you. If you know of other mirrors of | |
987 the XEmacs archives, please send e-mail to | |
988 @uref{mailto:webmaster@@xemacs.org} and we will list them here as well. | |
989 | |
990 The canonical distribution point is ftp.xemacs.org, available either | |
991 through HTTP (@uref{http://ftp.xemacs.org/}) or anonymous FTP | |
992 (@uref{ftp://ftp.xemacs.org/pub/xemacs/}). | |
993 | |
994 @node Q1.1.2, Q1.1.3, Q1.1.1, Introduction | |
995 @unnumberedsubsec Q1.1.2: Are binaries available? | |
680 | 996 |
681 MS Windows binaries are available at | 997 MS Windows binaries are available at |
682 @uref{http://www.xemacs.org/Download/win32/} for the native versions | 998 @uref{http://www.xemacs.org/Download/win32/} for the native versions |
683 of 21.4 and 21.1. Cygwin binaries are now available as part of the | 999 of 21.4 and 21.1. Cygwin binaries are now available as part of the |
684 standard Cygwin installation process. XEmacs also comes pre-built as | 1000 standard Cygwin installation process. XEmacs also comes pre-built as |
689 under Unix and Mac OS X, as XEmacs has been tested under all of the | 1005 under Unix and Mac OS X, as XEmacs has been tested under all of the |
690 common Unix versions and under Mac OS X and comes with an extensive | 1006 common Unix versions and under Mac OS X and comes with an extensive |
691 configure script that is able to automatically detect most aspects of | 1007 configure script that is able to automatically detect most aspects of |
692 the configuration of your particular system. | 1008 the configuration of your particular system. |
693 | 1009 |
694 @node Q1.0.5, Q1.0.6, Q1.0.4, Introduction | 1010 @node Q1.1.3, Q1.1.4, Q1.1.2, Introduction |
695 @unnumberedsubsec Q1.0.5: How does XEmacs differ from GNU Emacs? | 1011 @unnumberedsubsec Q1.1.3: How do I get the bleeding-edge sources? |
1012 | |
1013 If you are interested in developing XEmacs, or getting the absolutely most | |
1014 recent, up-to-the-moment, bleeding-edge source code, you can directly | |
1015 access the master CVS source tree (read-only, of course, until you ask for | |
1016 and are granted permission to directly modify portions of the source tree) | |
1017 at cvs.xemacs.org. Directions on how to access the source tree are located | |
1018 at @uref{http://www.xemacs.org/Develop/cvsaccess.html}. | |
1019 | |
1020 Nightly CVS snapshots are available at | |
1021 @uref{http://www.dk.xemacs.org/Download/CVS-snapshots/}. | |
1022 | |
1023 @node Q1.1.4, Q1.2.1, Q1.1.3, Introduction | |
1024 @unnumberedsubsec Q1.1.4: Where can I obtain a printed copy of the XEmacs User's Manual? | |
1025 | |
1026 Pre-printed manuals are not available. If you are familiar with | |
1027 TeX, you can generate your own manual from the XEmacs sources. | |
1028 | |
1029 HTML and Postscript versions of XEmacs manuals are available from the | |
1030 XEmacs web site at | |
1031 @uref{http://www.xemacs.org/Documentation/index.html}. | |
1032 | |
1033 @unnumberedsec 1.2: Versions for Different Operating Systems | |
1034 | |
1035 @node Q1.2.1, Q1.2.2, Q1.1.4, Introduction | |
1036 @unnumberedsubsec Q1.2.1: Do I need X11 to run XEmacs? | |
1037 | |
1038 No. The name @dfn{XEmacs} is unfortunate in the sense that it is | |
1039 @strong{not} an X Window System-only version of Emacs. XEmacs has | |
1040 full color support on a color-capable character terminal. | |
1041 | |
1042 @node Q1.2.2, Q1.2.3, Q1.2.1, Introduction | |
1043 @unnumberedsubsec Q1.2.2: What versions of Unix does XEmacs run on? | |
1044 | |
1045 For problems with particular machines and versions of Unix, see the | |
1046 @file{PROBLEMS} file. | |
1047 | |
1048 Much effort has gone into making XEmacs work on as many different | |
1049 machines, configurations, and compilers as possible. | |
1050 | |
1051 Much effort has gone into making XEmacs 64-bit clean. | |
1052 | |
1053 Much effort has gone into removing system-specific code, and replacing | |
1054 such code with autodetection at configure time. | |
1055 | |
1056 The XEmacs core should build "out of the box" on most Unix-like systems. | |
1057 | |
1058 XEmacs 21.2 was tested and @samp{make check} succeeded on these Unix | |
1059 configurations as of 2001-02-10: | |
1060 | |
1061 @example | |
1062 alphaev56-dec-osf4.0e (both Compaq C and gcc) | |
1063 i386-unknown-freebsd4.2 | |
1064 i386-unknown-netbsdelf1.5 | |
1065 i586-sco-sysv5uw7.0.1 (both SCO's cc and gcc) | |
1066 i686-pc-linux-gnu | |
1067 hppa2.0-hp-hpux10.20 (both HP's ANSI cc and gcc) | |
1068 mips-sgi-irix6.5 (both MIPSpro cc and gcc) | |
1069 rs6000-ibm-aix4.3.0.0 (both IBM's xlc and gcc) | |
1070 sparc-sun-solaris2.6 (both Sun's Forte C and gcc) | |
1071 sparc-sun-solaris2.7 (both Sun's Forte C and gcc) | |
1072 sparc-sun-sunos4.1.4 (gcc) | |
1073 @end example | |
1074 | |
1075 Some systems have a dual mode 32-bit/64-bit compiler. On most of | |
1076 these, XEmacs requires the @samp{--pdump} configure option to build | |
1077 correctly with the 64-bit version of the compiler. | |
1078 | |
1079 @example | |
1080 mips-sgi-irix6.5, CC="gcc -mabi=64" | |
1081 mips-sgi-irix6.5, CC="cc -64" | |
1082 rs6000-ibm-aix4.3.0.0, CC="cc -q64" | |
1083 @end example | |
1084 | |
1085 On most of these systems, XEmacs also builds with a C++ compiler, | |
1086 but not "out of the box". This feature is only for use by the | |
1087 maintainers. | |
1088 | |
1089 XEmacs 21.2 is known @emph{not} to work on any machines with m680x0 | |
1090 processors. Sorry, all you sun3 and Unix PC nostalgia buffs out there. | |
1091 | |
1092 VMS has never been supported by XEmacs. In fact, all the old VMS code | |
1093 inherited from Emacs has been removed. Sorry, all you VMS fans out there. | |
1094 | |
1095 @node Q1.2.3, Q1.2.4, Q1.2.2, Introduction | |
1096 @unnumberedsubsec Q1.2.3: Is there a port of XEmacs to Microsoft Windows? | |
1097 | |
1098 Yes. Beginning with release 21.0, XEmacs has worked under MS Windows | |
1099 and is fully-featured and actively developed. A group of dedicated | |
1100 developers actively maintains and improves the Windows-specific | |
1101 portions of the code. Some of the core developers, in fact, use | |
1102 Windows as their only development environment, and some features, such | |
1103 as printing, actually work better on Windows than native Unix and Mac | |
1104 OS X. The mailing list at @email{xemacs-winnt@@xemacs.org} is dedicated | |
1105 to that effort (please use the -request address to | |
1106 subscribe). (Despite its name, XEmacs actually works on all versions | |
1107 of Windows.) | |
1108 | |
1109 The list name is misleading, as XEmacs supports and has been compiled on | |
1110 Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows | |
1111 XP, and all newer versions of Windows. The MS Windows-specific code is | |
1112 based on Microsoft Win32 API, and will not work on MS Windows 3.x or on | |
1113 MS-DOS. | |
1114 | |
1115 XEmacs also supports the Cygwin and MinGW development and runtime | |
1116 environments, where it also uses native Windows code for graphical | |
1117 features. In addition, under Cygwin it is possible to compile XEmacs | |
1118 to use an X server (and XFree86 is available as part of the standard | |
1119 Cygwin installation). | |
1120 | |
1121 @node Q1.2.4, Q1.2.5, Q1.2.3, Introduction | |
1122 @unnumberedsubsec Q1.2.4: Can I build XEmacs on MS Windows with X support? Do I need to? | |
1123 | |
1124 Yes, you can, but no you do not need to. In fact, we recommend that you | |
1125 use a native-GUI version unless you have a specific need for an X | |
1126 version. | |
1127 | |
1128 @node Q1.2.5, Q1.2.6, Q1.2.4, Introduction | |
1129 @unnumberedsubsec Q1.2.5: What are Cygwin and MinGW, and do I need them to run XEmacs? | |
1130 | |
1131 To answer the second part of the question: No, you, you don't need | |
1132 Cygwin or MinGW to build or to run XEmacs. But if you have them and | |
1133 want to use them, XEmacs supports these environments. | |
1134 | |
1135 (One important reason to support Cygwin is that it lets the MS Windows | |
1136 developers test out their code in a Unix environment without actually | |
1137 having to have a Unix machine around. For this reason alone, Cygwin | |
1138 support is likely to remain supported for a long time in XEmacs. Same | |
1139 goes for the X support under Cygwin, for the same reasons. MinGW | |
1140 support, on the other hand, depends on volunteers to keep it up to date; | |
1141 but this is generally not hard.) | |
1142 | |
1143 Cygwin is a set of tools providing Unix-like API on top of Win32. | |
1144 It makes it easy to port large Unix programs without significant | |
1145 changes to their source code. It is a development environment as well | |
1146 as a runtime environment. | |
1147 | |
1148 When built with Cygwin, XEmacs supports all display types -- TTY, X & | |
1149 Win32 GUI, and can be built with support for all three simultaneously. | |
1150 If you build with Win32 GUI support then the Cygwin version uses the | |
1151 majority of the Windows-specific code, which is mostly related to | |
1152 display. If you want to build with X support you need X libraries (and | |
1153 an X server to display XEmacs on); see @ref{Q2.2.7}. TTY and Win32 GUI | |
1154 require no additional libraries beyond what comes standard with Cygwin. | |
1155 | |
1156 The advantages of the Cygwin version are that it integrates well with | |
1157 the Cygwin environment for existing Cygwin users; uses configure so | |
1158 building with different features is very easy; and actively supports X & | |
1159 TTY. Furthermore, the entire Cygwin environment and compiler are free, | |
1160 whereas Visual C++ costs money. | |
1161 | |
1162 The disadvantage is that it requires the whole Cygwin environment, | |
1163 whereas the native port requires only a suitable MS Windows compiler. | |
1164 Also, it follows the Unix filesystem and process model very closely | |
1165 (some will undoubtedly view this as an advantage). | |
1166 | |
1167 See @uref{http://www.cygwin.com/} for more information on | |
1168 Cygwin. | |
1169 | |
1170 MinGW is a collection of header files and import libraries that allow | |
1171 one to use GCC under the Cygwin environment to compile and produce | |
1172 exactly the same native Win32 programs that you can using Visual C++. | |
1173 Programs compiled with MinGW make use of the standard Microsoft runtime | |
1174 library @file{MSVCRT.DLL}, present on all Windows systems, and look, | |
1175 feel, and act like a standard Visual-C-produced application. (The only | |
1176 difference is the compiler.) This means that, unlike a | |
1177 standardly-compiled Cygwin application, no extra runtime support | |
1178 (e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the | |
1179 fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y | |
1180 environment, for those die-hard Unix hackers out there), is the main | |
1181 advantage of MinGW. It is also potentially faster than Cygwin because | |
1182 it has less overhead when calling Windows, but you lose the POSIX | |
1183 emulation layer, which makes Unix programs harder to port. (But this is | |
1184 irrelevant for XEmacs since it's already ported to Win32.) | |
1185 | |
1186 See @uref{http://www.mingw.org/} for more information on MinGW. | |
1187 | |
1188 @node Q1.2.6, Q1.2.7, Q1.2.5, Introduction | |
1189 @unnumberedsubsec Q1.2.6: What are the differences between the various MS Windows emacsen? | |
1190 | |
1191 XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing. | |
1192 Could you briefly explain the differences between them? | |
1193 | |
1194 Here is a recount of various Emacs versions running on MS Windows: | |
1195 | |
1196 @itemize @bullet | |
1197 | |
1198 @item | |
1199 XEmacs | |
1200 | |
1201 @itemize @minus | |
1202 | |
1203 @item | |
1204 Beginning with XEmacs 19.12, XEmacs' architecture was redesigned | |
1205 in such a way to allow clean support of multiple window systems. At | |
1206 this time the TTY support was added, making X and TTY the first two | |
1207 "window systems" supported by XEmacs. The 19.12 design is the basis for | |
1208 the current native MS Windows code. | |
1209 | |
1210 @item | |
1211 Some time during 1997, David Hobley (soon joined by Marc Paquette) | |
1212 imported some of the NT-specific portions of GNU Emacs, making XEmacs | |
1213 with X support compile under Windows NT, and creating the "X" port. | |
1214 | |
1215 @item | |
1216 Several months later, Jonathan Harris sent out initial patches to use | |
1217 the Win32 API, thus creating the native port. Since then, various | |
1218 people have contributed, including Kirill M. Katsnelson (contributed | |
1219 support for menubars, subprocesses and network, as well as loads of | |
1220 other code), Andy Piper (ported XEmacs to Cygwin environment, | |
1221 contributed Windows unexec, Windows-specific glyphs and toolbars code, | |
1222 and more), Ben Wing (loads of improvements; primary MS Windows developer | |
1223 since 2000), Jeff Sparkes (contributed scrollbars support) and many | |
1224 others. | |
1225 @end itemize | |
1226 | |
1227 @item | |
1228 NT Emacs | |
1229 | |
1230 @itemize @minus | |
1231 | |
1232 @item | |
1233 NT Emacs was an early version of GNU Emacs 19 modified to compile and | |
1234 run under MS Windows 95 and NT using the native Win32 API. It was | |
1235 written by Geoff Voelker, and has long since been incorporated into | |
1236 the mainline GNU Emacs distribution. | |
1237 @end itemize | |
1238 | |
1239 @item | |
1240 Win-Emacs | |
1241 | |
1242 @itemize @minus | |
1243 | |
1244 @item | |
1245 Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X | |
1246 compatibility libraries. Win-Emacs was written by Ben Wing. The MS | |
1247 Windows code never made it back to Lucid Emacs, and its creator (Pearl | |
1248 Software) has long since gone out of business. | |
1249 @end itemize | |
1250 | |
1251 @item | |
1252 GNU Emacs for DOS | |
1253 | |
1254 @itemize @minus | |
1255 | |
1256 @item | |
1257 GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS | |
1258 port of GCC). Such an Emacs is heavily underfeatured, because it does | |
1259 not support long file names, lacks proper subprocesses support, and | |
1260 is far too big compared with typical DOS editors. | |
1261 @end itemize | |
1262 | |
1263 @item | |
1264 GNU Emacs compiled with Win32 | |
1265 | |
1266 @itemize @minus | |
1267 | |
1268 @item | |
1269 Starting with GNU Emacs 19.30, it has been possible to compile GNU Emacs | |
1270 under MS Windows using the DJGPP compiler and X libraries. The result | |
1271 is very similar to GNU Emacs compiled under MS DOS, only it works | |
1272 somewhat better because it runs in 32-bit mode, makes use of all the | |
1273 system memory, supports long file names, etc. | |
1274 @end itemize | |
1275 | |
1276 @end itemize | |
1277 | |
1278 @node Q1.2.7, Q1.2.8, Q1.2.6, Introduction | |
1279 @unnumberedsubsec Q1.2.7: How does the port cope with differences in the Windows user interface? | |
1280 | |
1281 The XEmacs (and Emacs in general) user interface is pretty different | |
1282 from what is expected of a typical MS Windows program. How does the MS | |
1283 Windows port cope with it? | |
1284 | |
1285 As a general rule, we follow native MS Windows conventions as much as | |
1286 possible. 21.4 is a fairly complete Windows application, supporting | |
1287 native printing, system file dialog boxes, tool tips, etc. In cases | |
1288 where there's a clear UI conflict, we currently use normal Unix XEmacs | |
1289 behavior by default, but make sure the MS Windows "look and feel" (mark | |
1290 via shift-arrow, self-inserting deletes region, Alt selects menu items, | |
1291 etc.) is easily configurable (respectively: using the variable | |
1292 @code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact | |
1293 the default in these versions], or the @file{pc-select} package; using | |
1294 the @file{pending-del} package; and setting the variable | |
1295 @code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above). | |
1296 In fact, if you use the sample @file{init.el} file as your init file, | |
1297 you will get all these behaviors automatically turned on. | |
1298 | |
1299 In future versions, some of these features might be turned on by | |
1300 default in the MS Windows environment. | |
1301 | |
1302 @node Q1.2.8, Q1.2.9, Q1.2.7, Introduction | |
1303 @unnumberedsubsec Q1.2.8: Is there a port of XEmacs to the Macintosh? | |
1304 | |
1305 Yes. | |
1306 | |
1307 XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly | |
1308 will not feel very much like a Mac application as it has no Mac-specific | |
1309 code in it. | |
1310 | |
1311 There is also a port of XEmacs 19.14 that works on all recent versions | |
1312 of MacOS, from 8.1 through MacOS X, by @email{pjarvis@@ispchannel.com, | |
1313 Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY | |
1314 mode only (one single Macintosh window, 25 colors), but has a large | |
1315 number of Mac-specific additions. It's available at | |
1316 @uref{http://homepage.mac.com/pjarvis/xemacs.html}. | |
1317 | |
1318 @node Q1.2.9, Q1.2.10, Q1.2.8, Introduction | |
1319 @unnumberedsubsec Q1.2.9: Is there a port of XEmacs to the Macintosh? | |
1320 | |
1321 Yes. | |
1322 | |
1323 XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly | |
1324 will not feel very much like a Mac application as it has no Mac-specific | |
1325 code in it. | |
1326 | |
1327 There is also a port of XEmacs 19.14 that works on all recent versions | |
1328 of MacOS, from 8.1 through MacOS X, by @email{pjarvis@@ispchannel.com, | |
1329 Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY | |
1330 mode only (one single Macintosh window, 25 colors), but has a large | |
1331 number of Mac-specific additions. It's available at | |
1332 @uref{http://homepage.mac.com/pjarvis/xemacs.html}. | |
1333 | |
1334 @node Q1.2.10, Q1.2.11, Q1.2.9, Introduction | |
1335 @unnumberedsubsec Q1.2.10: Is there a port of XEmacs to MS-DOS? | |
1336 | |
1337 No. We have never supported running on MS-DOS or Windows 3.1, and in | |
1338 fact have long since deleted all MS-DOS-related code. | |
1339 | |
1340 @node Q1.2.11, Q1.2.12, Q1.2.10, Introduction | |
1341 @unnumberedsubsec Q1.2.11: Is there a port of XEmacs to OS/2? | |
1342 | |
1343 No, but Alexander Nikolaev <avn_1251@@mail.ru> was at one point | |
1344 working on it. | |
1345 | |
1346 @node Q1.2.12, Q1.2.13, Q1.2.11, Introduction | |
1347 @unnumberedsubsec Q1.2.12: Is there a port of XEmacs to NextStep? | |
1348 | |
1349 Carl Edman, apparently no longer at @email{cedman@@princeton.edu}, did | |
1350 the port of GNU Emacs to NeXTstep and expressed interest in doing the | |
1351 XEmacs port, but never went any farther. | |
1352 | |
1353 @node Q1.2.13, Q1.3.1, Q1.2.12, Introduction | |
1354 @unnumberedsubsec Q1.2.13: Is there a port of XEmacs to VMS? | |
1355 | |
1356 VMS has never been supported by XEmacs. In fact, all the old VMS code | |
1357 inherited from GNU Emacs has been removed. Sorry, all you VMS fans | |
1358 out there. | |
1359 | |
1360 @unnumberedsec 1.3: Getting Started | |
1361 | |
1362 @node Q1.3.1, Q1.3.2, Q1.2.13, Introduction | |
1363 @unnumberedsubsec Q1.3.1: What is an @file{init.el} or @file{.emacs} and is there a sample one? | |
1364 | |
1365 The @file{init.el} or @file{.emacs} file is used to customize XEmacs to | |
1366 your tastes. Starting in 21.4, the preferred location for the init file | |
1367 is @file{~/.xemacs/init.el}; in previous versions, it was | |
1368 @file{~/.emacs}. 21.4 still accepts the old location, but the first | |
1369 time you run it, it will ask to migrate your file to the new location. | |
1370 If you answer yes, the file will be moved, and a "compatibility" | |
1371 @file{.emacs} file will be placed in the old location so that you can | |
1372 still run older versions of XEmacs, and versions of GNU Emacs, which | |
1373 expect the old location. The @file{.emacs} file present is just a stub | |
1374 that loads the real file in @file{~/.xemacs/init.el}. | |
1375 | |
1376 No two init files are alike, nor are they expected to be alike, but | |
1377 that's the point. The XEmacs distribution contains an excellent starter | |
1378 example in the @file{etc/} directory called @file{sample.init.el} | |
1379 (starting in 21.4) or @file{sample.emacs} in older versions. Copy this | |
1380 file from there to @file{~/.xemacs/init.el} (starting in 21.4) or | |
1381 @file{~/.emacs} in older versions, where @samp{~} means your home | |
1382 directory, of course. Then edit it to suit. | |
1383 | |
1384 You may bring the @file{sample.init.el} or @file{sample.emacs} file into | |
1385 an XEmacs buffer from the menubar. (The menu entry for it is always | |
1386 under the @samp{Help} menu, but its location under that has changed in | |
1387 various versions. Recently, look under the @samp{Samples} submenu.) To | |
1388 determine the location of the @file{etc/} directory type the command | |
1389 @kbd{C-h v data-directory @key{RET}}. | |
1390 | |
1391 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction | |
1392 @unnumberedsubsec Q1.3.2: Where do I put my @file{init.el} file? | |
1393 | |
1394 @file{init.el} is the name of the init file starting with 21.4, and is | |
1395 located in the subdirectory @file{.xemacs/} of your home directory. In | |
1396 prior versions, the init file is called @file{.emacs} and is located in | |
1397 your home directory. | |
1398 | |
1399 Your home directory under Windows is determined by the @samp{HOME} | |
1400 environment variable. If this is not set, it defaults to @samp{C:\}. | |
1401 To set this variable, modify @file{AUTOEXEC.BAT} under Windows 95/98, or | |
1402 select @samp{Control Panel->System->Advanced->Environment Variables...} | |
1403 under Windows NT/2000. | |
1404 | |
1405 @node Q1.3.3, Q1.3.4, Q1.3.2, Introduction | |
1406 @unnumberedsubsec Q1.3.3: Can I use the same @file{init.el} with the other Emacs? | |
1407 | |
1408 Yes. The sample @file{init.el} included in the XEmacs | |
1409 distribution will show you how to handle different versions and flavors | |
1410 of Emacs. | |
1411 | |
1412 @node Q1.3.4, Q1.3.5, Q1.3.3, Introduction | |
1413 @unnumberedsubsec Q1.3.4: Any good XEmacs tutorials around? | |
1414 | |
1415 There's the XEmacs tutorial available from the Help Menu under | |
1416 @samp{Help->Tutorials}, or by typing @kbd{C-h t}. To check whether | |
1417 it's available in a non-english language, type @kbd{C-u C-h t TAB}, type | |
1418 the first letters of your preferred language, then type @key{RET}. | |
1419 | |
1420 @comment There's an Emacs Lisp tutorial at | |
1421 @comment | |
1422 @comment @example | |
1423 @comment @uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}. | |
1424 @comment @end example | |
1425 @comment | |
1426 @comment @email{erik@@petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web | |
1427 @comment page at | |
1428 @comment @iftex | |
1429 @comment @* | |
1430 @comment @end iftex | |
1431 @comment @uref{http://petaxp.rug.ac.be/~erik/xemacs/}. | |
1432 | |
1433 @node Q1.3.5, Q1.3.6, Q1.3.4, Introduction | |
1434 @unnumberedsubsec Q1.3.5: May I see an example of a useful XEmacs Lisp function? | |
1435 | |
1436 The following function does a little bit of everything useful. It does | |
1437 something with the prefix argument, it examines the text around the | |
1438 cursor, and it's interactive so it may be bound to a key. It inserts | |
1439 copies of the current word the cursor is sitting on at the cursor. If | |
1440 you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will | |
1441 insert 3 copies. | |
1442 | |
1443 @lisp | |
1444 (defun double-word (count) | |
1445 "Insert a copy of the current word underneath the cursor" | |
1446 (interactive "*p") | |
1447 (let (here there string) | |
1448 (save-excursion | |
1449 (forward-word -1) | |
1450 (setq here (point)) | |
1451 (forward-word 1) | |
1452 (setq there (point)) | |
1453 (setq string (buffer-substring here there))) | |
1454 (while (>= count 1) | |
1455 (insert string) | |
1456 (decf count)))) | |
1457 @end lisp | |
1458 | |
1459 The best way to see what is going on here is to let XEmacs tell you. | |
1460 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor | |
1461 sitting just to the right of the function you want explained. Eg. move | |
1462 the cursor to the SPACE between @code{interactive} and @samp{"*p"} and | |
1463 hit @kbd{C-h f} to see what the function @code{interactive} does. Doing | |
1464 this will tell you that the @code{*} requires a writable buffer, and | |
1465 @code{p} converts the prefix argument to a number, and | |
1466 @code{interactive} allows you to execute the command with @kbd{M-x}. | |
1467 | |
1468 @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction | |
1469 @unnumberedsubsec Q1.3.6: And how do I bind it to a key? | |
1470 | |
1471 To bind to a key do: | |
1472 | |
1473 @lisp | |
1474 (global-set-key "\C-cd" 'double-word) | |
1475 @end lisp | |
1476 | |
1477 Or interactively, @kbd{M-x global-set-key} and follow the prompts. | |
1478 | |
1479 @node Q1.3.7, Q1.3.8, Q1.3.6, Introduction | |
1480 @unnumberedsubsec Q1.3.7: What's the difference between a macro and a function? | |
1481 | |
1482 Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual: | |
1483 | |
1484 @dfn{Macros} enable you to define new control constructs and other | |
1485 language features. A macro is defined much like a function, but instead | |
1486 of telling how to compute a value, it tells how to compute another Lisp | |
1487 expression which will in turn compute the value. We call this | |
1488 expression the @dfn{expansion} of the macro. | |
1489 | |
1490 Macros can do this because they operate on the unevaluated expressions | |
1491 for the arguments, not on the argument values as functions do. They can | |
1492 therefore construct an expansion containing these argument expressions | |
1493 or parts of them. | |
1494 | |
1495 Do not confuse the two terms with @dfn{keyboard macros}, which are | |
1496 another matter, entirely. A keyboard macro is a key bound to several | |
1497 other keys. Refer to manual for details. | |
1498 | |
1499 @node Q1.3.8, Q1.4.1, Q1.3.7, Introduction | |
1500 @unnumberedsubsec Q1.3.8: What is @code{Custom}? | |
1501 | |
1502 @code{Custom} is a system for customizing XEmacs options. | |
1503 | |
1504 You can access @code{Advanced (Customize)} from the @code{Options} menu | |
1505 or invoking one of customize commands by typing eg. | |
1506 @kbd{M-x customize}, @kbd{M-x customize-face}, | |
1507 @kbd{M-x customize-variable} or @kbd{M-x customize-apropos}. | |
1508 | |
1509 There is also new @samp{browser} mode for Customize. | |
1510 Try it out with @kbd{M-x customize-browse} | |
1511 | |
1512 @unnumberedsec 1.4: Getting Help | |
1513 | |
1514 @node Q1.4.1, Q1.4.2, Q1.3.8, Introduction | |
1515 @unnumberedsubsec Q1.4.1: Where can I get help? | |
1516 | |
1517 Probably the easiest way, if everything is installed, is to use Info, by | |
1518 pressing @kbd{C-h i}, or looking for an Info item on the | |
1519 Help Menu. @kbd{M-x apropos} can be used to look for particular commands. | |
1520 | |
1521 For items not found in the manual, try reading this FAQ | |
1522 and reading the Usenet group comp.emacs.xemacs. | |
1523 | |
1524 If you choose to post to a newsgroup, @strong{please use | |
1525 comp.emacs.xemacs}. Please do not post XEmacs related questions to | |
1526 gnu.emacs.help. | |
1527 | |
1528 If you cannot post or read Usenet news, there is a corresponding mailing | |
1529 list @email{xemacs-news@@xemacs.org} which is available. It can be | |
1530 subscribed to via the Mailman Web interface or by sending mail to to | |
1531 @email{xemacs-news-request@@xemacs.org} with @samp{subscribe} in the | |
1532 body of the message. See also | |
1533 @uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a | |
1534 subscription, you may use the @email{xemacs-news-request@@xemacs.org} | |
1535 address or the Web interface. Send a message with a subject of | |
1536 @samp{unsubscribe} to be removed. | |
1537 | |
1538 @node Q1.4.2, Q1.4.3, Q1.4.1, Introduction | |
1539 @unnumberedsubsec Q1.4.2: Which mailing lists are there? | |
1540 | |
1541 For complete, up-to-date info on the lists and how to subscribe, see | |
1542 @uref{http://www.xemacs.org/Lists/}. | |
1543 | |
1544 @table @samp | |
1545 | |
1546 @item comp.emacs.xemacs | |
1547 is a Usenet newsgroup | |
1548 for XEmacs users to discuss problems and issues that arise | |
1549 for them. It's not generally an appropriate place to ask | |
1550 about apparent bugs (use @samp{xemacs-beta}), or future plans | |
1551 (use @samp{xemacs-design}). | |
1552 | |
1553 @item xemacs-announce | |
1554 is a read-only, low | |
1555 volume list for announcements concerning the XEmacs project | |
1556 and new releases of the XEmacs software. | |
1557 | |
1558 @item xemacs-beta | |
1559 is an open list for bug | |
1560 reports about beta versions of XEmacs. This includes the bug | |
1561 reports themselves, by both users and developers, as well as | |
1562 queries, follow-ups, and discussions further determining their | |
1563 nature and status. This is the primary channel for this kind | |
1564 of discussion; related code changes will usually not be | |
1565 applied until they have been discussed here. When such | |
1566 discussions touch on significant changes to the code (in | |
1567 particular, structural changes), or on changes to API's or | |
1568 external functionality, they should be moved to | |
1569 @samp{xemacs-design}. Requests and proposals for | |
1570 non-bug-related changes do not belong on @samp{xemacs-beta}, | |
1571 and should be sent to @samp{xemacs-design} instead. | |
1572 | |
1573 @item xemacs-beta-ja | |
1574 is an open list for bug | |
1575 reports and design discussion related to Mule features, | |
1576 including Japanese handling, in beta versions of XEmacs. | |
1577 Japanese is the preferred language of discussion. For most | |
1578 timely presentation to reviewers, please consider sending | |
1579 appropriate discussion to @samp{xemacs-mule} or | |
1580 @samp{xemacs-design} in English when convenient for | |
1581 the participants in discussion. When possible, bug reports | |
1582 not related to Mule (including Japanese) should be reported on | |
1583 @samp{xemacs-beta} in English. | |
1584 | |
1585 @item xemacs-buildreports | |
1586 is an open list for | |
1587 submission of build-reports on beta versions of XEmacs. For | |
1588 information on what the build-reports should contain, please | |
1589 see the `etc/BETA' file which is included in each beta | |
1590 distribution. | |
1591 | |
1592 @item xemacs-cvs | |
1593 is a read-only list for notices | |
1594 and information on what has been committed to the XEmacs CVS | |
1595 trees, by whom, and for what. | |
1596 | |
1597 @item xemacs-design | |
1598 is an open list for | |
1599 discussing the design of XEmacs. This includes discussion | |
1600 about planned and ongoing changes to functionality and API | |
1601 changes and additions as well as requests for them. This is | |
1602 the primary channel for this kind of discussion; related code | |
1603 changes will usually not be applied until they have been | |
1604 discussed here. This does not include bug reports, which go | |
1605 to @samp{xemacs-beta}. | |
1606 | |
1607 @item xemacs-mule | |
1608 is an open mailing list for | |
1609 discussion of International extensions to XEmacs including | |
1610 Mule, XIM, I18n issues, etc, and is not confined to | |
1611 developmental issues. This list is not restricted to | |
1612 English, postings in all languages are welcome. | |
1613 | |
1614 @item xemacs-news | |
1615 is an open list for discussion | |
1616 and bug reporting for XEmacs. This mailing list is | |
1617 bi-directionally gatewayed with the USENET newsgroup | |
1618 comp.emacs.xemacs. | |
1619 | |
1620 @item xemacs-nt | |
1621 is a developers-only mailing | |
1622 list and is intended for people who wish to work actively on | |
1623 the porting of XEmacs to Microsoft Windows NT and Microsoft | |
1624 Windows '95. | |
1625 | |
1626 @item xemacs-patches | |
1627 is an open, moderated | |
1628 list for submission of patches to the XEmacs distribution | |
1629 and its packages. Anyone may subscribe or submit to | |
1630 xemacs-patches, but all submissions are reviewed by the list | |
1631 moderator before they are distributed to the | |
1632 list. Discussion is not appropriate on xemacs-patches. | |
1633 | |
1634 @item xemacs-users-ja | |
1635 is an open list for | |
1636 discussion and bug reporting for XEmacs. Japanese is the | |
1637 preferred language of discussion. It is not gated to | |
1638 comp.emacs.xemacs or the @samp{xemacs} list. For | |
1639 fastest response, bugs not specifically related to Japanese | |
1640 or Mule features should be reported on | |
1641 @samp{xemacs-beta} (in English). | |
1642 | |
1643 @item xemacs-users-ru | |
1644 is an open list for | |
1645 discussion and bug reporting for XEmacs. Russian is the | |
1646 preferred language of discussion. It is not gated to | |
1647 comp.emacs.xemacs or the @samp{xemacs} list. For | |
1648 fastest response, bugs not specifically related to Russian | |
1649 or Mule features should be reported on | |
1650 @samp{xemacs-beta} (in English). | |
1651 @end table | |
1652 | |
1653 @node Q1.4.3, Q1.4.4, Q1.4.2, Introduction | |
1654 @unnumberedsubsec Q1.4.3: Where are the mailing lists archived? | |
1655 | |
1656 The archives can be found at @uref{http://list-archive.xemacs.org} | |
1657 | |
1658 @node Q1.4.4, Q1.4.5, Q1.4.3, Introduction | |
1659 @unnumberedsubsec Q1.4.4: How can I get two instances of info? | |
1660 | |
1661 Before 21.4, you can't. The @code{info} package does not provide for | |
1662 multiple info buffers. In 21.4, this should be fixed. #### how? | |
1663 | |
1664 @node Q1.4.5, Q1.5.1, Q1.4.4, Introduction | |
1665 @unnumberedsubsec Q1.4.5: How do I add new Info directories? | |
1666 | |
1667 You use something like: | |
1668 | |
1669 @lisp | |
1670 (setq Info-directory-list (cons | |
1671 (expand-file-name "~/info") | |
1672 Info-default-directory-list)) | |
1673 @end lisp | |
1674 | |
1675 @email{davidm@@prism.kla.com, David Masterson} writes: | |
1676 | |
1677 @quotation | |
1678 Emacs Info and XEmacs Info do many things differently. If you're trying to | |
1679 support a number of versions of Emacs, here are some notes to remember: | |
1680 | |
1681 @enumerate | |
1682 @item | |
1683 Emacs Info scans @code{Info-directory-list} from right-to-left while | |
1684 XEmacs Info reads it from left-to-right, so append to the @emph{correct} | |
1685 end of the list. | |
1686 | |
1687 @item | |
1688 Use @code{Info-default-directory-list} to initialize | |
1689 @code{Info-directory-list} @emph{if} it is available at startup, but not | |
1690 all Emacsen define it. | |
1691 | |
1692 @item | |
1693 Emacs Info looks for a standard @file{dir} file in each of the | |
1694 directories scanned from #1 and magically concatenates them together. | |
1695 | |
1696 @item | |
1697 XEmacs Info looks for a @file{localdir} file (which consists of just the | |
1698 menu entries from a @file{dir} file) in each of the directories scanned | |
1699 from #1 (except the first), does a simple concatenation of them, and | |
1700 magically attaches the resulting list to the end of the menu in the | |
1701 @file{dir} file in the first directory. | |
1702 @end enumerate | |
1703 | |
1704 Another alternative is to convert the documentation to HTML with | |
1705 texi2html and read it from a web browser like Lynx or W3. | |
1706 @end quotation | |
1707 | |
1708 @unnumberedsec 1.5: Contributing to XEmacs | |
1709 | |
1710 @node Q1.5.1, Q1.5.2, Q1.4.5, Introduction | |
1711 @unnumberedsubsec Q1.5.1: How do I submit changes to the FAQ? | |
1712 | |
1713 The FAQ is actively maintained and modified regularly. All links should | |
1714 be up to date. Unfortunately, some of the information is out of date -- | |
1715 a situation which the FAQ maintainer is working on. All submissions are | |
1716 welcome, please e-mail submissions to @email{faq@@xemacs.org, XEmacs FAQ | |
1717 maintainers}. | |
1718 | |
1719 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line. | |
1720 If you think you have a better way of answering a question, or think a | |
1721 question should be included, we'd like to hear about it. Questions and | |
1722 answers included into the FAQ will be edited for spelling and grammar | |
1723 and will be attributed. Answers appearing without attribution are | |
1724 either from versions of the FAQ dated before May 1996 or are from | |
1725 previous FAQ maintainers. Answers quoted from Usenet news articles will | |
1726 always be attributed, regardless of the author. | |
1727 | |
1728 @node Q1.5.2, Q1.5.3, Q1.5.1, Introduction | |
1729 @unnumberedsubsec Q1.5.2: How do I become a beta tester? | |
1730 | |
1731 Send an email message to @email{xemacs-beta-request@@xemacs.org} with | |
1732 the line @samp{subscribe} in the body of the message. | |
1733 | |
1734 Be prepared to get your hands dirty, as beta testers are expected to | |
1735 identify problems as best they can. | |
1736 | |
1737 @node Q1.5.3, Q1.6.1, Q1.5.2, Introduction | |
1738 @unnumberedsubsec Q1.5.3: How do I contribute to XEmacs itself? | |
1739 | |
1740 It depends on the knowledge and time you possess. If you are able, by | |
1741 all means become a beta tester (@pxref{Q1.5.2}). If you are a | |
1742 programmer, try to build XEmacs and see if you can improve it. | |
1743 | |
1744 Otherwise, you can still help by using XEmacs as your everyday editor | |
1745 (for pre-built binary versions, @pxref{Q1.1.2}) and reporting bugs you | |
1746 find to the mailing list. | |
1747 | |
1748 Another area where we need help is the documentation: We need good | |
1749 documentation for building XEmacs and for using it. This FAQ is a | |
1750 small step in that direction. | |
1751 | |
1752 Ben Wing @email{ben@@xemacs.org} writes: | |
1753 | |
1754 @quotation | |
1755 BTW if you have a wish list of things that you want added, you have to | |
1756 speak up about it! More specifically, you can do the following if you | |
1757 want a feature added (in increasing order of usefulness): | |
1758 | |
1759 @itemize @bullet | |
1760 @item | |
1761 Make a posting about a feature you want added. | |
1762 | |
1763 @item | |
1764 Become a beta tester and make more postings about those same features. | |
1765 | |
1766 @item | |
1767 Convince us that you're going to use the features in some cool and | |
1768 useful way. | |
1769 | |
1770 @item | |
1771 Come up with a clear and well-thought-out API concerning the features. | |
1772 | |
1773 @item | |
1774 Write the code to implement a feature and send us a patch. | |
1775 @end itemize | |
1776 | |
1777 (not that we're necessarily requiring you to write the code, but we can | |
1778 always hope :) | |
1779 @end quotation | |
1780 | |
1781 @unnumberedsec 1.6: Politics (XEmacs vs. GNU Emacs) | |
1782 | |
1783 @node Q1.6.1, Q1.6.2, Q1.5.3, Introduction | |
1784 @unnumberedsubsec Q1.6.1: What is GNU Emacs? | |
1785 | |
1786 GNU Emacs and XEmacs are related open-source text editors. Both | |
1787 derive from GNU Emacs version 18; the split between the two happened | |
1788 in 1991 (for comparison, the oldest versions of GNU Emacs date from | |
1789 1984). For information on GNU Emacs, see | |
1790 @uref{http://www.gnu.org/software/emacs/emacs.html}. | |
1791 | |
1792 @node Q1.6.2, Q1.6.3, Q1.6.1, Introduction | |
1793 @unnumberedsubsec Q1.6.2: How does XEmacs differ from GNU Emacs? | |
696 | 1794 |
697 For a detailed description of the differences between GNU Emacs and | 1795 For a detailed description of the differences between GNU Emacs and |
698 XEmacs and a detailed history of XEmacs, check out the | 1796 XEmacs and a detailed history of XEmacs, check out the |
699 @example | 1797 @example |
700 @uref{http://www.xemacs.org/About/XEmacsVsGNUemacs.html, NEWS file} | 1798 @uref{http://www.xemacs.org/About/XEmacsVsGNUemacs.html, NEWS file} |
848 CVS commit authority is broadly dispersed. Recognized maintainers of | 1946 CVS commit authority is broadly dispersed. Recognized maintainers of |
849 LISP libraries who are willing to maintain XEmacs packaged versions | 1947 LISP libraries who are willing to maintain XEmacs packaged versions |
850 automatically qualify for CVS accounts for their packages. | 1948 automatically qualify for CVS accounts for their packages. |
851 @end table | 1949 @end table |
852 | 1950 |
853 @node Q1.0.6, Q1.0.7, Q1.0.5, Introduction | 1951 @node Q1.6.3, Q1.6.4, Q1.6.2, Introduction |
854 @unnumberedsubsec Q1.0.6: How much does XEmacs differ? | 1952 @unnumberedsubsec Q1.6.3: How much does XEmacs differ? |
855 | 1953 |
856 RMS has asserted at times that XEmacs is merely a "patch" on top of | 1954 RMS has asserted at times that XEmacs is merely a "patch" on top of |
857 GNU Emacs (@pxref{Q1.0.7}). In fact, probably not more than 5% of the | 1955 GNU Emacs (@pxref{Q1.6.4}). In fact, probably not more than 5% of the |
858 code, if that, remains unchanged, and nearly 14 years of work has gone | 1956 code, if that, remains unchanged, and nearly 14 years of work has gone |
859 into XEmacs at this point. (GNU Emacs itself is only than 20 years | 1957 into XEmacs at this point. (GNU Emacs itself is only than 20 years |
860 old, and thus XEmacs has existed as a separate product for over 2/3 of | 1958 old, and thus XEmacs has existed as a separate product for over 2/3 of |
861 the lifespan of GNU Emacs.) As a point of comparison, XEmacs 21.5 has | 1959 the lifespan of GNU Emacs.) As a point of comparison, XEmacs 21.5 has |
862 perhaps 65,000 more lines of C code than GNU Emacs 21.2. | 1960 perhaps 65,000 more lines of C code than GNU Emacs 21.2. |
868 from XEmacs has made it into GNU Emacs, and in fact the GNU Emacs | 1966 from XEmacs has made it into GNU Emacs, and in fact the GNU Emacs |
869 developers are instructed by RMS not to even look at XEmacs source code! | 1967 developers are instructed by RMS not to even look at XEmacs source code! |
870 This stems from self-imposed licensing restrictions on the part of GNU | 1968 This stems from self-imposed licensing restrictions on the part of GNU |
871 Emacs -- and almost certainly out of hostility, as well.) | 1969 Emacs -- and almost certainly out of hostility, as well.) |
872 | 1970 |
873 @node Q1.0.7, Q1.0.8, Q1.0.6, Introduction | 1971 @node Q1.6.4, Q1.6.5, Q1.6.3, Introduction |
874 @unnumberedsubsec Q1.0.7: Is XEmacs "GNU"? | 1972 @unnumberedsubsec Q1.6.4: Is XEmacs "GNU"? |
875 | 1973 |
876 RMS insists on the term "GNU XEmacs" and maintains that | 1974 RMS insists on the term "GNU XEmacs" and maintains that |
877 | 1975 |
878 @quotation | 1976 @quotation |
879 XEmacs is GNU software because it's a modified version of a | 1977 XEmacs is GNU software because it's a modified version of a |
882 protecting its free status falls on us whether we want it or not. This | 1980 protecting its free status falls on us whether we want it or not. This |
883 is why the term "GNU XEmacs" is legitimate. | 1981 is why the term "GNU XEmacs" is legitimate. |
884 @end quotation | 1982 @end quotation |
885 | 1983 |
886 In fact, FSF is @emph{not} the copyright holder for most of the code, | 1984 In fact, FSF is @emph{not} the copyright holder for most of the code, |
887 as very little unmodified FSF code remains (@pxref{Q1.0.6}). | 1985 as very little unmodified FSF code remains (@pxref{Q1.6.3}). |
888 | 1986 |
889 Furthermore, RMS's assertion that XEmacs is "GNU" seems rather bizarre | 1987 Furthermore, RMS's assertion that XEmacs is "GNU" seems rather bizarre |
890 to the XEmacs developers given RMS's hostility and general lack of | 1988 to the XEmacs developers given RMS's hostility and general lack of |
891 interest in cooperation. "GNU" software in general is part of the GNU | 1989 interest in cooperation. "GNU" software in general is part of the GNU |
892 Project, is distributed by it on their FTP site, and receives support | 1990 Project, is distributed by it on their FTP site, and receives support |
895 distributed XEmacs, and RMS's hostility is the farthest thing possible | 1993 distributed XEmacs, and RMS's hostility is the farthest thing possible |
896 from an endorsement. In fact, the GNU Project distributes a number of | 1994 from an endorsement. In fact, the GNU Project distributes a number of |
897 non-GNU software projects on the FSF web site, but again XEmacs is not | 1995 non-GNU software projects on the FSF web site, but again XEmacs is not |
898 one of them. | 1996 one of them. |
899 | 1997 |
900 @node Q1.0.8, Q1.0.9, Q1.0.7, Introduction | 1998 @node Q1.6.5, Q1.6.6, Q1.6.4, Introduction |
901 @unnumberedsubsec Q1.0.8: What is the correct way to refer to XEmacs and GNU Emacs? | 1999 @unnumberedsubsec Q1.6.5: What is the correct way to refer to XEmacs and GNU Emacs? |
902 | 2000 |
903 Unfortunately even the naming of these two applications has become | 2001 Unfortunately even the naming of these two applications has become |
904 politicized. Much of this stems from RMS, who has a history of | 2002 politicized. Much of this stems from RMS, who has a history of |
905 politicizing similar issues. (Compare the controversy over "Lignux" | 2003 politicizing similar issues. (Compare the controversy over "Lignux" |
906 and "GNU/Linux".) We would prefer that the terms "XEmacs" and "GNU | 2004 and "GNU/Linux".) We would prefer that the terms "XEmacs" and "GNU |
907 Emacs" be used, which are neutral and acceptable to most people. RMS, | 2005 Emacs" be used, which are neutral and acceptable to most people. RMS, |
908 however, is not willing to accept these terms. He insists that, if | 2006 however, is not willing to accept these terms. He insists that, if |
909 his product is called "GNU Emacs", then ours must be called "GNU | 2007 his product is called "GNU Emacs", then ours must be called "GNU |
910 XEmacs". (For our opinion of this term, @xref{Q1.0.7}.) On the other | 2008 XEmacs". (For our opinion of this term, @xref{Q1.6.4}.) On the other |
911 hand, if our product is to be called "XEmacs", as we prefer, then his | 2009 hand, if our product is to be called "XEmacs", as we prefer, then his |
912 product must simply be called "Emacs". The intent of this seems | 2010 product must simply be called "Emacs". The intent of this seems |
913 clear: RMS wants to make sure the names reflect his view that his | 2011 clear: RMS wants to make sure the names reflect his view that his |
914 version is the "real" Emacs and ours is merely a derivative, | 2012 version is the "real" Emacs and ours is merely a derivative, |
915 second-class product (@pxref{Q1.0.6}). | 2013 second-class product (@pxref{Q1.6.3}). |
916 | 2014 |
917 The XEmacs developers hope that you will use the neutral terms | 2015 The XEmacs developers hope that you will use the neutral terms |
918 "XEmacs" and "GNU Emacs" for these two specific products. "Emacs", on | 2016 "XEmacs" and "GNU Emacs" for these two specific products. "Emacs", on |
919 the other hand, is a generic term for a class of programmable text | 2017 the other hand, is a generic term for a class of programmable text |
920 editors with a similar look-and-feel, and usually a Lisp-based | 2018 editors with a similar look-and-feel, and usually a Lisp-based |
931 own usage of "Gosmacs" and "Gosling Emacs" in reference to Unipress | 2029 own usage of "Gosmacs" and "Gosling Emacs" in reference to Unipress |
932 Emacs, produced by James Gosling. RMS, however, considers such terms | 2030 Emacs, produced by James Gosling. RMS, however, considers such terms |
933 to be insulting, so we refrain from using them as much as possible in | 2031 to be insulting, so we refrain from using them as much as possible in |
934 preference to GNU Emacs.) | 2032 preference to GNU Emacs.) |
935 | 2033 |
936 @node Q1.0.9, Q1.0.10, Q1.0.8, Introduction | 2034 @node Q1.6.6, Q1.7.1, Q1.6.5, Introduction |
937 @unnumberedsubsec Q1.0.9: Why haven't XEmacs and GNU Emacs merged? | 2035 @unnumberedsubsec Q1.6.6: Why haven't XEmacs and GNU Emacs merged? |
938 | 2036 |
939 There are currently irreconcilable differences in the views about | 2037 There are currently irreconcilable differences in the views about |
940 technical, programming, design, organizational and legal matters | 2038 technical, programming, design, organizational and legal matters |
941 between Richard Stallman (RMS), the author and leader of the GNU Emacs | 2039 between Richard Stallman (RMS), the author and leader of the GNU Emacs |
942 project, and the XEmacs development team which provide little hope for | 2040 project, and the XEmacs development team which provide little hope for |
1012 If you have a comment to add regarding the merge, it is a good idea to | 2110 If you have a comment to add regarding the merge, it is a good idea to |
1013 avoid posting to the newsgroups, because of the very heated flamewars | 2111 avoid posting to the newsgroups, because of the very heated flamewars |
1014 that often result. Mail your questions to | 2112 that often result. Mail your questions to |
1015 @email{xemacs-beta@@xemacs.org} and @email{emacs-devel@@gnu.org}. | 2113 @email{xemacs-beta@@xemacs.org} and @email{emacs-devel@@gnu.org}. |
1016 | 2114 |
1017 @node Q1.0.10, Q1.0.11, Q1.0.9, Introduction | 2115 @unnumberedsec 1.7: External Packages |
1018 @unnumberedsubsec Q1.0.10: Where can I get help? | 2116 |
1019 | 2117 @node Q1.7.1, Q1.8.1, Q1.6.6, Introduction |
1020 Probably the easiest way, if everything is installed, is to use Info, by | 2118 @unnumberedsubsec Q1.7.1: Which external packages are there? |
1021 pressing @kbd{C-h i}, or looking for an Info item on the | 2119 |
1022 Help Menu. @kbd{M-x apropos} can be used to look for particular commands. | 2120 @subheading Normal Packages |
1023 | 2121 |
1024 For items not found in the manual, try reading this FAQ | 2122 A very broad collection of elisp packages. |
1025 and reading the Usenet group comp.emacs.xemacs. | |
1026 | |
1027 If you choose to post to a newsgroup, @strong{please use | |
1028 comp.emacs.xemacs}. Please do not post XEmacs related questions to | |
1029 gnu.emacs.help. | |
1030 | |
1031 If you cannot post or read Usenet news, there is a corresponding mailing | |
1032 list @email{xemacs-news@@xemacs.org} which is available. It can be | |
1033 subscribed to via the Mailman Web interface or by sending mail to to | |
1034 @email{xemacs-news-request@@xemacs.org} with @samp{subscribe} in the | |
1035 body of the message. See also | |
1036 @uref{http://www.xemacs.org/Lists/#xemacs-news}. To cancel a | |
1037 subscription, you may use the @email{xemacs-news-request@@xemacs.org} | |
1038 address or the Web interface. Send a message with a subject of | |
1039 @samp{unsubscribe} to be removed. | |
1040 | |
1041 @node Q1.0.11, Q1.0.12, Q1.0.10, Introduction | |
1042 @unnumberedsubsec Q1.0.11: Where are the mailing lists archived? | |
1043 | |
1044 The archives can be found at @uref{http://list-archive.xemacs.org} | |
1045 | |
1046 @node Q1.0.12, Q1.0.13, Q1.0.11, Introduction | |
1047 @unnumberedsubsec Q1.0.12: How do you pronounce XEmacs? | |
1048 | |
1049 The most common pronounciation is @samp{Eks eemax}. | |
1050 | |
1051 @node Q1.0.13, Q1.0.14, Q1.0.12, Introduction | |
1052 @unnumberedsubsec Q1.0.13: What does XEmacs look like? | |
1053 | |
1054 Screen snapshots are available at | |
1055 @uref{http://www.xemacs.org/About/Screenshots/index.html} | |
1056 as part of the XEmacs website. | |
1057 | |
1058 @node Q1.0.14, Q1.1.1, Q1.0.13, Introduction | |
1059 @unnumberedsubsec Q1.0.14: Where can I obtain a printed copy of the XEmacs User's Manual? | |
1060 | |
1061 Pre-printed manuals are not available. If you are familiar with | |
1062 TeX, you can generate your own manual from the XEmacs sources. | |
1063 | |
1064 HTML and Postscript versions of XEmacs manuals are available from the | |
1065 XEmacs web site at | |
1066 @uref{http://www.xemacs.org/Documentation/index.html}. | |
1067 | |
1068 @unnumberedsec 1.1: Versions for Different Operating Systems | |
1069 | |
1070 @node Q1.1.1, Q1.1.2, Q1.0.14, Introduction | |
1071 @unnumberedsubsec Q1.1.1: Do I need X11 to run XEmacs? | |
1072 | |
1073 No. The name @dfn{XEmacs} is unfortunate in the sense that it is | |
1074 @strong{not} an X Window System-only version of Emacs. XEmacs has | |
1075 full color support on a color-capable character terminal. | |
1076 | |
1077 @node Q1.1.2, Q1.1.3, Q1.1.1, Introduction | |
1078 @unnumberedsubsec Q1.1.2: Is there a port of XEmacs to Microsoft Windows? | |
1079 | |
1080 Yes. Beginning with release 21.0, XEmacs has worked under MS Windows | |
1081 and is fully-featured and actively developed. A group of dedicated | |
1082 developers actively maintains and improves the Windows-specific | |
1083 portions of the code. Some of the core developers, in fact, use | |
1084 Windows as their only development environment, and some features, such | |
1085 as printing, actually work better on Windows than native Unix and Mac | |
1086 OS X. The mailing list at @email{xemacs-winnt@@xemacs.org} is dedicated | |
1087 to that effort (please use the -request address to | |
1088 subscribe). (Despite its name, XEmacs actually works on all versions | |
1089 of Windows.) | |
1090 | |
1091 The list name is misleading, as XEmacs supports and has been compiled on | |
1092 Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows | |
1093 XP, and all newer versions of Windows. The MS Windows-specific code is | |
1094 based on Microsoft Win32 API, and will not work on MS Windows 3.x or on | |
1095 MS-DOS. | |
1096 | |
1097 XEmacs also supports the Cygwin and MinGW development and runtime | |
1098 environments, where it also uses native Windows code for graphical | |
1099 features. In addition, under Cygwin it is possible to compile XEmacs | |
1100 to use an X server (and XFree86 is available as part of the standard | |
1101 Cygwin installation). | |
1102 | |
1103 @node Q1.1.3, Q1.1.4, Q1.1.2, Introduction | |
1104 @unnumberedsubsec Q1.1.3: Can I build XEmacs on MS Windows with X support? Do I need to? | |
1105 | |
1106 Yes, you can, but no you do not need to. In fact, we recommend that you | |
1107 use a native-GUI version unless you have a specific need for an X | |
1108 version. | |
1109 | |
1110 @node Q1.1.4, Q1.1.5, Q1.1.3, Introduction | |
1111 @unnumberedsubsec Q1.1.4: What are Cygwin and MinGW, and do I need them to run XEmacs? | |
1112 | |
1113 To answer the second part of the question: No, you, you don't need | |
1114 Cygwin or MinGW to build or to run XEmacs. But if you have them and | |
1115 want to use them, XEmacs supports these environments. | |
1116 | |
1117 (One important reason to support Cygwin is that it lets the MS Windows | |
1118 developers test out their code in a Unix environment without actually | |
1119 having to have a Unix machine around. For this reason alone, Cygwin | |
1120 support is likely to remain supported for a long time in XEmacs. Same | |
1121 goes for the X support under Cygwin, for the same reasons. MinGW | |
1122 support, on the other hand, depends on volunteers to keep it up to date; | |
1123 but this is generally not hard.) | |
1124 | |
1125 Cygwin is a set of tools providing Unix-like API on top of Win32. | |
1126 It makes it easy to port large Unix programs without significant | |
1127 changes to their source code. It is a development environment as well | |
1128 as a runtime environment. | |
1129 | |
1130 When built with Cygwin, XEmacs supports all display types -- TTY, X & | |
1131 Win32 GUI, and can be built with support for all three simultaneously. | |
1132 If you build with Win32 GUI support then the Cygwin version uses the | |
1133 majority of the Windows-specific code, which is mostly related to | |
1134 display. If you want to build with X support you need X libraries (and | |
1135 an X server to display XEmacs on); see @ref{Q2.2.7}. TTY and Win32 GUI | |
1136 require no additional libraries beyond what comes standard with Cygwin. | |
1137 | |
1138 The advantages of the Cygwin version are that it integrates well with | |
1139 the Cygwin environment for existing Cygwin users; uses configure so | |
1140 building with different features is very easy; and actively supports X & | |
1141 TTY. Furthermore, the entire Cygwin environment and compiler are free, | |
1142 whereas Visual C++ costs money. | |
1143 | |
1144 The disadvantage is that it requires the whole Cygwin environment, | |
1145 whereas the native port requires only a suitable MS Windows compiler. | |
1146 Also, it follows the Unix filesystem and process model very closely | |
1147 (some will undoubtedly view this as an advantage). | |
1148 | |
1149 See @uref{http://www.cygwin.com/} for more information on | |
1150 Cygwin. | |
1151 | |
1152 MinGW is a collection of header files and import libraries that allow | |
1153 one to use GCC under the Cygwin environment to compile and produce | |
1154 exactly the same native Win32 programs that you can using Visual C++. | |
1155 Programs compiled with MinGW make use of the standard Microsoft runtime | |
1156 library @file{MSVCRT.DLL}, present on all Windows systems, and look, | |
1157 feel, and act like a standard Visual-C-produced application. (The only | |
1158 difference is the compiler.) This means that, unlike a | |
1159 standardly-compiled Cygwin application, no extra runtime support | |
1160 (e.g. Cygwin's @file{cygwin1.dll}) is required. This, along with the | |
1161 fact that GCC is free (and works in a nice Unix-y way in a nice Unix-y | |
1162 environment, for those die-hard Unix hackers out there), is the main | |
1163 advantage of MinGW. It is also potentially faster than Cygwin because | |
1164 it has less overhead when calling Windows, but you lose the POSIX | |
1165 emulation layer, which makes Unix programs harder to port. (But this is | |
1166 irrelevant for XEmacs since it's already ported to Win32.) | |
1167 | |
1168 See @uref{http://www.mingw.org/} for more information on MinGW. | |
1169 | |
1170 @node Q1.1.5, Q1.1.6, Q1.1.4, Introduction | |
1171 @unnumberedsubsec Q1.1.5: What are the differences between the various MS Windows emacsen? | |
1172 | |
1173 XEmacs, Win-Emacs, DOS Emacs, NT Emacs, this is all very confusing. | |
1174 Could you briefly explain the differences between them? | |
1175 | |
1176 Here is a recount of various Emacs versions running on MS Windows: | |
1177 | |
1178 @itemize @bullet | |
1179 | |
1180 @item | |
1181 XEmacs | |
1182 | |
1183 @itemize @minus | |
1184 | |
1185 @item | |
1186 Beginning with XEmacs 19.12, XEmacs' architecture was redesigned | |
1187 in such a way to allow clean support of multiple window systems. At | |
1188 this time the TTY support was added, making X and TTY the first two | |
1189 "window systems" supported by XEmacs. The 19.12 design is the basis for | |
1190 the current native MS Windows code. | |
1191 | |
1192 @item | |
1193 Some time during 1997, David Hobley (soon joined by Marc Paquette) | |
1194 imported some of the NT-specific portions of GNU Emacs, making XEmacs | |
1195 with X support compile under Windows NT, and creating the "X" port. | |
1196 | |
1197 @item | |
1198 Several months later, Jonathan Harris sent out initial patches to use | |
1199 the Win32 API, thus creating the native port. Since then, various | |
1200 people have contributed, including Kirill M. Katsnelson (contributed | |
1201 support for menubars, subprocesses and network, as well as loads of | |
1202 other code), Andy Piper (ported XEmacs to Cygwin environment, | |
1203 contributed Windows unexec, Windows-specific glyphs and toolbars code, | |
1204 and more), Ben Wing (loads of improvements; primary MS Windows developer | |
1205 since 2000), Jeff Sparkes (contributed scrollbars support) and many | |
1206 others. | |
1207 @end itemize | |
1208 | |
1209 @item | |
1210 NT Emacs | |
1211 | |
1212 @itemize @minus | |
1213 | |
1214 @item | |
1215 NT Emacs was an early version of GNU Emacs 19 modified to compile and | |
1216 run under MS Windows 95 and NT using the native Win32 API. It was | |
1217 written by Geoff Voelker, and has long since been incorporated into | |
1218 the mainline GNU Emacs distribution. | |
1219 @end itemize | |
1220 | |
1221 @item | |
1222 Win-Emacs | |
1223 | |
1224 @itemize @minus | |
1225 | |
1226 @item | |
1227 Win-Emacs was a port of Lucid Emacs 19.6 to MS Windows using X | |
1228 compatibility libraries. Win-Emacs was written by Ben Wing. The MS | |
1229 Windows code never made it back to Lucid Emacs, and its creator (Pearl | |
1230 Software) has long since gone out of business. | |
1231 @end itemize | |
1232 | |
1233 @item | |
1234 GNU Emacs for DOS | |
1235 | |
1236 @itemize @minus | |
1237 | |
1238 @item | |
1239 GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS | |
1240 port of GCC). Such an Emacs is heavily underfeatured, because it does | |
1241 not support long file names, lacks proper subprocesses support, and | |
1242 is far too big compared with typical DOS editors. | |
1243 @end itemize | |
1244 | |
1245 @item | |
1246 GNU Emacs compiled with Win32 | |
1247 | |
1248 @itemize @minus | |
1249 | |
1250 @item | |
1251 Starting with GNU Emacs 19.30, it has been possible to compile GNU Emacs | |
1252 under MS Windows using the DJGPP compiler and X libraries. The result | |
1253 is very similar to GNU Emacs compiled under MS DOS, only it works | |
1254 somewhat better because it runs in 32-bit mode, makes use of all the | |
1255 system memory, supports long file names, etc. | |
1256 @end itemize | |
1257 | |
1258 @end itemize | |
1259 | |
1260 @node Q1.1.6, Q1.1.7, Q1.1.5, Introduction | |
1261 @unnumberedsubsec Q1.1.6: Is there a port of XEmacs to the Macintosh? | |
1262 | |
1263 Yes. | |
1264 | |
1265 XEmacs 21.5 (perhaps 21.4 also?) works on MacOS X, although it certainly | |
1266 will not feel very much like a Mac application as it has no Mac-specific | |
1267 code in it. | |
1268 | |
1269 There is also a port of XEmacs 19.14 that works on all recent versions | |
1270 of MacOS, from 8.1 through MacOS X, by @email{pjarvis@@ispchannel.com, | |
1271 Pitts Jarvis} (recently deceased). It runs in an equivalent of TTY | |
1272 mode only (one single Macintosh window, 25 colors), but has a large | |
1273 number of Mac-specific additions. It's available at | |
1274 @uref{http://homepage.mac.com/pjarvis/xemacs.html}. | |
1275 | |
1276 @node Q1.1.7, Q1.1.8, Q1.1.6, Introduction | |
1277 @unnumberedsubsec Q1.1.7: Is there a port of XEmacs to NextStep? | |
1278 | |
1279 Carl Edman, apparently no longer at @email{cedman@@princeton.edu}, did | |
1280 the port of GNU Emacs to NeXTstep and expressed interest in doing the | |
1281 XEmacs port, but never went any farther. | |
1282 | |
1283 @node Q1.1.8, Q1.1.9, Q1.1.7, Introduction | |
1284 @unnumberedsubsec Q1.1.8: Is there a port of XEmacs to OS/2? | |
1285 | |
1286 No, but Alexander Nikolaev <avn_1251@@mail.ru> is working on it. | |
1287 | |
1288 @node Q1.1.9, Q1.2.1, Q1.1.8, Introduction | |
1289 @unnumberedsubsec Q1.1.9: How does the port cope with differences in the Windows user interface? | |
1290 | |
1291 The XEmacs (and Emacs in general) user interface is pretty different | |
1292 from what is expected of a typical MS Windows program. How does the MS | |
1293 Windows port cope with it? | |
1294 | |
1295 As a general rule, we follow native MS Windows conventions as much as | |
1296 possible. 21.4 is a fairly complete Windows application, supporting | |
1297 native printing, system file dialog boxes, tool tips, etc. In cases | |
1298 where there's a clear UI conflict, we currently use normal Unix XEmacs | |
1299 behavior by default, but make sure the MS Windows "look and feel" (mark | |
1300 via shift-arrow, self-inserting deletes region, Alt selects menu items, | |
1301 etc.) is easily configurable (respectively: using the variable | |
1302 @code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact | |
1303 the default in these versions], or the @file{pc-select} package; using | |
1304 the @file{pending-del} package; and setting the variable | |
1305 @code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above). | |
1306 In fact, if you use the sample @file{init.el} file as your init file, | |
1307 you will get all these behaviors automatically turned on. | |
1308 | |
1309 In future versions, some of these features might be turned on by | |
1310 default in the MS Windows environment. | |
1311 | |
1312 @unnumberedsec 1.2: Policies | |
1313 | |
1314 @node Q1.2.1, Q1.2.2, Q1.1.9, Introduction | |
1315 @unnumberedsubsec Q1.2.1: What is the FAQ editorial policy? | |
1316 | |
1317 The FAQ is actively maintained and modified regularly. All links should | |
1318 be up to date. Unfortunately, some of the information is out of date -- | |
1319 a situation which the FAQ maintainer is working on. All submissions are | |
1320 welcome, please e-mail submissions to @email{faq@@xemacs.org, XEmacs FAQ | |
1321 maintainers}. | |
1322 | |
1323 Please make sure that @samp{XEmacs FAQ} appears on the Subject: line. | |
1324 If you think you have a better way of answering a question, or think a | |
1325 question should be included, we'd like to hear about it. Questions and | |
1326 answers included into the FAQ will be edited for spelling and grammar | |
1327 and will be attributed. Answers appearing without attribution are | |
1328 either from versions of the FAQ dated before May 1996 or are from | |
1329 previous FAQ maintainers. Answers quoted from Usenet news articles will | |
1330 always be attributed, regardless of the author. | |
1331 | |
1332 @node Q1.2.2, Q1.2.3, Q1.2.1, Introduction | |
1333 @unnumberedsubsec Q1.2.2: How do I become a beta tester? | |
1334 | |
1335 Send an email message to @email{xemacs-beta-request@@xemacs.org} with | |
1336 the line @samp{subscribe} in the body of the message. | |
1337 | |
1338 Be prepared to get your hands dirty, as beta testers are expected to | |
1339 identify problems as best they can. | |
1340 | |
1341 @node Q1.2.3, Q1.3.1, Q1.2.2, Introduction | |
1342 @unnumberedsubsec Q1.2.3: How do I contribute to XEmacs itself? | |
1343 | |
1344 It depends on the knowledge and time you possess. If you are able, by | |
1345 all means become a beta tester (@pxref{Q1.2.2}). If you are a | |
1346 programmer, try to build XEmacs and see if you can improve it. | |
1347 | |
1348 Otherwise, you can still help by using XEmacs as your everyday editor | |
1349 (for pre-built binary versions, @pxref{Q1.0.4}) and reporting bugs you | |
1350 find to the mailing list. | |
1351 | |
1352 Another area where we need help is the documentation: We need good | |
1353 documentation for building XEmacs and for using it. This FAQ is a | |
1354 small step in that direction. | |
1355 | |
1356 Ben Wing @email{ben@@xemacs.org} writes: | |
1357 | |
1358 @quotation | |
1359 BTW if you have a wish list of things that you want added, you have to | |
1360 speak up about it! More specifically, you can do the following if you | |
1361 want a feature added (in increasing order of usefulness): | |
1362 | |
1363 @itemize @bullet | |
1364 @item | |
1365 Make a posting about a feature you want added. | |
1366 | |
1367 @item | |
1368 Become a beta tester and make more postings about those same features. | |
1369 | |
1370 @item | |
1371 Convince us that you're going to use the features in some cool and | |
1372 useful way. | |
1373 | |
1374 @item | |
1375 Come up with a clear and well-thought-out API concerning the features. | |
1376 | |
1377 @item | |
1378 Write the code to implement a feature and send us a patch. | |
1379 @end itemize | |
1380 | |
1381 (not that we're necessarily requiring you to write the code, but we can | |
1382 always hope :) | |
1383 @end quotation | |
1384 | |
1385 @unnumberedsec 1.3: Credits | |
1386 | |
1387 @node Q1.3.1, Q1.3.2, Q1.2.3, Introduction | |
1388 @unnumberedsubsec Q1.3.1: Who wrote XEmacs? | |
1389 | |
1390 XEmacs is the result of the time and effort of many people, and the | |
1391 active developers have changed over time. There are two major | |
1392 components of the XEmacs effort -- writing the code itself and providing | |
1393 all the support work (testing the code, releasing beta and final | |
1394 versions, handling patches, reading bug reports, maintaining the web | |
1395 site, managing the mailing lists, etc. etc.). Neither component would | |
1396 work without the other. | |
1397 | |
1398 @subheading CODING | |
1399 | |
1400 The primary code contributor over the years has been Ben Wing (active | |
1401 since late 1992). Between 1991 and 1995, large amounts of coding was | |
1402 contributed by Jamie Zawinski and Chuck Thompson. Many other people | |
1403 have authored major subsystems or otherwise contributed large amounts of | |
1404 code, including Andy Piper, Hrvoje Niksic, Jerry James, Jonathan Harris, | |
1405 Kyle Jones, Martin Buchholz, Michael Sperber, Olivier Galibert, Richard | |
1406 Mlynarik, Stig, William Perry and plenty of others. | |
1407 | |
1408 Primary XEmacs-specific subsystems and their authors: | |
1409 | 2123 |
1410 @table @asis | 2124 @table @asis |
1411 @item Objects | 2125 @item Sun |
1412 @itemize @minus | 2126 Support for Sparcworks. |
1413 @item | 2127 |
1414 Conversion from 26-bit to 28-bit pointers and integers, lrecords, lcrecords: Richard Mlynarik, 1994 | 2128 @item ada |
1415 @item | 2129 Ada language support. |
1416 Conversion to 32-bit pointers and 31-bit integers: Kyle Jones, Martin Buchholz | 2130 |
1417 @item | 2131 @item apel |
1418 Portable dumper, object descriptions: Olivier Galibert | 2132 A Portable Emacs Library. Used by XEmacs MIME support. |
1419 @item | 2133 |
1420 KKCC (new garbage collector), ephemerons, weak boxes: Michael Sperber and students | 2134 @item auctex |
1421 @item | 2135 Basic TeX/LaTeX support. |
1422 Random object work (object equal and hash methods, weak lists, lcrecord lists, bit vectors, dynarr, blocktype, opaque, string resizing): Ben Wing | 2136 |
1423 @item | 2137 @item bbdb |
1424 Profiling: Ben Wing | 2138 The Big Brother Data Base: a rolodex-like database program. |
1425 @item | 2139 |
1426 Some byte-compilation and hash-table improvements: Martin Buchholz | 2140 @item build |
1427 @item | 2141 Build XEmacs from within (UNIX, Windows). |
1428 Bignum: Jerry James | 2142 |
1429 @end itemize | 2143 @item c-support |
1430 | 2144 Basic single-file add-ons for editing C code. |
1431 @item Internationalization/Mule | 2145 |
1432 @itemize @minus | 2146 @item calc |
1433 @item | 2147 Emacs calculator. |
1434 mostly Ben Wing; many ideas for future work, Stephen Turnbull | 2148 |
1435 @end itemize | 2149 @item calendar |
1436 | 2150 Calendar and diary support. |
1437 @item I/O | 2151 |
1438 @itemize @minus | 2152 @item cc-mode |
1439 @item | 2153 C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language support. |
1440 Basic event/event-stream implementation: Jamie Zawinski | 2154 |
1441 @item | 2155 @item clearcase |
1442 Most event work since 1994: Ben Wing | 2156 New Clearcase Version Control for XEmacs (UNIX, Windows). |
1443 @item | 2157 |
1444 Asynchronous stuff (async timeouts, signals, quit-checking): Ben Wing | 2158 @item clearcase |
1445 @item | 2159 Support for the Clearcase version control system. |
1446 Process method abstraction, Windows process work: Kirill Katsnelson | 2160 |
1447 @item | 2161 @item cookie |
1448 Misc-user events, async timeouts, most quit-checking and signal code, most other work since 1994: Ben Wing | 2162 "Fortune cookie"-style messages. Includes Spook (suspicious phrases) |
1449 @item | 2163 and Yow (Zippy quotes). |
1450 Lstreams: Ben Wing | 2164 |
1451 @end itemize | 2165 @item crisp |
1452 | 2166 Crisp/Brief emulation. |
1453 @item Display | 2167 |
1454 @itemize @minus | 2168 @item debug |
1455 @item | 2169 GUD, gdb, dbx debugging support. |
1456 Redisplay mechanism: implementation, Chuck Thompson; additional work, lots of people | 2170 |
1457 @item | 2171 @item dictionary |
1458 Glyphs: mostly Ben Wing | 2172 Interface to RFC2229 dictionary servers. |
1459 @item | 2173 |
1460 Specifiers: Ben Wing | 2174 @item dired |
1461 @item | 2175 The DIRectory EDitor is for manipulating, and running commands on |
1462 Extents: initial implementation, someone at Lucid; rewrite, 1994, Ben Wing | 2176 files in a directory. |
1463 @item | 2177 |
1464 Widgets: Andy Piper | 2178 @item docbookide |
1465 @item | 2179 DocBook editing support. |
1466 JPEG/PNG/TIFF image converters: Ben Wing, William Perry, Jareth Hein, others (see comment in @file{glyphs-eimage.c}) | 2180 |
1467 @item | 2181 @item ecb |
1468 Menus: Jamie Zawinski, someone at Lucid (Lucid menus) | 2182 Emacs source code browser. |
1469 @item | 2183 |
1470 Scrollbars: Chuck Thompson, ??? (Lucid scrollbar) | 2184 @item ecrypto |
1471 @item | 2185 Crypto functionality in Emacs Lisp. |
1472 Multi-device/device-independence work (console/device/etc methods): Ben Wing, prototype by chuck thompson | 2186 |
1473 @item | 2187 @item edebug |
1474 Faces: first implementation, Jamie Zawinski; second, chuck; third, Ben Wing | 2188 An Emacs Lisp debugger. |
1475 @item | 2189 |
1476 Fonts/colors: first implementation, Jamie Zawinski; further work, Ben Wing | 2190 @item ediff |
1477 @item | 2191 Interface over GNU patch. |
1478 Toolbars: implementation, chuck, much interface work, Ben Wing | 2192 |
1479 @item | 2193 @item edit-utils |
1480 Gutters, tabs: andy piper | 2194 Miscellaneous editor extensions, you probably need this. |
1481 @end itemize | 2195 |
1482 | 2196 @item edt |
1483 @item Device subsystems | 2197 DEC EDIT/EDT emulation. |
1484 @itemize @minus | 2198 |
1485 @item | 2199 @item efs |
1486 X Windows: Jamie Zawinksi, Ben Wing, others | 2200 Treat files on remote systems the same as local files. |
1487 @item | 2201 |
1488 GTK: William Perry, Malcolm Purvis | 2202 @item eieio |
1489 @item | 2203 Enhanced Implementation of Emacs Interpreted Objects. |
1490 MS Windows: initial implementation, Jonathan Harris; some more work, Andy Piper, Ben Wing | 2204 |
1491 @item | 2205 @item elib |
1492 TTY: Chuck Thompson, Ben Wing | 2206 Portable Emacs Lisp utilities library. |
1493 @item | 2207 |
1494 Cygwin: Andy Piper | 2208 @item emerge |
1495 @end itemize | 2209 Another interface over GNU patch. |
1496 | 2210 |
1497 @item Misc | 2211 @item erc |
1498 @itemize @minus | 2212 ERC is an Emacs InternetRelayChat client. |
1499 @item | 2213 |
1500 Configure: initial porting from fsf, Chuck Thompson; conversion to autoconf 2, much rewriting, Martin Buchholz | 2214 @item escreen |
1501 @item | 2215 Multiple editing sessions withing a single frame (like screen). |
1502 Most initialization-related code: Ben Wing | 2216 |
1503 @item | 2217 @item eshell |
1504 Internals manual, much of Lisp manual: Ben Wing | 2218 Command shell implemented entirely in Emacs Lisp. |
1505 @item | 2219 |
1506 FSF synching: initial sync with FSF 19, Richard Mlynarik, further work, Ben Wing | 2220 @item ess |
1507 @end itemize | 2221 ESS: Emacs Speaks Statistics. |
2222 | |
2223 @item eterm | |
2224 Terminal emulation. | |
2225 | |
2226 @item eudc | |
2227 Emacs Unified Directory Client (LDAP, PH). | |
2228 | |
2229 @item footnote | |
2230 Footnoting in mail message editing modes. | |
2231 | |
2232 @item forms | |
2233 Forms editing support (obsolete, use Widget instead). | |
2234 | |
2235 @item fortran-modes | |
2236 Fortran support. | |
2237 | |
2238 @item fortran-modes | |
2239 Fortran language support. | |
2240 | |
2241 @item frame-icon | |
2242 Set up mode-specific icons for each frame under XEmacs. | |
2243 | |
2244 @item fsf-compat | |
2245 GNU Emacs compatibility files. | |
2246 | |
2247 @item games | |
2248 Tetris, Sokoban, and Snake. | |
2249 | |
2250 @item general-docs | |
2251 General documentation. Presently, empty. | |
2252 | |
2253 @item gnats | |
2254 XEmacs bug reports. | |
2255 | |
2256 @item gnus | |
2257 The Gnus Newsreader and Mailreader. | |
2258 | |
2259 @item haskell-mode | |
2260 Haskell editing support. | |
2261 | |
2262 @item hm--html-menus | |
2263 HTML editing. | |
2264 | |
2265 @item hyperbole | |
2266 Hyperbole: The Everyday Info Manager. | |
2267 | |
2268 @item ibuffer | |
2269 Advanced replacement for buffer-menu. | |
2270 | |
2271 @item idlwave | |
2272 Editing and Shell mode for the Interactive Data Language. | |
2273 | |
2274 @item igrep | |
2275 Enhanced front-end for Grep. | |
2276 | |
2277 @item ilisp | |
2278 Front-end for interacting with Inferior Lisp (external lisps). | |
2279 | |
2280 @item ispell | |
2281 Spell-checking with GNU ispell. | |
2282 | |
2283 @item jde | |
2284 Integrated Development Environment for Java. | |
2285 | |
2286 @item liece | |
2287 IRC (Internet Relay Chat) client for Emacs. Note, this package is | |
2288 deprecated and will be removed, use riece instead. | |
2289 | |
2290 @item mail-lib | |
2291 Fundamental lisp files for providing email support. | |
2292 | |
2293 @item mailcrypt | |
2294 Support for messaging encryption with PGP. | |
2295 | |
2296 @item mew | |
2297 Messaging in an Emacs World; a MIME-based email program. | |
2298 | |
2299 @item mh-e | |
2300 The XEmacs Interface to the MH Mail System. | |
2301 | |
2302 @item mine | |
2303 Elisp implementation of the game 'Minehunt'. | |
2304 | |
2305 @item misc-games | |
2306 Other amusements and diversions. | |
2307 | |
2308 @item mmm-mode | |
2309 Support for Multiple Major Modes within a single buffer. | |
2310 | |
2311 @item net-utils | |
2312 Miscellaneous Networking Utilities. | |
2313 | |
2314 @item ocaml | |
2315 Objective Caml editing support. | |
2316 | |
2317 @item oo-browser | |
2318 OO-Browser: The Multi-Language Object-Oriented Code Browser. | |
2319 | |
2320 @item ocaml | |
2321 Objective Caml editing support. | |
2322 | |
2323 @item os-utils | |
2324 Miscellaneous single-file O/S utilities, for printing, archiving, | |
2325 compression, remote shells, etc. | |
2326 | |
2327 @item pc | |
2328 PC style interface emulation. | |
2329 | |
2330 @item pcl-cvs | |
2331 CVS frontend. | |
2332 | |
2333 @item pcomplete | |
2334 Provides programmatic completion. | |
2335 | |
2336 @item perl-modes | |
2337 Perl support. | |
2338 | |
2339 @item pgg | |
2340 Emacs interface to various PGP implementations. | |
2341 | |
2342 @item prog-modes | |
2343 Support for various programming languages. | |
2344 | |
2345 @item ps-print | |
2346 Printing functions and utilities. | |
2347 | |
2348 @item psgml | |
2349 Validated HTML/SGML editing. | |
2350 | |
2351 @item psgml-dtds | |
2352 A collection of DTDs for psgml. Note that this package is deprecated | |
2353 and will be removed in the future, most likely Q2/2003. Instead of using | |
2354 this, you should install needed DTDs yourself. | |
2355 | |
2356 @item python-modes | |
2357 Python language support. | |
2358 | |
2359 @item reftex | |
2360 Emacs support for LaTeX cross-references, citations. | |
2361 | |
2362 @item riece | |
2363 IRC (Internet Relay Chat) client for Emacs. | |
2364 | |
2365 @item rmail | |
2366 An obsolete Emacs mailer. If you do not already use it don't start. | |
2367 | |
2368 @item ruby-modes | |
2369 Ruby support. | |
2370 | |
2371 @item sasl | |
2372 Simple Authentication and Security Layer (SASL) library. | |
2373 | |
2374 @item scheme | |
2375 Front-end support for Inferior Scheme. | |
2376 | |
2377 @item semantic | |
2378 Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator. | |
2379 | |
2380 @item sgml | |
2381 SGML/Linuxdoc-SGML editing. | |
2382 | |
2383 @item sh-script | |
2384 Support for editing shell scripts. | |
2385 | |
2386 @item sieve | |
2387 Manage Sieve email filtering scripts. | |
2388 | |
2389 @item slider | |
2390 User interface tool. | |
2391 | |
2392 @item sml-mode | |
2393 SML editing support. | |
2394 | |
2395 @item sounds-au | |
2396 XEmacs Sun sound files. | |
2397 | |
2398 @item sounds-wav | |
2399 XEmacs Microsoft sound files. | |
2400 | |
2401 @item speedbar | |
2402 Provides a separate frame with convenient references. | |
2403 | |
2404 @item strokes | |
2405 Mouse enhancement utility. | |
2406 | |
2407 @item supercite | |
2408 An Emacs citation tool for News & Mail messages. | |
2409 | |
2410 @item texinfo | |
2411 XEmacs TeXinfo support. | |
2412 | |
2413 @item text-modes | |
2414 Miscellaneous support for editing text files. | |
2415 | |
2416 @item textools | |
2417 Miscellaneous TeX support. | |
2418 | |
2419 @item time | |
2420 Display time & date on the modeline. | |
2421 | |
2422 @item tm | |
2423 Emacs MIME support. Not needed for gnus >= 5.8.0. | |
2424 | |
2425 @item tooltalk | |
2426 Support for building with Tooltalk. | |
2427 | |
2428 @item tpu | |
2429 DEC EDIT/TPU support. | |
2430 | |
2431 @item tramp | |
2432 Remote shell-based file editing. This is similar to EFS or Ange-FTP, | |
2433 but works with rsh/ssh and rcp/scp. | |
2434 | |
2435 @item vc | |
2436 Version Control for Free systems. | |
2437 | |
2438 @item vc-cc | |
2439 Version Control for ClearCase (UnFree) systems. | |
2440 | |
2441 @item vhdl | |
2442 Support for VHDL. | |
2443 | |
2444 @item view-process | |
2445 A Unix process browsing tool. | |
2446 | |
2447 @item viper | |
2448 VI emulation support. | |
2449 | |
2450 @item vm | |
2451 An Emacs mailer. | |
2452 | |
2453 @item w3 | |
2454 A Web browser. | |
2455 | |
2456 @item x-symbol | |
2457 Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts. | |
2458 | |
2459 @item xemacs-base | |
2460 Fundamental XEmacs support, you almost certainly need this. | |
2461 | |
2462 @item xemacs-devel | |
2463 XEmacs Lisp developer support. This package contains utilities for | |
2464 supporting Lisp development. It is a single-file package so it may be | |
2465 tailored. | |
2466 | |
2467 @item xlib | |
2468 Emacs interface to X server. | |
2469 | |
2470 @item xslide | |
2471 XSL editing support. | |
2472 | |
2473 @item xslt-process | |
2474 A minor mode for (X)Emacs which allows running an XSLT processor on a | |
2475 buffer. | |
2476 | |
2477 @item xwem | |
2478 X Emacs Window Manager. | |
2479 | |
2480 @item zenirc | |
2481 ZENIRC IRC Client. | |
1508 @end table | 2482 @end table |
1509 | 2483 |
1510 @subheading SUPPORT | 2484 @subheading Mule Support (mule) |
1511 | 2485 |
1512 Currently, support duties are handled by many different people. | 2486 MULti-lingual Enhancement. Support for world scripts such as |
1513 | 2487 Latin, Arabic, Cyrillic, Chinese, Japanese, Greek, Hebrew etc. |
1514 Release managers have been | 2488 To use these packages your XEmacs must be compiled with Mule |
1515 | 2489 support. |
1516 @itemize @minus | 2490 |
1517 @item | 2491 @table @asis |
1518 Stephen Turnbull (April 2001 - present, 21.x - 21.x?) | 2492 @item edict |
1519 @item | 2493 MULE: Lisp Interface to EDICT, Kanji Dictionary. |
1520 Vin Shelton? | 2494 |
1521 @item | 2495 @item egg-its |
1522 Steve Youngs (July 2002 - present??, 21.x - 21.x?) | 2496 MULE: Wnn (4.2 and 6) support. SJ3 support. |
1523 @item | 2497 |
1524 Martin Buchholz (December 1998 - May 2001, 21.x - 21.x?) | 2498 @item latin-unity |
1525 @item | 2499 MULE: find single ISO 8859 character set to encode a buffer. |
1526 Steve Baur (early 1997 - November 1998, 19.15 - 21.0) | 2500 |
1527 @item | 2501 @item latin-unity |
1528 Chuck Thompson (June 1994 - September 1996, 19.11 - 19.14) | 2502 Unify character sets in a buffer. When characters belong to disjoint |
1529 @item | 2503 character sets, this attempts to translate the characters so |
1530 Jamie Zawinski (April 1991 - June 1994, 19.0 - 19.10) | 2504 that they belong to one character set. If the buffer coding system is |
1531 @end itemize | 2505 not sufficient, this suggests different coding systems. |
1532 | 2506 |
1533 The recent overlapping dates are intentional, since two or three trees | 2507 @item leim |
1534 are maintained simultaneously at any point. | 2508 MULE: Quail. All non-English and non-Japanese language support. |
1535 | 2509 |
1536 Other major support work: | 2510 @item locale |
1537 | 2511 MULE: Localized menubars and localized splash screens. |
1538 @itemize @minus | 2512 |
1539 @item | 2513 @item lookup |
1540 Adrian Aichner wrote and maintains the web site. | 2514 Dictionary support. (This isn't an English dictionary program) |
1541 @item | 2515 |
1542 Stephen Turnbull has produced many of the beta and semi-stable releases | 2516 @item mule-base |
1543 and has attempted to be the "face" of XEmacs on the newsgroups and | 2517 MULE: Basic Mule support, required for building with Mule. |
1544 mailing lists. | 2518 |
1545 @item | 2519 @item mule-ucs |
1546 Steve Youngs currently produces the beta releases (???). | 2520 MULE: Extended coding systems (including Unicode) for XEmacs. |
1547 @item | 2521 |
1548 Steve Youngs, Ville Skytta, and now Norbert Koch have taken turns | 2522 @item mule-ucs |
1549 maintaining the packages. | 2523 Extended coding systems (including Unicode) for XEmacs. |
1550 @item | 2524 |
1551 Vin Shelton maintains the stable releases. | 2525 @item skk |
1552 @item | 2526 Another Japanese Language Input Method. Can be used without a |
1553 Testing - #### Norbert, Adrian, ??? | 2527 separate process running as a dictionary server. |
1554 @end itemize | 2528 @end table |
1555 | 2529 |
1556 Portraits and email of some of the major developers: | 2530 @unnumberedsec 1.8: Internationalization |
1557 | 2531 |
1558 @itemize @bullet | 2532 @node Q1.8.1, Q1.8.2, Q1.7.1, Introduction |
1559 @item @email{andy@@xemacs.org, Andy Piper} | 2533 @unnumberedsubsec Q1.8.1: What is the status of internationalization support aka MULE (including Asian language support)? |
1560 @html | |
1561 <br><img src="piper.png" alt="Portrait of Andy Piper"><br> | |
1562 @end html | |
1563 | |
1564 @item @email{ben@@xemacs.org, Ben Wing} | |
1565 @html | |
1566 <br><img src="ben.png" alt="Portrait of Ben Wing"><br> | |
1567 @end html | |
1568 | |
1569 @item @email{cthomp@@xemacs.org, Chuck Thompson} | |
1570 @html | |
1571 <br><img src="cthomp.png" alt="Portrait of Chuck Thompson"><br> | |
1572 @end html | |
1573 | |
1574 @item @email{hniksic@@xemacs.org, Hrvoje Niksic} | |
1575 | |
1576 @html | |
1577 <br><img src="hniksic.png" alt="Portrait of Hrvoje Niksic"><br> | |
1578 @end html | |
1579 | |
1580 @item @email{jwz@@jwz.org, Jamie Zawinski} | |
1581 @html | |
1582 <br><img src="jwz.png" alt="Portrait of Jamie Zawinski"><br> | |
1583 @end html | |
1584 | |
1585 @item @email{martin@@xemacs.org, Martin Buchholz} | |
1586 @html | |
1587 <br><img src="martin.png" alt="Portrait of Martin Buchholz"><br> | |
1588 @end html | |
1589 | |
1590 @item @email{mly@@adoc.xerox.com, Richard Mlynarik} | |
1591 @html | |
1592 <br><img src="mly.png" alt="Portrait of Richard Mlynarik"><br> | |
1593 @end html | |
1594 | |
1595 @item @email{stephen@@xemacs.org, Stephen Turnbull} | |
1596 | |
1597 @item @email{steve@@xemacs.org, Steve Baur} | |
1598 @html | |
1599 <br><img src="slb.png" alt="Portrait of Steve Baur"><br> | |
1600 @end html | |
1601 @end itemize | |
1602 | |
1603 Many other people have contributed to XEmacs; this is partially | |
1604 enumerated in the @samp{About XEmacs} option in the Help menu. | |
1605 | |
1606 @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction | |
1607 @unnumberedsubsec Q1.3.2: Who contributed to this version of the FAQ? | |
1608 | |
1609 The current version of this FAQ was created by @email{ben@@xemacs.org, | |
1610 Ben Wing}. | |
1611 | |
1612 @node Q1.3.3, Q1.4.1, Q1.3.2, Introduction | |
1613 @unnumberedsubsec Q1.3.3: Who contributed to the FAQ in the past? | |
1614 | |
1615 This is only a partial list, as many names were lost in a hard disk | |
1616 crash some time ago. | |
1617 | |
1618 @itemize @bullet | |
1619 @item @email{steve@@xemacs.org, SL Baur} | |
1620 | |
1621 @item @email{hniksic@@xemacs.org, Hrvoje Niksic} | |
1622 | |
1623 @item @email{binge@@aloft.att.com, Curtis.N.Bingham} | |
1624 | |
1625 @item @email{bruncott@@dormeur.inria.fr, Georges Brun-Cottan} | |
1626 | |
1627 @item @email{rjc@@cogsci.ed.ac.uk, Richard Caley} | |
1628 | |
1629 @item @email{cognot@@ensg.u-nancy.fr, Richard Cognot} | |
1630 | |
1631 @item @email{daku@@nortel.ca, Mark Daku} | |
1632 | |
1633 @item @email{wgd@@martigny.ai.mit.edu, William G. Dubuque} | |
1634 | |
1635 @item @email{eeide@@cs.utah.edu, Eric Eide} | |
1636 | |
1637 @item @email{af@@biomath.jussieu.fr, Alain Fauconnet} | |
1638 | |
1639 @item @email{cflatter@@nrao.edu, Chris Flatters} | |
1640 | |
1641 @item @email{ginsparg@@adra.com, Evelyn Ginsparg} | |
1642 | |
1643 @item @email{hall@@aplcenmp.apl.jhu.edu, Marty Hall} | |
1644 | |
1645 @item @email{dkindred@@cmu.edu, Darrell Kindred} | |
1646 | |
1647 @item @email{dmoore@@ucsd.edu, David Moore} | |
1648 | |
1649 @item @email{arup+@@cmu.edu, Arup Mukherjee} | |
1650 | |
1651 @item @email{nickel@@prz.tu-berlin.de, Juergen Nickelsen} | |
1652 | |
1653 @item @email{powell@@csl.ncsa.uiuc.edu, Kevin R. Powell} | |
1654 | |
1655 @item @email{dworkin@@ccs.neu.edu, Justin Sheehy} | |
1656 | |
1657 @item @email{stig@@hackvan.com, Stig} | |
1658 | |
1659 @item @email{Aki.Vehtari@@hut.fi, Aki Vehtari} | |
1660 @end itemize | |
1661 | |
1662 @unnumberedsec 1.4: Internationalization | |
1663 | |
1664 @node Q1.4.1, Q1.4.2, Q1.3.3, Introduction | |
1665 @unnumberedsubsec Q1.4.1: What is the status of internationalization support aka MULE (including Asian language support)? | |
1666 | 2534 |
1667 Both the stable and development versions of XEmacs include | 2535 Both the stable and development versions of XEmacs include |
1668 internationalization support (aka MULE). MULE currently (21.4) works on | 2536 internationalization support (aka MULE). MULE currently (21.4) works on |
1669 UNIX and Linux systems. It is possible to build with MULE on Windows | 2537 UNIX and Linux systems. It is possible to build with MULE on Windows |
1670 systems, but if you really need MULE on Windows, it is recommended that | 2538 systems, but if you really need MULE on Windows, it is recommended that |
1671 you build and use the development (21.5) version, and deal with the | 2539 you build and use the development (21.5) version, and deal with the |
1672 instability of the development tree. Binaries compiled without MULE | 2540 instability of the development tree. Binaries compiled without MULE |
1673 support run faster than MULE capable XEmacsen. | 2541 support run faster than MULE capable XEmacsen. |
1674 | 2542 |
1675 @node Q1.4.2, Q1.4.3, Q1.4.1, Introduction | 2543 @node Q1.8.2, Q1.8.3, Q1.8.1, Introduction |
1676 @unnumberedsubsec Q1.4.2: How can I help with internationalization? | 2544 @unnumberedsubsec Q1.8.2: How can I help with internationalization? |
1677 | 2545 |
1678 If you would like to help, you may want to join the | 2546 If you would like to help, you may want to join the |
1679 @email{xemacs-mule@@xemacs.org} mailing list. Especially needed are | 2547 @email{xemacs-mule@@xemacs.org} mailing list. Especially needed are |
1680 people who speak/write languages other than English, who are willing to | 2548 people who speak/write languages other than English, who are willing to |
1681 use XEmacs/MULE regularly, and have some experience with Elisp. | 2549 use XEmacs/MULE regularly, and have some experience with Elisp. |
1682 | 2550 |
1683 Translations of the TUTORIAL and man page are welcome, and XEmacs does | 2551 Translations of the TUTORIAL and man page are welcome, and XEmacs does |
1684 support multilingual menus, but we have few current translations. | 2552 support multilingual menus, but we have few current translations. |
1685 | 2553 |
1686 @xref{Q1.2.2, How do I become a Beta Tester?}. | 2554 @xref{Q1.5.2, How do I become a Beta Tester?}. |
1687 | 2555 |
1688 @node Q1.4.3, Q1.4.4, Q1.4.2, Introduction | 2556 @node Q1.8.3, Q1.8.4, Q1.8.2, Introduction |
1689 @unnumberedsubsec Q1.4.3: How do I type non-ASCII characters? | 2557 @unnumberedsubsec Q1.8.3: How do I type non-ASCII characters? |
1690 | 2558 |
1691 @xref{Q3.0.6, How can you type in special characters in XEmacs?}, in | 2559 @xref{Q3.0.6, How can you type in special characters in XEmacs?}, in |
1692 part 3 of this FAQ, for some simple methods that also work in non-MULE | 2560 part 3 of this FAQ, for some simple methods that also work in non-MULE |
1693 builds of XEmacs (but only for one-octet coded character sets, and | 2561 builds of XEmacs (but only for one-octet coded character sets, and |
1694 mostly for ISO 8859/1). Many of the methods available for Cyrillic | 2562 mostly for ISO 8859/1). Many of the methods available for Cyrillic |
1695 (@pxref{Q1.4.7, How about Cyrillic modes?}) work without MULE. MULE | 2563 (@pxref{Q1.8.7, How about Cyrillic modes?}) work without MULE. MULE |
1696 has more general capabilities. @xref{Q1.4.5, Please explain the | 2564 has more general capabilities. @xref{Q1.8.5, Please explain the |
1697 various input methods in MULE/XEmacs}. | 2565 various input methods in MULE/XEmacs}. |
1698 | 2566 |
1699 @xref{Q4.0.8, How do I display non-ASCII characters?}, which covers | 2567 @xref{Q4.0.8, How do I display non-ASCII characters?}, which covers |
1700 display of non-ASCII characters. | 2568 display of non-ASCII characters. |
1701 | 2569 |
1702 @node Q1.4.4, Q1.4.5, Q1.4.3, Introduction | 2570 @node Q1.8.4, Q1.8.5, Q1.8.3, Introduction |
1703 @unnumberedsubsec Q1.4.4: Can XEmacs messages come out in a different language? | 2571 @unnumberedsubsec Q1.8.4: Can XEmacs messages come out in a different language? |
1704 | 2572 |
1705 The message-catalog support was written but is badly bit-rotted. XEmacs | 2573 The message-catalog support was written but is badly bit-rotted. XEmacs |
1706 20 and 21 did @emph{not} support it, and early releases of XEmacs 22 | 2574 20 and 21 did @emph{not} support it, and early releases of XEmacs 22 |
1707 will not either. | 2575 will not either. |
1708 | 2576 |
1716 @end example | 2584 @end example |
1717 | 2585 |
1718 The name of the resource is derived from the non-localized entry by | 2586 The name of the resource is derived from the non-localized entry by |
1719 removing punctuation and capitalizing as above. | 2587 removing punctuation and capitalizing as above. |
1720 | 2588 |
1721 @node Q1.4.5, Q1.4.6, Q1.4.4, Introduction | 2589 @node Q1.8.5, Q1.8.6, Q1.8.4, Introduction |
1722 @unnumberedsubsec Q1.4.5: Please explain the various input methods in MULE/XEmacs | 2590 @unnumberedsubsec Q1.8.5: Please explain the various input methods in MULE/XEmacs |
1723 | 2591 |
1724 Mule supports a wide variety of input methods. There are three basic | 2592 Mule supports a wide variety of input methods. There are three basic |
1725 classes: Lisp implementations, generic platform support, and library | 2593 classes: Lisp implementations, generic platform support, and library |
1726 interfaces. | 2594 interfaces. |
1727 | 2595 |
1809 boiled-egg-like utilities. | 2677 boiled-egg-like utilities. |
1810 | 2678 |
1811 Much of this information was provided by @email{morioka@@jaist.ac.jp, | 2679 Much of this information was provided by @email{morioka@@jaist.ac.jp, |
1812 MORIOKA Tomohiko}. | 2680 MORIOKA Tomohiko}. |
1813 | 2681 |
1814 @node Q1.4.6, Q1.4.7, Q1.4.5, Introduction | 2682 @node Q1.8.6, Q1.8.7, Q1.8.5, Introduction |
1815 @unnumberedsubsec Q1.4.6: How do I portably code for MULE/XEmacs? | 2683 @unnumberedsubsec Q1.8.6: How do I portably code for MULE/XEmacs? |
1816 | 2684 |
1817 MULE has evolved rapidly over the last few years, and the original third | 2685 MULE has evolved rapidly over the last few years, and the original third |
1818 party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite | 2686 party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite |
1819 different implementations. The APIs also vary although recent versions | 2687 different implementations. The APIs also vary although recent versions |
1820 of XEmacs have tended to converge to the GNU Emacs standard. | 2688 of XEmacs have tended to converge to the GNU Emacs standard. |
1874 ;; for old emacs variants | 2742 ;; for old emacs variants |
1875 ) | 2743 ) |
1876 @end lisp | 2744 @end lisp |
1877 @end quotation | 2745 @end quotation |
1878 | 2746 |
1879 @node Q1.4.7, Q1.4.8, Q1.4.6, Introduction | 2747 @node Q1.8.7, Q1.8.8, Q1.8.6, Introduction |
1880 @unnumberedsubsec Q1.4.7: How about Cyrillic modes? | 2748 @unnumberedsubsec Q1.8.7: How about Cyrillic modes? |
1881 | 2749 |
1882 @email{ilya@@math.ohio-state.edu, Ilya Zakharevich} writes: | 2750 @email{ilya@@math.ohio-state.edu, Ilya Zakharevich} writes: |
1883 | 2751 |
1884 @quotation | 2752 @quotation |
1885 There is a cyrillic mode in the file @file{mysetup.zip} in | 2753 There is a cyrillic mode in the file @file{mysetup.zip} in |
1912 @quotation | 2780 @quotation |
1913 The fullest resource I found on Russian language use (in and out of | 2781 The fullest resource I found on Russian language use (in and out of |
1914 XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html} | 2782 XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html} |
1915 @end quotation | 2783 @end quotation |
1916 | 2784 |
1917 @node Q1.4.8, Q1.4.9, Q1.4.7, Introduction | 2785 @node Q1.8.8, Q1.8.9, Q1.8.7, Introduction |
1918 @unnumberedsubsec Q1.4.8: Does XEmacs support Unicode? | 2786 @unnumberedsubsec Q1.8.8: Does XEmacs support Unicode? |
1919 | 2787 |
1920 To get Unicode support, you need a Mule-enabled XEmacs. | 2788 To get Unicode support, you need a Mule-enabled XEmacs. |
1921 | 2789 |
1922 21.5 has internal support for Unicode and supports it fully, although we | 2790 21.5 has internal support for Unicode and supports it fully, although we |
1923 don't yet use it as the internal encoding. | 2791 don't yet use it as the internal encoding. |
1924 | 2792 |
1925 21.4 supports Unicode partially -- as an external encoding for files, | 2793 21.4 supports Unicode partially -- as an external encoding for files, |
1926 processes, and terminals, but without font support. @xref{Q1.4.9, How | 2794 processes, and terminals, but without font support. @xref{Q1.8.9, How |
1927 does XEmacs display Unicode?}. To get Unicode support in 21.4, | 2795 does XEmacs display Unicode?}. To get Unicode support in 21.4, |
1928 install Mule-UCS from packages in the usual way, and put | 2796 install Mule-UCS from packages in the usual way, and put |
1929 | 2797 |
1930 @example | 2798 @example |
1931 (require 'un-define) | 2799 (require 'un-define) |
1936 in your init file to enable the UTF-8 coding system. You may wish to | 2804 in your init file to enable the UTF-8 coding system. You may wish to |
1937 view the documentation of @code{set-coding-priority-list} if you find | 2805 view the documentation of @code{set-coding-priority-list} if you find |
1938 that files that are not UTF-8 are being mis-recognized as UTF-8. | 2806 that files that are not UTF-8 are being mis-recognized as UTF-8. |
1939 | 2807 |
1940 Install standard national fonts (not Unicode fonts) for all character | 2808 Install standard national fonts (not Unicode fonts) for all character |
1941 sets you use. @xref{Q1.4.9, How does XEmacs display Unicode??}. | 2809 sets you use. @xref{Q1.8.9, How does XEmacs display Unicode??}. |
1942 | 2810 |
1943 Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not | 2811 Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not |
1944 support 31-bit forms of Unicode (UTF-32 or UCS-4). | 2812 support 31-bit forms of Unicode (UTF-32 or UCS-4). |
1945 | 2813 |
1946 @node Q1.4.9, Q1.5.1, Q1.4.8, Introduction | 2814 @node Q1.8.9, , Q1.8.8, Introduction |
1947 @unnumberedsubsec Q1.4.9: How does XEmacs display Unicode? | 2815 @unnumberedsubsec Q1.8.9: How does XEmacs display Unicode? |
1948 | 2816 |
1949 Mule doesn't have a Unicode charset internally, so there's nothing to | 2817 Mule doesn't have a Unicode charset internally, so there's nothing to |
1950 bind a Unicode registry to. It would not be straightforward to create, | 2818 bind a Unicode registry to. It would not be straightforward to create, |
1951 either, because Unicode is not ISO 2022-compatible. You'd have to | 2819 either, because Unicode is not ISO 2022-compatible. You'd have to |
1952 translate it to multiple 96x96 pages. | 2820 translate it to multiple 96x96 pages. |
1962 It also means you can't use Unicode fonts directly, at least not without | 2830 It also means you can't use Unicode fonts directly, at least not without |
1963 extreme hackery. You can run -nw with (set-terminal-coding-system | 2831 extreme hackery. You can run -nw with (set-terminal-coding-system |
1964 'utf-8) if you really want a Unicode font for some reason. | 2832 'utf-8) if you really want a Unicode font for some reason. |
1965 | 2833 |
1966 Real Unicode support will be introduced in XEmacs 22.0. | 2834 Real Unicode support will be introduced in XEmacs 22.0. |
1967 | |
1968 @unnumberedsec 1.5: Getting Started | |
1969 | |
1970 @node Q1.5.1, Q1.5.2, Q1.4.9, Introduction | |
1971 @unnumberedsubsec Q1.5.1: What is an @file{init.el} or @file{.emacs} and is there a sample one? | |
1972 | |
1973 The @file{init.el} or @file{.emacs} file is used to customize XEmacs to | |
1974 your tastes. Starting in 21.4, the preferred location for the init file | |
1975 is @file{~/.xemacs/init.el}; in previous versions, it was | |
1976 @file{~/.emacs}. 21.4 still accepts the old location, but the first | |
1977 time you run it, it will ask to migrate your file to the new location. | |
1978 If you answer yes, the file will be moved, and a "compatibility" | |
1979 @file{.emacs} file will be placed in the old location so that you can | |
1980 still run older versions of XEmacs, and versions of GNU Emacs, which | |
1981 expect the old location. The @file{.emacs} file present is just a stub | |
1982 that loads the real file in @file{~/.xemacs/init.el}. | |
1983 | |
1984 No two init files are alike, nor are they expected to be alike, but | |
1985 that's the point. The XEmacs distribution contains an excellent starter | |
1986 example in the @file{etc/} directory called @file{sample.init.el} | |
1987 (starting in 21.4) or @file{sample.emacs} in older versions. Copy this | |
1988 file from there to @file{~/.xemacs/init.el} (starting in 21.4) or | |
1989 @file{~/.emacs} in older versions, where @samp{~} means your home | |
1990 directory, of course. Then edit it to suit. | |
1991 | |
1992 You may bring the @file{sample.init.el} or @file{sample.emacs} file into | |
1993 an XEmacs buffer from the menubar. (The menu entry for it is always | |
1994 under the @samp{Help} menu, but its location under that has changed in | |
1995 various versions. Recently, look under the @samp{Samples} submenu.) To | |
1996 determine the location of the @file{etc/} directory type the command | |
1997 @kbd{C-h v data-directory @key{RET}}. | |
1998 | |
1999 @node Q1.5.2, Q1.5.3, Q1.5.1, Introduction | |
2000 @unnumberedsubsec Q1.5.2: Where do I put my @file{init.el} file? | |
2001 | |
2002 @file{init.el} is the name of the init file starting with 21.4, and is | |
2003 located in the subdirectory @file{.xemacs/} of your home directory. In | |
2004 prior versions, the init file is called @file{.emacs} and is located in | |
2005 your home directory. | |
2006 | |
2007 Your home directory under Windows is determined by the @samp{HOME} | |
2008 environment variable. If this is not set, it defaults to @samp{C:\}. | |
2009 To set this variable, modify @file{AUTOEXEC.BAT} under Windows 95/98, or | |
2010 select @samp{Control Panel->System->Advanced->Environment Variables...} | |
2011 under Windows NT/2000. | |
2012 | |
2013 @node Q1.5.3, Q1.5.4, Q1.5.2, Introduction | |
2014 @unnumberedsubsec Q1.5.3: Can I use the same @file{init.el} with the other Emacs? | |
2015 | |
2016 Yes. The sample @file{init.el} included in the XEmacs | |
2017 distribution will show you how to handle different versions and flavors | |
2018 of Emacs. | |
2019 | |
2020 @node Q1.5.4, Q1.5.5, Q1.5.3, Introduction | |
2021 @unnumberedsubsec Q1.5.4: Any good XEmacs tutorials around? | |
2022 | |
2023 There's the XEmacs tutorial available from the Help Menu under | |
2024 @samp{Help->Tutorials}, or by typing @kbd{C-h t}. To check whether | |
2025 it's available in a non-english language, type @kbd{C-u C-h t TAB}, type | |
2026 the first letters of your preferred language, then type @key{RET}. | |
2027 | |
2028 @comment There's an Emacs Lisp tutorial at | |
2029 @comment | |
2030 @comment @example | |
2031 @comment @uref{ftp://prep.ai.mit.edu/pub/gnu/emacs-lisp-intro-1.04.tar.gz}. | |
2032 @comment @end example | |
2033 @comment | |
2034 @comment @email{erik@@petaxp.rug.ac.be, Erik Sundermann} has made a tutorial web | |
2035 @comment page at | |
2036 @comment @iftex | |
2037 @comment @* | |
2038 @comment @end iftex | |
2039 @comment @uref{http://petaxp.rug.ac.be/~erik/xemacs/}. | |
2040 | |
2041 @node Q1.5.5, Q1.5.6, Q1.5.4, Introduction | |
2042 @unnumberedsubsec Q1.5.5: May I see an example of a useful XEmacs Lisp function? | |
2043 | |
2044 The following function does a little bit of everything useful. It does | |
2045 something with the prefix argument, it examines the text around the | |
2046 cursor, and it's interactive so it may be bound to a key. It inserts | |
2047 copies of the current word the cursor is sitting on at the cursor. If | |
2048 you give it a prefix argument: @kbd{C-u 3 M-x double-word} then it will | |
2049 insert 3 copies. | |
2050 | |
2051 @lisp | |
2052 (defun double-word (count) | |
2053 "Insert a copy of the current word underneath the cursor" | |
2054 (interactive "*p") | |
2055 (let (here there string) | |
2056 (save-excursion | |
2057 (forward-word -1) | |
2058 (setq here (point)) | |
2059 (forward-word 1) | |
2060 (setq there (point)) | |
2061 (setq string (buffer-substring here there))) | |
2062 (while (>= count 1) | |
2063 (insert string) | |
2064 (decf count)))) | |
2065 @end lisp | |
2066 | |
2067 The best way to see what is going on here is to let XEmacs tell you. | |
2068 Put the code into an XEmacs buffer, and do a @kbd{C-h f} with the cursor | |
2069 sitting just to the right of the function you want explained. Eg. move | |
2070 the cursor to the SPACE between @code{interactive} and @samp{"*p"} and | |
2071 hit @kbd{C-h f} to see what the function @code{interactive} does. Doing | |
2072 this will tell you that the @code{*} requires a writable buffer, and | |
2073 @code{p} converts the prefix argument to a number, and | |
2074 @code{interactive} allows you to execute the command with @kbd{M-x}. | |
2075 | |
2076 @node Q1.5.6, Q1.5.7, Q1.5.5, Introduction | |
2077 @unnumberedsubsec Q1.5.6: And how do I bind it to a key? | |
2078 | |
2079 To bind to a key do: | |
2080 | |
2081 @lisp | |
2082 (global-set-key "\C-cd" 'double-word) | |
2083 @end lisp | |
2084 | |
2085 Or interactively, @kbd{M-x global-set-key} and follow the prompts. | |
2086 | |
2087 @node Q1.5.7, Q1.5.8, Q1.5.6, Introduction | |
2088 @unnumberedsubsec Q1.5.7: What's the difference between a macro and a function? | |
2089 | |
2090 Quoting from the Lisp Reference (a.k.a @dfn{Lispref}) Manual: | |
2091 | |
2092 @dfn{Macros} enable you to define new control constructs and other | |
2093 language features. A macro is defined much like a function, but instead | |
2094 of telling how to compute a value, it tells how to compute another Lisp | |
2095 expression which will in turn compute the value. We call this | |
2096 expression the @dfn{expansion} of the macro. | |
2097 | |
2098 Macros can do this because they operate on the unevaluated expressions | |
2099 for the arguments, not on the argument values as functions do. They can | |
2100 therefore construct an expansion containing these argument expressions | |
2101 or parts of them. | |
2102 | |
2103 Do not confuse the two terms with @dfn{keyboard macros}, which are | |
2104 another matter, entirely. A keyboard macro is a key bound to several | |
2105 other keys. Refer to manual for details. | |
2106 | |
2107 @node Q1.5.8, , Q1.5.7, Introduction | |
2108 @unnumberedsubsec Q1.5.8: What is @code{Custom}? | |
2109 | |
2110 @code{Custom} is a system for customizing XEmacs options. | |
2111 | |
2112 You can access @code{Advanced (Customize)} from the @code{Options} menu | |
2113 or invoking one of customize commands by typing eg. | |
2114 @kbd{M-x customize}, @kbd{M-x customize-face}, | |
2115 @kbd{M-x customize-variable} or @kbd{M-x customize-apropos}. | |
2116 | |
2117 There is also new @samp{browser} mode for Customize. | |
2118 Try it out with @kbd{M-x customize-browse} | |
2119 | 2835 |
2120 @node Installation, Editing, Introduction, Top | 2836 @node Installation, Editing, Introduction, Top |
2121 @unnumbered 2 Installation and Troubleshooting | 2837 @unnumbered 2 Installation and Troubleshooting |
2122 | 2838 |
2123 This is part 2 of the XEmacs Frequently Asked Questions list. This | 2839 This is part 2 of the XEmacs Frequently Asked Questions list. This |
2440 port is the most reliable version and provides the best graphical | 3156 port is the most reliable version and provides the best graphical |
2441 support. Almost all development is geared towards this version, and | 3157 support. Almost all development is geared towards this version, and |
2442 there is little reason not to use it. | 3158 there is little reason not to use it. |
2443 | 3159 |
2444 The second way to build is the Cygwin port. It takes advantage of | 3160 The second way to build is the Cygwin port. It takes advantage of |
2445 Cygnus emulation library under Win32. @xref{Q1.1.4, What are Cygwin | 3161 Cygnus emulation library under Win32. @xref{Q1.2.5, What are Cygwin |
2446 and MinGW, and do I need them to run XEmacs?}, for more information. | 3162 and MinGW, and do I need them to run XEmacs?}, for more information. |
2447 | 3163 |
2448 A third way is the MinGW port. It uses the Cygwin environment to | 3164 A third way is the MinGW port. It uses the Cygwin environment to |
2449 build but does not require it at runtime. @xref{Q1.1.4, What are | 3165 build but does not require it at runtime. @xref{Q1.2.5, What are |
2450 Cygwin and MinGW, and do I need them to run XEmacs?}, for more | 3166 Cygwin and MinGW, and do I need them to run XEmacs?}, for more |
2451 information. | 3167 information. |
2452 | 3168 |
2453 Finally, you might also be able to build the non-Cygwin, non-MinGW "X" | 3169 Finally, you might also be able to build the non-Cygwin, non-MinGW "X" |
2454 port. This was actually the first version of XEmacs that ran under MS | 3170 port. This was actually the first version of XEmacs that ran under MS |
2463 | 3179 |
2464 You need Visual C++ 4.2, 5.0, or 6.0 for the native version. (We have | 3180 You need Visual C++ 4.2, 5.0, or 6.0 for the native version. (We have |
2465 some beta testers currently trying to compile with VC.NET, aka version | 3181 some beta testers currently trying to compile with VC.NET, aka version |
2466 7.0, but we can't yet report complete success.) For the Cygwin and | 3182 7.0, but we can't yet report complete success.) For the Cygwin and |
2467 MinGW versions, you need the Cygwin environment, which comes with GCC, | 3183 MinGW versions, you need the Cygwin environment, which comes with GCC, |
2468 the compiler used for those versions. @xref{Q1.1.4, What are Cygwin | 3184 the compiler used for those versions. @xref{Q1.2.5, What are Cygwin |
2469 and MinGW, and do I need them to run XEmacs?}, for more information on | 3185 and MinGW, and do I need them to run XEmacs?}, for more information on |
2470 Cygwin and MinGW. | 3186 Cygwin and MinGW. |
2471 | 3187 |
2472 @node Q2.2.3, Q2.2.4, Q2.2.2, Installation | 3188 @node Q2.2.3, Q2.2.4, Q2.2.2, Installation |
2473 @unnumberedsubsec Q2.2.3: How do I compile the native port? | 3189 @unnumberedsubsec Q2.2.3: How do I compile the native port? |
3193 21.1.10 includes a fix for this that makes more intelligent guesses | 3909 21.1.10 includes a fix for this that makes more intelligent guesses |
3194 about which memory addresses will be free, and this should cure the | 3910 about which memory addresses will be free, and this should cure the |
3195 problem for most people. 21.4 implements "portable dumping", which | 3911 problem for most people. 21.4 implements "portable dumping", which |
3196 eliminates the problem altogether. We recommend you use the 21.4 | 3912 eliminates the problem altogether. We recommend you use the 21.4 |
3197 binaries, but you can use the 21.1 binaries if you are very paranoid | 3913 binaries, but you can use the 21.1 binaries if you are very paranoid |
3198 about stability. @xref{Q1.0.4, Are binaries available?}. | 3914 about stability. @xref{Q1.1.2, Are binaries available?}. |
3199 | 3915 |
3200 @node Q2.4.3, Q2.4.4, Q2.4.2, Installation | 3916 @node Q2.4.3, Q2.4.4, Q2.4.2, Installation |
3201 @unnumberedsubsec Q2.4.3: XEmacs won't start without network. | 3917 @unnumberedsubsec Q2.4.3: XEmacs won't start without network. |
3202 | 3918 |
3203 If XEmacs starts when you're on the network, but fails when you're not | 3919 If XEmacs starts when you're on the network, but fails when you're not |
5955 | 6671 |
5956 This is part 7 of the XEmacs Frequently Asked Questions list. This | 6672 This is part 7 of the XEmacs Frequently Asked Questions list. This |
5957 section is devoted to advanced customization using XEmacs Lisp. | 6673 section is devoted to advanced customization using XEmacs Lisp. |
5958 | 6674 |
5959 @menu | 6675 @menu |
5960 7.0: Online Help | 6676 7.0: Emacs Lisp and @file{init.el} |
5961 * Q7.0.1:: How can I get two instances of info? | 6677 * Q7.0.1:: What version of Emacs am I running? |
5962 * Q7.0.2:: How do I add new Info directories? | 6678 * Q7.0.2:: How can I evaluate Emacs-Lisp expressions? |
5963 | 6679 * Q7.0.3:: @code{(setq tab-width 6)} behaves oddly. |
5964 7.1: Emacs Lisp and @file{init.el} | 6680 * Q7.0.4:: How can I add directories to the @code{load-path}? |
5965 * Q7.1.1:: What version of Emacs am I running? | 6681 * Q7.0.5:: How to check if a lisp function is defined? |
5966 * Q7.1.2:: How can I evaluate Emacs-Lisp expressions? | 6682 * Q7.0.6:: Can I force the output of @code{(face-list)} to a buffer? |
5967 * Q7.1.3:: @code{(setq tab-width 6)} behaves oddly. | 6683 |
5968 * Q7.1.4:: How can I add directories to the @code{load-path}? | 6684 7.1: Emacs Lisp Programming Techniques |
5969 * Q7.1.5:: How to check if a lisp function is defined? | 6685 * Q7.1.1:: What is the difference in key sequences between XEmacs and GNU Emacs? |
5970 * Q7.1.6:: Can I force the output of @code{(face-list)} to a buffer? | 6686 * Q7.1.2:: Can I generate "fake" keyboard events? |
5971 | 6687 * Q7.1.3:: Could you explain @code{read-kbd-macro} in more detail? |
5972 7.2: Emacs Lisp Programming Techniques | 6688 * Q7.1.4:: What is the performance hit of @code{let}? |
5973 * Q7.2.1:: What is the difference in key sequences between XEmacs and GNU Emacs? | 6689 * Q7.1.5:: What is the recommended use of @code{setq}? |
5974 * Q7.2.2:: Can I generate "fake" keyboard events? | 6690 * Q7.1.6:: What is the typical misuse of @code{setq}? |
5975 * Q7.2.3:: Could you explain @code{read-kbd-macro} in more detail? | 6691 * Q7.1.7:: I like the @code{do} form of cl, does it slow things down? |
5976 * Q7.2.4:: What is the performance hit of @code{let}? | 6692 * Q7.1.8:: I like recursion, does it slow things down? |
5977 * Q7.2.5:: What is the recommended use of @code{setq}? | 6693 * Q7.1.9:: How do I put a glyph as annotation in a buffer? |
5978 * Q7.2.6:: What is the typical misuse of @code{setq}? | 6694 * Q7.1.10:: @code{map-extents} won't traverse all of my extents! |
5979 * Q7.2.7:: I like the @code{do} form of cl, does it slow things down? | 6695 * Q7.1.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time? |
5980 * Q7.2.8:: I like recursion, does it slow things down? | 6696 |
5981 * Q7.2.9:: How do I put a glyph as annotation in a buffer? | 6697 7.2: Mathematics |
5982 * Q7.2.10:: @code{map-extents} won't traverse all of my extents! | 6698 * Q7.2.1:: What are bignums, ratios, and bigfloats in Lisp? |
5983 * Q7.2.11:: My elisp program is horribly slow. Is there an easy way to find out where it spends time? | 6699 * Q7.2.2:: XEmacs segfaults when I use very big numbers! |
5984 | 6700 * Q7.2.3:: Bignums are really slow! |
5985 7.3: Mathematics | 6701 * Q7.2.4:: Equal bignums don't compare as equal! What gives? |
5986 * Q7.3.1:: What are bignums, ratios, and bigfloats in Lisp? | |
5987 * Q7.3.2:: XEmacs segfaults when I use very big numbers! | |
5988 * Q7.3.3:: Bignums are really slow! | |
5989 * Q7.3.4:: Equal bignums don't compare as equal! What gives? | |
5990 @end menu | 6702 @end menu |
5991 | 6703 |
5992 @unnumberedsec 7.0: Online Help | 6704 @unnumberedsec 7.0: Emacs Lisp and @file{init.el} |
5993 | 6705 |
5994 @node Q7.0.1, Q7.0.2, Advanced, Advanced | 6706 @node Q7.0.1, Q7.0.2, Advanced, Advanced |
5995 @unnumberedsubsec Q7.0.1: How can I get two instances of info? | 6707 @unnumberedsubsec Q7.0.1: What version of Emacs am I running? |
5996 | |
5997 Before 21.4, you can't. The @code{info} package does not provide for | |
5998 multiple info buffers. In 21.4, this should be fixed. #### how? | |
5999 | |
6000 @node Q7.0.2, Q7.1.1, Q7.0.1, Advanced | |
6001 @unnumberedsubsec Q7.0.2: How do I add new Info directories? | |
6002 | |
6003 You use something like: | |
6004 | |
6005 @lisp | |
6006 (setq Info-directory-list (cons | |
6007 (expand-file-name "~/info") | |
6008 Info-default-directory-list)) | |
6009 @end lisp | |
6010 | |
6011 @email{davidm@@prism.kla.com, David Masterson} writes: | |
6012 | |
6013 @quotation | |
6014 Emacs Info and XEmacs Info do many things differently. If you're trying to | |
6015 support a number of versions of Emacs, here are some notes to remember: | |
6016 | |
6017 @enumerate | |
6018 @item | |
6019 Emacs Info scans @code{Info-directory-list} from right-to-left while | |
6020 XEmacs Info reads it from left-to-right, so append to the @emph{correct} | |
6021 end of the list. | |
6022 | |
6023 @item | |
6024 Use @code{Info-default-directory-list} to initialize | |
6025 @code{Info-directory-list} @emph{if} it is available at startup, but not | |
6026 all Emacsen define it. | |
6027 | |
6028 @item | |
6029 Emacs Info looks for a standard @file{dir} file in each of the | |
6030 directories scanned from #1 and magically concatenates them together. | |
6031 | |
6032 @item | |
6033 XEmacs Info looks for a @file{localdir} file (which consists of just the | |
6034 menu entries from a @file{dir} file) in each of the directories scanned | |
6035 from #1 (except the first), does a simple concatenation of them, and | |
6036 magically attaches the resulting list to the end of the menu in the | |
6037 @file{dir} file in the first directory. | |
6038 @end enumerate | |
6039 | |
6040 Another alternative is to convert the documentation to HTML with | |
6041 texi2html and read it from a web browser like Lynx or W3. | |
6042 @end quotation | |
6043 | |
6044 @unnumberedsec 7.1: Emacs Lisp and @file{init.el} | |
6045 | |
6046 @node Q7.1.1, Q7.1.2, Q7.0.2, Advanced | |
6047 @unnumberedsubsec Q7.1.1: What version of Emacs am I running? | |
6048 | 6708 |
6049 How can @file{init.el} determine which of the family of | 6709 How can @file{init.el} determine which of the family of |
6050 Emacsen I am using? | 6710 Emacsen I am using? |
6051 | 6711 |
6052 To determine if you are currently running GNU Emacs 18, GNU Emacs 19, | 6712 To determine if you are currently running GNU Emacs 18, GNU Emacs 19, |
6059 | 6719 |
6060 @lisp | 6720 @lisp |
6061 (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) | 6721 (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) |
6062 @end lisp | 6722 @end lisp |
6063 | 6723 |
6064 @node Q7.1.2, Q7.1.3, Q7.1.1, Advanced | 6724 @node Q7.0.2, Q7.0.3, Q7.0.1, Advanced |
6065 @unnumberedsubsec Q7.1.2: How can I evaluate Emacs-Lisp expressions? | 6725 @unnumberedsubsec Q7.0.2: How can I evaluate Emacs-Lisp expressions? |
6066 | 6726 |
6067 I know I can evaluate Elisp expressions from @code{*scratch*} buffer | 6727 I know I can evaluate Elisp expressions from @code{*scratch*} buffer |
6068 with @kbd{C-j} after the expression. How do I do it from another | 6728 with @kbd{C-j} after the expression. How do I do it from another |
6069 buffer? | 6729 buffer? |
6070 | 6730 |
6071 Press @kbd{M-:} (the default binding of @code{eval-expression}), and | 6731 Press @kbd{M-:} (the default binding of @code{eval-expression}), and |
6072 enter the expression to the minibuffer. | 6732 enter the expression to the minibuffer. |
6073 | 6733 |
6074 @node Q7.1.3, Q7.1.4, Q7.1.2, Advanced | 6734 @node Q7.0.3, Q7.0.4, Q7.0.2, Advanced |
6075 @unnumberedsubsec Q7.1.3: @code{(setq tab-width 6)} behaves oddly. | 6735 @unnumberedsubsec Q7.0.3: @code{(setq tab-width 6)} behaves oddly. |
6076 | 6736 |
6077 If you put @code{(setq tab-width 6)} in your | 6737 If you put @code{(setq tab-width 6)} in your |
6078 @file{init.el} file it does not work! Is there a reason | 6738 @file{init.el} file it does not work! Is there a reason |
6079 for this? If you do it at the EVAL prompt it works fine!! How strange. | 6739 for this? If you do it at the EVAL prompt it works fine!! How strange. |
6080 | 6740 |
6081 Use @code{setq-default} instead, since @code{tab-width} is | 6741 Use @code{setq-default} instead, since @code{tab-width} is |
6082 all-buffer-local. | 6742 all-buffer-local. |
6083 | 6743 |
6084 @node Q7.1.4, Q7.1.5, Q7.1.3, Advanced | 6744 @node Q7.0.4, Q7.0.5, Q7.0.3, Advanced |
6085 @unnumberedsubsec Q7.1.4: How can I add directories to the @code{load-path}? | 6745 @unnumberedsubsec Q7.0.4: How can I add directories to the @code{load-path}? |
6086 | 6746 |
6087 Here are two ways to do that, one that puts your directories at the | 6747 Here are two ways to do that, one that puts your directories at the |
6088 front of the load-path, the other at the end: | 6748 front of the load-path, the other at the end: |
6089 | 6749 |
6090 @lisp | 6750 @lisp |
6107 @lisp | 6767 @lisp |
6108 (push (expand-file-name "~keithh/.emacsdir") load-path) | 6768 (push (expand-file-name "~keithh/.emacsdir") load-path) |
6109 @end lisp | 6769 @end lisp |
6110 @end quotation | 6770 @end quotation |
6111 | 6771 |
6112 @node Q7.1.5, Q7.1.6, Q7.1.4, Advanced | 6772 @node Q7.0.5, Q7.0.6, Q7.0.4, Advanced |
6113 @unnumberedsubsec Q7.1.5: How to check if a lisp function is defined? | 6773 @unnumberedsubsec Q7.0.5: How to check if a lisp function is defined? |
6114 | 6774 |
6115 Use the following elisp: | 6775 Use the following elisp: |
6116 | 6776 |
6117 @lisp | 6777 @lisp |
6118 (fboundp 'foo) | 6778 (fboundp 'foo) |
6132 | 6792 |
6133 There is an incredible amount of broken code out there which could work | 6793 There is an incredible amount of broken code out there which could work |
6134 much better more often in more places if it did the above instead of | 6794 much better more often in more places if it did the above instead of |
6135 trying to divine its environment from the value of one variable. | 6795 trying to divine its environment from the value of one variable. |
6136 | 6796 |
6137 @node Q7.1.6, Q7.2.1, Q7.1.5, Advanced | 6797 @node Q7.0.6, Q7.1.1, Q7.0.5, Advanced |
6138 @unnumberedsubsec Q7.1.6: Can I force the output of @code{(face-list)} to a buffer? | 6798 @unnumberedsubsec Q7.0.6: Can I force the output of @code{(face-list)} to a buffer? |
6139 | 6799 |
6140 It would be good having it in a buffer, as the output of | 6800 It would be good having it in a buffer, as the output of |
6141 @code{(face-list)} is too wide to fit to a minibuffer. | 6801 @code{(face-list)} is too wide to fit to a minibuffer. |
6142 | 6802 |
6143 Evaluate the expression in the @samp{*scratch*} buffer with point after | 6803 Evaluate the expression in the @samp{*scratch*} buffer with point after |
6145 | 6805 |
6146 If the minibuffer smallness is the only problem you encounter, you can | 6806 If the minibuffer smallness is the only problem you encounter, you can |
6147 simply press @kbd{C-h l} to get the former minibuffer contents in a | 6807 simply press @kbd{C-h l} to get the former minibuffer contents in a |
6148 buffer. | 6808 buffer. |
6149 | 6809 |
6150 @unnumberedsec 7.2: Emacs Lisp Programming Techniques | 6810 @unnumberedsec 7.1: Emacs Lisp Programming Techniques |
6151 | 6811 |
6152 @node Q7.2.1, Q7.2.2, Q7.1.6, Advanced | 6812 @node Q7.1.1, Q7.1.2, Q7.0.6, Advanced |
6153 @unnumberedsubsec Q7.2.1: What is the difference in key sequences between XEmacs and GNU Emacs? | 6813 @unnumberedsubsec Q7.1.1: What is the difference in key sequences between XEmacs and GNU Emacs? |
6154 | 6814 |
6155 @email{clerik@@naggum.no, Erik Naggum} writes; | 6815 @email{clerik@@naggum.no, Erik Naggum} writes; |
6156 | 6816 |
6157 @quotation | 6817 @quotation |
6158 Emacs has a legacy of keyboards that produced characters with modifier | 6818 Emacs has a legacy of keyboards that produced characters with modifier |
6180 Another (even safer) way to be sure of the key-sequences is to use the | 6840 Another (even safer) way to be sure of the key-sequences is to use the |
6181 @code{read-kbd-macro} function, which takes a string like @samp{C-c | 6841 @code{read-kbd-macro} function, which takes a string like @samp{C-c |
6182 <up>}, and converts it to the internal key representation of the Emacs | 6842 <up>}, and converts it to the internal key representation of the Emacs |
6183 you use. The function is available both on XEmacs and GNU Emacs. | 6843 you use. The function is available both on XEmacs and GNU Emacs. |
6184 | 6844 |
6185 @node Q7.2.2, Q7.2.3, Q7.2.1, Advanced | 6845 @node Q7.1.2, Q7.1.3, Q7.1.1, Advanced |
6186 @unnumberedsubsec Q7.2.2: Can I generate "fake" keyboard events? | 6846 @unnumberedsubsec Q7.1.2: Can I generate "fake" keyboard events? |
6187 | 6847 |
6188 I wonder if there is an interactive function that can generate | 6848 I wonder if there is an interactive function that can generate |
6189 @dfn{fake} keyboard events. This way, I could simply map them inside | 6849 @dfn{fake} keyboard events. This way, I could simply map them inside |
6190 XEmacs. | 6850 XEmacs. |
6191 | 6851 |
6201 (lambda () (interactive) (cg--generate-char-event 127))) | 6861 (lambda () (interactive) (cg--generate-char-event 127))) |
6202 (global-set-key [unknown_keysym_0x4] | 6862 (global-set-key [unknown_keysym_0x4] |
6203 (lambda () (interactive) (cg--generate-char-event 4))) | 6863 (lambda () (interactive) (cg--generate-char-event 4))) |
6204 @end lisp | 6864 @end lisp |
6205 | 6865 |
6206 @node Q7.2.3, Q7.2.4, Q7.2.2, Advanced | 6866 @node Q7.1.3, Q7.1.4, Q7.1.2, Advanced |
6207 @unnumberedsubsec Q7.2.3: Could you explain @code{read-kbd-macro} in more detail? | 6867 @unnumberedsubsec Q7.1.3: Could you explain @code{read-kbd-macro} in more detail? |
6208 | 6868 |
6209 The @code{read-kbd-macro} function returns the internal Emacs | 6869 The @code{read-kbd-macro} function returns the internal Emacs |
6210 representation of a human-readable string (which is its argument). | 6870 representation of a human-readable string (which is its argument). |
6211 Thus: | 6871 Thus: |
6212 | 6872 |
6292 @code{\123} is a single key written in octal, and @code{< right >} is | 6952 @code{\123} is a single key written in octal, and @code{< right >} is |
6293 seven keys but @code{<right>} is a single function key. When in doubt, | 6953 seven keys but @code{<right>} is a single function key. When in doubt, |
6294 use whitespace. | 6954 use whitespace. |
6295 @end quotation | 6955 @end quotation |
6296 | 6956 |
6297 @node Q7.2.4, Q7.2.5, Q7.2.3, Advanced | 6957 @node Q7.1.4, Q7.1.5, Q7.1.3, Advanced |
6298 @unnumberedsubsec Q7.2.4: What is the performance hit of @code{let}? | 6958 @unnumberedsubsec Q7.1.4: What is the performance hit of @code{let}? |
6299 | 6959 |
6300 In most cases, not noticeable. Besides, there's no avoiding | 6960 In most cases, not noticeable. Besides, there's no avoiding |
6301 @code{let}---you have to bind your local variables, after all. Some | 6961 @code{let}---you have to bind your local variables, after all. Some |
6302 pose a question whether to nest @code{let}s, or use one @code{let} per | 6962 pose a question whether to nest @code{let}s, or use one @code{let} per |
6303 function. I think because of clarity and maintenance (and possible | 6963 function. I think because of clarity and maintenance (and possible |
6304 future implementation), @code{let}-s should be used (nested) in a way to | 6964 future implementation), @code{let}-s should be used (nested) in a way to |
6305 provide the clearest code. | 6965 provide the clearest code. |
6306 | 6966 |
6307 @node Q7.2.5, Q7.2.6, Q7.2.4, Advanced | 6967 @node Q7.1.5, Q7.1.6, Q7.1.4, Advanced |
6308 @unnumberedsubsec Q7.2.5: What is the recommended use of @code{setq}? | 6968 @unnumberedsubsec Q7.1.5: What is the recommended use of @code{setq}? |
6309 | 6969 |
6310 @itemize @bullet | 6970 @itemize @bullet |
6311 @item Global variables | 6971 @item Global variables |
6312 | 6972 |
6313 You will typically @code{defvar} your global variable to a default | 6973 You will typically @code{defvar} your global variable to a default |
6365 (setq foo-processed-inbox | 7025 (setq foo-processed-inbox |
6366 (let .....)) | 7026 (let .....)) |
6367 @end lisp | 7027 @end lisp |
6368 @end itemize | 7028 @end itemize |
6369 | 7029 |
6370 @node Q7.2.6, Q7.2.7, Q7.2.5, Advanced | 7030 @node Q7.1.6, Q7.1.7, Q7.1.5, Advanced |
6371 @unnumberedsubsec Q7.2.6: What is the typical misuse of @code{setq}? | 7031 @unnumberedsubsec Q7.1.6: What is the typical misuse of @code{setq}? |
6372 | 7032 |
6373 A typical misuse is probably @code{setq}ing a variable that was meant to | 7033 A typical misuse is probably @code{setq}ing a variable that was meant to |
6374 be local. Such a variable will remain bound forever, never to be | 7034 be local. Such a variable will remain bound forever, never to be |
6375 garbage-collected. For example, the code doing: | 7035 garbage-collected. For example, the code doing: |
6376 | 7036 |
6407 | 7067 |
6408 While compiling toplevel forms: | 7068 While compiling toplevel forms: |
6409 ** assignment to free variable flurghoze | 7069 ** assignment to free variable flurghoze |
6410 @end lisp | 7070 @end lisp |
6411 | 7071 |
6412 @node Q7.2.7, Q7.2.8, Q7.2.6, Advanced | 7072 @node Q7.1.7, Q7.1.8, Q7.1.6, Advanced |
6413 @unnumberedsubsec Q7.2.7: I like the @code{do} form of cl, does it slow things down? | 7073 @unnumberedsubsec Q7.1.7: I like the @code{do} form of cl, does it slow things down? |
6414 | 7074 |
6415 It shouldn't. Here is what Dave Gillespie has to say about cl.el | 7075 It shouldn't. Here is what Dave Gillespie has to say about cl.el |
6416 performance: | 7076 performance: |
6417 | 7077 |
6418 @quotation | 7078 @quotation |
6449 | 7109 |
6450 You can find out how a macro expands by using the @code{cl-prettyexpand} | 7110 You can find out how a macro expands by using the @code{cl-prettyexpand} |
6451 function. | 7111 function. |
6452 @end quotation | 7112 @end quotation |
6453 | 7113 |
6454 @node Q7.2.8, Q7.2.9, Q7.2.7, Advanced | 7114 @node Q7.1.8, Q7.1.9, Q7.1.7, Advanced |
6455 @unnumberedsubsec Q7.2.8: I like recursion, does it slow things down? | 7115 @unnumberedsubsec Q7.1.8: I like recursion, does it slow things down? |
6456 | 7116 |
6457 Yes. The Emacs byte-compiler cannot do much to optimize recursion. But | 7117 Yes. The Emacs byte-compiler cannot do much to optimize recursion. But |
6458 think well whether this is a real concern in Emacs. Much of the Emacs | 7118 think well whether this is a real concern in Emacs. Much of the Emacs |
6459 slowness comes from internal mechanisms such as redisplay, or from the | 7119 slowness comes from internal mechanisms such as redisplay, or from the |
6460 fact that it is an interpreter. | 7120 fact that it is an interpreter. |
6461 | 7121 |
6462 Please try not to make your code much uglier to gain a very small speed | 7122 Please try not to make your code much uglier to gain a very small speed |
6463 gain. It's not usually worth it. | 7123 gain. It's not usually worth it. |
6464 | 7124 |
6465 @node Q7.2.9, Q7.2.10, Q7.2.8, Advanced | 7125 @node Q7.1.9, Q7.1.10, Q7.1.8, Advanced |
6466 @unnumberedsubsec Q7.2.9: How do I put a glyph as annotation in a buffer? | 7126 @unnumberedsubsec Q7.1.9: How do I put a glyph as annotation in a buffer? |
6467 | 7127 |
6468 Here is a solution that will insert the glyph annotation at the | 7128 Here is a solution that will insert the glyph annotation at the |
6469 beginning of buffer: | 7129 beginning of buffer: |
6470 | 7130 |
6471 @lisp | 7131 @lisp |
6487 | 7147 |
6488 You can turn this to a function (that optionally prompts you for a file | 7148 You can turn this to a function (that optionally prompts you for a file |
6489 name), and inserts the glyph at @code{(point)} instead of | 7149 name), and inserts the glyph at @code{(point)} instead of |
6490 @code{(point-min)}. | 7150 @code{(point-min)}. |
6491 | 7151 |
6492 @node Q7.2.10, Q7.2.11, Q7.2.9, Advanced | 7152 @node Q7.1.10, Q7.1.11, Q7.1.9, Advanced |
6493 @unnumberedsubsec Q7.2.10: @code{map-extents} won't traverse all of my extents! | 7153 @unnumberedsubsec Q7.1.10: @code{map-extents} won't traverse all of my extents! |
6494 | 7154 |
6495 I tried to use @code{map-extents} to do an operation on all the extents | 7155 I tried to use @code{map-extents} to do an operation on all the extents |
6496 in a region. However, it seems to quit after processing a random number | 7156 in a region. However, it seems to quit after processing a random number |
6497 of extents. Is it buggy? | 7157 of extents. Is it buggy? |
6498 | 7158 |
6518 (delete-extent ext) | 7178 (delete-extent ext) |
6519 (message "fubar!") | 7179 (message "fubar!") |
6520 nil)) | 7180 nil)) |
6521 @end lisp | 7181 @end lisp |
6522 | 7182 |
6523 @node Q7.2.11, Q7.3.1, Q7.2.10, Advanced | 7183 @node Q7.1.11, Q7.2.1, Q7.1.10, Advanced |
6524 @unnumberedsubsec Q7.2.11: My elisp program is horribly slow. Is there an easy way to find out where it spends time? | 7184 @unnumberedsubsec Q7.1.11: My elisp program is horribly slow. Is there an easy way to find out where it spends time? |
6525 @c New | 7185 @c New |
6526 | 7186 |
6527 @email{hniksic@@xemacs.org, Hrvoje Niksic} writes: | 7187 @email{hniksic@@xemacs.org, Hrvoje Niksic} writes: |
6528 @quotation | 7188 @quotation |
6529 Under XEmacs 20.4 and later you can use @kbd{M-x profile-key-sequence}, | 7189 Under XEmacs 20.4 and later you can use @kbd{M-x profile-key-sequence}, |
6530 press a key (say @key{RET} in the Gnus Group buffer), and get the | 7190 press a key (say @key{RET} in the Gnus Group buffer), and get the |
6531 results using @kbd{M-x profile-results}. It should give you an idea of | 7191 results using @kbd{M-x profile-results}. It should give you an idea of |
6532 where the time is being spent. | 7192 where the time is being spent. |
6533 @end quotation | 7193 @end quotation |
6534 | 7194 |
6535 @unnumberedsec 7.3: Mathematics | 7195 @unnumberedsec 7.2: Mathematics |
6536 | 7196 |
6537 @node Q7.3.1, Q7.3.2, Q7.2.11, Advanced | 7197 @node Q7.2.1, Q7.2.2, Q7.1.11, Advanced |
6538 @unnumberedsubsec Q7.3.1: What are bignums, ratios, and bigfloats in Lisp? | 7198 @unnumberedsubsec Q7.2.1: What are bignums, ratios, and bigfloats in Lisp? |
6539 | 7199 |
6540 Thanks to @email{james@@xemacs.org, Jerry James}, XEmacs 21.5.18 and | 7200 Thanks to @email{james@@xemacs.org, Jerry James}, XEmacs 21.5.18 and |
6541 later can use the capabilities of multiple-precision libraries that may | 7201 later can use the capabilities of multiple-precision libraries that may |
6542 be available for your platform. The GNU Multiple Precision (GMP) and | 7202 be available for your platform. The GNU Multiple Precision (GMP) and |
6543 BSD Multiple Precision (MP) libraries are partially supported. GMP | 7203 BSD Multiple Precision (MP) libraries are partially supported. GMP |
6561 User-visible changes in behavior include (in probable order of annoyance) | 7221 User-visible changes in behavior include (in probable order of annoyance) |
6562 | 7222 |
6563 @itemize | 7223 @itemize |
6564 @item | 7224 @item |
6565 Arithmetic can cause a segfault, depending on your MP library | 7225 Arithmetic can cause a segfault, depending on your MP library |
6566 @ref{Q7.3.2, XEmacs segfaults when I use very big numbers!}. | 7226 @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}. |
6567 | 7227 |
6568 @item | 7228 @item |
6569 Terminology is not Common-Lisp-conforming. For example, ``integer'' for | 7229 Terminology is not Common-Lisp-conforming. For example, ``integer'' for |
6570 Emacs Lisp means what Common Lisp calls ``fixnum''. This issue is being | 7230 Emacs Lisp means what Common Lisp calls ``fixnum''. This issue is being |
6571 investigated, but the use of ``integer'' for fixnum is pervasive and may | 7231 investigated, but the use of ``integer'' for fixnum is pervasive and may |
6587 disabled at runtime. New functions have been added which produce | 7247 disabled at runtime. New functions have been added which produce |
6588 ratios, so there should be few surprises with type conflicts, but they | 7248 ratios, so there should be few surprises with type conflicts, but they |
6589 can't be ruled out. ``Arbitrary'' precision means precisely what it | 7249 can't be ruled out. ``Arbitrary'' precision means precisely what it |
6590 says. If you work with extremely large numbers, your machine may | 7250 says. If you work with extremely large numbers, your machine may |
6591 arbitrarily decide to hand you an unpleasant surprise rather than a | 7251 arbitrarily decide to hand you an unpleasant surprise rather than a |
6592 bignum @ref{Q7.3.2, XEmacs segfaults when I use very big numbers!}. | 7252 bignum @ref{Q7.2.2, XEmacs segfaults when I use very big numbers!}. |
6593 | 7253 |
6594 To configure with GNU MP, add | 7254 To configure with GNU MP, add |
6595 @samp{--use-number-lib=gmp} | 7255 @samp{--use-number-lib=gmp} |
6596 to your invocation of @file{configure}. For BSD MP, use | 7256 to your invocation of @file{configure}. For BSD MP, use |
6597 @samp{--use-number-lib=mp}. | 7257 @samp{--use-number-lib=mp}. |
6602 @file{number-mp.h}. Jerry has promised to write internals documentation | 7262 @file{number-mp.h}. Jerry has promised to write internals documentation |
6603 eventually, but if your skills run more to analysis and documentation | 7263 eventually, but if your skills run more to analysis and documentation |
6604 than to writing new code, feel free to fill in the gap! | 7264 than to writing new code, feel free to fill in the gap! |
6605 | 7265 |
6606 | 7266 |
6607 @node Q7.3.2, Q7.3.3, Q7.3.1, Advanced | 7267 @node Q7.2.2, Q7.2.3, Q7.2.1, Advanced |
6608 @unnumberedsubsec Q7.3.2: XEmacs segfaults when I use very big numbers! | 7268 @unnumberedsubsec Q7.2.2: XEmacs segfaults when I use very big numbers! |
6609 | 7269 |
6610 GMP by default allocates temporaries on the stack. If you run out of | 7270 GMP by default allocates temporaries on the stack. If you run out of |
6611 stack space, you're dead; there is no way that we know of to reliably | 7271 stack space, you're dead; there is no way that we know of to reliably |
6612 detect this condition, because @samp{alloca} is typically implemented to | 7272 detect this condition, because @samp{alloca} is typically implemented to |
6613 be @emph{fast} rather than robust. If you just need a little more | 7273 be @emph{fast} rather than robust. If you just need a little more |
6620 @key{RET}}), which will give us platform information. (We do know that | 7280 @key{RET}}), which will give us platform information. (We do know that |
6621 BSD MP implementations vary across vendors, but how much, we do not know | 7281 BSD MP implementations vary across vendors, but how much, we do not know |
6622 yet.) | 7282 yet.) |
6623 | 7283 |
6624 | 7284 |
6625 @node Q7.3.3, Q7.3.4, Q7.3.2, Advanced | 7285 @node Q7.2.3, Q7.2.4, Q7.2.2, Advanced |
6626 @unnumberedsubsec Q7.3.3: Bignums are really slow! | 7286 @unnumberedsubsec Q7.2.3: Bignums are really slow! |
6627 | 7287 |
6628 Many Linux distributions compile all their packages for the i386, and | 7288 Many Linux distributions compile all their packages for the i386, and |
6629 this is costly. An optimized version can give you two or three orders | 7289 this is costly. An optimized version can give you two or three orders |
6630 of magnitude better performance for a Pentium III or IV. (Yes, really. | 7290 of magnitude better performance for a Pentium III or IV. (Yes, really. |
6631 See @uref{http://www.swox.com/gmp/gmp-speed.html}.) | 7291 See @uref{http://www.swox.com/gmp/gmp-speed.html}.) |
6632 | 7292 |
6633 | 7293 |
6634 @node Q7.3.4, , Q7.3.3, Advanced | 7294 @node Q7.2.4, , Q7.2.3, Advanced |
6635 @unnumberedsubsec Q7.3.4: Equal bignums don't compare as equal! What gives? | 7295 @unnumberedsubsec Q7.2.4: Equal bignums don't compare as equal! What gives? |
6636 | 7296 |
6637 Ah, Grasshopper, I see you are using @code{(eq x y)}. The Bodhisattva | 7297 Ah, Grasshopper, I see you are using @code{(eq x y)}. The Bodhisattva |
6638 CLTL2 warned of the illusion that equal numbers would be @samp{eq}! | 7298 CLTL2 warned of the illusion that equal numbers would be @samp{eq}! |
6639 Meditate on the deeper truths of @samp{eql}, in which numbers of the same | 7299 Meditate on the deeper truths of @samp{eql}, in which numbers of the same |
6640 type which have equal values compare equal, and @samp{=}, which does any | 7300 type which have equal values compare equal, and @samp{=}, which does any |
6652 This is part 8 of the XEmacs Frequently Asked Questions list. This | 7312 This is part 8 of the XEmacs Frequently Asked Questions list. This |
6653 section is devoted to miscellaneous external packages not covered | 7313 section is devoted to miscellaneous external packages not covered |
6654 elsewhere in XEmacs. | 7314 elsewhere in XEmacs. |
6655 | 7315 |
6656 @menu | 7316 @menu |
7317 8.0: TeX | |
6657 * Q8.0.1:: Is there something better than LaTeX mode? | 7318 * Q8.0.1:: Is there something better than LaTeX mode? |
6658 * Q8.0.2:: What is AUCTeX? Where do you get it? | 7319 * Q8.0.2:: What is AUCTeX? Where do you get it? |
6659 * Q8.0.3:: Problems installing AUCTeX. | 7320 * Q8.0.3:: Problems installing AUCTeX. |
6660 * Q8.0.4:: How do I turn off current chapter from AUCTeX modeline? | 7321 * Q8.0.4:: How do I turn off current chapter from AUCTeX modeline? |
6661 | 7322 |
7008 | 7669 |
7009 Information on older versions of XEmacs can be find in @file{ONEWS} in | 7670 Information on older versions of XEmacs can be find in @file{ONEWS} in |
7010 the same directory, or @file{OONEWS} for really old versions. | 7671 the same directory, or @file{OONEWS} for really old versions. |
7011 | 7672 |
7012 @menu | 7673 @menu |
7674 9.0: Changes | |
7013 * Q9.0.1:: What new features will be in XEmacs soon? | 7675 * Q9.0.1:: What new features will be in XEmacs soon? |
7014 * Q9.0.2:: What's new in XEmacs 21.4? | 7676 * Q9.0.2:: What's new in XEmacs 21.4? |
7015 * Q9.0.3:: What's new in XEmacs 21.1? | 7677 * Q9.0.3:: What's new in XEmacs 21.1? |
7016 * Q9.0.4:: What's new in XEmacs 20.4? | 7678 * Q9.0.4:: What's new in XEmacs 20.4? |
7017 * Q9.0.5:: What's new in XEmacs 20.3? | 7679 * Q9.0.5:: What's new in XEmacs 20.3? |
7337 is advice on compatibility of older XEmacsen with new packages and | 7999 is advice on compatibility of older XEmacsen with new packages and |
7338 updated versions of packages, but bug fixes (which will not be applied | 8000 updated versions of packages, but bug fixes (which will not be applied |
7339 to released XEmacsen, but users can apply themselves) are also accepted. | 8001 to released XEmacsen, but users can apply themselves) are also accepted. |
7340 | 8002 |
7341 @menu | 8003 @menu |
8004 10.0: XEmacs 21.1 | |
7342 * Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1. | 8005 * Q10.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1. |
7343 @end menu | 8006 @end menu |
7344 | 8007 |
7345 @unnumberedsec 10.0: XEmacs 21.1 | 8008 @unnumberedsec 10.0: XEmacs 21.1 |
7346 | 8009 |