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"이 있었는데 지금은 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/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보내야 합니다.


정보 uxterm: uxtermOpenBSD 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.

관련 정보