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

Hes*_*nov 6 openbsd vi unicode

在默认安装带有 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
$ 
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

和vim,好一点,但仍然存在大写和一些小写的问题:

在此处输入图片说明

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

回到过去,afaik,有“uxterm”来支持 UTF-8,但现在,它似乎不在 OpenBSD 中了。

Kus*_*nda 3

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

$ LC_CTYPE=hu_HU.UTF-8 vim test.txt
Run Code Online (Sandbox Code Playgroud)

或者,

$ export LC_CTYPE=hu_HU.UTF-8
$ vim test.txt
Run Code Online (Sandbox Code Playgroud)

事实上,它也适用于区域设置(在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"
Run Code Online (Sandbox Code Playgroud)

(或类似的东西)

请注意,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@
Run Code Online (Sandbox Code Playgroud)

然而,有一个名为的端口rxvt-unicode提供了该urxvt实用程序。