rileft

rileft.txt 适用于 Vim 9.2 版本。 最近更新: 2023年2月 VIM 参考手册 by Avner Lottem 更新: Nadim Shaikli 译者: Willis Vim 的从右到左显示模式 rileft 这些功能是由 Avner Lottem 最早创建的: E-mail: [email protected] Phone: +972-4-8307322 E26 {仅当编译时加入 +rightleft 特性才可用} 简介

有些语言,例如阿拉伯语、波斯语、希伯来语 (还有其他),需要具备从右到左显示文字 的能力。这些语言的文件仍以常规的方式存储,从右到左只是对显示方式的要求 (根据 Unicode 规范的定义): 文本方向为从右到左的文件是指字符在屏幕上的显示应从右到左 排列。 双向显示 (英语缩写是 bidi) 是 Unicode 为这些语言提供的完整解决方案。bidi 允许 用户在同一个窗口同时显示从右到左和从左到右的文本。目前,为了简便起见,Vim 并未 提供双向显示,而只是提供一种显示、输入和使用从右到左的语言的方法。一个较旧的混 合方案是为每个字符 (或一组字符) 编码不同的方向。我们不支持这个方案,因为在已有 的编辑器中实现这一功能并非简单扩展 (而且 Unicode 也不认可这种方案)。 许多编程人员并不使用从右到左模式,此功能在某些情况下未必能正常工作。如果能说明 出现的问题以及修正后应有的正确行为,请在 github 上创建议题,见 bug-reports 。 特色

o 编辑从左到右的文件时,无需改变 Vim 原有的编辑方式, o 可在从右到左窗口中查看和编辑文件。每个窗口的文本书写方向彼此独立,因而可以 同时以从右到左和从左到右两种模式察看同一个文件 (这有助于编辑混合两种书写方 向的文本)。 o 和原有的 Vim 保持兼容。几乎所有功能都支持从右到左模式 (当然,不排除存在某些 缺陷)。 o 退出反向插入模式后,光标会尽可能恢复到文件里正确的位置。 o 无需终端对从右到左能力的特别支持。这些功能的支持完全独立于硬件。 o 许多语言都使用和依赖从右到左的显示支持。只要提供所需的键盘映射和少量的代码 调整,就可以相对容易地实现这些语言的支持。其中已经支持的语言包括 - arabic.txtfarsi.txthebrew.txt 。 如果还有兴趣 ...

o 启动

+ 'rightleft' ('rl') 将窗口文本方向设为从右到左。 + 'delcombine' ('deco'),布尔值,编辑 UTF-8 编码的语言时,可以单独删除叠加 (superimpose) 在前一个字符上的组合字符 (一些语言对此有要求)。 + 'rightleftcmd' ('rlc') 将某些模式 (如搜索命令) 使用的命令行也设为从右到左 显示。 o 反向输入 ins-reverse

为了最大限度地利用 'rightleft' 选项,可以使用反向插入。打开 'revins' (反向 输入) 选项时,插入反向进行。这可用于输入从右到左的文本。此时,在输入文字时 光标不动,而文本会向右移动。<BS> 会删除光标下的字符,CTRL-WCTRL-U 也会 反向进行。无论 'backspace' 选项如何设置,<BS>CTRL-WCTRL-U 都不会在插 入开始位置和行尾停留。 现在 (还) 未提供反向替换模式。 置位 'showmode' 选项且反向插入模式激活时,状态行上会显示 "-- 反向插入 --"。 o 在从右到左的窗口粘贴

用鼠标剪切文本并在从右到左的窗口中粘贴时,文本会被调转方向,因为从剪切缓冲 区里得到的字符是按从左到右的顺序排列的,而文件中则会以从右到左的方向插入。 要避免这个问题,在粘贴前先切换 'revins' 选项。 漏洞

o 在从右到左的窗口里,CTRL-ACTRL-X 命令 (增减操作) 无法正确处理。 o 命令行中不支持反向插入和从右到左模式。不过,这不会减少编辑器的功能,因为仍 然可以在命令行上以从左到右的方式输入键盘映射、缩写和搜索命令。 o 从右到左的模式较慢,因为这是由 Vim 自行模拟的,而非控制终端直接支持。 o 'rightleft''revins' 同时打开时,'textwidth' 无法工作。行不会自动回绕; 只会得到一条很长的行。 o 不支持完整的双向显示 (bidi)。 vim:tw=78:ts=8:noet:ft=help:norl: