Vim 中的 Bidi 支持,我应该恢复到 Notepad++ 吗?

Vim 中的 Bidi 支持,我应该恢复到 Notepad++ 吗?

今天是个好日子,

七周前,我开始学习 Vim。我过去曾尝试过很多,但这次与以往不同。我明白了,Vim 成了我无法戒掉的习惯。我甚至写了我的 vimrc,我不敢相信我生活在一个曾经使用过华丽的记事本的时代。我绝不是一个专家或中级 Vimmer。我只是一个想在日常编程生活中继续使用 Vim 的菜鸟。这听起来更浪漫而不是务实,但这是事实。

本周,我需要编辑包含英语以外语言的文件。它是阿拉伯语,但问题也适用于希伯来语和波斯语。令我震惊的是,Vim 不支持双向文本。(不太好的)解决方案是有两个选项卡,一个从左到右,另一个从右到左,但在我看来这很丑陋。我的机器上唯一不支持双向文本的编辑器是edit(Windows 中的命令行编辑器!)。

有解决方案吗?或者我应该恢复到 Notepad++ 并忘记 Vim?

我发现很难在 Notepad++ 和 Vim 之间切换,因为我编辑了许多包含双向文本的文件。

感谢大家,

答案1

Vim 不支持双向文本。据我所知,这个主题在 vim 邮件列表中已经讨论过很多次,但没有任何进展。

请参阅:help hebrew:help rileft,其中您可以找到以下段落:

双向性(简称 bidi)是 Unicode 为这些语言提供的完整解决方案。双向性使用户能够在同一窗口中同时正确查看从右到左和从左到右的文本。由于简单起见,Vim 目前不提供双向性,而只是选择提供一种显示/输入/使用从右到左语言的功能。

因此,我认为您有 3 个选择:

  • 返回 Notepad++
  • 使用在 中找到的解决方法:help hebrew,包括:set rl:set revins
  • 继续在两个编辑之间周旋

答案2

我也有同样的问题。最终的解决方案是使用另一个编辑器。这样您就可以让两个编辑器都打开,并且当文件发生更改时,它们都应该能够自动更新。如果set autoread在您的.vimrc文件中,Gvim 就是这样的。

答案3

正如其他人之前回答的那样,Vim 不支持 BiDi。
但是,您可以在安装了 evil-mode 的 emacs 中获得大部分功能。Emacs 开箱即用地支持 BiDi,evil-mode 包含所有常见的 vim 键绑定(或者至少是我发现自己使用的所有键绑定。您的情况可能会有所不同)。请确保不要直接从操作系统输入希伯来语,而是将系统设置为英语,并将 emacs 中的输入法更改为希伯来语。这可以通过

M-x set-input-method

命令并hebrew在提示时回答,或者添加行

'(default-input-method "hebrew")

在 ~/.emacs 文件中的 custom-set-variables 下。
添加任何一项后,您都可以使用C-\它在英语和希伯来语之间切换,而不会在输入希伯来语时失去类似 vim 的功能。

我回答说是希伯来语,因为这是我需要的修复。显然,这也适用于阿拉伯语。

答案4

您不需要恢复到 Notepad++ 请参见此处:

在 debian 中,以 root 或 sudo 身份执行:(sudo)apt install mlterm

man mlterm请参阅 mlterm 的手册页, mlterm -b grey -w 18以灰色背景和 18 号字体启动 mlterm

在 mlterm 中打开 vim(不是 gvim)以查看希伯来语的正确书写方式 - 从右到左。在 emacs 中,这是一个自动设置 - 您可以通过从圣经步骤网站在文件中并在 mlterm 中像这样打开它:vim file.md

如何在 vim 中书写希伯来语和阿拉伯语?在 vim 中,使用以下命令::set rl :set revins : set norl :set norevins :set spelllang=en,he- 不幸的是,这些命令会从右到左书写所有内容,包括欧洲语言。因此,解决方案是在 mlterm 中打开 vim(而不是 gvim),一切就都好了 :)

在 emacs 中 - 使用 evil-mode(这是我最常用的模式)它是 bidi(希伯来语和阿拉伯语等)当与 LR - 欧洲语言混合时,RL 语言以正确的方式设置:)

不要忘记在您的 Debian(或其他发行版)设置中添加希伯来语/阿拉伯语键盘以及相应地更改它们的快捷方式。

相关内容