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

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents 05472e90ae02
children 6a378aca36af
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 \input texinfo.tex @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @c %**start of header
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
3 @setfilename ../info/xemacs-faq.info
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @settitle Frequently asked questions about XEmacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @setchapternewpage off
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 @c %**end of header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 @title XEmacs FAQ
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 @subtitle Frequently asked questions about XEmacs
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
11 @subtitle Last Modified: 1995/08/29
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 @sp 1
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
13 @author Anthony Rossini <arossini@@biostats.hmc.psu.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
14 @author Ben Wing <wing@@netcom.com>
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 @author Chuck Thompson <cthomp@@cs.uiuc.edu>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 @end titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
19 @c Some of this stuff needs to go in the HTML version which means it
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
20 @c needs to be put outside of the ifinfo statement.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
21
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
22 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
23 @node top, 1. Introductory Questions, (dir), (dir)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
24 @unnumbered XEmacs FAQ
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
25
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
26 Version: 1995/08/29
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
27
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
28 Current-Editor: Chuck Thompson <cthomp@@cs.uiuc.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
29
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
30 Copying Status: Freely Redistributable. I take no liability for the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
31 correctness and safety of any procedures or advice given
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
32 here. This FAQ is distributed in the hope that it will
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
33 be useful, but WITHOUT ANY WARRANTY; without even the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
34 implied warranty of MERCHANTABILITY or FITNESS FOR A
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
35 PARTICULAR PURPOSE.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
36
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
37 This is a list of frequently asked questions for XEmacs users and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
38 maintainers.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
39
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
40 You can obtain the latest version of this file by anonymous FTP from
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
41 site @file{ftp.cs.uiuc.edu:/pub/xemacs/faq/xemacs-faq.FORMAT} where FORMAT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
42 is text, texinfo (the master copy), postscript, dvi, html, info. Note that
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
43 the html version has 2 files.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
44
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
45 Thanks to the many who contributed, especially to JWZ <jwz@@netscape.com> for
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
46 starting this whole wonderful mess... Special thanks to Tim Geisler
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
47 <tmgeisle@@faui80.informatik.uni-erlangen.de> for the initial texinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
48 version and to Giacomo Boffi <sboff@@hp735.stru.polimi.it> for the initial
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
49 HTML version. Other contributors (many left out, unfortunately, due to an
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
50 old mail-purge) include:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
51 @itemize @bullet
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
52 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
53 Juergen Nickelsen <nickel@@prz.tu-berlin.de>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
54 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
55 Evelyn Ginsparg <ginsparg@@adra.com>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
56 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
57 d3h554@@foghorn.pnl.gov
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
58 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
59 Marty Hall <hall@@aplcenmp.apl.jhu.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
60 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
61 Richard Caley <rjc@@cogsci.ed.ac.uk>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
62 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
63 fcg@@philabs.Philips.COM
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
64 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
65 Stig <stig@@hackvan.com>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
66 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
67 Arup Mukherjee <arup+@@cmu.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
68 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
69 Kevin R. Powell <powell@@csl.ncsa.uiuc.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
70 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
71 Eric Eide <eeide@@cs.utah.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
72 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
73 William G. Dubuque <wgd@@martigny.ai.mit.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
74 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
75 Chris Flatters <cflatter@@nrao.edu>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
76 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
77 John A. Turner <turner@@lanl.gov>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
78 @end itemize
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
79
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
80 @end ifinfo
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 @menu
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
83 * top:: XEmacs FAQ
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
84 * 1. Introductory Questions::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
85 * 2. Compiling XEmacs::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
86 * 3. Problems running XEmacs / weird messages::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
87 * 4. Customization -- Emacs Lisp and the .emacs file::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
88 * 5. Customization -- X resources::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
89 * 6. Changing textual fonts and colors::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
90 * 7. The modeline::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
91 * 8. The keyboard::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
92 * 9. The cursor::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
93 * 10. The mouse; cutting and pasting::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
94 * 11. Highlighting::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
95 * 12. The menubar and toolbar::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
96 * 13. Scrollbars::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
97 * 14. Frame Geometry::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
98 * 15. Window/icon title; window manager problems::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
99 * 16. Editing source code (C mode; Lisp mode; etc.)::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
100 * 17. Text mode::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
101 * 18. Shell mode::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
102 * 19. Mail; VM; GNUS; BBDB; and related::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
103 * 20. Printing::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
104 * 21. Gnuserv::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
105 * 22. Miscellaneous::.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
106 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
107
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
108
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
109
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
110 @node 1. Introductory Questions, 2. Compiling XEmacs, top, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
111 @chapter 1. Introductory Questions
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
112
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
113 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
114 * 1.1.:: 1.1. Preface
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
115 * 1.2.:: 1.2. What is XEmacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
116 * 1.3.:: 1.3. What is the current version of XEmacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
117 * 1.4.:: 1.4. Where can I find it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
118 * 1.5.:: 1.5. Why another version of Emacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
119 * 1.6.:: 1.6. What do @kbd{M-x}, GNU, etc. mean?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
120 * 1.7.:: 1.7. Where can I get help for using XEmacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
121 * 1.8.:: 1.8. Where is the mailing list archived?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
122 * 1.9.:: 1.9. What is InfoDock, how does it relate to XEmacs, and how can I obtain it?
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
125
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
126 @node 1.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
127 @section 1.1. Preface
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
128
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
129 This is the introduction to a list of frequently asked questions (FAQ's)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
130 about XEmacs with answers. This article contains a listing of the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
131 questions; subsequent articles contain the questions and answers.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
132
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
133 This is not a substitute for general Emacs questions, and actually
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
134 includes nothing that might help a novice learn to use Emacs or XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
135 For that, check out the regular Emacs lists, the tutorial inside of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
136 XEmacs (look on the Help menu), or the O'Reilly book @cite{Learning GNU
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
137 Emacs}. This FAQ focuses on specific issues regarding XEmacs. If you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
138 don't find the answer here, perhaps it really is a more general
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
139 question, and check the GNU Emacs FAQ for more information, as well.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
140
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
141 The FAQ list is posted to reduce the noise level in the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
142 @samp{comp.emacs.xemacs} newsgroup which results from the repetition of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
143 frequently asked questions, wrong answers to these questions,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
144 corrections to the wrong answers, corrections to the corrections,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
145 debate, name calling, etc. Also, it serves as a repository of the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
146 canonical ``best'' answers to these questions. However, if you know a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
147 better answer or even a slight change that improves an answer, please
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
148 tell me!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
149
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
150 If you know the answer of a question is in the FAQ list, please reply to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
151 the question by e-mail instead of posting. Help reduce noise!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
152
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
153 Please suggest new questions, answers, wording changes, deletions, etc.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
154 The most helpful form for suggestions is a context diff (i.e. the output
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
155 of @samp{diff -c}). Include @samp{FAQ} in the subject of messages sent
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
156 to us about the FAQ list.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
157
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
158 Please do not send questions to us just because you do not want to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
159 disturb a lot of people and you think we would know the answer. We do
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
160 not have time to answer questions individually and keep up with
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
161 everything else we have to get done.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
162
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
163 Many thanks need to go to all contributors on the old alt.lucid-emacs.*
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
164 and current comp.emacs.xemacs groups. This would never have been
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
165 collected without you.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
166
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
167 Any directories given are usually in reference to the base directory
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
168 formed by unpacking XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
169
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
170
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
171 @node 1.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
172 @section 1.2. What is XEmacs?
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 An alternative to GNU Emacs, originally based on an early alpha version
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
175 of FSF's version 19. XEmacs was known as Lucid Emacs through version
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
176 19.10. Almost all features of GNU Emacs are supported in XEmacs (the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
177 ones that aren't supported are generally implemented in a better way in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
178 XEmacs). The maintainers of XEmacs actively track changes to GNU Emacs
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
179 while also working to add new features never before seen in Emacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
180
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
181
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
182 @node 1.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
183 @section 1.3. What is the current version of XEmacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
184
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
185 The current version is 19.13, released on September 1, 1995.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
186
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
187
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
188 @node 1.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
189 @section 1.4. Where can I find it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
190
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
191 The canonical source and binaries is found via anonymous FTP at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
192 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
193 @file{ftp.cs.uiuc.edu:/pub/xemacs}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
194 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
195 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
196 <A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/">ftp.cs.uiuc.edu:/pub/xemacs/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
197 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
198
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
199 @node 1.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
200 @section 1.5. Why Another Version of Emacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
201
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
202 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
203 For a detailed description of the differences between GNU Emacs and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
204 XEmacs, and a detailed history of XEmacs, see the file @file{etc/NEWS}
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
205 in the source distribution. However, here is a list of some of the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
206 reasons why we think you might consider using it:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
207 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
208 @ifhtml
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 For a detailed description of the differences between GNU Emacs and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 XEmacs and a detailed history of XEmacs, check out the
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
211 <A HREF="http://xemacs.cs.uiuc.edu/NEWS.html/">NEWS</A> file. However,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
212 here is a list of some of the reasons why we think you might consider
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
213 using it:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
214 @end ifhtml
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
218 It looks nicer
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 The XEmacs maintainers are generally more receptive to suggestions than
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
221 the GNU Emacs maintainers
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
223 Many more bundled packages than GNU Emacs, all properly integrated with
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
224 XEmacs
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
226 Binaries are available for many common operating systems
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
228 Face support on TTY's
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
230 A built-in toolbar
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
232 Better Motif compliance
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
234 Some internationalization support for European languages. Full MULE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
235 (Multi-Lingual EMacs) support is being actively worked on.
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
236 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
237 Variable-width fonts
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
239 Variable-height lines
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
241 Marginal annotations
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
243 ToolTalk support
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 XEmacs can be used as an Xt widget, and can be embedded within another
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
246 application
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
248 Horizontal and vertical scrollbars (using real toolkit scrollbars)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 Better APIs (and performance) for attaching fonts, colors, and other
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
251 properties to text
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
253 The ability to embed arbitrary graphics in a buffer
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
255 Completely compatible (at the C level) with the Xt-based toolkits
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
258
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
259 @node 1.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
260 @section 1.6. What do @kbd{M-x}, GNU, etc. mean?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
261
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
262 This is really a general Emacs question, but a table of some common
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
263 terms/acronyms is provided here for your convenience.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
264 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
265 See the @cite{GNU Emacs FAQ} for a more complete list.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
266 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
267 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
268 See the <A HREF="http://www.eecs.nwu.edu/emacs/faq">GNU Emacs FAQ</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
269 for a more complete list.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
270 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
271
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
272 @table @samp
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
273 @item BLAT FOOP
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
274 Historical XEmacs error message
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
275 @item C-x
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
276 @dfn{C-x} means that the @key{Control} key and the @key{X} key should be
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
277 pressed together, like when you use the @key{Shift} key.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
278 @item E-Lisp
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
279 Same as @dfn{Emacs-Lisp}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
280 @item Emacs-Lisp
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
281 The dialect of Lisp supported by Emacs and XEmacs. You use this to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
282 customize XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
283 @item FAQ
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
284 Frequently asked question(s).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
285 @item FSF
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
286 The Free Software Foundation.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
287 @item GNU
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
288 @dfn{GNU} refers to products written by the Free Software Foundation.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
289 @item JWZ
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
290 Jamie Zawinski <jwz@@netscape.com>, the former maintainer of Lucid Emacs
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
291 (which XEmacs evolved from).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
292 @item M-x
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
293 @dfn{M-x} means that the @key{Meta} key and the @key{X} key should be
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
294 pressed together, like when you use the @key{Shift} key. Sometimes
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
295 the @key{Meta} key is labelled @samp{Alt} or with a diamond. Some
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
296 keyboards don't have a @key{Meta} key at all; then you can get the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
297 equivalent by typing the @key{Esc} key followed by the @key{X} key.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
298 @item RMS
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
299 Richard Stallman <rms@@gnu.ai.mit.edu>, the author of GNU Emacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
300 @item VI
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
301 An editor used by those heretics that don't subscribe to the Emacs religion.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
302 @end table
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
303
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
304
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
305 @node 1.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
306 @section 1.7. Where can I get help for using XEmacs?
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 Probably the easiest way, if everything is installed, is to use info, by
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
309 pressing @kbd{C-h i}, or selecting @samp{Emacs Info} from the Help Menu.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 Also, @kbd{M-x apropos} will look for commands for you.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 Try reading this FAQ, examining the regular GNU Emacs FAQ (which can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 found with the Emacs 19 distribution) as well as at
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
314 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
315 @file{http://www.eecs.nwu.edu/emacs/faq/} and reading the Usenet group
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
316 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
317 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
318 <A HREF="http://www.eecs.nwu.edu/emacs/faq/">http://www.eecs.nwu.edu/emacs/faq/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
319 and reading the Usenet group
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
320 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
321 @samp{comp.emacs.xemacs}. If that does not help, try posting your
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
322 question to @samp{comp.emacs.xemacs}. If you cannot post or read
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
323 Usenet news, there is a corresponding mailing list which is available.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
324 It can be subscribed to by sending mail to
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
325
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
326 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
327 xemacs-request@@cs.uiuc.edu
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
328 @end example
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
329
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
330 for subscription information and
54
05472e90ae02 Import from CVS: tag r19-16-pre2
cvs
parents: 46
diff changeset
331
05472e90ae02 Import from CVS: tag r19-16-pre2
cvs
parents: 46
diff changeset
332 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
333 xemacs@@cs.uiuc.edu
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
334 @end example
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
335
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
336 to send messages to the list.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
337
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
338 To cancel a subscription, YOU MUST use the xemacs-request address.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
339
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
340 Bug reports should be sent to the same locations.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
341
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
342
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
343 @node 1.8.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
344 @section 1.8. Where is the mailing list archived?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
345
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
346 The mailing list is archived in the directory
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
347 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
348 @file{ftp.cs.uiuc.edu:/pub/xemacs/mlists/}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
349 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
350 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
351 <A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/mlists/">ftp.cs.uiuc.edu:/pub/xemacs/mlists/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
352 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
353
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
354
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
355 @node 1.9.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
356 @section 1.9. What is InfoDock, how does it relate to XEmacs, and how can I obtain it?
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 InfoDock is an integrated productivity toolset, mainly aimed at
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
359 technical people. It is built atop the XEmacs variant of GNU Emacs and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
360 so has all of the power of Emacs, but with an easier to use and more
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
361 comprehensive menu-based user interface. The next section describes how
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
362 it differs from XEmacs and GNU Emacs from the Free Software Foundation.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
363
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
364 The quickest way to get a feel for InfoDock is to browse the InfoDock
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
365 Manual, especially the section on tools. This will help you decide
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
366 whether or not to download InfoDock for local use. This manual is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
367 available in gzipped Postscript form, alongside the InfoDock
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
368 distribution. (See below for FTP retrieval instructions.)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370 InfoDock is aimed at people who want a free, turn-key productivity
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 environment. Although InfoDock is customizable, it is not intended for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372 people who like basic versions of Emacs which need to be customized
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373 extensively for local use; standard Emacs distributions are better for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374 such uses. InfoDock is for those people who want a complete,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 pre-customized environment in one package, which they need not touch
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376 more than once or twice a year to update to new revisions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
378 InfoDock is pre-built for SPARCstations running SunOS V4 or V5
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
379 (Solaris). It is intended for use on a color display, although most
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
380 features will work on monochrome monitors. Simply unpack InfoDock
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
381 according to the instructions in the ID-INSTALL file and you are ready
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
382 to run.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
383
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
384 The InfoDock Manual is concise, yet sufficient as a user guide for users
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
385 who have never used an Emacs-type editor before. For users who are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
386 already familiar with Emacs, it supplements the information in the GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
387 Emacs Manual.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
388
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
389 InfoDock menus are much more extensive and more mature than standard
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390 Emacs menus. Each menu offers a @samp{Manual} item which displays
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 documentation associated with the menu's functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
393 Three types of menubars are provided:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 An extensive menubar providing access to global InfoDock commands.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398 Mode-specific menubars tailored to the current major mode.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400 A simple menubar for basic editing to help novices get started with InfoDock.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403 Most modes also include mode-specific popup menus. Additionally, region and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404 rectangle popup menus are included.
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
405 @itemize @bullet
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
406 @item
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
407 @samp{Hyperbole}, the everyday information manager, is a core part of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
408 InfoDock. This provides context-sensitive mouse keys, a rolodex-type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
409 contact manager, programmable hypertext buttons, and an autonumbered
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
410 outliner with embedded hyperlink anchors.
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
411 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
412 @samp{PIEmail}, the prototype Personalized Information Environment Mail
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
413 Tool, is included.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
414 @item
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
415 The @samp{OO-Browser}, a multi-language object-oriented code browser, is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
416 standard part of InfoDock.
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
417 @end itemize
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
418
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
419 InfoDock saves a more extensive set of user options than other Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
420 versions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
421
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
422 InfoDock inserts a useful file header in many file types, showing the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
423 author, summary, and last modification time of each file. A summary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
424 program can then be used to summarize all of the files in a directory,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
425 for easy MANIFEST file creation.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
426
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
427 Your working set of buffers is automatically saved and restored (if you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
428 answer yes to a prompt) between InfoDock sessions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
429
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
430 Refined color choices for code highlighting are provided for both dark and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
431 light background display frames.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
432
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
433 The @kbd{C-z} key prefix performs frame-based commands which parallel the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
434 @kbd{C-x} key prefix for window-based commands.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
435
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
436 The Smart Menu system is included for producing command menus on dumb
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
437 terminals. (InfoDock does not yet run on dumb terminals but will in 1995.)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
438
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
439 Lisp libraries are better categorized according to function.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
440
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
441 Extensions and improvements to many areas of Emacs are included, such as:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
442 paragraph filling, mail reading with Rmail, shell handling, outlining, code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
443 highlighting and browsing, and man page browsing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
444
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
445 InfoDock questions, answers and discussion should go to the mail list
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
446 @samp{infodock@@hub.ucsb.edu}. Use
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
447 @samp{infodock-request@@hub.ucsb.edu} to be added or removed from the
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
448 list. Always include your InfoDock version number when sending help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
449 requests.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
450
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
451 InfoDock is available across the Internet via anonymous FTP. To get
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
452 it, first move to a directory into which you want the InfoDock archive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
453 files placed. We will call this <DIST-DIR>.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
454
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
455 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
456 cd <DIST-DIR>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
457 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
458
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
459 FTP to ftp.cs.uiuc.edu (Internet Host ID = 128.174.252.1):
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
460
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
461 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
462 prompt> ftp ftp.cs.uiuc.edu
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
463 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
464
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
465 Login as @samp{anonymous} with your own <user-id>@@<site-name> as a password.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
466
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
467 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
468 Name (ftp.cs.uiuc.edu): anonymous
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
469 331 Guest login ok, send your complete e-mail address as password.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
470 Password: -<your-user-id@@your-domain>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
471 230 Guest login ok, access restrictions apply.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
472 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
473
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
474 Move to the location of the InfoDock archives:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
475
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
476 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
477 ftp> cd pub/xemacs/infodock
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
478 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
479
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
480 Set your transfer mode to binary:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
481
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
482 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
483 ftp> bin
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
484 200 Type set to I.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
485 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
486
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
487 Turn off prompting:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
488
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
489 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
490 ftp> prompt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
491 Interactive mode off.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
492 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
493
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
494 Retrieve the InfoDock archives that you want, either by using a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
495 @samp{get <file>} for each file you want or by using the following to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
496 get a complete distribution, including all binaries:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
497
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
498 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
499 ftp> mget ID-INSTALL
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
500 ftp> mget id-*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
501 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
502
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
503 Close the FTP connection:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
504
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
505 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
506 ftp> quit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
507 221 Goodbye.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
508 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
509
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
510 Read the @file{ID-INSTALL} file which you just retrieved for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
511 step-by-step installation instructions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
512
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
513
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
514
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
515 @node 2. Compiling XEmacs, 3. Problems running XEmacs / weird messages, 1. Introductory Questions, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
516 @chapter 2. Compiling XEmacs
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
517
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
518 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
519 * 2.1.:: 2.1. What is the best way to compile XEmacs with the netaudio system, since I have got the netaudio system compiled but installed at a weird place, I am not root. Also in the READMEs it does not say anything about compiling with the audioserver?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
520 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
521
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
522
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
523 @node 2.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
524 @section 2.1. What is the best way to compile XEmacs with the netaudio system, since I have got the netaudio system compiled but installed at a weird place, I am not root. Also in the READMEs it does not say anything about compiling with the audioserver?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
525
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
526 You should only need to add some stuff to the configure command line. To tell
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
527 it to compile in netaudio support:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
528
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
529 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
530 --with-sound=both
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
531 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
532
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
533 (Or @samp{--with-sound=nas} if you don't want native sound support for
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
534 some reason.) To tell it where to find the netaudio includes and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
535 libraries:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
536
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
537 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
538 --site-libraries=WHATEVER
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
539 --site-includes=WHATEVER
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
540 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
541
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
542 Then (fingers crossed) it should compile and it will use netaudio if you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
543 have a server running corresponding to the X server. The netaudio server
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
544 has to be there when XEmacs starts. If the netaudio server goes away and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
545 another is run, XEmacs should cope (fingers crossed, error handling in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
546 netaudio isn't perfect).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
547
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
548 BTW, netaudio has been renamed as it has a name clash with something
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
549 else, so if you see references to NAS or Network Audio System, it's the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
550 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
551 same thing. It also might be found at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
552
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
553 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
554 ftp.x.org:/contrib/audio/nas/
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
555 ftp.ncd.com:/pub/ncd/technology/src/nas/
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
556 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
557 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
558 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
559 same thing. It also might be found at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
560 <A HREF="ftp://ftp.x.org/contrib/audio/nas/">ftp.x.org:/contrib/audio/nas/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
561 <A HREF="ftp://ftp.ncd.com:/pub/ncd/technology/src/nas/">ftp.ncd.com:/pub/ncd/technology/src/nas/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
562 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
563
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
564 @node 3. Problems running XEmacs / weird messages, 4. Customization -- Emacs Lisp and the .emacs file, 2. Compiling XEmacs, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
565 @chapter 3. Problems running XEmacs / weird messages
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
566
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
567 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
568 * 3.1.:: 3.1. Help! XEmacs just crashed on me!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
569 * 3.2.:: 3.2. When I try to use some particular option of some particular package, I get a cryptic error in the minibuffer.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
570 * 3.3.:: 3.3. I get tons of translation table syntax error messages during startup. How do I get rid of them?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
571 * 3.4.:: 3.4. How can I avoid the startup warnings about deducing proper fonts?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
572 * 3.5.:: 3.5. Help! I can not get XEmacs to display on my Envizex X-terminal!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
573 * 3.6.:: 3.6. Why do I get weird messages about giftoppm and ppmdither not being found?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
574 * 3.7.:: 3.7. How can I avoid those messages about deleting excess backup files?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
575 * 3.8.:: 3.8. Help! XEmacs just locked up my X server on my Linux box!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
576 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
577
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
578
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
579 @node 3.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
580 @section 3.1. Help! XEmacs just crashed on me!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
581
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
582 First of all, don't panic. Whenever XEmacs crashes, it tries extremely
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
583 hard to auto-save all of your files before dying. (The main time that
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
584 this will not happen is if the machine physically lost power or if you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
585 killed the XEmacs process using @samp{kill -9}.) The next time you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
586 try to edit those files, you will be informed that a more recent
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
587 auto-save file exists. You can use @kbd{M-x recover-file} to retrieve
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
588 the auto-saved version of the file.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
589
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
590 Now, XEmacs is not perfect, and there may occasionally be times, or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
591 particular sequences of actions, that cause it to crash. If you can
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
592 come up with a reproducible way of doing this (or even if you have a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
593 pretty good memory of exactly what you were doing at the time), the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
594 maintainers would be very interested in knowing about it. Post a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
595 message to @samp{comp.emacs.xemacs} or send mail to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
596 @samp{xemacs@@cs.uiuc.edu}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
597
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
598 If at all possible, include a stack backtrace of the core dump that was
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
599 produced. This shows where exactly things went wrong, and makes it much
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
600 easier to diagnose problems. To do this, you need to locate the core
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
601 file (it's called @samp{core}, and is usually sitting in the directory
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
602 that you started XEmacs from, or your home directory if that other
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
603 directory was not writable). Then, go to that directory and execute a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
604 command like
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
605
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
606 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
607 gdb `which xemacs` core
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
608 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
609
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
610 and then issue the command @samp{where} to get the stack backtrace.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
611 (You might have to use @samp{dbx} or some similar debugger in place
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
612 of @samp{gdb}. If you don't have any such debugger available,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
613 complain to your system administrator.)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
614
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
615 It's possible that a core file didn't get produced, in which case
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
616 you're out of luck. Go complain to your system administrator and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
617 tell him not to disable core files by default. (If you explicitly
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
618 disabled core files, then double shame on you!)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
619
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
620
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
621 @node 3.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
622 @section 3.2. When I try to use some particular option of some particular package, I get a cryptic error in the minibuffer.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
623
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
624 If you can't figure out what's going on, try typing @kbd{ESC ESC} and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
625 issuing the command
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
626
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
627 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
628 (setq debug-on-error t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
629 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
630
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
631 and then try and make the error happen again. This will give you a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
632 backtrace that may be enlightening. If not, try reading farther down in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
633 this FAQ; if that fails, you could try posting to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
634 @samp{comp.emacs.xemacs} (making sure to include the backtrace) and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
635 someone may be able to help.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
636
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
637
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
638 @node 3.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
639 @section 3.3. I get tons of translation table syntax error messages during startup. How do I get rid of them?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
640
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
641 There are two causes of this problem. The first usually only strikes
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
642 people using the prebuilt binaries. The culprit in both cases is the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
643 file @file{XKeysymDB}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
644 @itemize @bullet
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
645 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
646 The binary cannot find the XKeysymDB file. The location is hardcoded at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
647 compile time so if the system the binary was built on puts it a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
648 different place than your system does, you have problems. To fix, set
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
649 the environment variable @samp{XKEYSYMDB} to the location of the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
650 XKeysymDB file on your system or to the location of the one included
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
651 with XEmacs which should be at:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
652
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
653 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
654 <xemacs_root_directory>/lib/xemacs-19.13/etc/XKeysymDB
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
655 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
656
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
657 @item
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
658 The binary is finding the XKeysymDB but it is out-of-date on your system
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
659 and does not contain the necessary lines. Either ask your system
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
660 administrator to replace it with the one which comes with XEmacs (which
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
661 is the stock R6 version and is backwards compatible) or set your
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
662 @samp{XKEYSYMDB} variable to the location of XEmacs's described above.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
663 @end itemize
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
664
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
665
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
666 @node 3.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
667 @section 3.4. How can I avoid the startup warnings about deducing proper fonts?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
668
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
669 This is highly dependent on your installation, but try with the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
670 following font as your base font for XEmacs and see what it does:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
671
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
672 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
673 -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
674 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
675
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
676 More precisely, do the following in your resource file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
677
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
678 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
679 Emacs.default.attributeFont: -adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
680 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
681
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
682
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
683 @node 3.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
684 @section 3.5. Help! I can not get XEmacs to display on my Envizex X-terminal!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
685
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
686 Try setting the DISPLAY variable using the numeric IP address of the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
687 host you are running XEmacs from.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
688
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
689
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
690 @node 3.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
691 @section 3.6. Why do I get weird messages about giftoppm and ppmdither not being found?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
692
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
693 Because they are not. You are probably trying to read some HTML files,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
694 or using W3-mode as your Web client. To display inline pictures, this
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
695 requires the above programs (which can be found in the netpbm package or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
696 its older version, pbmplus). The netpbm package can be found at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
697 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
698 @samp{ftp.x.org}, or any of its mirror sites. It can also be found at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
699 @samp{ftp.cs.uiuc.edu:/pub/xemacs/aux}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
700 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
701 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
702 <A HREF="ftp://ftp.x.org/contrib/utilities/">ftp.x.org:/contrib/utilities/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
703 . It can also be found at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
704 <A HREF="ftp://ftp.cs.uiuc.edu/pub/xemacs/aux/">ftp.cs.uiuc.edu:/pub/xemacs/aux/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
705 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
706
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
707
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
708 @node 3.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
709 @section 3.7. How can I avoid those messages about deleting excess backup files?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
710
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
711
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
712 Try the following Emacs-Lisp:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
713
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
714 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
715 (setq version-control t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
716 (setq kept-old-versions 0)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
717 (setq kept-new-versions 8)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
718 (if (string-match "XEmacs\\|Lucid" emacs-version)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
719 (setq trim-versions-without-asking t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
720 (setq delete-old-versions t))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
721 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
722
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
723 @node 3.8.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
724 @section 3.8. Help! XEmacs just locked up my X server on my Linux box!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
725
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
726 There have been several reports of the X server locking up under Linux.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
727 In all reported cases removing speedo and scaled fonts from the font
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
728 path corrected the problem. This can be done with the command 'xset'.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
729
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
730 It is possible that using a font server may also solve the problem.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
731
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
732
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
733
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
734 @node 4. Customization -- Emacs Lisp and the .emacs file, 5. Customization -- X resources, 3. Problems running XEmacs / weird messages, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
735 @chapter 4. Customization -- Emacs Lisp and the .emacs file
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
736
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
737 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
738 * 4.1.:: 4.1. How can @file{.emacs} determine which of the family of emacsen I am using?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
739 * 4.2.:: 4.2. How can I detect a color display?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
740 * 4.3.:: 4.3. How can I evaluate emacs-lisp expressions without switching to the *scratch* buffer?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
741 * 4.4.:: 4.4. If you put (setq tab-width 6) in your @file{.emacs} file it does not work! Is there a reason for this. If you do it at the EVAL prompt it works fine!! How strange.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
742 * 4.5.:: 4.5. How can I add directories to the load-path?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
743 * 4.6.:: 4.6. How to check if a lisp function is defined or not?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
744 * 4.7.:: 4.7. Can I force the output of (list-faces) to a buffer other than the minibuffer since it is too wide to fit?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
745 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
746
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
747
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
748 @node 4.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
749 @section 4.1. How can @file{.emacs} determine which of the family of Emacsen I am using?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
750
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
751 To determine if you are currently running GNU Emacs 18, GNU Emacs 19,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
752 XEmacs 19, or Epoch, and use appropriate code, check out the example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
753 given in @file{etc/sample.emacs}. There are other nifty things in there
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
754 as well! Alternatively, there is a package, @file{emacs-vers.el},
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
755 available at an Emacs-Lisp archive near you; try searching
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
756
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
757 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
758 archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/misc/
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
759 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
760
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
761
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
762 @node 4.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
763 @section 4.2. How can I detect a color display?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
764
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
765 You can test the return value of the function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
766 @code{(device-class)}, as in:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
767
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
768 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
769 (if (eq (device-class) 'color)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
770 (progn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
771 (set-face-foreground 'font-lock-comment-face "Grey")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
772 (set-face-foreground 'font-lock-string-face "Red")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
773 ....
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
774 ))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
775 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
776
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
777
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
778 @node 4.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
779 @section 4.3. How can I evaluate Emacs-Lisp expressions without switching to the *scratch* buffer?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
780
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
781 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
782 (put 'eval-expression 'disabled nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
783 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
784
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
785 This sets it so that hitting @kbd{ESC ESC} lets you type a single
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
786 expression to be evaluated. This line can also be put into your
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
787 @file{.emacs}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
788
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
789
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
790 @node 4.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
791 @section 4.4. If you put (setq tab-width 6) in your @file{.emacs} file it does not work! Is there a reason for this. If you do it at the EVAL prompt it works fine!! How strange.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
792
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
793 Use setq-default, since tab-width is all-buffer-local.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
794
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
795
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
796 @node 4.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
797 @section 4.5. How can I add directories to the load-path?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
798
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
799 Here are two ways to do that, one that puts your directories at the front of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
800 the load-path, the other at the end:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
801
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
802 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
803 ;;; Add things at the beginning of the load-path
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
804 (setq load-path (cons "bar" load-path))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
805 (setq load-path (cons "foo" load-path))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
806
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
807 ;;; Add things at the end
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
808 (setq load-path (append load-path '("foo" "bar")))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
809 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
810
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
811
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
812 @node 4.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
813 @section 4.6. How to check if a lisp function is defined or not?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
814
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
815 Use the following elisp:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
816
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
817 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
818 (fboundp 'foo)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
819 @end example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
820
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
821 It's always a mistake, under all circumstances, to test `emacs-version' or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
822 any similar variables, in case they are not bound, unless you do the above.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
823
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
824 Instead, use feature-tests, such as featurep or boundp or fboundp, or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
825 even simple behavioural tests, eg
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
826 (defvar foo-old-losing-code? (condition-case nil (progn (losing-code t) nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
827 (wrong-number-of-arguments t)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
828
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
829 There is an incredible amount of broken code out there which could
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
830 work much better more often in more places if it did the above instead
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
831 of trying to divine its environment from the value of one variable.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
832
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
833
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
834 @node 4.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
835 @section 4.7. Can I force the output of (face-list) to a buffer other than the minibuffer since it is too wide to fit?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
836
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
837 Evaluate the expression in the "*scratch*" buffer with point on the rightmost
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
838 paren and typing @kbd{C-j}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
839
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
840
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
841
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
842 @node 5. Customization -- X resources, 6. Changing textual fonts and colors, 4. Customization -- Emacs Lisp and the .emacs file, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
843 @chapter 5. Customization -- X resources
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
844
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
845 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
846 * 5.1.:: 5.1. Where is a list of X resources?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
847 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
848
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
849
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
850 @node 5.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
851 @section 5.1. Where is a list of X resources?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
852
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
853 Search through the NEWS file for ``X Resources''. A fairly comprehensive list
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
854 is given after it.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
855
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
856 In addition, an app-defaults file is supplied, @file{etc/Emacs.ad},
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
857 listing the defaults. The file @file{etc/sample.Xdefaults} gives a set
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
858 of defaults that you might consider. It is essentially the same as
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
859 @file{etc/Emacs.ad} but some entries are slightly altered. Be careful
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
860 about installing the contents of this file into your @file{.Xdefaults}
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
861 (.Xresources) file if you use FSF GNU Emacs under X11 as well.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
862
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
863
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
864
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
865 @node 6. Changing textual fonts and colors, 7. The modeline, 5. Customization -- X resources, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
866 @chapter 6. Changing textual fonts and colors
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
867
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
868 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
869 * 6.1.:: 6.1. How do I set the text, menu and modeline fonts?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
870 * 6.2.:: 6.2. How can I set the background/foreground colors when highlighting a region?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
871 * 6.3.:: 6.3. How can I set the most commonly used color options from my @file{.emacs} instead of from my @file{.Xdefaults}?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
872 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
873
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
874
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
875 @node 6.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
876 @section 6.1. How do I set the text, menu and modeline fonts?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
877
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
878 Note that you should use @samp{Emacs.} and not @samp{Emacs*} when
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
879 setting face values.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
880
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
881 In @file{.Xdefaults}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
882
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
883 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
884 Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-*
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
885 Emacs*menubar*font: fixed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
886 Emacs.modeline.attributeFont: fixed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
887 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
888
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
889 This is confusing because modeline is a face, and can be found listed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
890 with all faces in the current mode by using M-x set-face-font (enter) ?.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
891 It uses the face specification of "attributeFont", while menubar is a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
892 normal X thing that uses the specification "font". With Motif it may be
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
893 necessary to use "fontList" instead of "font". (Please rewrite this if
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
894 you understand this better than me ... A general description of faces
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
895 would be very useful. I am just saying that menubar is a FAQ because
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
896 it's not a face and not listed.)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
897
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
898
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
899 @node 6.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
900 @section 6.2. How can I set the background/foreground colors when highlighting a region?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
901
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
902 You can change the face `zmacs-region' either in your @file{.Xdefaults}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
903
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
904 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
905 Emacs.zmacs-region.attributeForeground: firebrick
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
906 Emacs.zmacs-region.attributeBackground: lightseagreen
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
907 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
908
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
909 or in your @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
910
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
911 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
912 (set-face-background 'zmacs-region "red")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
913 (set-face-foreground 'zmacs-region "yellow")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
914 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
915
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
916
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
917 @node 6.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
918 @section 6.3. How can I set the most commonly used color options from my @file{.emacs} instead of from my @file{.Xdefaults}?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
919
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
920 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
921 (set-face-background 'default "bisque") ; frame background
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
922 (set-face-foreground 'default "black") ; normal text
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
923 (set-face-background 'zmacs-region "red") ; When selecting w/
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
924 ; mouse
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
925 (set-face-foreground 'zmacs-region "yellow")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
926 (set-face-font 'default "*courier-bold-r*120-100-100*")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
927 (set-face-background 'highlight "blue") ; Ie when selecting buffers
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
928 (set-face-foreground 'highlight "yellow")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
929 (set-face-background 'modeline "blue") ; Line at bottom of buffer
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
930 (set-face-foreground 'modeline "white")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
931 (set-face-font 'modeline "*bold-r-normal*140-100-100*")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
932 (set-face-background 'isearch "yellow") ; When highlighting while
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
933 ; searching
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
934 (set-face-foreground 'isearch "red")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
935 (setq x-pointer-foreground-color "black") ; Adds to bg color,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
936 ; so keep black
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
937 (setq x-pointer-background-color "blue") ; This is color you really
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
938 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
939 ; want ptr/crsr
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
940
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
941
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
942 @node 7. The modeline, 8. The keyboard, 6. Changing textual fonts and colors, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
943 @chapter 7. The modeline
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
944
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
945 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
946 * 7.1.:: 7.1. How can I make the modeline go away?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
947 * 7.2.:: 7.2. How do you have XEmacs display the line number in the modeline?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
948 * 7.3.:: 7.3. How do I get XEmacs to put the time of day on the modeline?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
949 * 7.4.:: 7.4. How can one change the color of the modeline based on the mode used? i.e. red for C mode, green for TeX mode etc.?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
950 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
951
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
952
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
953 @node 7.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
954 @section 7.1. How can I make the modeline go away?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
955
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
956 (set-specifier has-modeline-p nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
957
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
958
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
959 @node 7.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
960 @section 7.2. How do you have XEmacs display the line number in the modeline?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
961
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
962 Add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
963
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
964 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
965 (setq line-number-mode t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
966 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
967
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
968
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
969 @node 7.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
970 @section 7.3. How do I get XEmacs to put the time of day on the modeline?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
971
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
972 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
973 (display-time)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
974 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
975
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
976
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
977 @node 7.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
978 @section 7.4. How can one change the color of the modeline based on the mode used? i.e. red for C mode, green for TeX mode etc.?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
979
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
980 You can use something like the following:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
981
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
982 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
983 (add-hook 'lisp-mode-hook
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
984 '(lambda () (set-face-background 'modeline "red" (current-buffer))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
985 (set-face-foreground 'modeline "yellow" (current-buffer))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
986 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
987
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
988 Then, when editing a Lisp file (ie went into Lisp mode), the modeline
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
989 colors change from the default set in your @file{.emacs}. The change
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
990 will only be made in the buffer you just entered (which contains the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
991 Lisp file you are editing) and will not affect the modeline colors
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
992 anywhere else.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
993
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
994 Notes:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
995
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
996 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
997 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
998 The hook is the mode name plus "-hook". Ie c-mode-hook, c++-mode-hook,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
999 emacs-lisp-mode-hook (ie your @file{.emacs} or a xx.el file),
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1000 lisp-interaction-mode-hook (the *scratch* buffer), text-mode-hook, etc.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1001 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1002 Be sure to use add-hook, not (setq c-mode-hook xxxx), otherwise you will
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1003 erase anything that anybody has already put on the hook.
54
05472e90ae02 Import from CVS: tag r19-16-pre2
cvs
parents: 46
diff changeset
1004 @item
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1005 You can also do (set-face-font 'modeline @code{font}), eg (set-face-font
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1006 'modeline "*bold-r-normal*140-100-100*" (current-buffer)) if you wish
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1007 the modeline font to vary based on the current mode.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1008 @end itemize
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1009
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1010
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1011 @node 8. The keyboard, 9. The cursor, 7. The modeline, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1012 @chapter 8. The keyboard
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1013
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1014 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1015 * 8.1.:: 8.1. What is the difference in key sequences between XEmacs and GNU Emacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1016 * 8.2.:: 8.2. How can I make XEmacs recognize the Alt key of my HP workstation as a Meta key?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1017 * 8.3.:: 8.3. How can I stop the down-arrow-key from adding empty lines at the bottom of my buffers?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1018 * 8.4.:: 8.4. I wonder if there is an interactive function that can generate "fake" keyboard events. This way, I could simply map them inside XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1019 * 8.5.:: 8.5. I am trying to bind C-. to scroll up by one line and C-; to scroll down by one line...
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1020 * 8.6.:: 8.6. I cannot manage to globally bind my @key{Delete} key to something other than the default. How does one do this?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1021 * 8.7.:: 8.7. How can I bind complex functions (or macros) to keys?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1022 * 8.8.:: 8.8. Can the cursor keys scroll the screen a line at a time, rather than the default half page jump? I tend it to find it disorienting.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1023 * 8.9.:: 8.9. How to map "Help" key alone on Sun type4 keyboard?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1024 * 8.10.:: 8.10. How can you type in special characters in XEmacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1025 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1026
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1027
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1028 @node 8.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1029 @section 8.1. What is the difference in in key sequences between XEmacs and GNU Emacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1030
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1031 The real question might be rephrased as "When should one use the quoted list,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1032 vector, or escaped string representations of key sequences?" Is there any
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1033 particular advantage to one representation over another?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1034
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1035 From Richard Mlynarik <mly@@adoc.xerox.com>:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1036
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1037 @table @asis
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1038 @item (meta a)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1039 is a convenience shorthand for the sequence @code{[(meta a)]}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1040 @code{(global-set-key 'a 'foo)} means the same thing as
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1041 @code{(global-set-key '[a] 'foo)}. It could be argued that allowing
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1042 such a shorthand just leads to sloppiness and bugs, but it's there, and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1043 it isn't likely to go away.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1044
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1045 @item [(meta a)]
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1046 is The Right Thing. It corresponds in a one-to-one way with the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1047 internal representation of key-sequences in keymaps.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1048
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1049 @item [Meta-a]
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1050 is typical FSF Emacs 19 brain damage. As is usual, an existing,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1051 functional design is ignored (XEmacs) and an incompatible and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1052 technically worse kludge is used.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1053
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1054 @item "\ea"
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1055 is compatible with Emacs 18, but suffers from ASCII Seven-Bit Brain
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1056 Damage. I also find it harder to read. Use this if you're trying to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1057 write code which works in every Emacs, but be aware that you can not
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1058 express all Possible key-sequences (@kbd{control-9}, @kbd{f1}, etc.)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1059 using this.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1060
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1061 @end table
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1062
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1063
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1064 @node 8.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1065 @section 8.2. How can I make XEmacs recognize the Alt key of my HP workstation as a Meta key?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1066
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1067 Put the following line into a file and load it with xmodmap(1) before
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1068 starting XEmacs:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1069
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1070 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1071 remove Mod1 = Mode_switch
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1072 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1073
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1074
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1075 @node 8.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1076 @section 8.3. How can I stop the down-arrow-key from adding empty lines at the bottom of my buffers?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1077
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1078 Add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1079
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1080 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1081 (setq next-line-add-newlines nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1082 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1083
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1084
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1085 @node 8.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1086 @section 8.4. I wonder if there is an interactive function that can generate "fake" keyboard events. This way, I could simply map them inside XEmacs.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1087
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1088 This seems to work:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1089 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1090 (defun cg--generate-char-event (ch)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1091 "Generate an event, as if ch has been typed"
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1092 (dispatch-event (character-to-event ch)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1093
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1094 ;; Backspace and Delete stuff
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1095 (global-set-key '(backspace)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1096 '(lambda () (interactive) (cg--generate-char-event 127)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1097 (global-set-key '(unknown_keysym_0x4)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1098 '(lambda () (interactive) (cg--generate-char-event 4)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1099 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1100
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1101
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1102 @node 8.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1103 @section 8.5. I am trying to bind C-. to scroll up by one line and C-; to scroll down by one line...
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1104
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1105 Add the following (Thanks to Richard Mlynarik <mly@@adoc.xerox.com> and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1106 Wayne Newberry <wayne@@zen.cac.stratus.com>) to @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1107
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1108 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1109 (defun scroll-up-one-line ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1110 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1111 (scroll-up 1))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1112
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1113 (defun scroll-down-one-line ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1114 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1115 (scroll-down 1))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1116
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1117 (global-set-key [(control ?.)] 'scroll-up-one-line) ; C-.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1118 (global-set-key [(control ?;)] 'scroll-down-one-line) ; C-;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1119 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1120
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1121 The key point is that you can only bind simple functions to keys; you can not
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1122 bind a key to a function that you're also passing arguments to. (See <A
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1123 HREF="#ss8.7">8.7 How can I bind complex functions</A> for a better answer.)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1124
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1125 @c Fix the above HTML specifier reference
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1126
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1127 @node 8.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1128 @section 8.6. I cannot manage to globally bind my @key{Delete} key to something other than the default. How does one do this?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1129
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1130 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1131 (defun Foo ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1132 (interactive)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1133 (message "You hit DELETE"))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1134
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1135 (global-set-key "\C-?" 'Foo)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1136 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1137
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1138 However, some modes explicitly bind @key{Delete}, so you would need to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1139 add a hook that does @code{local-set-key} for them.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1140
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1141
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1142 @node 8.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1143 @section 8.7. How can I bind complex functions (or macros) to keys?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1144
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1145 As an example, say you want the PASTE key on a Sun keyboard to insert the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1146 current Primary X selection at point. You can accomplish this with:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1147
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1148 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1149 (define-key global-map 'f18 'x-insert-selection)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1150 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1151
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1152 However, this only works if there is a current X selection (the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1153 selection will be highlighted). The functionality I like is for the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1154 PASTE key to insert the current X selection if there is one, otherwise
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1155 insert the contents of the clipboard. To do this you need to pass
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1156 arguments to x-insert-selection. This is done by wrapping the call in a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1157 'lambda form:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1158
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1159 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1160 (define-key global-map 'f18
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1161 (function (lambda () (interactive) (x-insert-selection t nil))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1162 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1163
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1164 This binds the 'f18 key to a "generic" functional object. The interactive
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1165 spec is required because only interactive functions can be bound to keys.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1166 Also take a look at the doc for "function".
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1167
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1168 For the FAQ example you could use:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1169
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1170 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1171 (global-set-key [(control ?.)]
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1172 (function (lambda () (interactive) (scroll-up 1))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1173 (global-set-key [(control ?;)]
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1174 (function (lambda () (interactive) (scroll-up -1))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1175 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1176
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1177 This is fine if you only need a few functions within the lambda body. If
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1178 you're doing more it's cleaner to define a separate function as in the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1179 original FAQ example (<A HREF="#ss11.3">question 11.3</A>).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1180
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1181 @c Fix the above HTML specifier reference
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1182
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1183 @node 8.8.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1184 @section 8.8. Can the cursor keys scroll the screen a line at a time, rather than the default half page jump? I tend it to find it disorienting.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1185
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1186 Try this:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1187
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1188 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1189 (defun scroll-one-line-up (&optional arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1190 "Scroll the selected window up (forward in the text) one line (or N lines)."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1191 (interactive "p")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1192 (scroll-up (or arg 1)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1193
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1194 (defun scroll-one-line-down (&optional arg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1195 "Scroll the selected window down (backward in the text) one line (or N)."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1196 (interactive "p")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1197 (scroll-down (or arg 1)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1198
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1199 (global-set-key 'up 'scroll-one-line-up)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1200 (global-set-key 'down 'scroll-one-line-down)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1201 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1202
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1203 The following will also work but will affect more than just the cursor
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1204 keys (i.e. C-n and C-p):
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1205
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1206 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1207 (setq scroll-step 1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1208 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1209
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1210 @node 8.9.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1211 @section 8.9. How to map "Help" key alone on Sun type4 keyboard?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1212
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1213 The following works in GNU Emacs 19:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1214
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1215 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1216 (global-set-key [help] 'help-command) ;; Help
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1217 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1218
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1219 The following works in XEmacs 19.13 with the addition of shift:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1220
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1221 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1222 (global-set-key [(shift help)] 'help-command) ;; Help
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1223 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1224
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1225 But it doesn't work alone. This is in the file @file{PROBLEMS} which
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1226 should have come with your XEmacs installation:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1227
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1228 @emph{Emacs ignores the @key{help} key when running OLWM}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1229
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1230 OLWM grabs the @key{help} key, and retransmits it to the appropriate
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1231 client using XSendEvent. Allowing Emacs to react to synthetic events is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1232 a security hole, so this is turned off by default. You can enable it by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1233 setting the variable x-allow-sendevents to t. You can also cause fix
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1234 this by telling OLWM to not grab the help key, with the null binding
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1235 @samp{OpenWindows.KeyboardCommand.Help:}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1236
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1237
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1238 @node 8.10.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1239 @section 8.10. How can you type in special characters in XEmacs?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1240
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1241 One way is to use the package @file{x-compose}. Then you can use sequences
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1242 like @kbd{Compose " a} to get d (a-umlaut), etc.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1243
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1244
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1245
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1246 @node 9. The cursor, 10. The mouse; cutting and pasting, 8. The keyboard, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1247 @chapter 9. The cursor
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1248
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1249 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1250 * 9.1.:: 9.1. Is there a way to make the bar cursor a little thicker than one-pixel thick since I lose it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1251 * 9.2.:: 9.2. On the same subject -- is there a way to get back the old "block" cursor where the cursor covers the character in front of the point?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1252 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1253
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1254
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1255 @node 9.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1256 @section 9.1. Is there a way to make the bar cursor a little thicker than one-pixel thick since I lose it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1257
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1258 For a 1 pixel bar cursor, use:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1259
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1260 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1261 (setq bar-cursor t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1262 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1263
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1264 For a 2 pixel bar cursor, use:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1265
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1266 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1267 (setq bar-cursor 'anything-else)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1268 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1269
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1270 You can use a color to make it stand out better:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1271
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1272 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1273 Emacs*cursorColor: Red
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1274 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1275
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1276
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1277 @node 9.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1278 @section 9.2. On the same subject -- is there a way to get back the old "block" cursor where the cursor covers the character in front of the point?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1279
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1280 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1281 (setq bar-cursor nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1282 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1283
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1284
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1285
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1286 @node 10. The mouse; cutting and pasting, 11. Highlighting, 9. The cursor, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1287 @chapter 10. The mouse; cutting and pasting
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1288
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1289 @menu
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1290 * 10.1.:: 10.1. I keep hitting the middle mouse button by accident and getting stuff pasted into my buffer so how can I turn this off?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1291 * 10.2.:: 10.2. How do I set control/meta/etc modifiers on mouse buttons?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1292 * 10.3.:: 10.3. I do "^x ^b" to get a list of buffers and the entries get highlighted when I move the mouse over them but clicking the left mouse does not do anything.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1293 * 10.4.:: 10.4. How can I get a list of buffers to popup when I hit button 3 on the mouse?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1294 * 10.5.:: 10.5. Why does cut-and-paste not work between XEmacs and a cmdtool?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1295 * 10.6.:: 10.6. How I can set XEmacs up so that it pastes where the cursor is _not_ where the pointer lies?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1296 * 10.7.:: 10.7. How do I select a rectangular region?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1297 * 10.8.:: 10.8. Why does M-w take so long?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1298 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1299
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1300
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1301 @node 10.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1302 @section 10.1. I keep hitting the middle mouse button by accident and getting stuff pasted into my buffer so how can I turn this off?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1303
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1304 Here is an alternative binding, whereby the middle mouse button selects (but
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1305 does not cut) the expression under the mouse. Clicking middle on a left or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1306 right paren will select to the matching one. Note that you can use
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1307 @code{define-key} or @code{global-set-key}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1308
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1309 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1310 (defun Mouse-Set-Point-and-Select (event)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1311 "Sets the point at the mouse location, then marks following form"
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1312 (interactive "@@e")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1313 (mouse-set-point event)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1314 (mark-sexp 1)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1315 )
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1316 (define-key global-map 'button2 'Mouse-Set-Point-and-Select)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1317 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1318
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1319 @c Get this fixed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1320 (Editor's Note -- there is a problem with texinfo/text/html conversion, so
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1321 the double at-sign should only be a single, above. I'll fix it one of these
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1322 days -- AJR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1323
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1324
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1325 @node 10.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1326 @section 10.2. How do I set control/meta/etc modifiers on mouse buttons?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1327
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1328 Use, for instance, @code{[(meta button1)]}. For example, here is a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1329 common setting for Common Lisp programmers who use the bundled ilisp
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1330 package, whereby meta-button1 on a function name will find the file
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1331 where the function name was defined, and put you at that location in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1332 the source file.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1333
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1334 [Inside a function that gets called by the lisp-mode-hook and ilisp-mode-hook]
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1335 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1336 (local-set-key [(meta button1)] 'edit-definitions-lisp)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1337 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1338
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1339
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1340 @node 10.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1341 @section 10.3. I do "^x ^b" to get a list of buffers and the entries get highlighted when I move the mouse over them but clicking the left mouse does not do anything.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1342
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1343 Use the middle mouse button.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1344
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1345
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1346 @node 10.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1347 @section 10.4. How can I get a list of buffers to popup when I hit button 3 on the mouse?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1348
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1349 The following code will actually replace the default popup on button3:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1350
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1351 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1352 (defun cw-build-buffers ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1353 "Popup buffer menu."
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1354 (interactive "@@")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1355 (run-hooks 'activate-menubar-hook)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1356 (popup-menu (car (find-menu-item current-menubar '("Buffers")))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1357
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1358 (define-key global-map [(button3)] 'cw-build-buffers)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1359 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1360
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1361 @c Get this fixed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1362
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1363 (Editor's Note -- there is a problem with texinfo/text/html conversion, so
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1364 the double at-sign should only be a single, above. I'll fix it one of these
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1365 days -- AJR)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1366
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1367
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1368 @node 10.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1369 @section 10.5. Why does cut-and-paste not work between XEmacs and a cmdtool?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1370
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1371 We don't know. It's a bug. There does seem to be a work-around,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1372 however. Try running xclipboard first. It appears to fix the problem
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1373 even if you exit it. (This should be mostly fixed in 19.13, but we
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1374 haven't yet verified that).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1375
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1376
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1377 @node 10.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1378 @section 10.6. How I can set XEmacs up so that it pastes where the cursor is _not_ where the pointer lies?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1379
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1380
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1381 Try adding the following to your @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1382
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1383 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1384 (define-key global-map 'button2 'x-insert-selection)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1385 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1386
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1387 This comes from the @file{sample.emacs} file in @file{etc/}, which has
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1388 lots of goodies.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1389
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1390
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1391 @node 10.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1392 @section 10.7. How do I select a rectangular region?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1393
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1394
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1395 Just select the region normally, then use the rectangle commands (e.g.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1396 @code{kill-rectangle}) on it. The region does not highlight as a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1397 rectangle, but the commands work just fine.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1398
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1399 To actually sweep out rectangular regions with the mouse do the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1400 following:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1401
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1402 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1403 (setq mouse-track-rectangle-p t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1404 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1405
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1406
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1407 @node 10.8.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1408 @section 10.8. Why does M-w take so long?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1409
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1410 It actually doesn't. It leaves the region visible for a second so that
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1411 you can see what area is being yanked. If you start working, though, it
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1412 will immediately complete its operation. In other words, it will only
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1413 delay for a second if you let it.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1414
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1415
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1416 @node 11. Highlighting, 12. The menubar and toolbar, 10. The mouse; cutting and pasting, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1417 @chapter 11. Highlighting
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1418
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1419 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1420 * 11.1.:: 11.1. How can I highlight selections?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1421 * 11.2.:: 11.2. How do I get a pending-delete type of behavior?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1422 * 11.3.:: 11.3. I do not like my text highlighted while I am doing isearch as I am not able to see whats underneath. How do I turn it off?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1423 * 11.4.:: 11.4. The text gets highlighted when I do C-x C-p (mark-page). Is there a way to turn this feature off?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1424 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1425
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1426
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1427 @node 11.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1428 @section 11.1. How can I highlight selections?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1429
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1430 Use zmacs mode. This mode allows for what some might call gratuitous
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1431 highlighting for selected regions (either by setting mark or by using the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1432 mouse). To use, add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1433
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1434 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1435 (setq zmacs-regions t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1436 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1437
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1438 This is the default behavior.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1439
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1440
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1441 @node 11.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1442 @section 11.2. How do I get a pending-delete type of behavior?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1443
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1444 @dfn{Pending delete} is what happens when you select a region (with the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1445 mouse or keyboard) and you press a key to replace the selected region by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1446 the key you typed. Usually backspace kills the selected region.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1447
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1448 To get this behavior, add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1449
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1450 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1451 (require 'pending-del)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1452 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1453
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1454
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1455 @node 11.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1456 @section 11.3. I do not like my text highlighted while I am doing isearch as I am not able to see whats underneath. How do I turn it off?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1457
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1458 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1459 (setq isearch-highlight nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1460 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1461
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1462 Note also that isearch-highlight affects query-replace and ispell. Instead
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1463 of disabling isearch-highlight you may find that a better solution consists
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1464 of customizing the 'isearch' face.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1465
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1466
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1467 @node 11.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1468 @section 11.4. The text gets highlighted when I do C-x C-p (mark-page). Is there a way to turn this feature off?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1469
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1470 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1471 (setq zmacs-regions nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1472 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1473
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1474
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1475
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1476 @node 12. The menubar and toolbar, 13. Scrollbars, 11. Highlighting, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1477 @chapter 12. The menubar and toolbar
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1478
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1479 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1480 * 12.1.:: 12.1. How do I get rid of the menu (or menubar) ?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1481 * 12.2.:: 12.2. Can I customize the basic menubar?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1482 * 12.3.:: 12.3. What controls how many buffers are listed in the menu "Buffers" list?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1483 * 12.4.:: 12.4. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1484
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1485 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1486
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1487
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1488 @node 12.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1489 @section 12.1. How do I get rid of the menu (or menubar) ?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1490
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1491 Answer: To get rid of the menubar, add to @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1492
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1493 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1494 (set-menubar nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1495 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1496
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1497
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1498 @node 12.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1499 @section 12.2. Can I customize the basic menubar?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1500
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1501 For an extensive menubar, add the line
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1502
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1503 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1504 (load "big-menubar")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1505 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1506
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1507 to your @file{.emacs} file. If you'd like to write your own, this file
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1508 provides a good set of examples to start from:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1509
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1510 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1511 lisp/packages/big-menubar.el
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1512 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1513
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1514 (starting from your system XEmacs installation directory).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1515
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1516
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1517 @node 12.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1518 @section 12.3. What controls how many buffers are listed in the menu "Buffers" list?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1519
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1520 Add the following to your @file{.emacs}, modified as needed:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1521
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1522 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1523 (setq buffers-menu-max-size 20)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1524 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1525
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1526 If you do not want a limit, try
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1527
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1528 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1529 (setq buffers-menu-max-size nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1530 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1531
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1532
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1533 @node 12.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1534 @section 12.4. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1535
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1536 If you are using the real Motif menubar, this resource is not recognized;
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1537 you have to say
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1538
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1539 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1540 Emacs*menubar*fontList: FONT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1541 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1542
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1543 If you are using the Lucid menubar, the former resource will be recognized
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1544 only if the latter resource is unset. This means that the resource
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1545
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1546 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1547 *fontList: FONT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1548 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1549
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1550 will override
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1551
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1552 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1553 Emacs*menubar*font: FONT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1554 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1555
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1556 even though the latter is more specific.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1557
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1558
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1559 @node 13. Scrollbars, 14. Frame Geometry, 12. The menubar and toolbar, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1560 @chapter 13. Scrollbars
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1561
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1562 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1563 * 13.1.:: 13.1. How can I disable the scrollbar?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1564 * 13.2.:: 13.2. How can one use resources to change scrollbar colors?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1565 * 13.3.:: 13.3. When I move the scrollbar in an XEmacs window, it moves the point as well, which should not be the default behavior. Is this a bug or a feature? Can I disable it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1566 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1567
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1568
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1569 @node 13.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1570 @section 13.1. How can I disable the scrollbar?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1571
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1572 To turn disable them for all frames, add the following line to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1573 your @file{.Xdefaults}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1574
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1575 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1576 Emacs.scrollBarWidth: 0
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1577 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1578
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1579 To turn the scrollbar off on a per-frame basis, use the following function:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1580
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1581 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1582 (set-specifier scrollbar-width (cons (selected-frame) 0))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1583 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1584
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1585 You can actually turn the scrollbars on at any level you want by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1586 substituting for (selected-frame) in the above command. For example, to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1587 turn the scrollbars off only in a single buffer:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1588
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1589 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1590 (set-specifier scrollbar-width (cons (current-buffer) 0))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1591 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1592
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1593
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1594 @node 13.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1595 @section 13.2. How can one use resources to change scrollbar colors?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1596
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1597 Here's a recap of how to use resources to change your scrollbar colors:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1598
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1599 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1600 ! Motif scrollbars
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1601
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1602 Emacs*XmScrollBar.Background: skyblue
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1603 Emacs*XmScrollBar.troughColor: lightgray
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1604
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1605 ! Athena scrollbars
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1606
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1607 Emacs*Scrollbar.Foreground: skyblue
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1608 Emacs*Scrollbar.Background: lightgray
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1609 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1610
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1611 Note the capitalization of @samp{Scrollbar} for the Athena widget.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1612
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1613
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1614 @node 13.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1615 @section 13.3. When I move the scrollbar in an XEmacs window, it moves the point as well, which should not be the default behavior. Is this a bug or a feature? Can I disable it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1616
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1617 The current behavior is a feature, not a bug. Point remains at the same
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1618 buffer position as long as that position does not scroll off the screen. In
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1619 that event, point will end up in either the upper-left or lower-left hand
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1620 corner.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1621
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1622
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1623
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1624 @node 14. Frame Geometry, 15. Window/icon title; window manager problems, 13. Scrollbars, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1625 @chapter 14. Frame Geometry
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1626
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1627 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1628 * 14.1.:: 14.1. In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of specifying @samp{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but this does not work in XEmacs 19.13.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1629 * 14.2.:: 14.2. In XEmacs 19.11 I specified @samp{Emacs*EmacsScreen.geometry} in my @file{.emacs} but this does not work in XEmacs 19.13.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1630 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1631
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1632
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1633 @node 14.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1634 @section 14.1. In Lucid Emacs 19.6 I did @code{(set-screen-width @var{characters})} and @code{(set-screen-height @var{lines})} in my @file{.emacs} instead of specifying @samp{Emacs*EmacsScreen.geometry} in my @file{.Xdefaults} but this does not work in XEmacs 19.13.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1635
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1636 These two functions now take frame arguments:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1637
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1638 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1639 (set-frame-width (selected-frame) @var{characters})
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1640 (set-frame-height (selected-frame) @var{lines})
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1641 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1642
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1643 @node 14.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1644 @section 14.2. In XEmacs 19.11 I specified @samp{Emacs*EmacsScreen.geometry} in my @file{.emacs} but this does not work in XEmacs 19.13.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1645
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1646 We have switched from using the term 'screen' to using the term 'frame'.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1647 The correct entry for your @file{.Xdefaults} is now:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1648
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1649 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1650 Emacs*EmacsFrame.geometry
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1651 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1652
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1653
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1654 @node 15. Window/icon title; window manager problems, 16. Editing source code (C mode; Lisp mode; etc.), 14. Frame Geometry, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1655 @chapter 15. Window/icon title; window manager problems
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1656
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1657 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1658 * 15.1.:: 15.1. How can I get the icon to just say @samp{XEmacs} and not include the name of the current file in it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1659 * 15.2.:: 15.2. How can I have the window title area display the full directory/name of the current buffer file and not just the name?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1660 * 15.3.:: 15.3. When I run @samp{xterm -name junk} I get an xterm whose class name according to xprop, is @samp{junk}. This is the way it's supposed to work, I think. When I run @samp{xemacs -name junk} the class name is not set to @samp{junk}. It's still @samp{emacs}. What does @samp{xemacs -name} really do? The reason I ask is that my window manager (fvwm) will make a window sticky and I use XEmacs to read my mail. I want that XEmacs window to be sticky, without having to use the window manager's function to set the window sticky. What gives?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1661 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1662
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1663
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1664 @node 15.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1665 @section 15.1. How can I get the icon to just say @samp{XEmacs} and not include the name of the current file in it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1666
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1667 Add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1668
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1669 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1670 (setq frame-icon-title-format "XEmacs")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1671 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1672
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1673
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1674 @node 15.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1675 @section 15.2. How can I have the window title area display the full directory/name of the current buffer file and not just the name?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1676
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1677 Add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1678
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1679 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1680 (setq frame-title-format "%S: %f")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1681 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1682 A more sophisticated title might be:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1683
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1684 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1685 (setq frame-title-format
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1686 '("%S: " (buffer-file-name "%f" (dired-directory dired-directory "%b"))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1687 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1688
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1689 That is, use the file name, or the dired-directory, or the buffer name.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1690
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1691
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1692 @node 15.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1693 @section 15.3. When I run @samp{xterm -name junk} I get an xterm whose class name according to xprop, is @samp{junk}. This is the way it's supposed to work, I think. When I run @samp{xemacs -name junk} the class name is not set to @samp{junk}. It's still @samp{emacs}. What does @samp{xemacs -name} really do? The reason I ask is that my window manager (fvwm) will make a window sticky and I use XEmacs to read my mail. I want that XEmacs window to be sticky, without having to use the window manager's function to set the window sticky. What gives?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1694
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1695 @samp{xemacs -name} sets the application-name for the program (that is,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1696 the thing which normally comes from @code{argv[0]}.) Using @samp{-name}
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1697 is the same as making a copy of the executable with that new name. The
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1698 WM_CLASS property on each frame is set to the frame-name, and the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1699 application-class. So, if you did @samp{xemacs -name FOO} and then
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1700 created a frame named @samp{BAR}, you'd get an X window with WM_CLASS =
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1701 @samp{( "BAR", "Emacs")}. However, the resource hierarchy for this
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1702 widget would be
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1703
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1704 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1705 Name: FOO .shell. .pane .BAR
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1706 Class: Emacs.TopLevelShell.XmMainWindow.EmacsFrame
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1707 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1708
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1709 instead of the default
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1710
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1711 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1712 Name: xemacs.shell. .pane .emacs
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1713 Class: Emacs .TopLevelShell.XmMainWindow.EmacsFrame
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1714 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1715
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1716 It is arguable that the first element of WM_CLASS should be set to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1717 application-name instead of the frame-name, but I think that's less
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1718 flexible, since it does not give you the ability to have multiple
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1719 frames with different WM_CLASS properties. Another possibility would
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1720 be for the default frame name to come from the application name instead
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1721 of simply being @samp{emacs}. However, at this point, making that
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1722 change would be troublesome: it would mean that many users would have to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1723 make yet another change to their resource files (since the default
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1724 frame name would suddenly change from @samp{emacs} to @samp{xemacs}, or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1725 whatever the executable happened to be named), so we'd rather avoid it.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1726
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1727 To make a frame with a particular name use:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1728
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1729 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1730 (make-frame '((name . "the-name")))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1731 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1732
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1733
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1734
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1735 @node 16. Editing source code (C mode; Lisp mode; etc.), 17. Text mode, 15. Window/icon title; window manager problems, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1736 @chapter 16. Editing source code (C mode; Lisp mode; etc.)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1737
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1738 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1739 * 16.1.:: 16.1. How can I do source code highlighting using font-lock?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1740 * 16.2.:: 16.2. How do you arrange it so that XEmacs indents all the clauses of a Common Lisp @code{if} the same amount instead of indenting the 3rd clause differently from the first two?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1741 * 16.3.:: 16.3. I do not like cc-mode. How do I use the old c-mode?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1742 * 16.4.:: 16.4. When I try to edit a postscript file it gets stuck saying: fontifying 'filename' (regexps....) and it just sits there. If I press ctrl-c in the window where XEmacs was started, it suddenly becomes alive again.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1743 * 16.5.:: 16.5. Does anyone know how to get the "More" Syntax Highlighting on by default?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1744 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1745
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1746
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1747 @node 16.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1748 @section 16.1. How can I do source code highlighting using font-lock?
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1749
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1750 For most modes, font-lock is already set up and just needs to be turned
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1751 on. This can be done by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1752
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1753 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1754 M-x font-lock-mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1755 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1756
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1757 or by having XEmacs automatically start it by adding lines like
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1758
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1759 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1760 (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1761 (add-hook 'dired-mode-hook 'turn-on-font-lock)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1762 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1763
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1764 to your @file{.emacs}. See the file @code{etc/sample.emacs} for more
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1765 examples.
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1766
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1767
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1768 @node 16.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1769 @section 16.2. How do you arrange it so that XEmacs indents all the clauses of a Common Lisp @code{if} the same amount instead of indenting the 3rd clause differently from the first two?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1770
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1771 One way is to add, to @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1772
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1773 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1774 (put 'if 'lisp-indent-function nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1775 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1776
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1777 However, note that the package @file{cl-indent.el} that comes with
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1778 XEmacs sets up this kind of indentation by default. @file{cl-indent} also
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1779 knows about many other CL-specific forms. To use @file{cl-indent}, one can
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1780 do this:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1781
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1782 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1783 (load "cl-indent")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1784 (setq lisp-indent-function (function common-lisp-indent-function))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1785 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1786
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1787 One can also customize @file{cl-indent.el} so it mimics the default @samp{if}
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1788 indentation (@samp{then} indented more than the @samp{else}). Here's
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1789 how:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1790
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1791 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1792 (put 'if 'common-lisp-indent-function '(nil nil &body))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1793 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1794
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1795 Also, a new version (1.2) of @file{cl-indent.el} was posted to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1796 @samp{comp.emacs.xemacs} on 12/9/94. This version includes more
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1797 documentation than previous versions. This may prove useful if you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1798 need to customize any indent-functions. The post can be retrieved by
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1799 searching the XEmacs mail archives.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1800
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1801
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1802 @node 16.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1803 @section 16.3. I do not like cc-mode. How do I use the old c-mode?
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1804
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1805 Well, first off, consider if you really want to do this. cc-mode is
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1806 much more powerful than the old c-mode. But if you still insist, add
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1807 the following lines to your @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1808
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1809 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1810 (fmakunbound 'c-mode)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1811 (makunbound 'c-mode-map)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1812 (fmakunbound 'c++-mode)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1813 (makunbound 'c++-mode-map)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1814 (makunbound 'c-style-alist)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1815 (load-library "old-c-mode")
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1816 (load-library "old-c++-mode")
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1817 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1818
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1819 This must be done before any other reference is made to either c-mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1820 or c++-mode.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1821
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1822
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1823 @node 16.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1824 @section 16.4. When I try to edit a postscript file it gets stuck saying: fontifying 'filename' (regexps....) and it just sits there. If I press ctrl-c in the window where XEmacs was started, it suddenly becomes alive again.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1825
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1826 This was caused by a bug in the Postscript font-lock regular
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1827 expressions. It should be fixed in 19.13. For earlier versions of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1828 XEmacs, have a look at your @file{.emacs} file. You will probably have
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1829 a line like:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1830
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1831 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1832 (add-hook 'postscript-mode-hook 'turn-on-font-lock)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1833 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1834
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1835 Take it out, restart XEmacs, and it won't try to fontify your
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1836 postscript files anymore.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1837
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1838
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1839 @node 16.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1840 @section 16.5. Does anyone know how to get the "More" Syntax Highlighting on by default?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1841
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1842 For C, C++, and Lisp, you can try adding the following to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1843
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1844 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1845 (setq c-font-lock-keywords c-font-lock-keywords-2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1846 (setq c++-font-lock-keywords c++-font-lock-keywords-2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1847 (setq lisp-font-lock-keywords lisp-font-lock-keywords-2)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1848 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1849
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1850
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1851
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1852 @node 17. Text mode, 18. Shell mode, 16. Editing source code (C mode; Lisp mode; etc.), top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1853 @chapter 17. Text mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1854
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1855 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1856 * 17.1.:: 17.1. How can I enable auto-indent?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1857 * 17.2.:: 17.2. How can I get XEmacs to come up in text mode (auto-fill) by default?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1858 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1859
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1860
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1861 @node 17.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1862 @section 17.1. How can I enable auto-indent?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1863
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1864 Put the following line in your @file{.emacs}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1865
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1866 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1867 (setq indent-line-function 'indent-relative-maybe)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1868 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1869
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1870 If you want to get fancy, try @file{filladapt} and @file{fa-extras},
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1871 available from the Emacs Lisp Archive at Ohio State University.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1872 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1873 Get them at URL:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1874
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1875 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1876 ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1877 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1878 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1879 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1880 Get them at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1881 <A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1882 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1883
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1884
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1885 @node 17.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1886 @section 17.2. How can I get XEmacs to come up in text mode (auto-fill) by default?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1887
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1888 Try the following lisp in your @file{.emacs} file
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1889
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1890 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1891 (setq default-major-mode 'text-mode)
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1892 (setq text-mode-hook 'turn-on-auto-fill)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1893 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1894
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1895 WARNING: note that changing default-major-mode from fundamental-mode can
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1896 break a large amount of built-in code that expects newly created buffers to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1897 be in fundamental-mode. (Changing from fundamental-mode to auto-fill
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1898 text-mode might not wreak too much havoc, but changing to something more
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1899 exotic like a lisp-mode would break many Emacs packages.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1900
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1901 Note that Emacs defaultly starts up in buffer *scratch* in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1902 initial-major-mode, which defaults to lisp-interaction-mode. Thus
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1903 adding the following form to your Emacs init file will cause the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1904 initial *scratch* buffer to be put into auto-fill'ed text-mode.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1905
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1906 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1907 (setq initial-major-mode
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1908 (function (lambda ()
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1909 (text-mode)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1910 (turn-on-auto-fill))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1911 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1912
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1913 Note that after your init file is loaded, if inhibit-startup-message
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1914 is null (the default) and the startup buffer is *scratch* then the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1915 startup message will be inserted into *scratch*; it will be removed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1916 after a timeout by erasing the entire *scratch* buffer. Keep in mind
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1917 this default usage of *scratch* if you desire any prior manipulation
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1918 of *scratch* from within your Emacs init file. In particular, anything
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1919 you insert into *scratch* from your init file will be later erased.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1920 Also, if you change the mode of *scratch* be sure that this will
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1921 not interfere with possible later insertion of the startup message
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1922 (e.g. if you put *scratch* into a nonstandard mode that has automatic
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1923 font lock rules, then the startup message might get fontified in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1924 a strange foreign manner, e.g. as code in some programming language).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1925
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1926
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1927
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1928 @node 18. Shell mode, 19. Mail; VM; GNUS; BBDB; and related, 17. Text mode, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1929 @chapter 18. Shell mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1930
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1931 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1932 * 18.1.:: 18.1. How do I start up a second shell buffer?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1933 * 18.2.:: 18.2. I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke and use a telnet session within it. Everything works fine except that now all ^M's are filtered out by Emacs. Fixes?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1934 * 18.3.:: 18.3. If I type a very long command line (like a compile command) into a shell buffer, the output seems to be messed up.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1935 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1936
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1937
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1938 @node 18.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1939 @section 18.1. How do I start up a second shell buffer?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1940
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1941 In the *shell* buffer:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1942
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1943 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1944 M-x rename-buffer RET *shell-1* RET
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1945 M-x shell RET
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1946 @end example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1947
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1948 This will then start a second shell. The key is that no buffer named
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1949 *shell* can exist. It might be preferable to use @kbd{M-x
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1950 rename-uniquely} to rename the *shell* buffer instead of @kbd{M-x
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1951 rename-buffer}.
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1952
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1953
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1954 @node 18.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1955 @section 18.2. I'm using the Emacs @kbd{M-x shell} function, and I would like to invoke and use a telnet session within it. Everything works fine except that now all ^M's are filtered out by Emacs. Fixes?
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1956
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1957 Use @kbd{M-x rsh} or @kbd{M-x telnet} to open remote sessions rather
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1958 than doing rsh or telnet within the local shell buffer.
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
1959
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1960
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1961 @node 18.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1962 @section 18.3. If I type a very long command line (like a compile command) into a shell buffer, the output seems to be messed up.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1963
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1964 If you see lots of ^G's in the buffer, you're using an old version of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1965 XEmacs. If the command line seems to be delayed or split into pieces,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1966 you are probably using csh with the @samp{filec} variable set. To fix
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1967 this, add the following line to your @file{.cshrc}, after @samp{filec} is set:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1968
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1969 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1970 if ( "$TERM" == emacs || "$TERM" == unknown ) unset filec
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1971 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1972
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1973 @node 19. Mail; VM; GNUS; BBDB; and related, 20. Printing, 18. Shell mode, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1974 @chapter 19. Mail; VM; GNUS; BBDB; and related
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1975
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1976 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1977 * 19.1.:: 19.1. How and where I am suppose to set the face attributes for customizing the appearance of messages (i.e. for VM)?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1978 * 19.2.:: 19.2. I seem to have heard that there's a package distributed with XEmacs which will use the echo area to notify you of incoming mail in a rather configurable way (multiple spool files, different actions for different files). What and where is it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1979 * 19.3.:: 19.3. Is there any way to add more faces and regexps to GNUS without hacking gnus.el?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1980 * 19.4.:: 19.4. What is BBDB?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1981 * 19.5.:: 19.5. I noticed that BBDB evokes an XEmacs bug; is there a fix?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1982 * 19.6.:: 19.6. I'm getting the error 'Wrong type argument: listp :-pos' when I try to start BBDB. What do I do?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1983 * 19.7.:: 19.7. I'm getting the error 'movemail: Permission denied' when I try and start VM. What do I do?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1984 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1985
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1986
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1987 @node 19.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1988 @section 19.1. How and where I am suppose to set the face attributes for customizing the appearance of messages (i.e. for VM)?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1989
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1990 Suppose you want to use:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1991
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1992 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1993 (set-face-font 'message-highlighted-header-contents
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1994 "-adobe-courier-bold-r-normal--12*")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1995 (set-face-foreground 'message-headers "darkslateblue")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1996 (set-face-foreground 'message-header-contents "brown")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1997 (set-face-foreground 'message-highlighted-header-contents "black")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1998 (set-face-foreground 'message-cited-text "darkgreen")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
1999 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2000
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2001 Well, this should work, provided that @code{(require
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2002 'highlight-headers)} is executed first. Also, highlight-headers is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2003 self-contained and you don't need to turn on font-lock mode.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2004
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2005
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2006 @node 19.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2007 @section 19.2. I seem to have heard that there's a package distributed with XEmacs which will use the echo area to notify you of incoming mail in a rather configurable way (multiple spool files, different actions for different files). What and where is it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2008
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2009 It's called reportmail. Add the following to your @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2010
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2011 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2012 (load-library "reportmail")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2013 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2014
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2015
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2016 @node 19.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2017 @section 19.3. Is there any way to add more faces and regexps to GNUS without hacking gnus.el?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2018
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2019 You can try the folowing elisp:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2020
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2021 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2022 (add-hook 'gnus-startup-hook
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2023 '(lambda ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2024 (font-lock-mode)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2025 (set-face-foreground 'message-headers "red")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2026 (set-face-foreground 'message-header-contents "orange")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2027 (set-face-foreground 'message-cited-text "blue")))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2028 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2029
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2030
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2031 @node 19.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2032 @section 19.4. What is BBDB?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2033
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2034 BBDB is the Big Brother Database, written by Jamie Zawinski
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2035 <jwz@@netscape.com>. It interfaces to VM, mh-e, and GNUS and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2036 conveniently snarfs information about people and other things from
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2037 articles and messages that go by.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2038
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2039 BBDB is available from the elisp archive
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2040
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2041 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2042 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2043 archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2044 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2045 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2046 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2047 <A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2048 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2049
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2050 BBDB has a mailing list devoted to it:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2051
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2052 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2053 info-bbdb@@cs.uiuc.edu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2054 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2055
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2056 This mailing list is archived at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2057
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2058 @ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2059 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2060 ftp.cs.uiuc.edu:/pub/bbdb
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2061 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2062 @end ifinfo
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2063 @ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2064 <A
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2065 HREF="ftp://ftp.cs.uiuc.edu:/pub/bbdb/">ftp.cs.uiuc.edu:/pub/bbdb/</A>
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2066 @end ifhtml
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2067
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2068
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2069 @node 19.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2070 @section 19.5. I noticed that BBDB evokes an XEmacs bug; is there a fix?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2071
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2072 This worked for me:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2073
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2074 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2075 (setq bbdb-electric-p nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2076 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2077
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2078 @node 19.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2079 @section 19.6. I'm getting the error 'Wrong type argument: listp :-pos' when I try to start BBDB. What do I do?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2080
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2081 Discard the copy of mail-extr.el that came with bbdb.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2082
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2083 XEmacs 19.12 made the change that you cannot change the value of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2084 interned symbols whose names begin with a colon. The mail-extr.el
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2085 that's distributed with 19.12+ is fixed to live with this restriction,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2086 but old copies of mail-extr.el will bomb.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2087
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2088
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2089 @node 19.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2090 @section 19.7. I'm getting the error 'movemail: Permission denied' when I try and start VM. What do I do?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2091
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2092 Execute the following two commands. movemail is normally located in the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2093 XEmacs install tree at @file{.../lib/xemacs-19.13/$@{arch@}/movemail}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2094
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2095 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2096 chgrp mail movemail
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2097 chmod 2555 movemail
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2098 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2099
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2100
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2101 @node 20. Printing, 21. Gnuserv, 19. Mail; VM; GNUS; BBDB; and related, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2102 @chapter 20. Printing
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2103
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2104 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2105 * 20.1.:: 20.1. Font-lock looks nice. How can I print (WYSIWYG) the highlighted document?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2106 * 20.2.:: 20.2. My printer is a Postscript printer and @code{lpr} only works for Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x lpr-buffer} to work?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2107 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2108
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2109
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2110 @node 20.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2111 @section 20.1. Font-lock looks nice. How can I print (WYSIWYG) the highlighted document?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2112
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2113 The package ps-print.el, which is now included with XEmacs, provides the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2114 ability to do this. It contains complete instructions on its use:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2115
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2116 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2117 <xemacs_src_root>/lisp/packages/ps-print.el
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2118 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2119
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2120
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2121 @node 20.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2122 @section 20.2. My printer is a Postscript printer and @code{lpr} only works for Postscript files, so how do I get @kbd{M-x lpr-region} and @kbd{M-x lpr-buffer} to work?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2123
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2124 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2125 (setq lpr-command "@var{Command to print text files}")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2126 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2127
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2128 Please don't forget to replace @var{Command to print text files} with the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2129 actual command (@samp{enscript}, @samp{nenscript}, etc.)!
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2130
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2131
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2132
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2133 @node 21. Gnuserv, 22. Miscellaneous, 20. Printing, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2134 @chapter 21. Gnuserv
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2135
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2136 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2137 * 21.1.:: 21.1. How do I disable gnuserv from opening a new frame?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2138 * 21.2.:: 21.2. What do I do to start the gnuserv server so that each subseqeuent XEmacs is a client?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2139 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2140
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2141
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2142 @node 21.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2143 @section 21.1. How do I disable gnuserv from opening a new frame?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2144
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2145 If you set the gnuserv-screen variable to the frame that should be
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2146 used to display buffers that are pulled up, a new frame will not be
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2147 created. For example, you could put
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2148
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2149 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2150 (setq gnuserv-screen (selected-frame))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2151 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2152
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2153 early on in your @file{.emacs}, to ensure that the first frame created is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2154 the one used for your gnuserv buffers.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2155
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2156
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2157 @node 21.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2158 @section 21.2. What do I do to start the gnuserv server so that each subseqeuent XEmacs is a client?
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2159
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2160 Put the following in your @file{.emacs} file to start the server:
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2161
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2162 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2163 (gnuserv-start)
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2164 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2165
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2166 Start your first XEmacs as usual. After that, you can do
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2167
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2168 @example
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2169 gnuclient randomfilename
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2170 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2171
16
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2172 from the command line to get your existing XEmacs process to open a new
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2173 frame and visit randomfilename in that window. When you're done editing
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2174 randomfilename, hit @kbd{C-x #} to kill the buffer and get rid of the
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2175 frame.
0293115a14e9 Import from CVS: tag r19-15b91
cvs
parents: 2
diff changeset
2176
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2177
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2178
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2179 @node 22. Miscellaneous,, 21. Gnuserv, top
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2180 @chapter 22. Miscellaneous
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2181
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2182 @menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2183 * 22.1.:: 22.1. How do I specify the paths that XEmacs uses for finding files?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2184 * 22.2.:: 22.2. Why does edt emulation not work?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2185 * 22.3.:: 22.3. How can I emulate VI and use it as my default mode?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2186 * 22.4.:: 22.4. Is there some way to get the behavior so that if the current buffer has a file associated with it, the current buffer will use that files name else use the buffer name?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2187 * 22.5.:: 22.5. I have no idea where this is coming from, but ever since I moved from 19.9 to 19.13 I have started seeing that all of my buffers will get a minor mode called @samp{Omit}. I have no idea how it got there nor do I know what it does. What is it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2188 * 22.6.:: 22.6. How do I turn off the sound?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2189 * 22.7.:: 22.7. Can I have the end of the buffer delimited in some way? Say, with: [END] ?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2190 * 22.8.:: 22.8. Can I insert today's date into buffer?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2191 * 22.9.:: 22.9. Are only certain syntactic character classes available for abbrevs? I didn't see any restrictions in the info.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2192 * 22.10.:: 22.10. Filladapt used to work after I loaded it. Now in 19.13 it doesn't. What gives?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2193 @end menu
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2194
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2195
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2196 @node 22.1.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2197 @section 22.1. How do I specify the paths that XEmacs uses for finding files?
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2198
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2199 You can specify what paths to use by using a number of different flags
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2200 when running configure. See the section MAKE VARIABLES in the top-level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2201 file INSTALL in the XEmacs distribution for a listing of those flags.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2202
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2203 Most of the time, however, the simplest fix is: DO NOT specify paths as
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2204 you might for FSF GNU Emacs. XEmacs can generally determine the
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2205 necessary paths dynamically at run time. The only path that generally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2206 needs to be specified is the root directory to install into. That can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2207 be specified by passing the @code{--prefix} flag to configure. For a
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2208 description of the XEmacs install tree, please consult the NEWS file.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2209
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2210
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2211 @node 22.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2212 @section 22.2. Why does edt emulation not work?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2213
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2214 We don't know, but you can use tpu-edt emulation instead, which works fine
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2215 and is a little fancier than the standard edt emulation. To do this, add
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2216 the following line to your @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2217
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2218 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2219 (load "tpu-edt")
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2220 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2221
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2222 If you don't want it to replace Ctrl-h with edt-style help menu add this as
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2223 well:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2224
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2225 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2226 (global-set-key '(control h) 'help-for-help)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2227 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2228
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2229
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2230 @node 22.3.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2231 @section 22.3. How can I emulate VI and use it as my default mode?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2232
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2233 Our recommended VI emulator is viper. To put the current buffer into
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2234 viper-mode, use the command:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2236 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2237 M-x viper
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2238 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2239
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2240 To make viper-mode the default, add the following lines to your @file{.emacs}:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2241
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2242 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2243 (load-library "viper")
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2244 (setq term-setup-hook 'viper)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2245 (setq find-file-hooks 'viper)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2246 (setq find-file-not-found-hooks 'viper)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2247 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2248
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2249
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2250 @node 22.4.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2251 @section 22.4. Is there some way to get the behavior so that if the current buffer has a file associated with it, the current buffer will use that files name else use the buffer name?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2252
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2253 Just set frame-title-format from find-file-hooks. Alternatively, look at
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2254 the answer to question 15.2.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2255
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2256 In addition, one could set modeline-format.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2257
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2258
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2259 @node 22.5.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2260 @section 22.5. I have no idea where this is coming from, but ever since I moved from 19.9 to 19.13 I have started seeing that all of my buffers will get a minor mode called @samp{Omit}. I have no idea how it got there nor do I know what it does. What is it?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2261
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2262 It's part of dired. In dired, you can type M-o to get Omit mode and that will
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2263 ignore uninteresting files (checkpoint files and backups, for example). You
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2264 get Omit in the modeline everywhere because the variable `dired-omit-files-p'
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2265 is globally set to some non-nil value. If you want this functionality, it's
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2266 probably best to use a hook:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2267
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2268 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2269 (add-hook 'dired-after-readin-hook '(lambda () (dired-omit-toggle)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2270 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2271
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2272 Alternatively, since it seems odd to toggle the omit
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2273 state with every readin, since readin can happen many times in a Dired
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2274 buffer, you can try this hook to correct the "Omit" problem:
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2275
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2276 @example
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2277 (add-hook 'dired-mode-hook
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2278 (function (lambda ()
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2279 ;; `dired-omit-files-p' is made buffer-local by "dired-x.el", but
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2280 ;; maybe not soon enough.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2281 (make-local-variable 'dired-omit-files-p)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2282 (setq dired-omit-files-p t))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2283 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2284
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2285 This is only run once, when the Dired buffer is created.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2286
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2287
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2288 @node 22.6.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2289 @section 22.6. How do I turn off the sound?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2290
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2291 Add the following line to your @file{.emacs} file:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2292
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2293 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2294 (setq bell-volume 0)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2295 (setq sound-alist nil)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2296 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2297
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2298
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2299 @node 22.7.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2300 @section 22.7. Can I have the end of the buffer delimited in some way? Say, with: [END] ?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2301
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2302 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2303 (make-annotation "[END]" (point-max) 'text (current-buffer))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2304 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2305
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2306 Note that you might want to put this in a hook.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2307
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2308 You might also need:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2309
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2310 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2311 (require 'annotations)
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2312 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2313
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2314 since @code{make-annotation} is not defined by default.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2315
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2316
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2317 @node 22.8.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2318 @section 22.8. Can I insert today's date into buffer?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2319
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2320 Use this lisp in a function:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2321
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2322 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2323 (insert (current-time-string))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2324 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2325
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2326
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2327 @node 22.9.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2328 @section 22.9. Are only certain syntactic character classes available for abbrevs? I didn't see any restrictions in the info.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2329
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2330 Yes, abbrevs only expand word-syntax strings. So, in c-mode if you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2331 wanted to expand something to @samp{define }, you would be able to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2332 expand @samp{xd} but not @samp{#d}.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2333
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2334
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2335 @node 22.10.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2336 @section 22.10. Filladapt used to work after I loaded it. Now in 19.13 it doesn't. What gives?
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2337
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2338 Filladapt 2.x is included in 19.13+. In it filladapt is now a minor
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2339 mode and minor modes are traditionally off by default. The following
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2340 added to your .emacs will turn it on for all buffers:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2341
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2342 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2343 (setq-default filladapt-mode t)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2344 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2345
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2346 Use @code{turn-on-filladapt-mode} to turn Filladapt on in particular
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2347 major modes, like this:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2348
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2349 @example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2350 (add-hook 'text-mode-hook 'turn-on-filladapt-mode)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2351 @end example
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2352
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2353
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2354 @page
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents: 54
diff changeset
2355 @contents
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2356 @bye