Rileft

Nvim 的 :help 页面,从 源代码 使用 tree-sitter-vimdoc 解析器生成。


由 Nadim Shaikli 更新
Vim 的从右到左显示模式
这些函数最初由 Avner Lottem 创建:电子邮件:[email protected] 电话:+972-4-8307322

简介

一些语言,例如阿拉伯语、波斯语、希伯来语(以及其他语言),需要能够从右到左显示文本。这些语言的文件以常规方式存储,从右到左的要求仅仅是显示引擎的功能(根据 Unicode 规范)。在从右到左定向的文件中,字符在屏幕上从右到左显示。
双向性(简称 bidi)是 Unicode 为这些语言提供的完整解决方案。Bidi 使用户能够在同一个窗口中同时正确地查看从右到左的文本和从左到右的文本。目前,Vim 由于简单性而没有提供 bidi,并且仅仅选择提供一种功能性方法来显示/输入/使用从右到左的语言。一种旧的混合解决方案,其中方向是为每个字符(或字符组)编码的,也不受支持,因为这种支持超出了简单添加到现有编辑器的范围(并且 Unicode 也不认可它)。

亮点

o 像在原始 Vim 中一样编辑从左到右的文件,没有任何变化。
o 在从右到左的窗口中查看和编辑文件。文件方向是按窗口划分的,因此可以同时在从右到左和从左到右模式下查看同一个文件。(对于编辑包含从右到左和从左到右文本的混合文件很有用)。
o 与原始 Vim 兼容。几乎所有功能都可以在从右到左模式下工作(请参阅下面的 Bug)。
o 从反向插入模式返回到文件中的正确位置(如果可能)。
o 不需要具有从右到左功能的特殊终端。从右到左的变化完全独立于硬件。
o 许多语言使用并需要从右到左支持。考虑到包含其所需的键盘映射和一些可能的微小代码更改,这些语言可以非常容易地得到支持。一些当前支持的语言包括 - arabic.txthebrew.txt.

感兴趣...

o 调用
+ 'rightleft' ('rl') 将窗口方向设置为从右到左。+ 'delcombine' ('deco'),布尔值,如果编辑 UTF-8 编码的语言,则允许删除叠加在前面的字符上的组合字符(某些语言需要这样做)。+ 'rightleftcmd' ('rlc') 将某些模式(如搜索)内的命令行设置为也使用从右到左的方向。
o 向后输入 ins-reverse
作为使用完整功能的 'rightleft' 选项的替代方案,可以选择反向插入。当 'revins'(反向插入)选项设置后,插入会向后进行。这可以用来输入从右到左的文本。当插入字符时,光标不会移动,文本向右移动。<BS> 删除光标下的字符。CTRL-WCTRL-U 也以相反的方向工作。<BS>CTRL-WCTRL-U 不会停在插入的开始或行的末尾,无论 'backspace' 选项如何设置。
没有反向替换模式(目前)。
如果 'showmode' 选项设置,当反向插入模式处于活动状态时,状态行将显示“-- REVERSE INSERT --”。
o 在 rightleft 窗口中粘贴
当使用鼠标剪切文本并将其粘贴到 rightleft 窗口中时,文本将被反转,因为字符从剪切缓冲区从左到右获取,而插入到文件中的方向是从右到左。为了避免这种情况,在粘贴之前切换 'revins'

Bug

o 在 rightleft 窗口中无法正确处理 CTRL-ACTRL-X 命令(加和减)。
o 不支持在命令行上使用反向插入和 rightleft 模式。但是,编辑器的功能并没有减少,因为可以在命令行上输入从左到右键入的映射、缩写和搜索。
o 在从右到左模式下速度略慢,因为从右到左的运动是在 Vim 内部模拟的,而不是由控制终端模拟的。
o 当 'rightleft''revins' 同时打开时:'textwidth' 不起作用。行根本不换行;你只会得到一行很长的行。
o 没有完整的双向性(bidi)支持。
主要
命令索引
快速参考