rileft.txt 适用于 Vim 9.0 版本。 最近更新: 2023年2月
VIM 参考手册 by Avner Lottem
更新: Nadim Shaikli
译者
: Willis
Vim 的从右到左显示模式 rileft
这些功能是由 Avner Lottem 最早创建的:
E-mail: alottem@iil.intel.com
Phone: +972-4-8307322
E26
{仅当编译时加入 +rightleft 特性才可用}
简介
有些语言,例如阿拉伯语、波斯语、希伯来语 (还有其他),要求从右到左显示他们的文
字的能力。这些语言的文件以常规的方式储存,从右到左只是一个对显示功能的要求 (根
据 Unicode 规格的定义): 设定为从右到左的文件里字符在屏幕的显示应是从右到左。
双向显示 (英语缩写是 bidi) 是 Unicode 提供的对这些语言的一个完整解决方案。bidi
提供用户在同一个窗口同时显示从右到左和从左到右文本的能力。目前,为了简单起见,
Vim 并没有提供 bidi,而只是提供一个方法来显示/输入/使用从右到左的语言。一个较
旧的混合解决方案是为每个字符 (或一组字符) 编码一个不同的方向。我们不支持这个方
案,因为这样的支持对于一个已有的编辑器来说不是简单的增加功能而已 (而且 Unicode
也不认可这种方案)。
因为许多编写代码的人不使用从右到左模式,此功能有些情况未必能工作很好。如果你能
说明一下出了什么问题还有正确的行为应该如何工作,请在 github 里创建议题,见
bug-reports 。
特色
o 就像原有的 Vim 一样,编辑从左到右的文件。
o 在从右到左的窗口里察看和编辑文件。文件朝向是窗口的设置,所以可以在从左到右
和从右到左两种模式下同时察看同一个文件。(这有助于编辑混合两种文字的文件)。
o 和原有的 Vim 兼容。几乎所有的功能都支持从右到左的模式 (参看下面的漏洞)。
o 从反向的插入模式退回到文件里正确的位置 (如果可能的话)。
o 不需要终端对从右到左能力的特别支持。这项改动完全独立于硬件。
o 许多语言使用和需要从右到左的支持。这些语言可以相当容易地通过加入他们需要的
键盘映射和少量的代码改进得到支持。其中已经支持的语言包括 - arabic.txt 、
farsi.txt 和 hebrew.txt 。
如果你有兴趣 ...
为便于最大限度地利用 'rightleft' 选项,我们可以允许反向插入。如果 'revins'
(反向输入) 选项被打开,插入是反向的。这可以用来输入从右到左的文字。这时,输
入文字时,光标不动,文本向右移动。<BS>
删除光标下的字符,CTRL-W
和 CTRL-U
工作的方向也经过反转。无论 'backspace' 选项如何设置,<BS>
、CTRL-W
和 CTRL-U
并不会在插入点开始处和行尾停住。
现在 (还) 没有反向替换模式。
如果设置了 "showmode" 选项,反向插入模式激活时,状态行会显示
"-- REVERSE INSERT --"。
o 在从右到左的窗口粘贴
如果用鼠标剪切文本,然后在从右到左的窗口中粘贴,文本会被反向,这时因为从剪
切缓冲区里得到的字符是从左到右的,而文件中的插入操作是从右到左的。要避免这
个问题,在粘贴前切换 'revins' 选项。
漏洞
o 在从右到左的窗口里不能正确处理 CTRL-A
和 CTRL-X
命令 (加和减)。
o 在命令行中不支持反向插入和从右到左的模式。不过,编辑器功能并未减少,因为可
以在命令行上从左到右地输入键盘映射、缩写和搜索命令。
o 从右到左的模式较慢,因为从右到左是 Vim 自己模拟而不是控制终端处理的。
o 如果 'rightleft' 和 'revins' 都打开,'textwidth' 不能工作。行不会自动回绕。
你只会得到一个很长的行。
o 没有完整的双向显示 (bidi) 支持。
vim:tw=78:ts=8:noet:ft=help:norl: