34198
|
1 @c This is part of the Emacs manual.
|
|
2 @c Copyright (C) 2000 Free Software Foundation, Inc.
|
|
3 @c See file emacs.texi for copying conditions.
|
|
4 @node Mac OS, MS-DOS, Antinews, Top
|
|
5 @appendix Emacs and the Mac OS
|
|
6 @cindex Mac OS
|
|
7 @cindex Macintosh
|
|
8
|
|
9 Emacs built on the Mac OS supports many of its major features:
|
|
10 multiple frames, colors, scroll bars, menu bars, use of the mouse,
|
|
11 fontsets, international characters, input methods, coding systems, and
|
|
12 synchronous subprocesses (@code{call-process}). Much of this works in
|
|
13 the same way as on other platforms and is therefore documented in the
|
|
14 rest of this manual. This section describes the peculiarities of using
|
|
15 Emacs under the Mac OS.
|
|
16
|
|
17 The following features of Emacs are not yet supported on the Mac:
|
|
18 unexec (@code{dump-emacs}), asynchronous subprocesses
|
|
19 (@code{start-process}), and networking (@code{open-network-connection}).
|
|
20 As a result, packages such as Gnus, Ispell, and Comint do not work.
|
|
21
|
|
22 Since external Unix programs to handle commands such as
|
|
23 @code{print-buffer} and @code{diff} are not available on the Mac OS,
|
|
24 they are not supported in the Mac OS version.
|
|
25
|
|
26 @menu
|
|
27 * Mac Input:: Keyboard input on the Mac.
|
|
28 * Mac International:: International character set support on the Mac.
|
|
29 * Mac Environment Variables:: Setting environment variables for Emacs.
|
|
30 * Mac Directories:: Volumes and directories on the Mac.
|
|
31 * Mac Font Specs:: Specifying fonts on the Mac.
|
|
32 * Mac Functions:: Mac specific Lisp functions.
|
|
33 @end menu
|
|
34
|
|
35
|
|
36 @node Mac Input
|
|
37 @section Keyboard Input on the Mac
|
|
38 @cindex Meta (under Mac OS)
|
|
39 @cindex Mac keyboard coding
|
|
40 @vindex mac-command-key-is-meta
|
|
41 @vindex mac-keyboard-text-encoding
|
|
42
|
|
43 On the Mac, Emacs can use either the @key{option} key or the
|
|
44 @key{command} key as the @key{META} key. If the value of the variable
|
|
45 @code{mac-command-key-is-meta} is non-@code{nil} (its default value),
|
|
46 Emacs uses the @key{command} key as the @key{META} key. Otherwise it uses the
|
|
47 @key{option} key as the @key{META} key.
|
|
48
|
|
49 Most people should want to use the @key{command} key as the @key{META} key,
|
|
50 so that dead-key processing with the @key{option} key will still work. This is
|
|
51 useful for entering non-ASCII Latin characters directly from the Mac
|
|
52 keyboard, for example.
|
|
53
|
|
54 Emacs recognizes the setting in the Keyboard control panel and
|
|
55 supports international and alternative keyboard layouts (e.g., Dvorak).
|
|
56 Selecting one of the layouts from the keyboard layout pull-down menu
|
|
57 will affect how the keys typed on the keyboard are interpreted.
|
|
58
|
|
59 The Mac OS intercepts and handles certain key combinations (e.g.,
|
|
60 @key{command}-@key{SPC} for switching input languages). These will not
|
|
61 be passed to Emacs.
|
|
62
|
|
63 The Mac keyboard ordinarily generates characters in the Mac Roman
|
|
64 encoding. To use it for entering ISO Latin-1 characters directly, set
|
|
65 the value of the variable @code{mac-keyboard-text-encoding} to
|
|
66 @code{kTextEncodingISOLatin1}. Note that that not all Mac Roman
|
|
67 characters that can be entered at the keyboard can be converted to ISO
|
|
68 Latin-1 characters.
|
|
69
|
|
70 To enter ISO Latin-2 characters directly from the Mac keyboard. Set
|
|
71 the value of @code{mac-keyboard-text-encoding} to
|
|
72 @code{kTextEncodingISOLatin2}. Then let Emacs know that the keyboard
|
|
73 generates Latin-2 codes by typink @kbd{C-x RET k iso-latin-2 RET}. To
|
|
74 make this setting permanent, put this in your @file{.emacs} init file:
|
|
75
|
|
76 @lisp
|
|
77 (set-keyboard-coding-system 'iso-latin-2)
|
|
78 @end lisp
|
|
79
|
|
80 @node Mac International
|
|
81 @section International Character Set Support on the Mac
|
|
82 @cindex Mac Roman coding system
|
|
83 @cindex Mac clipboard support
|
|
84
|
|
85 The Mac uses a non-standard encoding for the upper 128 single-byte
|
|
86 characters. It also deviates from the ISO 2022 standard by using code
|
|
87 points in the range 128-159. The coding system @code{mac-roman} is used
|
|
88 to represent this Mac encoding. It is used for editing files stored in
|
|
89 this native encoding, and for displaying filenames in Dired mode.
|
|
90
|
|
91 Any native (non-symbol) Mac font can be used to correctly display
|
|
92 characters in the @code{mac-roman} coding system.
|
|
93
|
|
94 The fontset @code{fontset-mac} is created automatically when Emacs is
|
|
95 run on the Mac by the following expression. It displays characters in
|
|
96 the @code{mac-roman} coding system using 12-point Monaco.
|
|
97
|
|
98 To insert characters directly in the @code{mac-roman} coding system,
|
|
99 type @kbd{C-x RET k mac-roman RET}, or put this in your @file{.emacs}
|
|
100 init file:
|
|
101
|
|
102 @lisp
|
|
103 (set-keyboard-coding-system 'mac-roman)
|
|
104 @end lisp
|
|
105
|
|
106 @noindent
|
|
107 This is useful for editing documents in native Mac encoding.
|
|
108
|
|
109 You can use input methods provided either by LEIM (@pxref{Input
|
|
110 Methods}) or the Mac OS to enter international characters.
|
|
111
|
|
112 To use the former, see the International Character Set Support section
|
|
113 of the manual.
|
|
114
|
|
115 To use input methods provided by the Mac OS, set the keyboard coding
|
|
116 system accordingly using the @kbd{C-x RET k} command
|
|
117 (@code{set-keyboard-coding-system}). For example, for Traditional
|
34201
|
118 Chinese, use @samp{chinese-big5} as keyboard coding system; for
|
34198
|
119 Japanese, use @samp{sjis}, etc. Then select the desired input method in
|
|
120 the keyboard layout pull-down menu.
|
|
121
|
|
122 The Mac clipboard and the Emacs kill ring (@pxref{Killing}) are
|
|
123 connected as follows: the most recent kill is copied to the clipboard
|
|
124 when Emacs is suspended and the contents of the clipboard is inserted
|
|
125 into the kill ring when Emacs resumes. The result is that you can yank
|
|
126 a piece of text and paste it into another Mac application, or cut or copy
|
|
127 one in another Mac application and yank it into a Emacs buffer.
|
|
128
|
|
129 The encoding of text selections must be specified using the commands
|
|
130 @kbd{C-x RET x} (@code{set-selection-coding-system}) or @kbd{C-x RET X}
|
|
131 (@code{set-next-selection-coding-system}) (e.g., for Traditional
|
34201
|
132 Chinese, use @samp{chinese-big5-mac} and for Japanese,
|
34198
|
133 @samp{sjis-mac}). @xref{Specify Coding}, for more details.
|
|
134
|
|
135
|
|
136 @node Mac Environment Variables
|
|
137 @section Environment Variables and Command Line Arguments.
|
|
138 @cindex Mac environment variables
|
|
139
|
|
140 Environment variables and command line arguments for Emacs can be set
|
|
141 by modifying the @samp{STR#} resources 128 and 129, respectively. A common
|
|
142 environment variable that one may want to set is @samp{HOME}.
|
|
143
|
|
144 The way to set an environment variable is by adding a string of the
|
|
145 form
|
|
146
|
|
147 @example
|
|
148 ENV_VAR=VALUE
|
|
149 @end example
|
|
150
|
|
151 @noindent
|
|
152 to resource @samp{STR#} number 128 using @code{ResEdit}. To set up the
|
|
153 program to use unibyte characters exclusively, for example, add the
|
|
154 string
|
|
155
|
|
156 @example
|
|
157 EMACS_UNIBYTE=1
|
|
158 @end example
|
|
159
|
|
160
|
|
161 @node Mac Directories
|
|
162 @section Volumes and Directories on the Mac
|
|
163 @cindex file names under Mac OS
|
|
164
|
|
165 The directory structure in the Mac OS is seen by Emacs as
|
|
166
|
|
167 @example
|
|
168 /<volumename>/<pathname>
|
|
169 @end example
|
|
170
|
|
171 So when Emacs requests a file name, doing filename completion on
|
|
172 @file{/} will display all volumes on the system. As in Unix, @file{..}
|
|
173 can be used to go up a directory level.
|
|
174
|
|
175 To access files and folders on the desktop, look in the folder
|
|
176 @file{Desktop Folder} in your boot volume (this folder is usually
|
|
177 invisible in the Mac @code{Finder}).
|
|
178
|
|
179 Emacs creates the Mac folder @file{:Preferences:Emacs:} in the
|
|
180 @file{System Folder} and uses it as the temporary directory. The Unix
|
|
181 emulation code maps the Unix directory @file{/tmp} to it. Therefore it
|
|
182 is best to avoid naming a volume @file{tmp}. If everything works
|
|
183 correctly, the program should leave no files in it when it exits. You
|
|
184 should be able to set the environment variable @code{TMPDIR} to use
|
|
185 another directory but this folder will still be created.
|
|
186
|
|
187
|
|
188 @node Mac Font Specs
|
|
189 @section Specifying Fonts on the Mac
|
|
190 @cindex font names under Mac OS
|
|
191
|
|
192 Fonts are specified to Emacs on the Mac in the form of a standard X
|
|
193 font name. I.e.,
|
|
194
|
|
195 @example
|
|
196 -FOUNDRY-FAMILY-WEIGHT-SLANT-WIDTH--PIXELS-POINTS-
|
|
197 HRES-VRES-SPACING-AVEWIDTH-CHARSET
|
|
198 @end example
|
|
199
|
|
200 where the fields refer to foundry, font family, weight, slant, width,
|
|
201 pixels, point size, horizontal resolution, vertical resolution, spacing,
|
|
202 average width, and character set, respectively.
|
|
203
|
|
204 Wildcards are supported as they are on X.
|
|
205
|
|
206 Native Apple fonts in Mac Roman encoding has foundry name @code{apple}
|
|
207 and charset @code{mac-roman}. For example 12-point Monaco can be
|
|
208 specified by the name @samp{-apple-monaco-*-12-*-mac-roman}.
|
|
209
|
|
210 Native Apple Traditional Chinese, Simplified Chinese, Japanese, and
|
|
211 Korean fonts have charsets @samp{big5-0}, @samp{gb2312-0},
|
|
212 @samp{jisx0208.1983-sjis}, and @samp{ksc5601-1}, respectively.
|
|
213
|
|
214 Single-byte fonts converted from GNU fonts in BDF format, which are not
|
|
215 in the Mac Roman encoding, have foundry, family, and character sets
|
|
216 encoded in the names of their font suitcases. E.g., the font suitcase
|
|
217 @samp{ETL-Fixed-ISO8859-1} contains fonts which can be referred to by
|
|
218 the name @samp{-ETL-fixed-*-iso8859-1}.
|
|
219
|
|
220
|
|
221 @node Mac Functions
|
|
222 @section Mac Specific Lisp Functions
|
|
223 @cindex Lisp functions on the Mac OS
|
|
224
|
|
225 @findex do-applescript
|
|
226 The function @code{do-applescript} takes a string argument,
|
|
227 executes it as an AppleScript command, and returns the result as a
|
|
228 string.
|
|
229
|
|
230 @findex mac-filename-to-unix
|
|
231 @findex unix-filename-to-mac
|
|
232 The function @code{mac-filename-to-unix} takes a Mac pathname and
|
|
233 returns the Unix equivalent. The function @code{unix-filename-to-mac}
|
|
234 performs the opposite conversion. They are useful for constructing
|
|
235 AppleScript commands to be passed to @code{do-applescript}.
|