1281
|
1 *farsi.txt* For Vim version 7.1. Last change: 2005 Mar 29
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
|
|
5
|
|
6
|
|
7 Right to Left and Farsi Mapping for Vim *farsi* *Farsi*
|
|
8
|
|
9 {Vi does not have any of these commands}
|
|
10
|
|
11 *E27*
|
|
12 In order to use right-to-left and Farsi mapping support, it is necessary to
|
|
13 compile Vim with the |+farsi| feature.
|
|
14
|
|
15 These functions have been made by Mortaza G. Shiran <shiran@jps.net>
|
|
16
|
|
17
|
|
18 Introduction
|
|
19 ------------
|
|
20 In right-to-left oriented files the characters appear on the screen from right
|
|
21 to left. This kind of file is most useful when writing Farsi documents,
|
|
22 composing faxes or writing Farsi memos.
|
|
23
|
|
24 The commands, prompts and help files are not in Farsi, therefore the user
|
|
25 interface remains the standard Vi interface.
|
|
26
|
|
27
|
|
28 Highlights
|
|
29 ----------
|
|
30 o Editing left-to-right files as in the original Vim, no change.
|
|
31
|
|
32 o Viewing and editing files in right-to-left windows. File orientation is
|
|
33 per window, so it is possible to view the same file in right-to-left and
|
|
34 left-to-right modes, simultaneously.
|
|
35
|
|
36 o Compatibility to the original Vim. Almost all features work in
|
|
37 right-to-left mode (see bugs below).
|
|
38
|
|
39 o Changing keyboard mapping and reverse insert modes using a single
|
|
40 command.
|
|
41
|
|
42 o Backing from reverse insert mode to the correct place in the file
|
|
43 (if possible).
|
|
44
|
237
|
45 o While in Farsi mode, numbers are entered from left to right. Upon entering
|
7
|
46 a none number character, that character will be inserted just into the
|
|
47 left of the last number.
|
|
48
|
|
49 o No special terminal with right-to-left capabilities is required. The
|
|
50 right-to-left changes are completely hardware independent. Only
|
|
51 Farsi font is necessary.
|
|
52
|
|
53 o Farsi keymapping on the command line in reverse insert mode.
|
|
54
|
|
55 o Toggling between left-to-right and right-to-left via F8 function key.
|
|
56
|
237
|
57 o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
|
|
58 function key. Since this makes sense only for the text written in
|
7
|
59 right-to-left mode, this function is also supported only in right-to-left
|
|
60 mode.
|
|
61
|
|
62 Farsi Fonts *farsi fonts*
|
|
63 -----------
|
|
64
|
|
65 If the "extra" archive has been unpacked, the following files are found in the
|
|
66 subdirectories of the '$VIM/farsi' directory:
|
|
67
|
|
68 + far-a01.pcf X Windows fonts for Unix including Linux systems
|
9
|
69 + far-a01.bf X Windows fonts for SunOS
|
7
|
70 + far-a01.f16 a screen fonts for Unix including Linux systems
|
|
71 + far-a01.fon a monospaced fonts for Windows NT/95/98
|
|
72 + far-a01.com a screen fonts for DOS
|
|
73
|
|
74
|
|
75 Font Installation
|
|
76 -----------------
|
|
77
|
|
78 o Installation of fonts for MS Window systems (NT/95/98)
|
|
79
|
237
|
80 From 'Control Panel' folder, start the 'Fonts' program. Then from 'file'
|
|
81 menu item select 'Install New Fonts ...'. Browse and select the
|
7
|
82 'far-a01.fon', then follow the installation guide.
|
|
83 NOTE: several people have reported that this does not work. The solution
|
|
84 is unknown.
|
|
85
|
|
86 o Installation of fonts for X Window systems (Unix/Linux)
|
|
87
|
|
88 Depending on your system, copy far-a01.pcf.Z or far-a01.pcf.gz into a
|
|
89 directory of your choice. Change to the directory containing the Farsi
|
|
90 fonts and execute the following commands:
|
|
91
|
|
92 > mkfontdir
|
|
93 > xset +fp path_name_of_farsi_fonts_directory
|
|
94
|
9
|
95 o Installation of fonts for X Window systems (SunOS)
|
7
|
96
|
|
97 Copy far-a01.bf font into a directory of your choice.
|
|
98 Change to the directory containing the far-a01.fb fonts and
|
|
99 execute the following commands:
|
|
100
|
|
101 > fldfamily
|
|
102 > xset +fp path_name_of_fonts_directory
|
|
103
|
|
104 o Installation of ASCII screen fonts (Unix/Linux)
|
|
105
|
|
106 For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts
|
237
|
107 directory and execute the setfont program as "setfont far-a01.f16". For
|
7
|
108 other systems (e.g. SCO Unix), please refer to the fonts installation
|
|
109 section of your system administration manuals.
|
|
110
|
|
111 o Installation of ASCII screen fonts (DOS)
|
|
112
|
237
|
113 After system power on, prior to the first use of Vim, upload the Farsi
|
7
|
114 fonts by executing the far-a01.com font uploading program.
|
|
115
|
|
116
|
|
117 Usage
|
|
118 -----
|
237
|
119 Prior to starting Vim, the environment in which Vim can run in Farsi mode,
|
7
|
120 must be set. In addition to installation of Farsi fonts, following points
|
|
121 refer to some of the system environments, which you may need to set:
|
|
122 Key code mapping, loading graphic card in ASCII screen mode, setting the IO
|
|
123 driver in 8 bit clean mode ... .
|
|
124
|
|
125 o Setting the Farsi fonts
|
|
126
|
237
|
127 + For Vim GUI set the 'guifont' to far-a01. This is done by entering
|
|
128 ':set guifont=far-a01' in the Vim window.
|
7
|
129
|
237
|
130 You can have 'guifont' set to far-a01 by Vim during the Vim startup
|
7
|
131 by appending the ':set guifont=far-a01' into your .vimrc file
|
|
132 (in case of NT/95/98 platforms _vimrc).
|
|
133
|
237
|
134 Under the X Window environment, you can also start Vim with the
|
7
|
135 '-fn far-a01' option.
|
|
136
|
237
|
137 + For Vim within a xterm, start a xterm with the Farsi fonts (e.g.
|
|
138 kterm -fn far-a01). Then start Vim inside the kterm.
|
7
|
139
|
237
|
140 + For Vim under DOS, prior to the first usage of Vim, upload the Farsi
|
7
|
141 fonts by executing the far-a01.com fonts uploading program.
|
|
142
|
|
143 o Farsi Keymapping Activation
|
|
144
|
|
145 To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'.
|
237
|
146 This is done by entering ':set akm' or ':set fk' in the Vim window.
|
7
|
147 You can have 'altkeymap' or 'fkmap' set as default by appending ':set akm'
|
|
148 or ':set fk' in your .vimrc file or _vimrc in case of NT/95/98 platforms.
|
|
149
|
|
150 To turn off the Farsi keymapping as a default second language keymapping,
|
|
151 reset the 'altkeymap' by entering ':set noakm'.
|
|
152
|
|
153 o right-to-left Farsi Mode
|
|
154
|
237
|
155 By default Vim starts in Left-to-right mode. Following are ways to change
|
7
|
156 the window orientation:
|
|
157
|
237
|
158 + Start Vim with the -F option (e.g. vim -F ...).
|
7
|
159
|
237
|
160 + Use the F8 function key to toggle between left-to-right and right-to-left.
|
7
|
161
|
|
162 + While in Left-to-right mode, enter 'set rl' in the command line ('rl' is
|
|
163 the abbreviation for rightleft).
|
|
164
|
237
|
165 + Put the 'set rl' line in your '.vimrc' file to start Vim in
|
7
|
166 right-to-left mode permanently.
|
|
167
|
|
168 Encoding
|
|
169 --------
|
|
170
|
237
|
171 The letter encoding used is the Vim extended ISIR-3342 standard with a built
|
|
172 in function to convert between Vim extended ISIR-3342 and ISIR-3342 standard.
|
7
|
173
|
|
174 For document portability reasons, the letter encoding is kept the same across
|
|
175 different platforms (i.e. UNIX's, NT/95/98, MS DOS, ...).
|
|
176
|
|
177
|
|
178 o Keyboard
|
|
179
|
|
180 + CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin
|
|
181 mode as follows:
|
|
182
|
|
183 + CTRL-_ moves the cursor to the end of the typed text in edit mode.
|
|
184
|
|
185 + CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/
|
237
|
186 Latin. The Farsi text is then entered in reverse insert mode.
|
7
|
187
|
|
188 + F8 - Toggles between left-to-right and right-to-left.
|
|
189
|
237
|
190 + F9 - Toggles the encoding between ISIR-3342 standard and Vim extended
|
7
|
191 ISIR-3342 (supported only in right-to-left mode).
|
|
192
|
|
193 + Keyboard mapping is based on the Iranian ISIRI-2901 standard.
|
|
194 Following table shows the keyboard mapping while Farsi(akm) mode set:
|
|
195
|
|
196 -------------------------------------
|
|
197 ` 1 2 3 4 5 6 7 8 9 0 - =
|
|
198 ¢ ± ² ³ ´ µ ¶ · ¸ ¹ ° ½
|
|
199 -------------------------------------
|
|
200 ~ ! @ # $ % ^ & * ( ) _ +
|
|
201 ~ £ § ® ¤ ¥ ª ¬ è ¨ © é «
|
|
202 -------------------------------------
|
|
203 q w e r t z u i o p [ ]
|
|
204 Ó Ò Æ Ù Ø Õ Ö à Ê É Ç ˆ
|
|
205 -------------------------------------
|
|
206 Q W E R T Z U I O P { }
|
|
207 ÷ õ ô ó ò ý ð ö [ ] { }
|
|
208 -------------------------------------
|
|
209 a s d f g h j k l ; ' \
|
|
210 Ñ Ð á Ã Ü Á Å Þ Ý Ú Û ë
|
|
211 -------------------------------------
|
|
212 A S D F G H J K L : " |
|
|
213 ù û þ ú ø À ü æ ç º » ê
|
|
214 -------------------------------------
|
|
215 < y x c v b n m , . /
|
|
216 ¾ × Ô Î Í Ì Ë Ä ß ¦ ¯
|
|
217 -------------------------------------
|
|
218 > Y X C V B N M < > ?
|
|
219 ¼ ñ Ô Ï Í ¡ Ë Â ¾ ¼ ¿
|
|
220 -------------------------------------
|
|
221
|
|
222 Note:
|
|
223 ¡ stands for Farsi PSP (break without space)
|
|
224
|
|
225 ¢ stands for Farsi PCN (for HAMZE attribute )
|
|
226
|
|
227 Restrictions
|
|
228 ------------
|
|
229
|
|
230 o In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not
|
|
231 supported.
|
|
232
|
|
233 o If you change the character mapping between Latin/Farsi, the redo buffer
|
237
|
234 will be reset (emptied). That is, redo is valid and will function (using
|
7
|
235 '.') only within the mode you are in.
|
|
236
|
|
237 o While numbers are entered in Farsi mode, the redo buffer will be reset
|
237
|
238 (emptied). That is, you cannot redo the last changes (using '.') after
|
7
|
239 entering numbers.
|
|
240
|
237
|
241 o While in left-to-right mode and Farsi mode set, CTRL-R is not supported.
|
7
|
242
|
|
243 o While in right-to-left mode, the search on 'Latin' pattern does not work,
|
|
244 except if you enter the Latin search pattern in reverse.
|
|
245
|
237
|
246 o In command mode there is no support for entering numbers from left
|
|
247 to right and also for the sake of flexibility the keymapping logic is
|
7
|
248 restricted.
|
|
249
|
237
|
250 o Under the X Window environment, if you want to run Vim within a xterm
|
7
|
251 terminal emulator and Farsi mode set, you need to have an ANSI compatible
|
237
|
252 xterm terminal emulator. This is because the letter codes above 128 decimal
|
7
|
253 have certain meanings in the standard xterm terminal emulator.
|
|
254
|
237
|
255 Note: Under X Window environment, Vim GUI works fine in Farsi mode.
|
7
|
256 This eliminates the need of any xterm terminal emulator.
|
|
257
|
|
258
|
|
259 Bugs
|
|
260 ----
|
|
261 While in insert/replace and Farsi mode set, if you repeatedly change the
|
|
262 cursor position (via cursor movement) and enter new text and then try to undo
|
|
263 the last change, the undo will lag one change behind. But as you continue to
|
237
|
264 undo, you will reach the original line of text. You can also use U to undo all
|
7
|
265 changes made in the current line.
|
|
266
|
|
267 For more information about the bugs refer to rileft.txt.
|
|
268
|
|
269 vim:tw=78:ts=8:ft=help:norl:
|