Mercurial > emacs
annotate man/macos.texi @ 38212:6b14cc47a4f2
Major rewrite. Sections Tags, Emerge, Change Log and Authors
moved to maintaining.texi. Some sections reordered.
Node Misc for Programs moved to just before the language-specific sections.
New node Defuns contains an intro plus the old
Defuns node (now renamed Moving by Defuns)
as well as Imenu, Which Function, and a node
Left Margin Paren to explain the convention about this.
New node Parentheses now documents M-x check-parens.
It contains subnodes Expressions, Moving by Parens, and Matching.
Expressions and Moving by Parens contain the material
formerly in Lists and List Commands, but divided up differently.
The section Balanced Editing has been deleted.
Most of the C indentation customization (all except c-set-style),
has been replaced with a reference to the C Modes manual.
Documentation now is divided into three subsections.
Some rewrites in the Program Indent section about
C-u TAB and C-M-q.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 26 Jun 2001 13:43:32 +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}. |