Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame^] | 1 | *farsi.txt* For Vim version 7.0aa. Last change: 2002 Oct 29 |
| 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 | |
| 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. |
| 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 | |
| 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. |
| 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 |
| 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 |
| 73 | |
| 74 | |
| 75 | Font Installation |
| 76 | ----------------- |
| 77 | |
| 78 | o Installation of fonts for MS Window systems (NT/95/98) |
| 79 | |
| 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. |
| 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 | |
| 95 | o Installation of fonts for X Window systems (SunOs) |
| 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 |
| 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. |
| 110 | |
| 111 | o Installation of ASCII screen fonts (DOS) |
| 112 | |
| 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. |
| 115 | |
| 116 | |
| 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 ... . |
| 124 | |
| 125 | o Setting the Farsi fonts |
| 126 | |
| 127 | + For VIM GUI set the 'guifont' to far-a01. This is done by entering |
| 128 | ':set guifont=far-a01' in the VIM window. |
| 129 | |
| 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). |
| 133 | |
| 134 | Under the X Window environment, you can also start the VIM with |
| 135 | '-fn far-a01' option. |
| 136 | |
| 137 | + For the VIM within a xterm, start a xterm with the Farsi fonts (e.g. |
| 138 | kterm -fn far-a01). Then start the VIM inside the kterm. |
| 139 | |
| 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. |
| 142 | |
| 143 | o Farsi Keymapping Activation |
| 144 | |
| 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. |
| 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 | |
| 155 | By default VIM starts in Left-to-right mode. Following are ways to change |
| 156 | the window orientation: |
| 157 | |
| 158 | + Start the VIM with -F option (e.g. vim -F ... ). |
| 159 | |
| 160 | + Use F8 function key to toggle between left-to-right and right-to-left. |
| 161 | |
| 162 | + While in Left-to-right mode, enter 'set rl' in the command line ('rl' is |
| 163 | the abbreviation for rightleft). |
| 164 | |
| 165 | + Put the 'set rl' line in your '.vimrc' file to start the VIM in |
| 166 | right-to-left mode permanently. |
| 167 | |
| 168 | Encoding |
| 169 | -------- |
| 170 | |
| 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. |
| 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)/ |
| 186 | Latin. The Farsi text is then entered in reverse insert mode. |
| 187 | |
| 188 | + F8 - Toggles between left-to-right and right-to-left. |
| 189 | |
| 190 | + F9 - Toggles the encoding between ISIR-3342 standard and VIM extended |
| 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 |
| 234 | will be reset (emptied). That is, redo is valid and will function (using |
| 235 | '.') only within the mode you are in. |
| 236 | |
| 237 | o While numbers are entered in Farsi mode, the redo buffer will be reset |
| 238 | (emptied). That is, you can not redo the last changes (using '.') after |
| 239 | entering numbers. |
| 240 | |
| 241 | o While in left-to-right and Farsi mode set, CTRL-R is not supported. |
| 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 | |
| 246 | o In the command mode, there is no support for entering the numbers from left |
| 247 | to right and also for the sake of the flexibility the keymapping logic is |
| 248 | restricted. |
| 249 | |
| 250 | o Under X Window environment, if you want to run the 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. |
| 254 | |
| 255 | Note: Under X Window environment, VIM GUI works fine in Farsi mode. |
| 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 |
| 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. |
| 266 | |
| 267 | For more information about the bugs refer to rileft.txt. |
| 268 | |
| 269 | vim:tw=78:ts=8:ft=help:norl: |