Rileft
Nvim 的 :help
页面,从 源代码 使用 tree-sitter-vimdoc 解析器生成。
由 Nadim Shaikli 更新
Vim 的从右到左显示模式
简介
一些语言,例如阿拉伯语、波斯语、希伯来语(以及其他语言),需要能够从右到左显示文本。这些语言的文件以常规方式存储,从右到左的要求仅仅是显示引擎的功能(根据 Unicode 规范)。在从右到左定向的文件中,字符在屏幕上从右到左显示。
双向性(简称 bidi)是 Unicode 为这些语言提供的完整解决方案。Bidi 使用户能够在同一个窗口中同时正确地查看从右到左的文本和从左到右的文本。目前,Vim 由于简单性而没有提供 bidi,并且仅仅选择提供一种功能性方法来显示/输入/使用从右到左的语言。一种旧的混合解决方案,其中方向是为每个字符(或字符组)编码的,也不受支持,因为这种支持超出了简单添加到现有编辑器的范围(并且 Unicode 也不认可它)。
亮点
o 像在原始 Vim 中一样编辑从左到右的文件,没有任何变化。
o 在从右到左的窗口中查看和编辑文件。文件方向是按窗口划分的,因此可以同时在从右到左和从左到右模式下查看同一个文件。(对于编辑包含从右到左和从左到右文本的混合文件很有用)。
o 与原始 Vim 兼容。几乎所有功能都可以在从右到左模式下工作(请参阅下面的 Bug)。
o 从反向插入模式返回到文件中的正确位置(如果可能)。
o 不需要具有从右到左功能的特殊终端。从右到左的变化完全独立于硬件。
感兴趣...
o 调用
作为使用完整功能的
'rightleft' 选项的替代方案,可以选择反向插入。当
'revins'(反向插入)选项设置后,插入会向后进行。这可以用来输入从右到左的文本。当插入字符时,光标不会移动,文本向右移动。
<BS>
删除光标下的字符。
CTRL-W
和
CTRL-U
也以相反的方向工作。
<BS>
、
CTRL-W
和
CTRL-U
不会停在插入的开始或行的末尾,无论
'backspace' 选项如何设置。
没有反向替换模式(目前)。
如果
'showmode' 选项设置,当反向插入模式处于活动状态时,状态行将显示“-- REVERSE INSERT --”。
o 在 rightleft 窗口中粘贴
当使用鼠标剪切文本并将其粘贴到 rightleft 窗口中时,文本将被反转,因为字符从剪切缓冲区从左到右获取,而插入到文件中的方向是从右到左。为了避免这种情况,在粘贴之前切换
'revins'。
Bug
o 在 rightleft 窗口中无法正确处理 CTRL-A
和 CTRL-X
命令(加和减)。
o 不支持在命令行上使用反向插入和 rightleft 模式。但是,编辑器的功能并没有减少,因为可以在命令行上输入从左到右键入的映射、缩写和搜索。
o 在从右到左模式下速度略慢,因为从右到左的运动是在 Vim 内部模拟的,而不是由控制终端模拟的。
o 没有完整的双向性(bidi)支持。