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"に設定しようとしましたが、役に立ちませんでした。私は何を見逃していますか?

私が知っている限り、私はUTF-8をサポートする「uxterm」がありました。

答え1

正しいロケールを使用すると、vim正しい文字を表示できますが、nvi表示できませんvi

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

または、

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

実際にはロケール(vim/in nvi)でも動作します。en_US.UTF-8OpenBSDはviUTF-8をサポートしていません。

Vimはテキストファイルを表示します

これは、基本システムviとポートを持つ現在のOpenBSD(6.3より前)でvimテストされていますnvi。図は、vim-8.0.1255p0-no_x11WindowsホストのPuTTYで実行されているOpenBSDポート()のVimを示していますが、標準です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

関連情報