annotate mule-doc/arabic.txt @ 171:929b76928fce r20-3b12

Import from CVS: tag r20-3b12
author cvs
date Mon, 13 Aug 2007 09:47:52 +0200
parents 131b0175ea99
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
1 HOW TO READ & WRITE ARABIC 94.8.4 TAKAHASHI Naoto
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
2
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
3 1. STARTING UP
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
4
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
5 1.1 INVOKING MULE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
6
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
7 You must invoke Mule as an X client if you want to use Arabic.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
8 Make sure that the environment variable DISPLAY is properly set.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
9 So far only 16 dot font is available for Arabic. First, set you X
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
10 resources appropriately, then invoke Mule from a shell window with
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
11 the following command to get enough line spaces.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
12
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
13 % mule -fsp 0+9
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
14
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
15
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
16 1.2 ENTERING AND LEAVING ARABIC-MODE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
17
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
18 Hit C-] to enter arabic-mode. Whenever you are in arabic-mode,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
19 you are also in visual-mode. Hitting C-] again brings you back
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
20 from arabic-mode, but you are still in visual-mode. Hitting C-]
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
21 in visual-mode brings you into arabic-mode. You can exit
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
22 visual-mode by hitting C-c C-c. See the figure below.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
23
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
24
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
25 C-c C-c
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
26 +----------------------------------------------+
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
27 | +--------------------+ |
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
28 | | C-c C-c | |
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
29 V V | |
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
30 +-------------+ +-----------+ C-] +-----------+
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
31 | | C-] |arabic-mode| ------> | |
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
32 |initial state| ------> | and | |visual-mode|
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
33 | | |visual-mode| <------ | |
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
34 +-------------+ +-----------+ C-] +-----------+
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
35
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
36
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
37 The string "Arabic L2R" or "Arabic R2L" in mode-line means that
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
38 you are in both arabic-mode and visual-mode. If you see "L2R" or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
39 "R2L" but not "Arabic" in mode-line, you are in visual-mode but
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
40 not in arabic-mode.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
41
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
42
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
43 1.3 DISPLAY DIRECTION
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
44
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
45 Each buffer in Mule has a buffer local variable called
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
46 "display-direction". If this variable is set to nil (this is the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
47 default), the lines begin from the left edge of the screen. On
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
48 the other hand, if display-direction is non-nil, the lines are
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
49 aligned to the right and texts are written from right to left.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
50
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
51 If you are in visual-mode, the value of display-direction is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
52 reflected in mode-line: if it is nil "L2R" is displayed; if it is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
53 non-nil "R2L" is displayed. In visual-mode, you can set
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
54 display-direction to nil by typing 'C-c <', and to t by typing
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
55 'C-c >'.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
56
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
57 If you read a file (C-x C-f) which has the extension ".l2r", the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
58 buffer automatically goes in visual-mode and display-direction is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
59 set to nil. Likewise, if a file has the extension ".r2l", the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
60 buffer automatically goes in visual-mode and display-direction is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
61 set to t.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
62
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
63
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
64 2. EDITING ARABIC TEXT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
65
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
66 2.1 INPUT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
67
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
68 In arabic-mode, you can input Arabic characters and Arabic digits
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
69 from keyboard. To input ASCII characters or ASCII digits, you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
70 have to exit arabic-mode by hitting C-]. The translation table is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
71 given below. When you are in Arabic-mode, you can see the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
72 keyboard layout by C-z.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
73
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
74 Please note that this table is by no means a fixed one --- it is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
75 just a quick hack. Your suggestion on Arabic keyboard layout will
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
76 be greatly appreciated.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
77
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
78
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
79 translate table in arabic-mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
80 ------------------------------
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
81 " isolated hamza
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
82 a~ madda above alif
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
83 a' hamza above alif
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
84 w' hamza above waaw
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
85 a'' hamza below alif
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
86 y' hamza above yaa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
87 a alif
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
88 b baa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
89 o taa marbuTa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
90 t taa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
91 c thaa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
92 j jiim
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
93 H Haa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
94 K khaa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
95 d daal
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
96 x dhaal
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
97 r raa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
98 z zaay
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
99 s siin
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
100 / shiin
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
101 S Saad
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
102 D Daad
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
103 T Taa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
104 Z Zaa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
105 ` ayn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
106 G ghayn
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
107 f faa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
108 q qaaf
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
109 k kaaf
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
110 l laam
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
111 m miim
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
112 n nuun
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
113 h haa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
114 w waaw
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
115 A alif maqSura
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
116 y yaa
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
117 C chim (Farsi)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
118 g gaaf (Farsi)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
119 p paa (Farsi)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
120 X zhaa (Farsi)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
121 _ make connection
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
122 | cut connection
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
123
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
124
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
125 Appropriate ligature is automatically generated whenever a
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
126 character is input. Special ligature of laam + alif will be
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
127 generated whenever an alif is input on the left of a laam. If you
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
128 want to cut the connection between two adjacent Arabic characters,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
129 type a `|' (vertical bar) at that point in arabic-mode. An input
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
130 of a character preceded by a `|' produces a glyph which is not
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
131 connected to its right adjacent. Typing a `_' (underscore)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
132 connects the two characters at that point, if possible.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
133
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
134 When display-direction is nil (i.e. lines are aligned to left),
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
135 the cursor stays at the same position after an Arabic character is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
136 inserted. It moves to the right after an Arabic digit or an ASCII
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
137 character is inserted.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
138
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
139 When display-direction is non-nil (i.e. lines are aligned to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
140 right), the cursor moves to the left after an Arabic character is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
141 inserted. It stays at the same position after an Arabic digit or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
142 an ASCII character is inserted.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
143
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
144
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
145 2.2 DELETION, KILL & YANK
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
146
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
147 Use C-d to delete the character under the cursor. If you are in
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
148 arabic-mode, the necessary ligature will be re-generated after the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
149 character is deleted.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
150
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
151 DEL key behave differently according to the value of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
152 display-direction: if the value is nil (aligned to left), it
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
153 deletes a character on the left of the cursor; if the value is
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
154 non-nil (aligned to right), it deletes a character on the right of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
155 the cursor. If the display direction and the input character
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
156 direction are the same, lastly input character can be deleted with
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
157 DEL key, no matter what the value of display-direction is.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
158
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
159 M-d (arabic-kill-word), M-DEL (arabic-backward-kill-word), C-k
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
160 (arabic-kill-line) and C-w (arabic-kill-region) remove the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
161 specified stretch of string and put it in kill-ring. M-w
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
162 (arabic-copy-region-as-kill) also puts the specified stretch of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
163 string in kill-ring, but the original text is left unchanged.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
164
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
165 The strings in kill ring can be reinserted in buffer by C-y
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
166 (arabic-yank) and M-y (arabic-yank-pop).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
167
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
168 Make sure that you are in arabic-mode when you kill or yank
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
169 something, otherwise ligature is not maintained, or at the worst,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
170 unexpected region will be deleted or a garbage string will be
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
171 inserted in the buffer.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
172
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
173
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
174 2.3 CURSOR MOTION
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
175
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
176 The following cursor motion commands are supplied in visual-mode
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
177 and in arabic-mode to handle bi-directional texts easily. All
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
178 these commands accept an additional prefix numeric argument.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
179
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
180
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
181 key command name function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
182 -----------------------------------------------------------------
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
183 C-f visual-forward-char move the cursor visually
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
184 forward by 1 character
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
185
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
186 C-b visual-backward-char move the cursor visually
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
187 backward by 1 character
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
188
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
189 C-p visual-previous-line move the cursor up
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
190 by 1 line
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
191
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
192 C-n visual-next-line move the cursor down
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
193 by 1 line
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
194
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
195 C-a visual-beginning-of-line move the cursor to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
196 visual beginning of line
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
197
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
198 C-e visual-end-of-line move the cursor to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
199 visual end of line
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
200
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
201 M-f visual-forward-word move the cursor visually
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
202 forward by 1 word
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
203
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
204 M-b visual-backward-word move the cursor visually
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
205 backward by 1 word
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
206
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
207 M-< visual-beginning-of-buffer move the cursor to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
208 visual beginning of buffer
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
209
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
210 M-> visual-end-of-buffer move the cursor to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
211 visual end of buffer
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
212
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
213
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
214 Note that ordinary cursor motion commands (forward-char,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
215 backward-char, etc.) behave according to the logical order of the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
216 text, whilst the above commands behave according to the visual
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
217 order. Compare the difference of the two C-f commands. (You can
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
218 exit visual-mode by typing "C-c C-c".)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
219
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
220
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
221 2.4 LR COMMANDS
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
222
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
223 Some of you may be confused by the words "forward" and "backward".
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
224 Here is a summary:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
225
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
226
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
227 display-direction display-direction
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
228 is nil is non-nil
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
229 -------------------------------------------------
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
230 forward right left
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
231
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
232 backward left right
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
233
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
234
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
235 If you are using arrow keys to move the cursor, you may want to
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
236 move the cursor to left/right no matter what display-direction is.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
237 Likewise, you may want the cursor to be put on the left-most
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
238 column when you hit C-a, and on the right-most column when you hit
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
239 C-e. In such cases, rewrite the key definitions in visual.el and
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
240 arabic.el with the following commands. These commands are called
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
241 "LR commands" because they act according to the absolute direction
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
242 (left or right) rather than relative direction (forward or
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
243 backward).
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
244
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
245
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
246 ** LR commands in visual-mode **
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
247
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
248 command name function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
249 --------------------------------------------------------
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
250 visual-move-to-left-char move the cursor to left
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
251 by one character
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
252
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
253 visual-move-to-right-char move the cursor to right
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
254 by one character
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
255
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
256 visual-move-to-left-word move the cursor to left
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
257 by one word
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
258
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
259 visual-move-to-right-word move the cursor to right
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
260 by one word
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
261
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
262 visual-left-end-of-line move the cursor to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
263 leftmost column
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
264
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
265 visual-right-end-of-line move the cursor to the
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
266 rightmost column
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
267
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
268 visual-delete-left-char delete the character on
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
269 the left of visual point
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
270
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
271 visual-delete-right-char delete the character on
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
272 the right of visual point
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
273
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
274 visual-kill-left-word kill one word on the left
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
275 of visual point
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
276
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
277 visual-kill-right-word kill one word on the right
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
278 of visual point
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
279
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
280
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
281 ** LR commands in arabic-mode **
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
282
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
283 command name function
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
284 ----------------------------------------------------------
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
285 arabic-delete-left-char do visual-delete-left-char
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
286 and make Arabic ligature
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
287
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
288 arabic-delete-right-char do visual-delete-right-char
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
289 and make Arabic ligature
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
290
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
291 arabic-kill-left-word do visual-kill-left-word
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
292 and make Arabic ligature
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
293
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
294 arabic-kill-right-word do visual-kill-right-word
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
295 and make Arabic ligature
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
296
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
297
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
298 3. HARDCOPY
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
299
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
300 You can use m2ps to get a hardcopy of a file which contains arabic
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
301 characters. See m2ps.1 for detail. Note that input files to m2ps
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
302 must be written in *internal* coding system. To save the content of
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
303 a buffer, use the following command in Mule:
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
304
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
305 C-u C-x C-w _filename_ RET *internal* RET
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
306
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
307 Please note that the current version of m2ps does not support r2l
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
308 printing direction (flushright mode). If you try to print a file
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
309 which was created under r2l display direction, it will be printed
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
310 left-aligned. Furthermore, you may get wrong word order.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
311
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
312 4. LIMITATIONS
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
313
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
314 There are many limitations in this release. We need your help.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
315
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
316 4.1 NON-SPACING MARKS IN ARABIC
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
317
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
318 Only two non-spacing marks, i.e., madda and hamza, are available
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
319 in this release. Any other marks, e.g. fatHa (short 'a'), Damma
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
320 (short 'u'), kasra (short 'i'), shadda (doubling sign), sukuun (no
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
321 vowel sign), waSla (joining hamza), etc., cannot be displayed. It
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
322 seems that short vowels and waSla are not necessary to write
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
323 ordinary Arabic text, but shadda is often marked in Arabic
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
324 printings. Please let me know if shadda is really indispensable,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
325 in that case I will try to implement shadda in some way.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
326
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
327
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
328 4.2 FILE FORMAT
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
329
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
330 This package uses its own format (coding system) for file I/O.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
331 You cannot read the files saved in other format, e.g., ISO 8859-6,
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
332 ISO 10646, UNICODE, ArabTeX, xaw, etc. As a matter of fact, I do
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
333 not know what format is mostly used in the world to save Arabic
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
334 texts. If you have texts saved in certain format and would like
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
335 to edit them with Mule, please send me the documentation of your
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
336 format. I will try to implement file I/O routine for that format.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
337
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
338
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
339 4.3 MISCELLANEOUS LIMITATIONS
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
340
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
341 * Tab does not work if display-direction is non-nil.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
342
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
343 * transpose commands and rectangle commands do not work in most cases.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
344
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
345
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
346 5. ADDRESS
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
347
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
348 Bug reports and comments should be sent to this mailing list
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
349 (mule@etl.go.jp) or directly to me (ntakahas@etl.go.jp). Any
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
350 kinds of suggestions or demands are greatly appreciated.
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
351
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
352
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
353 TAKAHASHI Naoto
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
354 Electrotechnical Laboratory, Japan
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
355 ntakahas@etl.go.jp