Mercurial > emacs
annotate man/macos.texi @ 38686:0d3019db87ac
(Lossage, Bugs): Mention etc/PROBLEMS and the Bugs section of the FAQ.
Suggested by David Kastrup <David.Kastrup@neuroinformatik.ruhr-uni-bochum.de>.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 04 Aug 2001 12:39:30 +0000 |
parents | 41f655ec596a |
children | 62e02f5ae533 |
rev | line source |
---|---|
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 | |
38021 | 19 (@code{start-process}), and networking (@code{open-network-stream}). |
37511
226e5ac0edeb
(Mac OS): Don't say Ispell cannot work: it can, if they have a port
Eli Zaretskii <eliz@gnu.org>
parents:
36875
diff
changeset
|
20 As a result, packages such as Gnus, GUD, and Comint do not work. |
34198 | 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 | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
27 * Input: Mac Input. Keyboard input on the Mac. |
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
28 * Intl: Mac International. International character sets on the Mac. |
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
29 * Env: Mac Environment Variables. Setting environment variables for Emacs. |
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
30 * Directories: Mac Directories. Volumes and directories on the Mac. |
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
31 * Font: Mac Font Specs. Specifying fonts on the Mac. |
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
32 * Functions: Mac Functions. Mac-specific Lisp functions. |
34198 | 33 @end menu |
34 | |
35 @node Mac Input | |
36 @section Keyboard Input on the Mac | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
37 @cindex Meta (Mac OS) |
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
38 @cindex keyboard coding (Mac OS) |
34198 | 39 @vindex mac-command-key-is-meta |
40 @vindex mac-keyboard-text-encoding | |
41 | |
42 On the Mac, Emacs can use either the @key{option} key or the | |
43 @key{command} key as the @key{META} key. If the value of the variable | |
44 @code{mac-command-key-is-meta} is non-@code{nil} (its default value), | |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
45 Emacs uses the @key{command} key as the @key{META} key. Otherwise it |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
46 uses the @key{option} key as the @key{META} key. |
34198 | 47 |
48 Most people should want to use the @key{command} key as the @key{META} key, | |
49 so that dead-key processing with the @key{option} key will still work. This is | |
50 useful for entering non-ASCII Latin characters directly from the Mac | |
51 keyboard, for example. | |
52 | |
53 Emacs recognizes the setting in the Keyboard control panel and | |
54 supports international and alternative keyboard layouts (e.g., Dvorak). | |
55 Selecting one of the layouts from the keyboard layout pull-down menu | |
56 will affect how the keys typed on the keyboard are interpreted. | |
57 | |
58 The Mac OS intercepts and handles certain key combinations (e.g., | |
59 @key{command}-@key{SPC} for switching input languages). These will not | |
60 be passed to Emacs. | |
61 | |
62 The Mac keyboard ordinarily generates characters in the Mac Roman | |
63 encoding. To use it for entering ISO Latin-1 characters directly, set | |
64 the value of the variable @code{mac-keyboard-text-encoding} to | |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
65 @code{kTextEncodingISOLatin1}. Note that not all Mac Roman characters |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
66 that can be entered at the keyboard can be converted to ISO Latin-1 |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
67 characters. |
34198 | 68 |
36499
7da7487bbbd8
(Mac Input, Mac Font Specs): Fix typos reported by Dr Francis J. Wright
Eli Zaretskii <eliz@gnu.org>
parents:
36413
diff
changeset
|
69 To enter ISO Latin-2 characters directly from the Mac keyboard, set |
34198 | 70 the value of @code{mac-keyboard-text-encoding} to |
71 @code{kTextEncodingISOLatin2}. Then let Emacs know that the keyboard | |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
72 generates Latin-2 codes, by typing @kbd{C-x @key{RET} k iso-latin-2 |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
73 @key{RET}}. To make this setting permanent, put this in your |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
74 @file{.emacs} init file: |
34198 | 75 |
76 @lisp | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
77 (set-keyboard-coding-system 'iso-latin-2) |
34198 | 78 @end lisp |
79 | |
80 @node Mac International | |
81 @section International Character Set Support on the Mac | |
82 @cindex Mac Roman coding system | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
83 @cindex clipboard support (Mac OS) |
34198 | 84 |
85 The Mac uses a non-standard encoding for the upper 128 single-byte | |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
86 characters. It also deviates from the ISO 2022 standard by using |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
87 character codes in the range 128-159. The coding system |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
88 @code{mac-roman} is used to represent this Mac encoding. It is used |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
89 for editing files stored in this native encoding, and for displaying |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
90 file names in Dired mode. |
34198 | 91 |
92 Any native (non-symbol) Mac font can be used to correctly display | |
93 characters in the @code{mac-roman} coding system. | |
94 | |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
95 The fontset @code{fontset-mac} is created automatically when Emacs |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
96 is run on the Mac. It displays characters in the @code{mac-roman} |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
97 coding system using 12-point Monaco. |
34198 | 98 |
99 To insert characters directly in the @code{mac-roman} coding system, | |
36875 | 100 type @kbd{C-x @key{RET} k mac-roman @key{RET}}, customize the option |
101 @code{keyboard-coding-system}, or put this in your init file: | |
34198 | 102 |
103 @lisp | |
104 (set-keyboard-coding-system 'mac-roman) | |
105 @end lisp | |
106 | |
107 @noindent | |
108 This is useful for editing documents in native Mac encoding. | |
109 | |
110 You can use input methods provided either by LEIM (@pxref{Input | |
111 Methods}) or the Mac OS to enter international characters. | |
112 | |
113 To use the former, see the International Character Set Support section | |
36875 | 114 of the manual (@pxref{International}). |
34198 | 115 |
116 To use input methods provided by the Mac OS, set the keyboard coding | |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
117 system accordingly using the @kbd{C-x @key{RET} k} command |
34198 | 118 (@code{set-keyboard-coding-system}). For example, for Traditional |
34201 | 119 Chinese, use @samp{chinese-big5} as keyboard coding system; for |
34198 | 120 Japanese, use @samp{sjis}, etc. Then select the desired input method in |
121 the keyboard layout pull-down menu. | |
122 | |
123 The Mac clipboard and the Emacs kill ring (@pxref{Killing}) are | |
124 connected as follows: the most recent kill is copied to the clipboard | |
125 when Emacs is suspended and the contents of the clipboard is inserted | |
126 into the kill ring when Emacs resumes. The result is that you can yank | |
127 a piece of text and paste it into another Mac application, or cut or copy | |
128 one in another Mac application and yank it into a Emacs buffer. | |
129 | |
130 The encoding of text selections must be specified using the commands | |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
131 @kbd{C-x @key{RET} x} (@code{set-selection-coding-system}) or @kbd{C-x |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
132 @key{RET} X} (@code{set-next-selection-coding-system}) (e.g., for |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
133 Traditional Chinese, use @samp{chinese-big5-mac} and for Japanese, |
34198 | 134 @samp{sjis-mac}). @xref{Specify Coding}, for more details. |
135 | |
136 | |
137 @node Mac Environment Variables | |
138 @section Environment Variables and Command Line Arguments. | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
139 @cindex environment variables (Mac OS) |
34198 | 140 |
141 Environment variables and command line arguments for Emacs can be set | |
142 by modifying the @samp{STR#} resources 128 and 129, respectively. A common | |
143 environment variable that one may want to set is @samp{HOME}. | |
144 | |
145 The way to set an environment variable is by adding a string of the | |
146 form | |
147 | |
148 @example | |
149 ENV_VAR=VALUE | |
150 @end example | |
151 | |
152 @noindent | |
153 to resource @samp{STR#} number 128 using @code{ResEdit}. To set up the | |
154 program to use unibyte characters exclusively, for example, add the | |
155 string | |
156 | |
157 @example | |
158 EMACS_UNIBYTE=1 | |
159 @end example | |
160 | |
161 | |
162 @node Mac Directories | |
163 @section Volumes and Directories on the Mac | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
164 @cindex file names (Mac OS) |
34198 | 165 |
166 The directory structure in the Mac OS is seen by Emacs as | |
167 | |
168 @example | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
169 /@var{volumename}/@var{filename} |
34198 | 170 @end example |
171 | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
172 So when Emacs requests a file name, doing file name completion on |
34198 | 173 @file{/} will display all volumes on the system. As in Unix, @file{..} |
174 can be used to go up a directory level. | |
175 | |
176 To access files and folders on the desktop, look in the folder | |
177 @file{Desktop Folder} in your boot volume (this folder is usually | |
178 invisible in the Mac @code{Finder}). | |
179 | |
180 Emacs creates the Mac folder @file{:Preferences:Emacs:} in the | |
181 @file{System Folder} and uses it as the temporary directory. The Unix | |
182 emulation code maps the Unix directory @file{/tmp} to it. Therefore it | |
183 is best to avoid naming a volume @file{tmp}. If everything works | |
184 correctly, the program should leave no files in it when it exits. You | |
185 should be able to set the environment variable @code{TMPDIR} to use | |
186 another directory but this folder will still be created. | |
187 | |
188 | |
189 @node Mac Font Specs | |
190 @section Specifying Fonts on the Mac | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
191 @cindex font names (Mac OS) |
34198 | 192 |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
193 It is rare that you need to specify a font name in Emacs; usually |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
194 you specify face attributes instead. But when you do need to specify |
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
195 a font name in Emacs on the Mac, use a standard X font name: |
34198 | 196 |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
197 @smallexample |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
198 -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{} |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
199 @dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{charset} |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
200 @end smallexample |
34198 | 201 |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
202 @noindent |
36503
d7815b5b49d7
Minor clarifications. Explain that one normally specifies face attributes
Richard M. Stallman <rms@gnu.org>
parents:
36499
diff
changeset
|
203 @xref{Font X}. Wildcards are supported as they are on X. |
34198 | 204 |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
205 Native Apple fonts in Mac Roman encoding has maker name @code{apple} |
34198 | 206 and charset @code{mac-roman}. For example 12-point Monaco can be |
207 specified by the name @samp{-apple-monaco-*-12-*-mac-roman}. | |
208 | |
209 Native Apple Traditional Chinese, Simplified Chinese, Japanese, and | |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
210 Korean fonts have charsets @samp{big5-0}, @samp{gb2312.1980-0}, |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
211 @samp{jisx0208.1983-sjis}, and @samp{ksc5601.1989-0}, respectively. |
34198 | 212 |
213 Single-byte fonts converted from GNU fonts in BDF format, which are not | |
214 in the Mac Roman encoding, have foundry, family, and character sets | |
215 encoded in the names of their font suitcases. E.g., the font suitcase | |
216 @samp{ETL-Fixed-ISO8859-1} contains fonts which can be referred to by | |
217 the name @samp{-ETL-fixed-*-iso8859-1}. | |
218 | |
219 | |
220 @node Mac Functions | |
36165
7ae44c5a0404
One more small cleanup.
Richard M. Stallman <rms@gnu.org>
parents:
36163
diff
changeset
|
221 @section Mac-Specific Lisp Functions |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
222 @cindex Lisp functions specific to Mac OS |
34198 | 223 |
224 @findex do-applescript | |
225 The function @code{do-applescript} takes a string argument, | |
226 executes it as an AppleScript command, and returns the result as a | |
227 string. | |
228 | |
229 @findex mac-filename-to-unix | |
230 @findex unix-filename-to-mac | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
231 The function @code{mac-filename-to-unix} takes a Mac file name and |
34198 | 232 returns the Unix equivalent. The function @code{unix-filename-to-mac} |
233 performs the opposite conversion. They are useful for constructing | |
234 AppleScript commands to be passed to @code{do-applescript}. |