*farsi.txt* For Vim version 6.4. 最近更新: 2006年2月VIM 参考手册 作者: Mortaza Ghassab Shiran
译者
: Willis http://vimcdoc.sf.net 从右到左的显示和 Vim 的波斯语映射 *farsi* *Farsi*{Vi 没有任何这里的功能}
*E27* 要使用从由左到左和波斯语的映射支持,要在编译 Vim 时加入 |+farsi| 特性。 这些功能是 Mortaza G. Shiran<shiran@jps.net>
开发的。 简介
从右到左的文件要求显示的时候从右到左。在书写波斯语的文档、传真或备忘录的时候, 这类型的文件很有用。 命令、提示和帮助文件不是用波斯语书写的,所以用户界面保持和标准 Vi 的界面一致。 特色
o 就像原有的 Vim 一样,编辑从左到右的文件。 o 和从右到左两种模式下同时察看同一个文件。(这有助于编辑混合两种文字的文件)。 o 和原有的 Vim 兼容。几乎所有的功能都支持从右到左的模式 (参看下面的漏洞)。 o 单个命令就可以改变键盘映射和反向插入模式。 o 从反向的插入模式退回到文件里正确的位置 (如果可能的话)。 o 在波斯语模式,数字的输入是从左到右的。在输入一个非数字的字符时,它会插在最 后一个数字的左面。 o 不需要终端对从右到左能力的特别支持。这项改动完全独立于硬件。 o 在命令行的反向插入模式里,提供波斯语的映射。 o 通过 F8 键,切换从左到右和从右到左的模式。 o 通过 F9 键,切换波斯语 ISIR-3342 标准编码和 VIM 波斯编码。因为这只对从右到 左的文本有意义,所以也只有从右到左模式支持这项功能。 波斯字体 *farsi fonts*
如果解压 "extra" 压缩档,在 "$VIM/farsi" 子目录下可以找到以下文件: + 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:
Generated by vim2html on 2006年 07月 02日 星期日 22:43:25 UTC