forked from ma6174/vim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
farsi.cnx
executable file
·238 lines (155 loc) · 8.84 KB
/
farsi.cnx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
*farsi.txt* For Vim version 7.3. 最近更新: 2010年8月
VIM 参考手册 作者: Mortaza Ghassab Shiran
译者: Willis
http://vimcdoc.sf.net
从右到左的显示和 Vim 的波斯语映射 *farsi* *Farsi*
{Vi 没有任何这里的功能}
*E27*
要使用从由右到左和波斯语的映射支持,要在编译 Vim 时加入 |+farsi| 特性。
这些功能是 Mortaza G. Shiran <[email protected]> 开发的。
简介
------------
从右到左的文件要求显示的时候从右到左。在书写波斯语的文档、传真或备忘录的时候,
这类型的文件很有用。
命令、提示和帮助文件不是用波斯语书写的,所以用户界面保持和标准 Vi 的界面一致。
特色
----------
o 就像原有的 Vim 一样,编辑从左到右的文件。
o 和从右到左两种模式下同时察看同一个文件。(这有助于编辑混合两种文字的文件)。
o 和原有的 Vim 兼容。几乎所有的功能都支持从右到左的模式 (参看下面的漏洞)。
o 单个命令就可以改变键盘映射和反向插入模式。
o 从反向的插入模式退回到文件里正确的位置 (如果可能的话)。
o 在波斯语模式,数字的输入是从左到右的。在输入一个非数字的字符时,它会插在最
后一个数字的左面。
o 不需要终端对从右到左能力的特别支持。这项改动完全独立于硬件。
o 在命令行的反向插入模式里,提供波斯语的映射。
o 通过 F8 键,切换从左到右和从右到左的模式。
o 通过 F9 键,切换波斯语 ISIR-3342 标准编码和 Vim 波斯编码。因为这只对从右到
左的文本有意义,所以也只有从右到左模式支持这项功能。
波斯字体 *farsi fonts*
-----------
在 "$VIM/farsi/fonts" 子目录下可以找到以下文件:
+ far-a01.pcf Unix 包括 Linux 的 X Windows 字体
+ far-a01.bf SunOS 用的 X Windows 字体
+ far-a01.f16 Unix 包括 Linux 系统用的屏幕字体
+ far-a01.fon Windows NT/95/98 用的等宽字体
+ far-a01.com DOS 用的屏幕字体
字体安装
-----------------
o MS Window 系统 (NT/95/98) 的字体安装
从 '控制面板' 文件夹中打开 '字体' 程序。然后从 '文件' 菜单里选择
'安装新字体...'。找到 'far-a01.fon' 并选中,然后按照安装指导操作。
注意: 有些人报告说这样做不成功。对此,我们现在没有解决方法。
o X Windows 系统 (Unix/Linux) 的字体安装
根据你的系统,把 far-a01.pcf.Z 或者 far-a01.pcf.gz 复制到你选择的一个目录。
进入这个包含波斯字体的目录,然后执行以下命令: >
> mkfontdir
> xset +fp path_name_of_farsi_fonts_directory
o X Windows 系统 (SunOS) 的字体安装
把 far-a01.bf 字体复制到你选择的一个目录。进入这个包含 far-a01.fb 字体的目
录,然后执行以下命令: >
> fldfamily
> xset +fp path_name_of_fonts_directory
o 安装 ASCII 屏幕字体 (Unix/Linux)
Linux 系统下,把 far-a01.f16 字体复制到 /usr/lib/kbd/consolefonts 目录然后
执行 setfont 程序 "setfont far-a01.f16"。对其他系统 (比如 SCO Unix),请参考
你系统的管理手册的字体安装章节。
o 安装 ASCII 屏幕字体 (DOS)
系统启动后,在第一次使用 Vim 之前,用 far-a01.com 字体上传程序来上传波斯字
体。
使用方法
-----
在启动 Vim 之前,应该先设置能够让 Vim 运行在波斯模式的环境。除了设置波斯字体以
外,以下还有应该设置的一些系统环境: 键盘码映射,将图形卡转入 ASCII 屏幕模式,
把 IO 驱动设成 8 位 clean 模式,等等。
o 设置波斯字体
+ Vim GUI 上把 'guifont' 设成 far-a01。这可以通过在 Vim 窗口下输入
':set guifont=far-a01' 来完成。
把这行加入你的 .vimrc 文件 (在 NT/95/98 平台下用 _vimrc),你就可以在 Vim
启动时完成这项设置。
在 X Window 环境下,你也可以在启动 Vim 时加入 "-fn far-a01" 选项。
+ 对于执行在 xterm 下面的 Vim,用波斯字体打开一个 xterm (例如, kterm -fn
far-a01), 然后在 kterm 里面启动 Vim。
+ 执行在 DOS 上的 Vim,在第一次执行 Vim 之间,执行 far-a01.com 字体上传程
序可以上传波斯字体。
o 激活波斯语键盘映射
要激活波斯语的键盘映射,可以置位 'altkeymap' 或者 'fkmap'。这可以通过在 Vim
窗口下输入 'set alm' 或者 'set fk' 来完成。把这些行加入你的 .vimrc 文件 (在
NT/95/98 平台下用 _vimrc),你就可以在 Vim 启动时完成这些设置。
要使用缺省的第二语言,你可以通过键入 ':set noakm' 复位 'altkeyamap',从而关
闭波斯语的键盘映射。
o 从右到左的波斯语模式
缺省的 Vim 以左到右的模式启动。以下是若干改变窗口朝向的途径:
+ 启动 Vim 时加入参数 -F (例如. vim -F ... )。
+ 用 F8 键切换从左到右和从右到左的模式。
+ 在从左到右的模式时,在命令行上键入 'set rl' ('rl' 是从右到左的英文缩写)。
+ 在你的 '.vimrc' 文件里放上 'set rl',就可以一劳永逸地确保以从右到左的模式
启动 Vim。
编码
--------
这里使用的字母编码是 Vim 扩展 ISIR-3342 标准,还提供了一个内置函数,用于 Vim
扩展 ISIR-3342 和标准的 ISIR-3342 标准之间的转换。
为了文档兼容,在不同的平台上 (例如 UNIX,NT/95/98,MS DOS 等等) 的字母编码保持
一致。
o 键盘设置
+ CTRL-_ 插入/替换模式下,切换波斯 (akm) 和拉丁语系模式。
+ CTRL-_ 在编辑模式下,把光标移到输入文本的末尾。
+ CTRL-_ 在命令行模式下,切换波斯 (akm) 和拉丁语系模式。这时,波斯文本就可
以在反向插入方式下输入。
+ F8 - 切换从右到左和从左到右的模式。
+ F9 - 切换 ISIR-3342 编码和 Vim 扩展 ISIR-3342 编码 (只有在从右到左的模式
下才支持)。
+ 键盘映射基于伊朗 ISIRI-2901 标准。
以下的对应表显示了波斯 (akm) 模式下的键盘对应:
-------------------------------------
` 1 2 3 4 5 6 7 8 9 0 - =
¢ ± ² ³ ´ µ ¶ · ¸ ¹ ° ½
-------------------------------------
~ ! @ # $ % ^ & * ( ) _ +
~ £ § ® ¤ ¥ ª ¬ è ¨ © é «
-------------------------------------
q w e r t z u i o p [ ]
Ó Ò Æ Ù Ø Õ Ö à Ê É Ç
-------------------------------------
Q W E R T Z U I O P { }
÷ õ ô ó ò ý ð ö [ ] { }
-------------------------------------
a s d f g h j k l ; ' \
Ñ Ð á Ã Ü Á Å Þ Ý Ú Û ë
-------------------------------------
A S D F G H J K L : " |
ù û þ ú ø À ü æ ç º » ê
-------------------------------------
< y x c v b n m , . /
¾ × Ô Î Í Ì Ë Ä ß ¦ ¯
-------------------------------------
> Y X C V B N M < > ?
¼ ñ Ô Ï Í ¡ Ë Â ¾ ¼ ¿
-------------------------------------
注意:
¡ 代表波斯 PSP (不以空白分离)
¢ 代表波斯 PCN (用于 HAMZE 属性)
限制
------------
o 插入/替换模式 (波斯模式) 下不支持 CTRL-B。
o 如果你切换拉丁/波斯的键盘对应,重复缓冲区会被清空。也就是说,只有在同一模式
下你才可以应用重复命令 ('.')。
o 在波斯模式下输入数字时,重复缓冲区也会被清空。也就是说,输入数字以后你不能
重复上一次的改变。
o 从左到右的波斯模式下不支持 CTRL-R。
o 从右到左的模式下,拉丁语系的模式搜索不会成功,除非你反过来输。
o 在命令模式下,不支持从左到右方式的数字输入,也因为要支持最大限度的灵活性,
键盘映射的逻辑也只能受到限制。
o 在 X Window 环境上,如果你想要在 xterm 终端模拟和波斯模式下运行 Vim,你一定
要有 ANSI 兼容的终端环境,这是因为在标准的 xterm 终端模拟环境里,超过十进制
128 的字母有特定的含义。
注意: 在 X Window 环境上,Vim GUI 对波斯模式的支持没有这样的限制。所以其实
没有必要用 xterm 终端模拟来运行。
漏洞
----
在插入/替换模式下如果打开波斯模式,如果你不断的改变光标位置 (通过光标移动),然
后输入新的文本,再试图撤销最近的更新,撤销操作会出现一个改变的延迟。不过如果你
继续撤销下去,最终还是能回到原始的文本状态。你也可以用 U 来撤销当前行里的所有
改变。
关于这个漏洞的更多信息可以在 rileft.txt 里查到。
vim:tw=78:ts=8:ft=help:norl: