Mercurial > emacs
annotate man/macos.texi @ 36418:f1c418df78ff
*** empty log message ***
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 27 Feb 2001 19:06:56 +0000 |
parents | f5625ac53fba |
children | 7da7487bbbd8 |
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 | |
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 | |
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), | |
45 Emacs uses the @key{command} key as the @key{META} key. Otherwise it uses the | |
46 @key{option} key as the @key{META} key. | |
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 |
69 To enter ISO Latin-2 characters directly from the Mac keyboard. Set | |
70 the value of @code{mac-keyboard-text-encoding} to | |
71 @code{kTextEncodingISOLatin2}. Then let Emacs know that the keyboard | |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
72 generates Latin-2 codes by typing @kbd{C-x RET k iso-latin-2 RET}. To |
34198 | 73 make this setting permanent, put this in your @file{.emacs} init file: |
74 | |
75 @lisp | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
76 (set-keyboard-coding-system 'iso-latin-2) |
34198 | 77 @end lisp |
78 | |
79 @node Mac International | |
80 @section International Character Set Support on the Mac | |
81 @cindex Mac Roman coding system | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
82 @cindex clipboard support (Mac OS) |
34198 | 83 |
84 The Mac uses a non-standard encoding for the upper 128 single-byte | |
85 characters. It also deviates from the ISO 2022 standard by using code | |
86 points in the range 128-159. The coding system @code{mac-roman} is used | |
87 to represent this Mac encoding. It is used for editing files stored in | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
88 this native encoding, and for displaying file names in Dired mode. |
34198 | 89 |
90 Any native (non-symbol) Mac font can be used to correctly display | |
91 characters in the @code{mac-roman} coding system. | |
92 | |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
93 The fontset @code{fontset-mac} is created automatically when Emacs |
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
94 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
|
95 coding system using 12-point Monaco. |
34198 | 96 |
97 To insert characters directly in the @code{mac-roman} coding system, | |
98 type @kbd{C-x RET k mac-roman RET}, or put this in your @file{.emacs} | |
99 init file: | |
100 | |
101 @lisp | |
102 (set-keyboard-coding-system 'mac-roman) | |
103 @end lisp | |
104 | |
105 @noindent | |
106 This is useful for editing documents in native Mac encoding. | |
107 | |
108 You can use input methods provided either by LEIM (@pxref{Input | |
109 Methods}) or the Mac OS to enter international characters. | |
110 | |
111 To use the former, see the International Character Set Support section | |
112 of the manual. | |
113 | |
114 To use input methods provided by the Mac OS, set the keyboard coding | |
115 system accordingly using the @kbd{C-x RET k} command | |
116 (@code{set-keyboard-coding-system}). For example, for Traditional | |
34201 | 117 Chinese, use @samp{chinese-big5} as keyboard coding system; for |
34198 | 118 Japanese, use @samp{sjis}, etc. Then select the desired input method in |
119 the keyboard layout pull-down menu. | |
120 | |
121 The Mac clipboard and the Emacs kill ring (@pxref{Killing}) are | |
122 connected as follows: the most recent kill is copied to the clipboard | |
123 when Emacs is suspended and the contents of the clipboard is inserted | |
124 into the kill ring when Emacs resumes. The result is that you can yank | |
125 a piece of text and paste it into another Mac application, or cut or copy | |
126 one in another Mac application and yank it into a Emacs buffer. | |
127 | |
128 The encoding of text selections must be specified using the commands | |
129 @kbd{C-x RET x} (@code{set-selection-coding-system}) or @kbd{C-x RET X} | |
130 (@code{set-next-selection-coding-system}) (e.g., for Traditional | |
34201 | 131 Chinese, use @samp{chinese-big5-mac} and for Japanese, |
34198 | 132 @samp{sjis-mac}). @xref{Specify Coding}, for more details. |
133 | |
134 | |
135 @node Mac Environment Variables | |
136 @section Environment Variables and Command Line Arguments. | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
137 @cindex environment variables (Mac OS) |
34198 | 138 |
139 Environment variables and command line arguments for Emacs can be set | |
140 by modifying the @samp{STR#} resources 128 and 129, respectively. A common | |
141 environment variable that one may want to set is @samp{HOME}. | |
142 | |
143 The way to set an environment variable is by adding a string of the | |
144 form | |
145 | |
146 @example | |
147 ENV_VAR=VALUE | |
148 @end example | |
149 | |
150 @noindent | |
151 to resource @samp{STR#} number 128 using @code{ResEdit}. To set up the | |
152 program to use unibyte characters exclusively, for example, add the | |
153 string | |
154 | |
155 @example | |
156 EMACS_UNIBYTE=1 | |
157 @end example | |
158 | |
159 | |
160 @node Mac Directories | |
161 @section Volumes and Directories on the Mac | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
162 @cindex file names (Mac OS) |
34198 | 163 |
164 The directory structure in the Mac OS is seen by Emacs as | |
165 | |
166 @example | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
167 /@var{volumename}/@var{filename} |
34198 | 168 @end example |
169 | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
170 So when Emacs requests a file name, doing file name completion on |
34198 | 171 @file{/} will display all volumes on the system. As in Unix, @file{..} |
172 can be used to go up a directory level. | |
173 | |
174 To access files and folders on the desktop, look in the folder | |
175 @file{Desktop Folder} in your boot volume (this folder is usually | |
176 invisible in the Mac @code{Finder}). | |
177 | |
178 Emacs creates the Mac folder @file{:Preferences:Emacs:} in the | |
179 @file{System Folder} and uses it as the temporary directory. The Unix | |
180 emulation code maps the Unix directory @file{/tmp} to it. Therefore it | |
181 is best to avoid naming a volume @file{tmp}. If everything works | |
182 correctly, the program should leave no files in it when it exits. You | |
183 should be able to set the environment variable @code{TMPDIR} to use | |
184 another directory but this folder will still be created. | |
185 | |
186 | |
187 @node Mac Font Specs | |
188 @section Specifying Fonts on the Mac | |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
189 @cindex font names (Mac OS) |
34198 | 190 |
191 Fonts are specified to Emacs on the Mac in the form of a standard X | |
192 font name. I.e., | |
193 | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
194 @smallexample |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
195 -@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
|
196 @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
|
197 @end smallexample |
34198 | 198 |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
199 @noindent |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
200 @xref{Font X}. Wildcards |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
201 are supported as they are on X. |
34198 | 202 |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
203 Native Apple fonts in Mac Roman encoding has maker name @code{apple} |
34198 | 204 and charset @code{mac-roman}. For example 12-point Monaco can be |
205 specified by the name @samp{-apple-monaco-*-12-*-mac-roman}. | |
206 | |
207 Native Apple Traditional Chinese, Simplified Chinese, Japanese, and | |
36413
f5625ac53fba
Made minor editing changes.
Andrew Choi <akochoi@shaw.ca>
parents:
36263
diff
changeset
|
208 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
|
209 @samp{jisx0208.1983-sjis}, and @samp{ksc5601.1989-0}, respectively. |
34198 | 210 |
211 Single-byte fonts converted from GNU fonts in BDF format, which are not | |
212 in the Mac Roman encoding, have foundry, family, and character sets | |
213 encoded in the names of their font suitcases. E.g., the font suitcase | |
214 @samp{ETL-Fixed-ISO8859-1} contains fonts which can be referred to by | |
215 the name @samp{-ETL-fixed-*-iso8859-1}. | |
216 | |
217 | |
218 @node Mac Functions | |
36165
7ae44c5a0404
One more small cleanup.
Richard M. Stallman <rms@gnu.org>
parents:
36163
diff
changeset
|
219 @section Mac-Specific Lisp Functions |
36263
11db0318031d
Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents:
36165
diff
changeset
|
220 @cindex Lisp functions specific to Mac OS |
34198 | 221 |
222 @findex do-applescript | |
223 The function @code{do-applescript} takes a string argument, | |
224 executes it as an AppleScript command, and returns the result as a | |
225 string. | |
226 | |
227 @findex mac-filename-to-unix | |
228 @findex unix-filename-to-mac | |
36163
159cc113a7b0
Small cleanups in usage.
Richard M. Stallman <rms@gnu.org>
parents:
34201
diff
changeset
|
229 The function @code{mac-filename-to-unix} takes a Mac file name and |
34198 | 230 returns the Unix equivalent. The function @code{unix-filename-to-mac} |
231 performs the opposite conversion. They are useful for constructing | |
232 AppleScript commands to be passed to @code{do-applescript}. |