如何让 vim 正确呈现阿拉伯文本?
How can I get vim to render Arabic text correctly?
我正在学习阿拉伯语,我想用 Vim 做笔记。我在 Windows 10 上尝试了几种不同的设置,到目前为止,最接近良好设置的似乎是 MSYS2 中的 vim。 MSYS2 正确呈现阿拉伯文字,从右到左书写,但是当我在 Vim 中打开文件时,虽然文字仍然是从右到左用阿拉伯字符书写,但字母没有连接。
这里有几个使用 cat 的例子:
سريع
اعتن بنفسك
بطيء
أن تقلق
لا تقلق
与 Vim 相同:
ﺱﺮﻴﻋ
ﺎﻌﺘﻧ ﺐﻨﻔﺴﻛ
ﺐﻄﻳﺀ
ﺄﻧ ﺖﻘﻠﻗ
ﻻ ﺖﻘﻠﻗ
在 http://unicode.scarfboy.com/ 上查找终端输出的第一个字给我这些:
Constituent codepoints:
0633 ARABIC LETTER SEEN
0631 ARABIC LETTER REH
064A ARABIC LETTER YEH
0639 ARABIC LETTER AIN
Vim中同一个词的代码是:
Constituent codepoints:
FEB1 ARABIC LETTER SEEN ISOLATED FORM
FEAE ARABIC LETTER REH FINAL FORM
FEF4 ARABIC LETTER YEH MEDIAL FORM
FECB ARABIC LETTER AIN INITIAL FORM
这看起来像是在错误地解释文本,第一个字母应该是初始形式,最后一个字母应该是最终形式。
当我尝试输入 :set arabic
时,阿拉伯文和拉丁文的书写方向都发生了变化,使所有内容都向后,但字符呈现正确(只是在错误的位置)。
是否有办法使 vim 输出文本与终端相同?也许只是改变哪些字符被认为是第一个和最后一个,因为 MSYS2 正在正确输出文本。
附带说明一下,我的首选设置是在 Windows 终端内的 WSL 中使用 vim,但这并不重要,只要我最终得到可用的东西即可。
Unicode 双向 (bidi) 使用户能够查看
同时正确显示从右到左和从左到右的文本
在同一个 window 内。 Vim,由于简单,不提供比迪烟。相反,它提供了使两个方向之间的切换更容易的命令。
" switch to right-left mode (arabic)
:set rl
" switch to left-right mode (english)
:set norl
但是,如果您的终端支持 bidi,您可以通过 termbidi
设置告诉 Vim 终端负责文本方向:
set termbidi
如果设置了 termbidi
,更改 arabic
设置现在只会影响您的键盘映射和 delcombine
,它允许您单独删除重叠字符(fathah + 字母) .
我正在学习阿拉伯语,我想用 Vim 做笔记。我在 Windows 10 上尝试了几种不同的设置,到目前为止,最接近良好设置的似乎是 MSYS2 中的 vim。 MSYS2 正确呈现阿拉伯文字,从右到左书写,但是当我在 Vim 中打开文件时,虽然文字仍然是从右到左用阿拉伯字符书写,但字母没有连接。
这里有几个使用 cat 的例子:
سريع
اعتن بنفسك
بطيء
أن تقلق
لا تقلق
与 Vim 相同:
ﺱﺮﻴﻋ
ﺎﻌﺘﻧ ﺐﻨﻔﺴﻛ
ﺐﻄﻳﺀ
ﺄﻧ ﺖﻘﻠﻗ
ﻻ ﺖﻘﻠﻗ
在 http://unicode.scarfboy.com/ 上查找终端输出的第一个字给我这些:
Constituent codepoints:
0633 ARABIC LETTER SEEN
0631 ARABIC LETTER REH
064A ARABIC LETTER YEH
0639 ARABIC LETTER AIN
Vim中同一个词的代码是:
Constituent codepoints:
FEB1 ARABIC LETTER SEEN ISOLATED FORM
FEAE ARABIC LETTER REH FINAL FORM
FEF4 ARABIC LETTER YEH MEDIAL FORM
FECB ARABIC LETTER AIN INITIAL FORM
这看起来像是在错误地解释文本,第一个字母应该是初始形式,最后一个字母应该是最终形式。
当我尝试输入 :set arabic
时,阿拉伯文和拉丁文的书写方向都发生了变化,使所有内容都向后,但字符呈现正确(只是在错误的位置)。
是否有办法使 vim 输出文本与终端相同?也许只是改变哪些字符被认为是第一个和最后一个,因为 MSYS2 正在正确输出文本。
附带说明一下,我的首选设置是在 Windows 终端内的 WSL 中使用 vim,但这并不重要,只要我最终得到可用的东西即可。
Unicode 双向 (bidi) 使用户能够查看 同时正确显示从右到左和从左到右的文本 在同一个 window 内。 Vim,由于简单,不提供比迪烟。相反,它提供了使两个方向之间的切换更容易的命令。
" switch to right-left mode (arabic)
:set rl
" switch to left-right mode (english)
:set norl
但是,如果您的终端支持 bidi,您可以通过 termbidi
设置告诉 Vim 终端负责文本方向:
set termbidi
如果设置了 termbidi
,更改 arabic
设置现在只会影响您的键盘映射和 delcombine
,它允许您单独删除重叠字符(fathah + 字母) .