使用 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-8
OpenBSDvi
不支持 UTF-8。
这是在当前 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
变量需要导出。
关于uxterm
:uxterm
OpenBSD 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-8
as LC_CTYPE
。