OpenBSD 6.2 上 vi/vim 中的 UTF-8 重音不正确

OpenBSD 6.2 上 vi/vim 中的 UTF-8 重音不正确

使用 FVWM 默认安装 OpenBSD 6.2 后,我在 FVWM GUI 上打开 xterm,使用普通用户创建一个测试文件:

$ echo 'árvíztűrő tükörfúrógép' > test.txt
$ echo 'ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP' >> test.txt
$ 
$ cat test.txt
árvíztűrő tükörfúrógép
ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
$ 
$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=
$ 
$ env | grep -i locale
XTERM_LOCALE=C
$ 

问题是,如果我用 vi 打开测试文件:

在此输入图像描述

和 vim 相比,好一点,但大写字母和一些小写字母仍然存在问题:

在此输入图像描述

尝试将所有语言环境变量设置为“hu_HU.UTF-8”,但没有帮助。我缺少什么?

早在过去,据我所知,有“uxterm”支持 UTF-8,但现在,OpenBSD 中似乎不再有它了。

答案1

如果您确保使用正确的区域设置,那么您将能够在vim和 中看到正确的字符nvi,但在 中看不到vi

$ LC_CTYPE=hu_HU.UTF-8 vim test.txt

或者,

$ export LC_CTYPE=hu_HU.UTF-8
$ vim test.txt

事实上,它也适用于区域设置(在vim/中nvi) 。 en_US.UTF-8OpenBSDvi不支持 UTF-8。

Vim 显示文本文件

这是在当前 OpenBSD(6.3 之前)上通过基本系统vi以及vim端口进行测试的nvi。该图显示了来自 OpenBSD 端口 ( vim-8.0.1255p0-no_x11) 的 Vim 从 Windows 主机在 PuTTY 中运行,但我也使用标准在 OpenBSD 的 FVWM 中成功测试了它xterm。地点如图所示hu_HU.UTF-8。将区域设置设置为C给出与问题中显示的相同结果。

可以在您的.xsession文件中设置正确的区域设置(或,取决于您是否从控制台.xinitrc登录xenodm或启动 X11 ):startx

export LC_ALL=en_US.UTF-8

fwvm & wmpid=$!
xterm &

wait "$wmpid"

(或类似的东西)

请注意,LC_ALL和/或LC_CTYPE变量需要导出。


关于uxtermuxtermOpenBSD 6.0 发布后似乎已被删除。

提交消息(来自 2016 年 10 月 24 日星期一 13:55:37)只是这样写

Stop providing the uxterm and koi8rxterm shell scripts.
Requested by schwarze@ agreed naddy@

然而,有一个叫做rxvt-unicode它提供了urxvt实用程序。

答案2

OpenBSD 版本的 vi 尚不支持 UTF-8。 Vim 可以正常工作,但您需要一个支持 UTF-8 和正确区域设置的终端。我不记得有多少语言环境包含 OpenBSD,所以尝试使用en_US.UTF-8as LC_CTYPE

相关内容