Merge branch 'vim-with-runtime' into feat/quickfix-title
[vim_extended.git] / runtime / doc / farsi.txt
blob2172a48e17b454806f2beaa2db285b6e56620c05
1 *farsi.txt*     For Vim version 7.2.  Last change: 2005 Mar 29
4                   VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran
7 Right to Left and Farsi Mapping for Vim         *farsi* *Farsi*
9 {Vi does not have any of these commands}
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.
15 These functions have been made by Mortaza G. Shiran <shiran@jps.net>
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.
24 The commands, prompts and help files are not in Farsi, therefore the user
25 interface remains the standard Vi interface.
28 Highlights
29 ----------
30 o  Editing left-to-right files as in the original Vim, no change.
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.
36 o  Compatibility to the original Vim.   Almost all features work in
37    right-to-left mode (see bugs below).
39 o  Changing keyboard mapping and reverse insert modes using a single
40    command.
42 o  Backing from reverse insert mode to the correct place in the file
43    (if possible).
45 o  While in Farsi mode, numbers are entered from left to right.  Upon entering
46    a none number character, that character will be inserted just into the
47    left of the last number.
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.
53 o  Farsi keymapping on the command line in reverse insert mode.
55 o  Toggling between left-to-right and right-to-left via F8 function key.
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
59    right-to-left mode, this function is also supported only in right-to-left
60    mode.
62 Farsi Fonts                                     *farsi fonts*
63 -----------
65 If the "extra" archive has been unpacked, the following files are found in the
66 subdirectories of the '$VIM/farsi' directory:
68    +  far-a01.pcf    X Windows fonts for Unix including Linux systems
69    +  far-a01.bf     X Windows fonts for SunOS
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
75 Font Installation
76 -----------------
78 o  Installation of fonts for MS Window systems (NT/95/98)
80    From 'Control Panel' folder, start the 'Fonts' program.  Then from 'file'
81    menu item select 'Install New Fonts ...'.  Browse and select the
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.
86 o  Installation of fonts for X Window systems (Unix/Linux)
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:
92    >  mkfontdir
93    >  xset +fp path_name_of_farsi_fonts_directory
95 o  Installation of fonts for X Window systems (SunOS)
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:
101    >  fldfamily
102    >  xset +fp path_name_of_fonts_directory
104 o  Installation of ASCII screen fonts (Unix/Linux)
106    For Linux system, copy the far-a01.f16 fonts into /usr/lib/kbd/consolefonts
107    directory and execute the setfont program as "setfont far-a01.f16".  For
108    other systems (e.g. SCO Unix), please refer to the fonts installation
109    section of your system administration manuals.
111 o  Installation of ASCII screen fonts (DOS)
113    After system power on, prior to the first use of Vim, upload the Farsi
114    fonts by executing the far-a01.com font uploading program.
117 Usage
118 -----
119 Prior to starting Vim, the environment in which Vim can run in Farsi mode,
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 ... .
125 o  Setting the Farsi fonts
127    +  For Vim GUI set the 'guifont' to far-a01.  This is done by entering
128       ':set guifont=far-a01' in the Vim window.
130       You can have 'guifont' set to far-a01 by Vim during the Vim startup
131       by appending the ':set guifont=far-a01' into your .vimrc file
132       (in case of NT/95/98 platforms _vimrc).
134       Under the X Window environment, you can also start Vim with the
135       '-fn far-a01' option.
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.
140    +  For Vim under DOS, prior to the first usage of Vim, upload the Farsi
141       fonts by executing the far-a01.com fonts uploading program.
143 o  Farsi Keymapping Activation
145    To activate the Farsi keymapping, set either 'altkeymap' or 'fkmap'.
146    This is done by entering ':set akm' or ':set fk' in the Vim window.
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.
150    To turn off the Farsi keymapping as a default second language keymapping,
151    reset the 'altkeymap' by entering ':set noakm'.
153 o  right-to-left Farsi Mode
155    By default Vim starts in Left-to-right mode.  Following are ways to change
156    the window orientation:
158    + Start Vim with the -F option (e.g. vim -F ...).
160    + Use the F8 function key to toggle between left-to-right and right-to-left.
162    + While in Left-to-right mode, enter 'set rl' in the command line ('rl' is
163      the abbreviation for rightleft).
165    + Put the 'set rl' line in your '.vimrc' file to start Vim in
166      right-to-left mode permanently.
168 Encoding
169 --------
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.
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, ...).
178 o  Keyboard
180    +  CTRL-_ in insert/replace modes toggles between Farsi(akm)/Latin
181       mode as follows:
183    +  CTRL-_ moves the cursor to the end of the typed text in edit mode.
185    +  CTRL-_ in command mode only toggles keyboard mapping between Farsi(akm)/
186       Latin.  The Farsi text is then entered in reverse insert mode.
188    +  F8 - Toggles between left-to-right and right-to-left.
190    +  F9 - Toggles the encoding between ISIR-3342 standard and Vim extended
191       ISIR-3342 (supported only in right-to-left mode).
193    +  Keyboard mapping is based on the Iranian ISIRI-2901 standard.
194       Following table shows the keyboard mapping while Farsi(akm) mode set:
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         -------------------------------------
222 Note:
223         ¡  stands for Farsi PSP (break without space)
225         ¢  stands for Farsi PCN (for HAMZE attribute )
227 Restrictions
228 ------------
230 o  In insert/replace mode and fkmap (Farsi mode) set, CTRL-B is not
231    supported.
233 o  If you change the character mapping between Latin/Farsi, the redo buffer
234    will be reset (emptied).  That is, redo is valid and will function (using
235    '.') only within the mode you are in.
237 o  While numbers are entered in Farsi mode, the redo buffer will be reset
238    (emptied).  That is, you cannot redo the last changes (using '.') after
239    entering numbers.
241 o  While in left-to-right mode and Farsi mode set, CTRL-R is not supported.
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.
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
248    restricted.
250 o  Under the X Window environment, if you want to run Vim within a xterm
251    terminal emulator and Farsi mode set, you need to have an ANSI compatible
252    xterm terminal emulator.  This is because the letter codes above 128 decimal
253    have certain meanings in the standard xterm terminal emulator.
255    Note: Under X Window environment, Vim GUI works fine in Farsi mode.
256          This eliminates the need of any xterm terminal emulator.
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
264 undo, you will reach the original line of text.  You can also use U to undo all
265 changes made in the current line.
267 For more information about the bugs refer to rileft.txt.
269  vim:tw=78:ts=8:ft=help:norl: