Mercurial > hg > xemacs-beta
diff man/xemacs-faq.texi @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | ac2d302a0011 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/man/xemacs-faq.texi Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,2366 @@ +\input texinfo.tex @c -*-texinfo-*- +@c %**start of header +@setfilename ../info/xemacs-faq.info +@settitle Frequently asked questions about XEmacs +@setchapternewpage off +@c %**end of header + +@titlepage +@title XEmacs FAQ +@subtitle Frequently asked questions about XEmacs +@subtitle Last Modified: 1995/08/29 +@sp 1 +@author Anthony Rossini <arossini@@biostats.hmc.psu.edu> +@author Ben Wing <wing@@netcom.com> +@author Chuck Thompson <cthomp@@cs.uiuc.edu> +@page +@end titlepage + +@c Some of this stuff needs to go in the HTML version which means it +@c needs to be put outside of the ifinfo statement. + +@ifinfo +@node top, 1. Introductory Questions, (dir), (dir) +@unnumbered XEmacs FAQ + +Version: OUT OF DATE + +Current-Editor: Steven L Baur <steve@@miranova.com> + +Copying Status: Freely Redistributable. I take no liability for the + correctness and safety of any procedures or advice given + here. This FAQ is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. + +WARNING! WARNING! Danger Will Robinson! + +This file was not updated for the 19.14 release and is very out-of-date. +Our apologies. This situation will be corrected for 19.15. Steven Baur +has taken over as the FAQ maintainer and is keeping a very up-to-date +copy on the Web at <http://www.miranova.com/~steve/xemacs-faq.html>. Of +course, it is also available at <http://www.xemacs.org/faq/xemacs-faq.html>. + +Out of date FAQ starts here: + +This is a list of frequently asked questions for XEmacs users and +maintainers. + +You can obtain the latest version of this file by anonymous FTP from +site @file{ftp.cs.uiuc.edu:/pub/xemacs/faq/xemacs-faq.FORMAT} where FORMAT +is text, texinfo (the master copy), postscript, dvi, html, info. Note that +the html version has 2 files. + +Thanks to the many who contributed, especially to JWZ <jwz@@netscape.com> for +starting this whole wonderful mess... Special thanks to Tim Geisler +<tmgeisle@@faui80.informatik.uni-erlangen.de> for the initial texinfo +version and to Giacomo Boffi <sboff@@hp735.stru.polimi.it> for the initial +HTML version. Other contributors (many left out, unfortunately, due to an +old mail-purge) include: +@itemize @bullet +@item +Juergen Nickelsen <nickel@@prz.tu-berlin.de> +@item +Evelyn Ginsparg <ginsparg@@adra.com> +@item +d3h554@@foghorn.pnl.gov +@item +Marty Hall <hall@@aplcenmp.apl.jhu.edu> +@item +Richard Caley <rjc@@cogsci.ed.ac.uk> +@item +fcg@@philabs.Philips.COM +@item +Stig <stig@@hackvan.com> +@item +Arup Mukherjee <arup+@@cmu.edu> +@item +Kevin R. Powell <powell@@csl.ncsa.uiuc.edu> +@item +Eric Eide <eeide@@cs.utah.edu> +@item +William G. Dubuque <wgd@@martigny.ai.mit.edu> +@item +Chris Flatters <cflatter@@nrao.edu> +@item +John A. Turner <turner@@lanl.gov> +@end itemize + +@end ifinfo + +@menu +* top:: XEmacs FAQ +* 1. Introductory Questions::. +* 2. Compiling XEmacs::. +* 3. Problems running XEmacs / weird messages::. +* 4. Customization -- Emacs Lisp and the .emacs file::. +* 5. Customization -- X resources::. +* 6. Changing textual fonts and colors::. +* 7. The modeline::. +* 8. The keyboard::. +* 9. The cursor::. +* 10. The mouse; cutting and pasting::. +* 11. Highlighting::. +* 12. The menubar and toolbar::. +* 13. Scrollbars::. +* 14. Frame Geometry::. +* 15. Window/icon title; window manager problems::. +* 16. Editing source code (C mode; Lisp mode; etc.)::. +* 17. Text mode::. +* 18. Shell mode::. +* 19. Mail; VM; GNUS; BBDB; and related::. +* 20. Printing::. +* 21. Gnuserv::. +* 22. Miscellaneous::. +@end menu + + + +@node 1. Introductory Questions, 2. Compiling XEmacs, top, top +@chapter 1. Introductory Questions + +@menu +* 1.1.:: 1.1. Preface +* 1.2.:: 1.2. What is XEmacs? +* 1.3.:: 1.3. What is the current version of XEmacs? +* 1.4.:: 1.4. Where can I find it? +* 1.5.:: 1.5. Why another version of Emacs? +* 1.6.:: 1.6. What do @kbd{M-x}, GNU, etc. mean? +* 1.7.:: 1.7. Where can I get help for using XEmacs? +* 1.8.:: 1.8. Where is the mailing list archived? +* 1.9.:: 1.9. What is InfoDock, how does it relate to XEmacs, and how can I obtain it? +@end menu + + +@node 1.1. +@section 1.1. Preface + +This is the introduction to a list of frequently asked questions (FAQ's) +about XEmacs with answers. This article contains a listing of the +questions; subsequent articles contain the questions and answers. + +This is not a substitute for general Emacs questions, and actually +includes nothing that might help a novice learn to use Emacs or XEmacs. +For that, check out the regular Emacs lists, the tutorial inside of +XEmacs (look on the Help menu), or the O'Reilly book @cite{Learning GNU +Emacs}. This FAQ focuses on specific issues regarding XEmacs. If you +don't find the answer here, perhaps it really is a more general +question, and check the GNU Emacs FAQ for more information, as well. + +The FAQ list is posted to reduce the noise level in the +@samp{comp.emacs.xemacs} newsgroup which results from the repetition of +frequently asked questions, wrong answers to these questions, +corrections to the wrong answers, corrections to the corrections, +debate, name calling, etc. Also, it serves as a repository of the +canonical ``best'' answers to these questions. However, if you know a +better answer or even a slight change that improves an answer, please +tell me! + +If you know the answer of a question is in the FAQ list, please reply to +the question by e-mail instead of posting. Help reduce noise! + +Please suggest new questions, answers, wording changes, deletions, etc. +The most helpful form for suggestions is a context diff (i.e. the output +of @samp{diff -c}). Include @samp{FAQ} in the subject of messages sent +to us about the FAQ list. + +Please do not send questions to us just because you do not want to +disturb a lot of people and you think we would know the answer. We do +not have time to answer questions individually and keep up with +everything else we have to get done. + +Many thanks need to go to all contributors on the old alt.lucid-emacs.* +and current comp.emacs.xemacs groups. This would never have been +collected without you. + +Any directories given are usually in reference to the base directory +formed by unpacking XEmacs. + + +@node 1.2. +@section 1.2. What is XEmacs? + +An alternative to GNU Emacs, originally based on an early alpha version +of FSF's version 19. XEmacs was known as Lucid Emacs through version +19.10. Almost all features of GNU Emacs are supported in XEmacs (the +ones that aren't supported are generally implemented in a better way in +XEmacs). The maintainers of XEmacs actively track changes to GNU Emacs +while also working to add new features never before seen in Emacs. + + +@node 1.3. +@section 1.3. What is the current version of XEmacs? + +The current version is 19.13, released on September 1, 1995. + + +@node 1.4. +@section 1.4. Where can I find it? + +The canonical source and binaries is found via anonymous FTP at +@ifinfo +@file{ftp.cs.uiuc.edu:/pub/xemacs}. +@end ifinfo +@ifhtml +<A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/">ftp.cs.uiuc.edu:/pub/xemacs/</A> +@end ifhtml + +@node 1.5. +@section 1.5. Why Another Version of Emacs? + +@ifinfo +For a detailed description of the differences between GNU Emacs and +XEmacs, and a detailed history of XEmacs, see the file @file{etc/NEWS} +in the source distribution. However, here is a list of some of the +reasons why we think you might consider using it: +@end ifinfo +@ifhtml +For a detailed description of the differences between GNU Emacs and +XEmacs and a detailed history of XEmacs, check out the +<A HREF="http://xemacs.cs.uiuc.edu/NEWS.html/">NEWS</A> file. However, +here is a list of some of the reasons why we think you might consider +using it: +@end ifhtml + +@itemize @bullet +@item +It looks nicer +@item +The XEmacs maintainers are generally more receptive to suggestions than +the GNU Emacs maintainers +@item +Many more bundled packages than GNU Emacs, all properly integrated with +XEmacs +@item +Binaries are available for many common operating systems +@item +Face support on TTY's +@item +A built-in toolbar +@item +Better Motif compliance +@item +Some internationalization support for European languages. Full MULE +(Multi-Lingual EMacs) support is being actively worked on. +@item +Variable-width fonts +@item +Variable-height lines +@item +Marginal annotations +@item +ToolTalk support +@item +XEmacs can be used as an Xt widget, and can be embedded within another +application +@item +Horizontal and vertical scrollbars (using real toolkit scrollbars) +@item +Better APIs (and performance) for attaching fonts, colors, and other +properties to text +@item +The ability to embed arbitrary graphics in a buffer +@item +Completely compatible (at the C level) with the Xt-based toolkits +@end itemize + + +@node 1.6. +@section 1.6. What do @kbd{M-x}, GNU, etc. mean? + +This is really a general Emacs question, but a table of some common +terms/acronyms is provided here for your convenience. +@ifinfo +See the @cite{GNU Emacs FAQ} for a more complete list. +@end ifinfo +@ifhtml +See the <A HREF="http://www.eecs.nwu.edu/emacs/faq">GNU Emacs FAQ</A> +for a more complete list. +@end ifhtml + +@table @samp +@item BLAT FOOP +Historical XEmacs error message +@item C-x +@dfn{C-x} means that the @key{Control} key and the @key{X} key should be +pressed together, like when you use the @key{Shift} key. +@item E-Lisp +Same as @dfn{Emacs-Lisp}. +@item Emacs-Lisp +The dialect of Lisp supported by Emacs and XEmacs. You use this to +customize XEmacs. +@item FAQ +Frequently asked question(s). +@item FSF +The Free Software Foundation. +@item GNU +@dfn{GNU} refers to products written by the Free Software Foundation. +@item JWZ +Jamie Zawinski <jwz@@netscape.com>, the former maintainer of Lucid Emacs +(which XEmacs evolved from). +@item M-x +@dfn{M-x} means that the @key{Meta} key and the @key{X} key should be +pressed together, like when you use the @key{Shift} key. Sometimes +the @key{Meta} key is labelled @samp{Alt} or with a diamond. Some +keyboards don't have a @key{Meta} key at all; then you can get the +equivalent by typing the @key{Esc} key followed by the @key{X} key. +@item RMS +Richard Stallman <rms@@gnu.ai.mit.edu>, the author of GNU Emacs. +@item VI +An editor used by those heretics that don't subscribe to the Emacs religion. +@end table + + +@node 1.7. +@section 1.7. Where can I get help for using XEmacs? + +Probably the easiest way, if everything is installed, is to use info, by +pressing @kbd{C-h i}, or selecting @samp{Emacs Info} from the Help Menu. +Also, @kbd{M-x apropos} will look for commands for you. + +Try reading this FAQ, examining the regular GNU Emacs FAQ (which can be +found with the Emacs 19 distribution) as well as at +@ifinfo +@file{http://www.eecs.nwu.edu/emacs/faq/} and reading the Usenet group +@end ifinfo +@ifhtml +<A HREF="http://www.eecs.nwu.edu/emacs/faq/">http://www.eecs.nwu.edu/emacs/faq/</A> +and reading the Usenet group +@end ifhtml +@samp{comp.emacs.xemacs}. If that does not help, try posting your +question to @samp{comp.emacs.xemacs}. If you cannot post or read +Usenet news, there is a corresponding mailing list which is available. +It can be subscribed to by sending mail to + +@example +xemacs-request@@cs.uiuc.edu +@end example + +for subscription information and + +@example +xemacs@@cs.uiuc.edu +@end example + +to send messages to the list. + +To cancel a subscription, YOU MUST use the xemacs-request address. + +Bug reports should be sent to the same locations. + + +@node 1.8. +@section 1.8. Where is the mailing list archived? + +The mailing list is archived in the directory +@ifinfo +@file{ftp.cs.uiuc.edu:/pub/xemacs/mlists/}. +@end ifinfo +@ifhtml +<A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/mlists/">ftp.cs.uiuc.edu:/pub/xemacs/mlists/</A> +@end ifhtml + + +@node 1.9. +@section 1.9. What is InfoDock, how does it relate to XEmacs, and how can I obtain it? + +InfoDock is an integrated productivity toolset, mainly aimed at +technical people. It is built atop the XEmacs variant of GNU Emacs and +so has all of the power of Emacs, but with an easier to use and more +comprehensive menu-based user interface. The next section describes how +it differs from XEmacs and GNU Emacs from the Free Software Foundation. + +The quickest way to get a feel for InfoDock is to browse the InfoDock +Manual, especially the section on tools. This will help you decide +whether or not to download InfoDock for local use. This manual is +available in gzipped Postscript form, alongside the InfoDock +distribution. (See below for FTP retrieval instructions.) + +InfoDock is aimed at people who want a free, turn-key productivity +environment. Although InfoDock is customizable, it is not intended for +people who like basic versions of Emacs which need to be customized +extensively for local use; standard Emacs distributions are better for +such uses. InfoDock is for those people who want a complete, +pre-customized environment in one package, which they need not touch +more than once or twice a year to update to new revisions. + +InfoDock is pre-built for SPARCstations running SunOS V4 or V5 +(Solaris). It is intended for use on a color display, although most +features will work on monochrome monitors. Simply unpack InfoDock +according to the instructions in the ID-INSTALL file and you are ready +to run. + +The InfoDock Manual is concise, yet sufficient as a user guide for users +who have never used an Emacs-type editor before. For users who are +already familiar with Emacs, it supplements the information in the GNU +Emacs Manual. + +InfoDock menus are much more extensive and more mature than standard +Emacs menus. Each menu offers a @samp{Manual} item which displays +documentation associated with the menu's functions. + +Three types of menubars are provided: +@enumerate +@item +An extensive menubar providing access to global InfoDock commands. +@item +Mode-specific menubars tailored to the current major mode. +@item +A simple menubar for basic editing to help novices get started with InfoDock. +@end enumerate + +Most modes also include mode-specific popup menus. Additionally, region and +rectangle popup menus are included. +@itemize @bullet +@item +@samp{Hyperbole}, the everyday information manager, is a core part of +InfoDock. This provides context-sensitive mouse keys, a rolodex-type +contact manager, programmable hypertext buttons, and an autonumbered +outliner with embedded hyperlink anchors. +@item +@samp{PIEmail}, the prototype Personalized Information Environment Mail +Tool, is included. +@item +The @samp{OO-Browser}, a multi-language object-oriented code browser, is a +standard part of InfoDock. +@end itemize + +InfoDock saves a more extensive set of user options than other Emacs +versions. + +InfoDock inserts a useful file header in many file types, showing the +author, summary, and last modification time of each file. A summary +program can then be used to summarize all of the files in a directory, +for easy MANIFEST file creation. + +Your working set of buffers is automatically saved and restored (if you +answer yes to a prompt) between InfoDock sessions. + +Refined color choices for code highlighting are provided for both dark and +light background display frames. + +The @kbd{C-z} key prefix performs frame-based commands which parallel the +@kbd{C-x} key prefix for window-based commands. + +The Smart Menu system is included for producing command menus on dumb +terminals. (InfoDock does not yet run on dumb terminals but will in 1995.) + +Lisp libraries are better categorized according to function. + +Extensions and improvements to many areas of Emacs are included, such as: +paragraph filling, mail reading with Rmail, shell handling, outlining, code +highlighting and browsing, and man page browsing. + +InfoDock questions, answers and discussion should go to the mail list +@samp{infodock@@hub.ucsb.edu}. Use +@samp{infodock-request@@hub.ucsb.edu} to be added or removed from the +list. Always include your InfoDock version number when sending help +requests. + +InfoDock is available across the Internet via anonymous FTP. To get +it, first move to a directory into which you want the InfoDock archive +files placed. We will call this <DIST-DIR>. + +@example + cd <DIST-DIR> +@end example + +FTP to ftp.cs.uiuc.edu (Internet Host ID = 128.174.252.1): + +@example + prompt> ftp ftp.cs.uiuc.edu +@end example + +Login as @samp{anonymous} with your own <user-id>@@<site-name> as a password. + +@example + Name (ftp.cs.uiuc.edu): anonymous + 331 Guest login ok, send your complete e-mail address as password. + Password: -<your-user-id@@your-domain> + 230 Guest login ok, access restrictions apply. +@end example + +Move to the location of the InfoDock archives: + +@example + ftp> cd pub/xemacs/infodock +@end example + +Set your transfer mode to binary: + +@example + ftp> bin + 200 Type set to I. +@end example + +Turn off prompting: + +@example + ftp> prompt + Interactive mode off. +@end example + +Retrieve the InfoDock archives that you want, either by using a +@samp{get <file>} for each file you want or by using the following to +get a complete distribution, including all binaries: + +@example + ftp> mget ID-INSTALL + ftp> mget id-* +@end example + +Close the FTP connection: + +@example + ftp> quit + 221 Goodbye. +@end example + +Read the @file{ID-INSTALL} file which you just retrieved for +step-by-step installation instructions. + + + +@node 2. Compiling XEmacs, 3. Problems running XEmacs / weird messages, 1. Introductory Questions, top +@chapter 2. Compiling XEmacs + +@menu +* 2.1.:: 2.1. What is the best way to compile XEmacs with the netaudio system, since I have got the netaudio system compiled but installed at a weird place, I am not root. Also in the READMEs it does not say anything about compiling with the audioserver? +@end menu + + +@node 2.1. +@section 2.1. What is the best way to compile XEmacs with the netaudio system, since I have got the netaudio system compiled but installed at a weird place, I am not root. Also in the READMEs it does not say anything about compiling with the audioserver? + +You should only need to add some stuff to the configure command line. To tell +it to compile in netaudio support: + +@example +--with-sound=both +@end example + +(Or @samp{--with-sound=nas} if you don't want native sound support for +some reason.) To tell it where to find the netaudio includes and +libraries: + +@example +--site-libraries=WHATEVER +--site-includes=WHATEVER +@end example + +Then (fingers crossed) it should compile and it will use netaudio if you +have a server running corresponding to the X server. The netaudio server +has to be there when XEmacs starts. If the netaudio server goes away and +another is run, XEmacs should cope (fingers crossed, error handling in +netaudio isn't perfect). + +BTW, netaudio has been renamed as it has a name clash with something +else, so if you see references to NAS or Network Audio System, it's the +@ifinfo +same thing. It also might be found at + +@example +ftp.x.org:/contrib/audio/nas/ +ftp.ncd.com:/pub/ncd/technology/src/nas/ +@end example +@end ifinfo +@ifhtml +same thing. It also might be found at +<A HREF="ftp://ftp.x.org/contrib/audio/nas/">ftp.x.org:/contrib/audio/nas/</A> +<A HREF="ftp://ftp.ncd.com:/pub/ncd/technology/src/nas/">ftp.ncd.com:/pub/ncd/technology/src/nas/</A> +@end ifhtml + +@node 3. Problems running XEmacs / weird messages, 4. Customization -- Emacs Lisp and the .emacs file, 2. Compiling XEmacs, top +@chapter 3. Problems running XEmacs / weird messages + +@menu +* 3.1.:: 3.1. Help! XEmacs just crashed on me! +* 3.2.:: 3.2. When I try to use some particular option of some particular package, I get a cryptic error in the minibuffer. +* 3.3.:: 3.3. I get tons of translation table syntax error messages during startup. How do I get rid of them? +* 3.4.:: 3.4. How can I avoid the startup warnings about deducing proper fonts? +* 3.5.:: 3.5. Help! I can not get XEmacs to display on my Envizex X-terminal! +* 3.6.:: 3.6. Why do I get weird messages about giftoppm and ppmdither not being found? +* 3.7.:: 3.7. How can I avoid those messages about deleting excess backup files? +* 3.8.:: 3.8. Help! XEmacs just locked up my X server on my Linux box! +@end menu + + +@node 3.1. +@section 3.1. Help! XEmacs just crashed on me! + +First of all, don't panic. Whenever XEmacs crashes, it tries extremely +hard to auto-save all of your files before dying. (The main time that +this will not happen is if the machine physically lost power or if you +killed the XEmacs process using @samp{kill -9}.) The next time you +try to edit those files, you will be informed that a more recent +auto-save file exists. You can use @kbd{M-x recover-file} to retrieve +the auto-saved version of the file. + +Now, XEmacs is not perfect, and there may occasionally be times, or +particular sequences of actions, that cause it to crash. If you can +come up with a reproducible way of doing this (or even if you have a +pretty good memory of exactly what you were doing at the time), the +maintainers would be very interested in knowing about it. Post a +message to @samp{comp.emacs.xemacs} or send mail to +@samp{xemacs@@cs.uiuc.edu}. + +If at all possible, include a stack backtrace of the core dump that was +produced. This shows where exactly things went wrong, and makes it much +easier to diagnose problems. To do this, you need to locate the core +file (it's called @samp{core}, and is usually sitting in the directory +that you started XEmacs from, or your home directory if that other +directory was not writable). Then, go to that directory and execute a +command like + +@example +gdb `which xemacs` core +@end example + +and then issue the command @samp{where} to get the stack backtrace. +(You might have to use @samp{dbx} or some similar debugger in place +of @samp{gdb}. If you don't have any such debugger available, +complain to your system administrator.) + +It's possible that a core file didn't get produced, in which case +you're out of luck. Go complain to your system administrator and +tell him not to disable core files by default. (If you explicitly +disabled core files, then double shame on you!) + + +@node 3.2. +@section 3.2. When I try to use some particular option of some particular package, I get a cryptic error in the minibuffer. + +If you can't figure out what's going on, try typing @kbd{ESC ESC} and +issuing the command + +@example +(setq debug-on-error t) +@end example + +and then try and make the error happen again. This will give you a +backtrace that may be enlightening. If not, try reading farther down in +this FAQ; if that fails, you could try posting to +@samp{comp.emacs.xemacs} (making sure to include the backtrace) and +someone may be able to help. + + +@node 3.3. +@section 3.3. I get tons of translation table syntax error messages during startup. How do I get rid of them? + +There are two causes of this problem. The first usually only strikes +people using the prebuilt binaries. The culprit in both cases is the +file @file{XKeysymDB}. +@itemize @bullet +@item +The binary cannot find the XKeysymDB file. The location is hardcoded at +compile time so if the system the binary was built on puts it a +different place than your system does, you have problems. To fix, set +the environment variable @samp{XKEYSYMDB} to the location of the +XKeysymDB file on your system or to the location of the one included +with XEmacs which should be at: + +@example +<xemacs_root_directory>/lib/xemacs-19.13/etc/XKeysymDB +@end example + +@item +The binary is finding the XKeysymDB but it is out-of-date on your system +and does not contain the necessary lines. Either ask your system +administrator to replace it with the one which comes with XEmacs (which +is the stock R6 version and is backwards compatible) or set your +@samp{XKEYSYMDB} variable to the location of XEmacs's described above. +@end itemize + + +@node 3.4. +@section 3.4. How can I avoid the startup warnings about deducing proper fonts? + +This is highly dependent on your installation, but try with the +following font as your base font for XEmacs and see what it does: + +@example +-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1 +@end example + +More precisely, do the following in your resource file: + +@example +Emacs.default.attributeFont: -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1 +@end example + + +@node 3.5. +@section 3.5. Help! I can not get XEmacs to display on my Envizex X-terminal! + +Try setting the DISPLAY variable using the numeric IP address of the +host you are running XEmacs from. + + +@node 3.6. +@section 3.6. Why do I get weird messages about giftoppm and ppmdither not being found? + +Because they are not. You are probably trying to read some HTML files, +or using W3-mode as your Web client. To display inline pictures, this +requires the above programs (which can be found in the netpbm package or +its older version, pbmplus). The netpbm package can be found at +@ifinfo +@samp{ftp.x.org}, or any of its mirror sites. It can also be found at +@samp{ftp.cs.uiuc.edu:/pub/xemacs/aux}. +@end ifinfo +@ifhtml +<A HREF="ftp://ftp.x.org/contrib/utilities/">ftp.x.org:/contrib/utilities/</A> +. It can also be found at +<A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/aux/">ftp.cs.uiuc.edu:/pub/xemacs/aux/</A> +@end ifhtml + + +@node 3.7. +@section 3.7. How can I avoid those messages about deleting excess backup files? + + +Try the following Emacs-Lisp: + +@example +(setq version-control t) +(setq kept-old-versions 0) +(setq kept-new-versions 8) +(if (string-match "XEmacs\\|Lucid" emacs-version) + (setq trim-versions-without-asking t) + (setq delete-old-versions t)) +@end example + +@node 3.8. +@section 3.8. Help! XEmacs just locked up my X server on my Linux box! + +There have been several reports of the X server locking up under Linux. +In all reported cases removing speedo and scaled fonts from the font +path corrected the problem. This can be done with the command 'xset'. + +It is possible that using a font server may also solve the problem. + + + +@node 4. Customization -- Emacs Lisp and the .emacs file, 5. Customization -- X resources, 3. Problems running XEmacs / weird messages, top +@chapter 4. Customization -- Emacs Lisp and the .emacs file + +@menu +* 4.1.:: 4.1. How can @file{.emacs} determine which of the family of emacsen I am using? +* 4.2.:: 4.2. How can I detect a color display? +* 4.3.:: 4.3. How can I evaluate emacs-lisp expressions without switching to the *scratch* buffer? +* 4.4.:: 4.4. If you put (setq tab-width 6) in your @file{.emacs} file it does not work! Is there a reason for this. If you do it at the EVAL prompt it works fine!! How strange. +* 4.5.:: 4.5. How can I add directories to the load-path? +* 4.6.:: 4.6. How to check if a lisp function is defined or not? +* 4.7.:: 4.7. Can I force the output of (list-faces) to a buffer other than the minibuffer since it is too wide to fit? +@end menu + + +@node 4.1. +@section 4.1. How can @file{.emacs} determine which of the family of Emacsen I am using? + +To determine if you are currently running GNU Emacs 18, GNU Emacs 19, +XEmacs 19, or Epoch, and use appropriate code, check out the example +given in @file{etc/sample.emacs}. There are other nifty things in there +as well! Alternatively, there is a package, @file{emacs-vers.el}, +available at an Emacs-Lisp archive near you; try searching + +@example +archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/misc/ +@end example + + +@node 4.2. +@section 4.2. How can I detect a color display? + +You can test the return value of the function +@code{(device-class)}, as in: + +@example +(if (eq (device-class) 'color) + (progn + (set-face-foreground 'font-lock-comment-face "Grey") + (set-face-foreground 'font-lock-string-face "Red") + .... + )) +@end example + + +@node 4.3. +@section 4.3. How can I evaluate Emacs-Lisp expressions without switching to the *scratch* buffer? + +@example +(put 'eval-expression 'disabled nil) +@end example + +This sets it so that hitting @kbd{ESC ESC} lets you type a single +expression to be evaluated. This line can also be put into your +@file{.emacs}. + + +@node 4.4. +@section 4.4. If you put (setq tab-width 6) in your @file{.emacs} file it does not work! Is there a reason for this. If you do it at the EVAL prompt it works fine!! How strange. + +Use setq-default, since tab-width is all-buffer-local. + + +@node 4.5. +@section 4.5. How can I add directories to the load-path? + +Here are two ways to do that, one that puts your directories at the front of +the load-path, the other at the end: + +@example +;;; Add things at the beginning of the load-path +(setq load-path (cons "bar" load-path)) +(setq load-path (cons "foo" load-path)) + +;;; Add things at the end +(setq load-path (append load-path '("foo" "bar"))) +@end example + + +@node 4.6. +@section 4.6. How to check if a lisp function is defined or not? + +Use the following elisp: + +@example +(fboundp 'foo) +@end example + +It's always a mistake, under all circumstances, to test `emacs-version' or +any similar variables, in case they are not bound, unless you do the above. + +Instead, use feature-tests, such as featurep or boundp or fboundp, or +even simple behavioural tests, eg + (defvar foo-old-losing-code? (condition-case nil (progn (losing-code t) nil) + (wrong-number-of-arguments t))) + +There is an incredible amount of broken code out there which could +work much better more often in more places if it did the above instead +of trying to divine its environment from the value of one variable. + + +@node 4.7. +@section 4.7. Can I force the output of (face-list) to a buffer other than the minibuffer since it is too wide to fit? + +Evaluate the expression in the "*scratch*" buffer with point on the rightmost +paren and typing @kbd{C-j}. + + + +@node 5. Customization -- X resources, 6. Changing textual fonts and colors, 4. Customization -- Emacs Lisp and the .emacs file, top +@chapter 5. Customization -- X resources + +@menu +* 5.1.:: 5.1. Where is a list of X resources? +@end menu + + +@node 5.1. +@section 5.1. Where is a list of X resources? + +Search through the NEWS file for ``X Resources''. A fairly comprehensive list +is given after it. + +In addition, an app-defaults file is supplied, @file{etc/Emacs.ad}, +listing the defaults. The file @file{etc/sample.Xdefaults} gives a set +of defaults that you might consider. It is essentially the same as +@file{etc/Emacs.ad} but some entries are slightly altered. Be careful +about installing the contents of this file into your @file{.Xdefaults} +(.Xresources) file if you use FSF GNU Emacs under X11 as well. + + + +@node 6. Changing textual fonts and colors, 7. The modeline, 5. Customization -- X resources, top +@chapter 6. Changing textual fonts and colors + +@menu +* 6.1.:: 6.1. How do I set the text, menu and modeline fonts? +* 6.2.:: 6.2. How can I set the background/foreground colors when highlighting a region? +* 6.3.:: 6.3. How can I set the most commonly used color options from my @file{.emacs} instead of from my @file{.Xdefaults}? +@end menu + + +@node 6.1. +@section 6.1. How do I set the text, menu and modeline fonts? + +Note that you should use @samp{Emacs.} and not @samp{Emacs*} when +setting face values. + +In @file{.Xdefaults}: + +@example +Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-* +Emacs*menubar*font: fixed +Emacs.modeline.attributeFont: fixed +@end example + +This is confusing because modeline is a face, and can be found listed +with all faces in the current mode by using M-x set-face-font (enter) ?. +It uses the face specification of "attributeFont", while menubar is a +normal X thing that uses the specification "font". With Motif it may be +necessary to use "fontList" instead of "font". (Please rewrite this if +you understand this better than me ... A general description of faces +would be very useful. I am just saying that menubar is a FAQ because +it's not a face and not listed.) + + +@node 6.2. +@section 6.2. How can I set the background/foreground colors when highlighting a region? + +You can change the face `zmacs-region' either in your @file{.Xdefaults}: + +@example +Emacs.zmacs-region.attributeForeground: firebrick +Emacs.zmacs-region.attributeBackground: lightseagreen +@end example + +or in your @file{.emacs}: + +@example +(set-face-background 'zmacs-region "red") +(set-face-foreground 'zmacs-region "yellow") +@end example + + +@node 6.3. +@section 6.3. How can I set the most commonly used color options from my @file{.emacs} instead of from my @file{.Xdefaults}? + +@example +(set-face-background 'default "bisque") ; frame background +(set-face-foreground 'default "black") ; normal text +(set-face-background 'zmacs-region "red") ; When selecting w/ + ; mouse +(set-face-foreground 'zmacs-region "yellow") +(set-face-font 'default "*courier-bold-r*120-100-100*") +(set-face-background 'highlight "blue") ; Ie when selecting buffers +(set-face-foreground 'highlight "yellow") +(set-face-background 'modeline "blue") ; Line at bottom of buffer +(set-face-foreground 'modeline "white") +(set-face-font 'modeline "*bold-r-normal*140-100-100*") +(set-face-background 'isearch "yellow") ; When highlighting while + ; searching +(set-face-foreground 'isearch "red") +(setq x-pointer-foreground-color "black") ; Adds to bg color, + ; so keep black +(setq x-pointer-background-color "blue") ; This is color you really +@end example + ; want ptr/crsr + + +@node 7. The modeline, 8. The keyboard, 6. Changing textual fonts and colors, top +@chapter 7. The modeline + +@menu +* 7.1.:: 7.1. How can I make the modeline go away? +* 7.2.:: 7.2. How do you have XEmacs display the line number in the modeline? +* 7.3.:: 7.3. How do I get XEmacs to put the time of day on the modeline? +* 7.4.:: 7.4. How can one change the color of the modeline based on the mode used? i.e. red for C mode, green for TeX mode etc.? +@end menu + + +@node 7.1. +@section 7.1. How can I make the modeline go away? + +(set-specifier has-modeline-p nil) + + +@node 7.2. +@section 7.2. How do you have XEmacs display the line number in the modeline? + +Add the following line to your @file{.emacs} file: + +@example +(setq line-number-mode t) +@end example + + +@node 7.3. +@section 7.3. How do I get XEmacs to put the time of day on the modeline? + +@example +(display-time) +@end example + + +@node 7.4. +@section 7.4. How can one change the color of the modeline based on the mode used? i.e. red for C mode, green for TeX mode etc.? + +You can use something like the following: + +@example +(add-hook 'lisp-mode-hook + '(lambda () (set-face-background 'modeline "red" (current-buffer)) + (set-face-foreground 'modeline "yellow" (current-buffer)))) +@end example + +Then, when editing a Lisp file (ie went into Lisp mode), the modeline +colors change from the default set in your @file{.emacs}. The change +will only be made in the buffer you just entered (which contains the +Lisp file you are editing) and will not affect the modeline colors +anywhere else. + +Notes: + +@itemize @bullet +@item +The hook is the mode name plus "-hook". Ie c-mode-hook, c++-mode-hook, +emacs-lisp-mode-hook (ie your @file{.emacs} or a xx.el file), +lisp-interaction-mode-hook (the *scratch* buffer), text-mode-hook, etc. +@item +Be sure to use add-hook, not (setq c-mode-hook xxxx), otherwise you will +erase anything that anybody has already put on the hook. +@item +You can also do (set-face-font 'modeline @code{font}), eg (set-face-font +'modeline "*bold-r-normal*140-100-100*" (current-buffer)) if you wish +the modeline font to vary based on the current mode. +@end itemize + + +@node 8. The keyboard, 9. The cursor, 7. The modeline, top +@chapter 8. The keyboard + +@menu +* 8.1.:: 8.1. What is the difference in in key sequences between XEmacs and GNU Emacs? +* 8.2.:: 8.2. How can I make XEmacs recognize the Alt key of my HP workstation as a Meta key? +* 8.3.:: 8.3. How can I stop the down-arrow-key from adding empty lines at the bottom of my buffers? +* 8.4.:: 8.4. I wonder if there is an interactive function that can generate "fake" keyboard events. This way, I could simply map them inside XEmacs. +* 8.5.:: 8.5. I am trying to bind C-. to scroll up by one line and C-; to scroll down by one line... +* 8.6.:: 8.6. I cannot manage to globally bind my @key{Delete} key to something other than the default. How does one do this? +* 8.7.:: 8.7. How can I bind complex functions (or macros) to keys? +* 8.8.:: 8.8. Can the cursor keys scroll the screen a line at a time, rather than the default half page jump? I tend it to find it disorienting. +* 8.9.:: 8.9. How to map "Help" key alone on Sun type4 keyboard? +* 8.10.:: 8.10. How can you type in special characters in XEmacs? +@end menu + + +@node 8.1. +@section 8.1. What is the difference in in key sequences between XEmacs and GNU Emacs? + +The real question might be rephrased as "When should one use the quoted list, +vector, or escaped string representations of key sequences?" Is there any +particular advantage to one representation over another? + +From Richard Mlynarik <mly@@adoc.xerox.com>: + +@table @asis +@item (meta a) +is a convenience shorthand for the sequence @code{[(meta a)]}. +@code{(global-set-key 'a 'foo)} means the same thing as +@code{(global-set-key '[a] 'foo)}. It could be argued that allowing +such a shorthand just leads to sloppiness and bugs, but it's there, and +it isn't likely to go away. + +@item [(meta a)] +is The Right Thing. It corresponds in a one-to-one way with the +internal representation of key-sequences in keymaps. + +@item [Meta-a] +is typical FSF Emacs 19 brain damage. As is usual, an existing, +functional design is ignored (XEmacs) and an incompatible and +technically worse kludge is used. + +@item "\ea" +is compatible with Emacs 18, but suffers from ASCII Seven-Bit Brain +Damage. I also find it harder to read. Use this if you're trying to +write code which works in every Emacs, but be aware that you can not +express all Possible key-sequences (@kbd{control-9}, @kbd{f1}, etc.) +using this. + +@end table + + +@node 8.2. +@section 8.2. How can I make XEmacs recognize the Alt key of my HP workstation as a Meta key? + +Put the following line into a file and load it with xmodmap(1) before +starting XEmacs: + +@example +remove Mod1 = Mode_switch +@end example + + +@node 8.3. +@section 8.3. How can I stop the down-arrow-key from adding empty lines at the bottom of my buffers? + +Add the following line to your @file{.emacs} file: + +@example +(setq next-line-add-newlines nil) +@end example + + +@node 8.4. +@section 8.4. I wonder if there is an interactive function that can generate "fake" keyboard events. This way, I could simply map them inside XEmacs. + +This seems to work: +@example +(defun cg--generate-char-event (ch) + "Generate an event, as if ch has been typed" + (dispatch-event (character-to-event ch))) + +;; Backspace and Delete stuff +(global-set-key '(backspace) + '(lambda () (interactive) (cg--generate-char-event 127))) +(global-set-key '(unknown_keysym_0x4) + '(lambda () (interactive) (cg--generate-char-event 4))) +@end example + + +@node 8.5. +@section 8.5. I am trying to bind C-. to scroll up by one line and C-; to scroll down by one line... + +Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and +Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}: + +@example +(defun scroll-up-one-line () + (interactive) + (scroll-up 1)) + +(defun scroll-down-one-line () + (interactive) + (scroll-down 1)) + +(global-set-key [(control ?.)] 'scroll-up-one-line) ; C-. +(global-set-key [(control ?;)] 'scroll-down-one-line) ; C-; +@end example + +The key point is that you can only bind simple functions to keys; you can not +bind a key to a function that you're also passing arguments to. (See <A +HREF="#ss8.7">8.7 How can I bind complex functions</A> for a better answer.) + +@c Fix the above HTML specifier reference + +@node 8.6. +@section 8.6. I cannot manage to globally bind my @key{Delete} key to something other than the default. How does one do this? + +@example +(defun Foo () + (interactive) + (message "You hit DELETE")) + +(global-set-key "\C-?" 'Foo) +@end example + +However, some modes explicitly bind @key{Delete}, so you would need to +add a hook that does @code{local-set-key} for them. + + +@node 8.7. +@section 8.7. How can I bind complex functions (or macros) to keys? + +As an example, say you want the PASTE key on a Sun keyboard to insert the +current Primary X selection at point. You can accomplish this with: + +@example +(define-key global-map 'f18 'x-insert-selection) +@end example + +However, this only works if there is a current X selection (the +selection will be highlighted). The functionality I like is for the +PASTE key to insert the current X selection if there is one, otherwise +insert the contents of the clipboard. To do this you need to pass +arguments to x-insert-selection. This is done by wrapping the call in a +'lambda form: + +@example +(define-key global-map 'f18 + (function (lambda () (interactive) (x-insert-selection t nil)))) +@end example + +This binds the 'f18 key to a "generic" functional object. The interactive +spec is required because only interactive functions can be bound to keys. +Also take a look at the doc for "function". + +For the FAQ example you could use: + +@example +(global-set-key [(control ?.)] + (function (lambda () (interactive) (scroll-up 1)))) +(global-set-key [(control ?;)] + (function (lambda () (interactive) (scroll-up -1)))) +@end example + +This is fine if you only need a few functions within the lambda body. If +you're doing more it's cleaner to define a separate function as in the +original FAQ example (<A HREF="#ss11.3">question 11.3</A>). + +@c Fix the above HTML specifier reference + +@node 8.8. +@section 8.8. Can the cursor keys scroll the screen a line at a time, rather than the default half page jump? I tend it to find it disorienting. + +Try this: + +@example +(defun scroll-one-line-up (&optional arg) + "Scroll the selected window up (forward in the text) one line (or N lines)." + (interactive "p") + (scroll-up (or arg 1))) + +(defun scroll-one-line-down (&optional arg) + "Scroll the selected window down (backward in the text) one line (or N)." + (interactive "p") + (scroll-down (or arg 1))) + +(global-set-key 'up 'scroll-one-line-up) +(global-set-key 'down 'scroll-one-line-down) +@end example + +The following will also work but will affect more than just the cursor +keys (i.e. C-n and C-p): + +@example +(setq scroll-step 1) +@end example + +@node 8.9. +@section 8.9. How to map "Help" key alone on Sun type4 keyboard? + +The following works in GNU Emacs 19: + +@example +(global-set-key [help] 'help-command) ;; Help +@end example + +The following works in XEmacs 19.13 with the addition of shift: + +@example +(global-set-key [(shift help)] 'help-command) ;; Help +@end example + +But it doesn't work alone. This is in the file @file{PROBLEMS} which +should have come with your XEmacs installation: + +@emph{Emacs ignores the @key{help} key when running OLWM}. + +OLWM grabs the @key{help} key, and retransmits it to the appropriate +client using XSendEvent. Allowing Emacs to react to synthetic events is +a security hole, so this is turned off by default. You can enable it by +setting the variable x-allow-sendevents to t. You can also cause fix +this by telling OLWM to not grab the help key, with the null binding +@samp{OpenWindows.KeyboardCommand.Help:}. + + +@node 8.10. +@section 8.10. How can you type in special characters in XEmacs? + +One way is to use the package @file{x-compose}. Then you can use sequences +like @kbd{Compose " a} to get d (a-umlaut), etc. + + + +@node 9. The cursor, 10. The mouse; cutting and pasting, 8. The keyboard, top +@chapter 9. The cursor + +@menu +* 9.1.:: 9.1. Is there a way to make the bar cursor a little thicker than one-pixel thick since I lose it? +* 9.2.:: 9.2. On the same subject -- is there a way to get back the old "block" cursor where the cursor covers the character in front of the point? +@end menu + + +@node 9.1. +@section 9.1. Is there a way to make the bar cursor a little thicker than one-pixel thick since I lose it? + +For a 1 pixel bar cursor, use: + +@example +(setq bar-cursor t) +@end example + +For a 2 pixel bar cursor, use: + +@example +(setq bar-cursor 'anything-else) +@end example + +You can use a color to make it stand out better: + +@example +Emacs*cursorColor: Red +@end example + + +@node 9.2. +@section 9.2. On the same subject -- is there a way to get back the old "block" cursor where the cursor covers the character in front of the point? + +@example +(setq bar-cursor nil) +@end example + + + +@node 10. The mouse; cutting and pasting, 11. Highlighting, 9. The cursor, top +@chapter 10. The mouse; cutting and pasting + +@menu +* 10.1.:: 10.1. I keep hitting the middle mouse button by accident and getting stuff pasted into my buffer so how can I turn this off? +* 10.2.:: 10.2. How do I set control/meta/etc modifiers on mouse buttons? +* 10.3.:: 10.3. I do "^x ^b" to get a list of buffers and the entries get highlighted when I move the mouse over them but clicking the left mouse does not do anything. +* 10.4.:: 10.4. How can I get a list of buffers to popup when I hit button 3 on the mouse? +* 10.5.:: 10.5. Why does cut-and-paste not work between XEmacs and a cmdtool? +* 10.6.:: 10.6. How I can set XEmacs up so that it pastes where the cursor is _not_ where the pointer lies? +* 10.7.:: 10.7. How do I select a rectangular region? +* 10.8.:: 10.8. Why does M-w take so long? +@end menu + + +@node 10.1. +@section 10.1. I keep hitting the middle mouse button by accident and getting stuff pasted into my buffer so how can I turn this off? + +Here is an alternative binding, whereby the middle mouse button selects (but +does not cut) the expression under the mouse. Clicking middle on a left or +right paren will select to the matching one. Note that you can use +@code{define-key} or @code{global-set-key}. + +@example +(defun Mouse-Set-Point-and-Select (event) + "Sets the point at the mouse location, then marks following form" + (interactive "@@e") + (mouse-set-point event) + (mark-sexp 1) + ) +(define-key global-map 'button2 'Mouse-Set-Point-and-Select) +@end example + +@c Get this fixed +(Editor's Note -- there is a problem with texinfo/text/html conversion, so +the double at-sign should only be a single, above. I'll fix it one of these +days -- AJR) + + +@node 10.2. +@section 10.2. How do I set control/meta/etc modifiers on mouse buttons? + +Use, for instance, @code{[(meta button1)]}. For example, here is a +common setting for Common Lisp programmers who use the bundled ilisp +package, whereby meta-button1 on a function name will find the file +where the function name was defined, and put you at that location in +the source file. + +[Inside a function that gets called by the lisp-mode-hook and ilisp-mode-hook] +@example +(local-set-key [(meta button1)] 'edit-definitions-lisp) +@end example + + +@node 10.3. +@section 10.3. I do "^x ^b" to get a list of buffers and the entries get highlighted when I move the mouse over them but clicking the left mouse does not do anything. + +Use the middle mouse button. + + +@node 10.4. +@section 10.4. How can I get a list of buffers to popup when I hit button 3 on the mouse? + +The following code will actually replace the default popup on button3: + +@example +(defun cw-build-buffers () + "Popup buffer menu." + (interactive "@@") + (run-hooks 'activate-menubar-hook) + (popup-menu (car (find-menu-item current-menubar '("Buffers"))))) + +(define-key global-map [(button3)] 'cw-build-buffers) +@end example + +@c Get this fixed + +(Editor's Note -- there is a problem with texinfo/text/html conversion, so +the double at-sign should only be a single, above. I'll fix it one of these +days -- AJR) + + +@node 10.5. +@section 10.5. Why does cut-and-paste not work between XEmacs and a cmdtool? + +We don't know. It's a bug. There does seem to be a work-around, +however. Try running xclipboard first. It appears to fix the problem +even if you exit it. (This should be mostly fixed in 19.13, but we +haven't yet verified that). + + +@node 10.6. +@section 10.6. How I can set XEmacs up so that it pastes where the cursor is _not_ where the pointer lies? + + +Try adding the following to your @file{.emacs}: + +@example +(define-key global-map 'button2 'x-insert-selection) +@end example + +This comes from the @file{sample.emacs} file in @file{etc/}, which has +lots of goodies. + + +@node 10.7. +@section 10.7. How do I select a rectangular region? + + +Just select the region normally, then use the rectangle commands (e.g. +@code{kill-rectangle}) on it. The region does not highlight as a +rectangle, but the commands work just fine. + +To actually sweep out rectangular regions with the mouse do the +following: + +@example +(setq mouse-track-rectangle-p t) +@end example + + +@node 10.8. +@section 10.8. Why does M-w take so long? + +It actually doesn't. It leaves the region visible for a second so that +you can see what area is being yanked. If you start working, though, it +will immediately complete its operation. In other words, it will only +delay for a second if you let it. + + +@node 11. Highlighting, 12. The menubar and toolbar, 10. The mouse; cutting and pasting, top +@chapter 11. Highlighting + +@menu +* 11.1.:: 11.1. How can I highlight selections? +* 11.2.:: 11.2. How do I get a pending-delete type of behavior? +* 11.3.:: 11.3. I do not like my text highlighted while I am doing isearch as I am not able to see whats underneath. How do I turn it off? +* 11.4.:: 11.4. The text gets highlighted when I do C-x C-p (mark-page). Is there a way to turn this feature off? +@end menu + + +@node 11.1. +@section 11.1. How can I highlight selections? + +Use zmacs mode. This mode allows for what some might call gratuitous +highlighting for selected regions (either by setting mark or by using the +mouse). To use, add the following line to your @file{.emacs} file: + +@example +(setq zmacs-regions t) +@end example + +This is the default behavior. + + +@node 11.2. +@section 11.2. How do I get a pending-delete type of behavior? + +@dfn{Pending delete} is what happens when you select a region (with the +mouse or keyboard) and you press a key to replace the selected region by +the key you typed. Usually backspace kills the selected region. + +To get this behavior, add the following line to your @file{.emacs} file: + +@example +(require 'pending-del) +@end example + + +@node 11.3. +@section 11.3. I do not like my text highlighted while I am doing isearch as I am not able to see whats underneath. How do I turn it off? + +@example +(setq isearch-highlight nil) +@end example + +Note also that isearch-highlight affects query-replace and ispell. Instead +of disabling isearch-highlight you may find that a better solution consists +of customizing the 'isearch' face. + + +@node 11.4. +@section 11.4. The text gets highlighted when I do C-x C-p (mark-page). Is there a way to turn this feature off? + +@example +(setq zmacs-regions nil) +@end example + + + +@node 12. The menubar and toolbar, 13. Scrollbars, 11. Highlighting, top +@chapter 12. The menubar and toolbar + +@menu +* 12.1.:: 12.1. How do I get rid of the menu (or menubar) ? +* 12.2.:: 12.2. Can I customize the basic menubar? +* 12.3.:: 12.3. What controls how many buffers are listed in the menu "Buffers" list? +* 12.4.:: 12.4. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working. + +@end menu + + +@node 12.1. +@section 12.1. How do I get rid of the menu (or menubar) ? + +Answer: To get rid of the menubar, add to @file{.emacs}: + +@example +(set-menubar nil) +@end example + + +@node 12.2. +@section 12.2. Can I customize the basic menubar? + +For an extensive menubar, add the line + +@example +(load "big-menubar") +@end example + +to your @file{.emacs} file. If you'd like to write your own, this file +provides a good set of examples to start from: + +@example +lisp/packages/big-menubar.el +@end example + +(starting from your system XEmacs installation directory). + + +@node 12.3. +@section 12.3. What controls how many buffers are listed in the menu "Buffers" list? + +Add the following to your @file{.emacs}, modified as needed: + +@example +(setq buffers-menu-max-size 20) +@end example + +If you do not want a limit, try + +@example +(setq buffers-menu-max-size nil) +@end example + + +@node 12.4. +@section 12.4. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working. + +If you are using the real Motif menubar, this resource is not recognized; +you have to say + +@example +Emacs*menubar*fontList: FONT +@end example + +If you are using the Lucid menubar, the former resource will be recognized +only if the latter resource is unset. This means that the resource + +@example +*fontList: FONT +@end example + +will override + +@example +Emacs*menubar*font: FONT +@end example + +even though the latter is more specific. + + +@node 13. Scrollbars, 14. Frame Geometry, 12. The menubar and toolbar, top +@chapter 13. Scrollbars + +@menu +* 13.1.:: 13.1. How can I disable the scrollbar? +* 13.2.:: 13.2. How can one use resources to change scrollbar colors? +* 13.3.:: 13.3. When I move the scrollbar in an XEmacs window, it moves the point as well, which should not be the default behavior. Is this a bug or a feature? Can I disable it? +@end menu + + +@node 13.1. +@section 13.1. How can I disable the scrollbar? + +To turn disable them for all frames, add the following line to +your @file{.Xdefaults}: + +@example +Emacs.scrollBarWidth: 0 +@end example + +To turn the scrollbar off on a per-frame basis, use the following function: + +@example +(set-specifier scrollbar-width (cons (selected-frame) 0)) +@end example + +You can actually turn the scrollbars on at any level you want by +substituting for (selected-frame) in the above command. For example, to +turn the scrollbars off only in a single buffer: + +@example +(set-specifier scrollbar-width (cons (current-buffer) 0)) +@end example + + +@node 13.2. +@section 13.2. How can one use resources to change scrollbar colors? + +Here's a recap of how to use resources to change your scrollbar colors: + +@example +! Motif scrollbars + +Emacs*XmScrollBar.Background: skyblue +Emacs*XmScrollBar.troughColor: lightgray + +! Athena scrollbars + +Emacs*Scrollbar.Foreground: skyblue +Emacs*Scrollbar.Background: lightgray +@end example + +Note the capitalization of @samp{Scrollbar} for the Athena widget. + + +@node 13.3. +@section 13.3. When I move the scrollbar in an XEmacs window, it moves the point as well, which should not be the default behavior. Is this a bug or a feature? Can I disable it? + +The current behavior is a feature, not a bug. Point remains at the same +buffer position as long as that position does not scroll off the screen. In +that event, point will end up in either the upper-left or lower-left hand +corner. + + + +@node 14. Frame Geometry, 15. Window/icon title; window manager problems, 13. Scrollbars, top +@chapter 14. Frame Geometry + +@menu +* 14.1.:: 14.1. In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of specifying @samp{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but this does not work in XEmacs 19.13. +* 14.2.:: 14.2. In XEmacs 19.11 I specified @samp{Emacs*EmacsScreen.geometry} in my @file{.emacs} but this does not work in XEmacs 19.13. +@end menu + + +@node 14.1. +@section 14.1. In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of specifying @samp{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but this does not work in XEmacs 19.13. + +These two functions now take frame arguments: + +@example +(set-frame-width (selected-frame) @var{characters}) +(set-frame-height (selected-frame) @var{lines}) +@end example + +@node 14.2. +@section 14.2. In XEmacs 19.11 I specified @samp{Emacs*EmacsScreen.geometry} in my @file{.emacs} but this does not work in XEmacs 19.13. + +We have switched from using the term 'screen' to using the term 'frame'. +The correct entry for your @file{.Xdefaults} is now: + +@example +Emacs*EmacsFrame.geometry +@end example + + +@node 15. Window/icon title; window manager problems, 16. Editing source code (C mode; Lisp mode; etc.), 14. Frame Geometry, top +@chapter 15. Window/icon title; window manager problems + +@menu +* 15.1.:: 15.1. How can I get the icon to just say @samp{XEmacs} and not include the name of the current file in it? +* 15.2.:: 15.2. How can I have the window title area display the full directory/name of the current buffer file and not just the name? +* 15.3.:: 15.3. When I run @samp{xterm -name junk} I get an xterm whose class name according to xprop, is @samp{junk}. This is the way it's supposed to work, I think. When I run @samp{xemacs -name junk} the class name is not set to @samp{junk}. It's still @samp{emacs}. What does @samp{xemacs -name} really do? The reason I ask is that my window manager (fvwm) will make a window sticky and I use XEmacs to read my mail. I want that XEmacs window to be sticky, without having to use the window manager's function to set the window sticky. What gives? +@end menu + + +@node 15.1. +@section 15.1. How can I get the icon to just say @samp{XEmacs} and not include the name of the current file in it? + +Add the following line to your @file{.emacs} file: + +@example +(setq frame-icon-title-format "XEmacs") +@end example + + +@node 15.2. +@section 15.2. How can I have the window title area display the full directory/name of the current buffer file and not just the name? + +Add the following line to your @file{.emacs} file: + +@example +(setq frame-title-format "%S: %f") +@end example +A more sophisticated title might be: + +@example +(setq frame-title-format + '("%S: " (buffer-file-name "%f" (dired-directory dired-directory "%b")))) +@end example + +That is, use the file name, or the dired-directory, or the buffer name. + + +@node 15.3. +@section 15.3. When I run @samp{xterm -name junk} I get an xterm whose class name according to xprop, is @samp{junk}. This is the way it's supposed to work, I think. When I run @samp{xemacs -name junk} the class name is not set to @samp{junk}. It's still @samp{emacs}. What does @samp{xemacs -name} really do? The reason I ask is that my window manager (fvwm) will make a window sticky and I use XEmacs to read my mail. I want that XEmacs window to be sticky, without having to use the window manager's function to set the window sticky. What gives? + +@samp{xemacs -name} sets the application-name for the program (that is, +the thing which normally comes from @code{argv[0]}.) Using @samp{-name} +is the same as making a copy of the executable with that new name. The +WM_CLASS property on each frame is set to the frame-name, and the +application-class. So, if you did @samp{xemacs -name FOO} and then +created a frame named @samp{BAR}, you'd get an X window with WM_CLASS = +@samp{( "BAR", "Emacs")}. However, the resource hierarchy for this +widget would be + +@example +Name: FOO .shell. .pane .BAR +Class: Emacs.TopLevelShell.XmMainWindow.EmacsFrame +@end example + +instead of the default + +@example +Name: xemacs.shell. .pane .emacs +Class: Emacs .TopLevelShell.XmMainWindow.EmacsFrame +@end example + +It is arguable that the first element of WM_CLASS should be set to the +application-name instead of the frame-name, but I think that's less +flexible, since it does not give you the ability to have multiple +frames with different WM_CLASS properties. Another possibility would +be for the default frame name to come from the application name instead +of simply being @samp{emacs}. However, at this point, making that +change would be troublesome: it would mean that many users would have to +make yet another change to their resource files (since the default +frame name would suddenly change from @samp{emacs} to @samp{xemacs}, or +whatever the executable happened to be named), so we'd rather avoid it. + +To make a frame with a particular name use: + +@example +(make-frame '((name . "the-name"))) +@end example + + + +@node 16. Editing source code (C mode; Lisp mode; etc.), 17. Text mode, 15. Window/icon title; window manager problems, top +@chapter 16. Editing source code (C mode; Lisp mode; etc.) + +@menu +* 16.1.:: 16.1. How can I do source code highlighting using font-lock? +* 16.2.:: 16.2. How do you arrange it so that XEmacs indents all the clauses of a Common Lisp @code{if} the same amount instead of indenting the 3rd clause differently from the first two? +* 16.3.:: 16.3. I do not like cc-mode. How do I use the old c-mode? +* 16.4.:: 16.4. When I try to edit a postscript file it gets stuck saying: fontifying 'filename' (regexps....) and it just sits there. If I press ctrl-c in the window where XEmacs was started, it suddenly becomes alive again. +* 16.5.:: 16.5. Does anyone know how to get the "More" Syntax Highlighting on by default? +@end menu + + +@node 16.1. +@section 16.1. How can I do source code highlighting using font-lock? + +For most modes, font-lock is already set up and just needs to be turned +on. This can be done by + +@example +M-x font-lock-mode +@end example + +or by having XEmacs automatically start it by adding lines like + +@example +(add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock) +(add-hook 'dired-mode-hook 'turn-on-font-lock) +@end example + +to your @file{.emacs}. See the file @code{etc/sample.emacs} for more +examples. + + +@node 16.2. +@section 16.2. How do you arrange it so that XEmacs indents all the clauses of a Common Lisp @code{if} the same amount instead of indenting the 3rd clause differently from the first two? + +One way is to add, to @file{.emacs}: + +@example +(put 'if 'lisp-indent-function nil) +@end example + +However, note that the package @file{cl-indent.el} that comes with +XEmacs sets up this kind of indentation by default. @file{cl-indent} also +knows about many other CL-specific forms. To use @file{cl-indent}, one can +do this: + +@example +(load "cl-indent") +(setq lisp-indent-function (function common-lisp-indent-function)) +@end example + +One can also customize @file{cl-indent.el} so it mimics the default @samp{if} +indentation (@samp{then} indented more than the @samp{else}). Here's +how: + +@example +(put 'if 'common-lisp-indent-function '(nil nil &body)) +@end example + +Also, a new version (1.2) of @file{cl-indent.el} was posted to +@samp{comp.emacs.xemacs} on 12/9/94. This version includes more +documentation than previous versions. This may prove useful if you +need to customize any indent-functions. The post can be retrieved by +searching the XEmacs mail archives. + + +@node 16.3. +@section 16.3. I do not like cc-mode. How do I use the old c-mode? + +Well, first off, consider if you really want to do this. cc-mode is +much more powerful than the old c-mode. But if you still insist, add +the following lines to your @file{.emacs}: + +@example +(fmakunbound 'c-mode) +(makunbound 'c-mode-map) +(fmakunbound 'c++-mode) +(makunbound 'c++-mode-map) +(makunbound 'c-style-alist) +(load-library "old-c-mode") +(load-library "old-c++-mode") +@end example + +This must be done before any other reference is made to either c-mode +or c++-mode. + + +@node 16.4. +@section 16.4. When I try to edit a postscript file it gets stuck saying: fontifying 'filename' (regexps....) and it just sits there. If I press ctrl-c in the window where XEmacs was started, it suddenly becomes alive again. + +This was caused by a bug in the Postscript font-lock regular +expressions. It should be fixed in 19.13. For earlier versions of +XEmacs, have a look at your @file{.emacs} file. You will probably have +a line like: + +@example +(add-hook 'postscript-mode-hook 'turn-on-font-lock) +@end example + +Take it out, restart XEmacs, and it won't try to fontify your +postscript files anymore. + + +@node 16.5. +@section 16.5. Does anyone know how to get the "More" Syntax Highlighting on by default? + +For C, C++, and Lisp, you can try adding the following to your @file{.emacs} file: + +@example +(setq c-font-lock-keywords c-font-lock-keywords-2) +(setq c++-font-lock-keywords c++-font-lock-keywords-2) +(setq lisp-font-lock-keywords lisp-font-lock-keywords-2) +@end example + + + +@node 17. Text mode, 18. Shell mode, 16. Editing source code (C mode; Lisp mode; etc.), top +@chapter 17. Text mode + +@menu +* 17.1.:: 17.1. How can I enable auto-indent? +* 17.2.:: 17.2. How can I get XEmacs to come up in text mode (auto-fill) by default? +@end menu + + +@node 17.1. +@section 17.1. How can I enable auto-indent? + +Put the following line in your @file{.emacs}. + +@example +(setq indent-line-function 'indent-relative-maybe) +@end example + +If you want to get fancy, try @file{filladapt} and @file{fa-extras}, +available from the Emacs Lisp Archive at Ohio State University. +@ifinfo +Get them at URL: + +@example +ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages +@end example +@end ifinfo +@ifhtml +Get them at +<A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/</A> +@end ifhtml + + +@node 17.2. +@section 17.2. How can I get XEmacs to come up in text mode (auto-fill) by default? + +Try the following lisp in your @file{.emacs} file + +@example +(setq default-major-mode 'text-mode) +(setq text-mode-hook 'turn-on-auto-fill) +@end example + +WARNING: note that changing default-major-mode from fundamental-mode can +break a large amount of built-in code that expects newly created buffers to +be in fundamental-mode. (Changing from fundamental-mode to auto-fill +text-mode might not wreak too much havoc, but changing to something more +exotic like a lisp-mode would break many Emacs packages. + +Note that Emacs defaultly starts up in buffer *scratch* in +initial-major-mode, which defaults to lisp-interaction-mode. Thus +adding the following form to your Emacs init file will cause the +initial *scratch* buffer to be put into auto-fill'ed text-mode. + +@example +(setq initial-major-mode + (function (lambda () + (text-mode) + (turn-on-auto-fill)))) +@end example + +Note that after your init file is loaded, if inhibit-startup-message +is null (the default) and the startup buffer is *scratch* then the +startup message will be inserted into *scratch*; it will be removed +after a timeout by erasing the entire *scratch* buffer. Keep in mind +this default usage of *scratch* if you desire any prior manipulation +of *scratch* from within your Emacs init file. In particular, anything +you insert into *scratch* from your init file will be later erased. +Also, if you change the mode of *scratch* be sure that this will +not interfere with possible later insertion of the startup message +(e.g. if you put *scratch* into a nonstandard mode that has automatic +font lock rules, then the startup message might get fontified in +a strange foreign manner, e.g. as code in some programming language). + + + +@node 18. Shell mode, 19. Mail; VM; GNUS; BBDB; and related, 17. Text mode, top +@chapter 18. Shell mode + +@menu +* 18.1.:: 18.1. How do I start up a second shell buffer? +* 18.2.:: 18.2. I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke and use a telnet session within it. Everything works fine except that now all ^M's are filtered out by Emacs. Fixes? +* 18.3.:: 18.3. If I type a very long command line (like a compile command) into a shell buffer, the output seems to be messed up. +@end menu + + +@node 18.1. +@section 18.1. How do I start up a second shell buffer? + +In the *shell* buffer: + +@example +M-x rename-buffer RET *shell-1* RET +M-x shell RET +@end example + +This will then start a second shell. The key is that no buffer named +*shell* can exist. It might be preferable to use @kbd{M-x +rename-uniquely} to rename the *shell* buffer instead of @kbd{M-x +rename-buffer}. + + +@node 18.2. +@section 18.2. I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke and use a telnet session within it. Everything works fine except that now all ^M's are filtered out by Emacs. Fixes? + +Use @kbd{M-x rsh} or @kbd{M-x telnet} to open remote sessions rather +than doing rsh or telnet within the local shell buffer. + + +@node 18.3. +@section 18.3. If I type a very long command line (like a compile command) into a shell buffer, the output seems to be messed up. + +If you see lots of ^G's in the buffer, you're using an old version of +XEmacs. If the command line seems to be delayed or split into pieces, +you are probably using csh with the @samp{filec} variable set. To fix +this, add the following line to your @file{.cshrc}, after @samp{filec} is set: + +@example +if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec +@end example + +@node 19. Mail; VM; GNUS; BBDB; and related, 20. Printing, 18. Shell mode, top +@chapter 19. Mail; VM; GNUS; BBDB; and related + +@menu +* 19.1.:: 19.1. How and where I am suppose to set the face attributes for customizing the appearance of messages (i.e. for VM)? +* 19.2.:: 19.2. I seem to have heard that there's a package distributed with XEmacs which will use the echo area to notify you of incoming mail in a rather configurable way (multiple spool files, different actions for different files). What and where is it? +* 19.3.:: 19.3. Is there any way to add more faces and regexps to GNUS without hacking gnus.el? +* 19.4.:: 19.4. What is BBDB? +* 19.5.:: 19.5. I noticed that BBDB evokes an XEmacs bug; is there a fix? +* 19.6.:: 19.6. I'm getting the error 'Wrong type argument: listp :-pos' when I try to start BBDB. What do I do? +* 19.7.:: 19.7. I'm getting the error 'movemail: Permission denied' when I try and start VM. What do I do? +@end menu + + +@node 19.1. +@section 19.1. How and where I am suppose to set the face attributes for customizing the appearance of messages (i.e. for VM)? + +Suppose you want to use: + +@example +(set-face-font 'message-highlighted-header-contents + "-adobe-courier-bold-r-normal--12*") +(set-face-foreground 'message-headers "darkslateblue") +(set-face-foreground 'message-header-contents "brown") +(set-face-foreground 'message-highlighted-header-contents "black") +(set-face-foreground 'message-cited-text "darkgreen") +@end example + +Well, this should work, provided that @code{(require +'highlight-headers)} is executed first. Also, highlight-headers is +self-contained and you don't need to turn on font-lock mode. + + +@node 19.2. +@section 19.2. I seem to have heard that there's a package distributed with XEmacs which will use the echo area to notify you of incoming mail in a rather configurable way (multiple spool files, different actions for different files). What and where is it? + +It's called reportmail. Add the following to your @file{.emacs}: + +@example +(load-library "reportmail") +@end example + + +@node 19.3. +@section 19.3. Is there any way to add more faces and regexps to GNUS without hacking gnus.el? + +You can try the folowing elisp: + +@example +(add-hook 'gnus-startup-hook + '(lambda () + (font-lock-mode) + (set-face-foreground 'message-headers "red") + (set-face-foreground 'message-header-contents "orange") + (set-face-foreground 'message-cited-text "blue"))) +@end example + + +@node 19.4. +@section 19.4. What is BBDB? + +BBDB is the Big Brother Database, written by Jamie Zawinski +<jwz@@netscape.com>. It interfaces to VM, mh-e, and GNUS and +conveniently snarfs information about people and other things from +articles and messages that go by. + +BBDB is available from the elisp archive + +@ifinfo +@example +archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive +@end example +@end ifinfo +@ifhtml +<A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/</A> +@end ifhtml + +BBDB has a mailing list devoted to it: + +@example +info-bbdb@@cs.uiuc.edu +@end example + +This mailing list is archived at + +@ifinfo +@example +ftp.cs.uiuc.edu:/pub/bbdb +@end example +@end ifinfo +@ifhtml +<A +HREF="ftp://ftp.cs.uiuc.edu:/pub/bbdb/">ftp.cs.uiuc.edu:/pub/bbdb/</A> +@end ifhtml + + +@node 19.5. +@section 19.5. I noticed that BBDB evokes an XEmacs bug; is there a fix? + +This worked for me: + +@example +(setq bbdb-electric-p nil) +@end example + +@node 19.6. +@section 19.6. I'm getting the error 'Wrong type argument: listp :-pos' when I try to start BBDB. What do I do? + +Discard the copy of mail-extr.el that came with bbdb. + +XEmacs 19.12 made the change that you cannot change the value of +interned symbols whose names begin with a colon. The mail-extr.el +that's distributed with 19.12+ is fixed to live with this restriction, +but old copies of mail-extr.el will bomb. + + +@node 19.7. +@section 19.7. I'm getting the error 'movemail: Permission denied' when I try and start VM. What do I do? + +Execute the following two commands. movemail is normally located in the +XEmacs install tree at @file{.../lib/xemacs-19.13/$@{arch@}/movemail}. + +@example + chgrp mail movemail + chmod 2555 movemail +@end example + + +@node 20. Printing, 21. Gnuserv, 19. Mail; VM; GNUS; BBDB; and related, top +@chapter 20. Printing + +@menu +* 20.1.:: 20.1. Font-lock looks nice. How can I print (WYSIWYG) the highlighted document? +* 20.2.:: 20.2. My printer is a Postscript printer and @code{lpr} only works for Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x lpr-buffer} to work? +@end menu + + +@node 20.1. +@section 20.1. Font-lock looks nice. How can I print (WYSIWYG) the highlighted document? + +The package ps-print.el, which is now included with XEmacs, provides the +ability to do this. It contains complete instructions on its use: + +@example +<xemacs_src_root>/lisp/packages/ps-print.el +@end example + + +@node 20.2. +@section 20.2. My printer is a Postscript printer and @code{lpr} only works for Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x lpr-buffer} to work? + +@example +(setq lpr-command "@var{Command to print text files}") +@end example + +Please don't forget to replace @var{Command to print text files} with the +actual command (@samp{enscript}, @samp{nenscript}, etc.)! + + + +@node 21. Gnuserv, 22. Miscellaneous, 20. Printing, top +@chapter 21. Gnuserv + +@menu +* 21.1.:: 21.1. How do I disable gnuserv from opening a new frame? +* 21.2.:: 21.2. What do I do to start the gnuserv server so that each subseqeuent XEmacs is a client? +@end menu + + +@node 21.1. +@section 21.1. How do I disable gnuserv from opening a new frame? + +If you set the gnuserv-screen variable to the frame that should be +used to display buffers that are pulled up, a new frame will not be +created. For example, you could put + +@example +(setq gnuserv-screen (selected-frame)) +@end example + +early on in your @file{.emacs}, to ensure that the first frame created is +the one used for your gnuserv buffers. + + +@node 21.2. +@section 21.2. What do I do to start the gnuserv server so that each subseqeuent XEmacs is a client? + +Put the following in your @file{.emacs} file to start the server: + +@example +(gnuserv-start) +@end example + +Start your first XEmacs as usual. After that, you can do + +@example +gnuclient randomfilename +@end example + +from the command line to get your existing XEmacs process to open a new +frame and visit randomfilename in that window. When you're done editing +randomfilename, hit @kbd{C-x #} to kill the buffer and get rid of the +frame. + + + +@node 22. Miscellaneous,, 21. Gnuserv, top +@chapter 22. Miscellaneous + +@menu +* 22.1.:: 22.1. How do I specify the paths that XEmacs uses for finding files? +* 22.2.:: 22.2. Why does edt emulation not work? +* 22.3.:: 22.3. How can I emulate VI and use it as my default mode? +* 22.4.:: 22.4. Is there some way to get the behavior so that if the current buffer has a file associated with it, the current buffer will use that files name else use the buffer name? +* 22.5.:: 22.5. I have no idea where this is coming from, but ever since I moved from 19.9 to 19.13 I have started seeing that all of my buffers will get a minor mode called @samp{Omit}. I have no idea how it got there nor do I know what it does. What is it? +* 22.6.:: 22.6. How do I turn off the sound? +* 22.7.:: 22.7. Can I have the end of the buffer delimited in some way? Say, with: [END] ? +* 22.8.:: 22.8. Can I insert today's date into buffer? +* 22.9.:: 22.9. Are only certain syntactic character classes available for abbrevs? I didn't see any restrictions in the info. +* 22.10.:: 22.10. Filladapt used to work after I loaded it. Now in 19.13 it doesn't. What gives? +@end menu + + +@node 22.1. +@section 22.1. How do I specify the paths that XEmacs uses for finding files? + +You can specify what paths to use by using a number of different flags +when running configure. See the section MAKE VARIABLES in the top-level +file INSTALL in the XEmacs distribution for a listing of those flags. + +Most of the time, however, the simplest fix is: DO NOT specify paths as +you might for FSF GNU Emacs. XEmacs can generally determine the +necessary paths dynamically at run time. The only path that generally +needs to be specified is the root directory to install into. That can +be specified by passing the @code{--prefix} flag to configure. For a +description of the XEmacs install tree, please consult the NEWS file. + + +@node 22.2. +@section 22.2. Why does edt emulation not work? + +We don't know, but you can use tpu-edt emulation instead, which works fine +and is a little fancier than the standard edt emulation. To do this, add +the following line to your @file{.emacs}: + +@example +(load "tpu-edt") +@end example + +If you don't want it to replace Ctrl-h with edt-style help menu add this as +well: + +@example +(global-set-key '(control h) 'help-for-help) +@end example + + +@node 22.3. +@section 22.3. How can I emulate VI and use it as my default mode? + +Our recommended VI emulator is viper. To put the current buffer into +viper-mode, use the command: + +@example +M-x viper +@end example + +To make viper-mode the default, add the following lines to your @file{.emacs}: + +@example +(load-library "viper") +(setq term-setup-hook 'viper) +(setq find-file-hooks 'viper) +(setq find-file-not-found-hooks 'viper) +@end example + + +@node 22.4. +@section 22.4. Is there some way to get the behavior so that if the current buffer has a file associated with it, the current buffer will use that files name else use the buffer name? + +Just set frame-title-format from find-file-hooks. Alternatively, look at +the answer to question 15.2. + +In addition, one could set modeline-format. + + +@node 22.5. +@section 22.5. I have no idea where this is coming from, but ever since I moved from 19.9 to 19.13 I have started seeing that all of my buffers will get a minor mode called @samp{Omit}. I have no idea how it got there nor do I know what it does. What is it? + +It's part of dired. In dired, you can type M-o to get Omit mode and that will +ignore uninteresting files (checkpoint files and backups, for example). You +get Omit in the modeline everywhere because the variable `dired-omit-files-p' +is globally set to some non-nil value. If you want this functionality, it's +probably best to use a hook: + +@example +(add-hook 'dired-after-readin-hook '(lambda () (dired-omit-toggle))) +@end example + +Alternatively, since it seems odd to toggle the omit +state with every readin, since readin can happen many times in a Dired +buffer, you can try this hook to correct the "Omit" problem: + +@example +(add-hook 'dired-mode-hook + (function (lambda () + ;; `dired-omit-files-p' is made buffer-local by "dired-x.el", but + ;; maybe not soon enough. + (make-local-variable 'dired-omit-files-p) + (setq dired-omit-files-p t)))) +@end example + +This is only run once, when the Dired buffer is created. + + +@node 22.6. +@section 22.6. How do I turn off the sound? + +Add the following line to your @file{.emacs} file: + +@example +(setq bell-volume 0) +(setq sound-alist nil) +@end example + + +@node 22.7. +@section 22.7. Can I have the end of the buffer delimited in some way? Say, with: [END] ? + +@example +(make-annotation "[END]" (point-max) 'text (current-buffer)) +@end example + +Note that you might want to put this in a hook. + +You might also need: + +@example +(require 'annotations) +@end example + +since @code{make-annotation} is not defined by default. + + +@node 22.8. +@section 22.8. Can I insert today's date into buffer? + +Use this lisp in a function: + +@example +(insert (current-time-string)) +@end example + + +@node 22.9. +@section 22.9. Are only certain syntactic character classes available for abbrevs? I didn't see any restrictions in the info. + +Yes, abbrevs only expand word-syntax strings. So, in c-mode if you +wanted to expand something to @samp{define }, you would be able to +expand @samp{xd} but not @samp{#d}. + + +@node 22.10. +@section 22.10. Filladapt used to work after I loaded it. Now in 19.13 it doesn't. What gives? + +Filladapt 2.x is included in 19.13+. In it filladapt is now a minor +mode and minor modes are traditionally off by default. The following +added to your .emacs will turn it on for all buffers: + +@example +(setq-default filladapt-mode t) +@end example + +Use @code{turn-on-filladapt-mode} to turn Filladapt on in particular +major modes, like this: + +@example +(add-hook 'text-mode-hook 'turn-on-filladapt-mode) +@end example + + +@page +@contents +@bye