VIM 또는 Gvim에서 UTF-8 문자를 보는 방법


106

나는 때때로 비 영어 스크립트와 관련된 웹 페이지에서 작업하는데, 대부분은 utf-8 문자셋을 사용하고, VIM과 Gvim은 UTF-8 문자를 올바르게 표시하지 않습니다.

set guifont=Monaco:h10_vimrc 에서 Windows 7 64 비트에서 VIM 7.3.46 사용

이 문제를 해결할 방법이 있습니까?

업데이트 : 나는 주변을 둘러 보았고 set guifontwide지역 언어에 대한 두 번째 대체물 역할을 발견했습니다 .

_vimrc에 다음 줄을 추가했고 대부분의 문제가 해결되었습니다.

set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12

위의 NSimsun 글꼴은 중국어에서 작동합니다. 문제는 VIM과 함께 작동하는 글꼴 이름을 어떻게 얻었는지 모르겠다는 것 입니다. 글꼴 디렉토리 에도 Courier New언급되어 있지 않습니다. 제가 사용하고 싶은 폰트 는 _vimrc 파일에서 사용하는 방법을 모르겠습니다. 또는 작동하지 않습니다.Courier_NewNSimsunLathaset guifontwide=latha:h12set guifontwide=Latha:h12

나는 성공적으로 설정 한 경우 guifontwidelatha, 다음 내 문제가 해결 될 것, 그것을 어떻게?


의 가치 'guifont'와 가치는 'guifontwide'무엇입니까? 또한 어떤 OS를 사용하고 어떤 버전의 vim을 사용하고 있습니까?
Benoit 2011 년

Sathish, 이것에 대한 해결책을 찾을 수 있었습니까? eKalappai 소프트웨어로 gVim을 입력하려고하는데 vim이 나에게만 표시됩니까? 문자 (분명히 같은 방식으로 저장).
sundar-Monica 복원 '2013-08-26

@sundar 아니. 포기했다 : |
사티시 Manohar

내 문제는 inconsolata-g가 내 문서에서 utf-8 문자를 지원하지 않는다는 것입니다.
AndrewPK

set guifontwide=NSimsun:h12나를 위해 사용 실패, "유효하지 않은 와이드 글꼴"은 아마도 동일한 비 모노 스페이스 문제입니까?
mikew

답변:


61

다음을 사용하여 문서를 다시로드 해보십시오.

:e! ++enc=utf8

작동한다면 fileencodings.vimrc 에서 설정을 변경해야 합니다.


2
나를 위해 아무것도 변경하지 않습니다
Thomas Levesque

8
변경 사항을 지울 수 있으므로 작업을 저장하기 전에 실행 하지 마십시오 . :u그래도 당신을 구할 것입니다.

읽기 전용으로 또한이 설정 파일을 당신은이 작업을 수행 할 때, 당신은 또한 다음 실행해야하므로:set noro
매트 Vukomanovic

2
감사합니다. Vim은 바이너리 데이터 블록 (multipart / form-data attachment part)이 있었기 때문에 제 경우에는 utf-8을 렌더링하지 않았습니다. 내가했을 때 :e! ++enc=utf8utf-8을 렌더링했지만 [ILLEGAL BYTE in line 286]파일 내부에서 불평했습니다 (첫 번째 바이너리 부분 줄). 기본 동작은 Vim을 열 때 다른 인코딩으로 조용히 돌아가는 것입니다. 그러나 어떤 이유에서인지 echo &enc여전히 utf-8을보고합니다.
Dmitry Minkovsky

1
@DmitryMinkovsky &enc는 vim이 버퍼 내용을 저장하기 위해 내부적으로 사용하는 인코딩입니다. 현재 파일의 인코딩을 포함하는 설정은&fenc
벤와

60

시도해 보았 니

:set encoding=utf-8
:set fileencoding=utf-8

?


5
이 두 설정을 모두 시도했지만 여전히 utf-8 문자를 볼 수 없습니다.
Sathish Manohar

1
-1. 실제로 이것은 작동하지 않습니다. 이러한 옵션 중 어느 것도 파일을 다시로드하지 않습니다. 첫 번째는 vim이 버퍼 (및 기타 사항)를 내부적으로 저장하는 방법을 수정하고, 두 번째는 버퍼에 이미로드 된 파일의 인코딩을 변경하도록 지정하여 저장할 때 적용됩니다.
Benoit

:set encoding=utf8 것입니다 버퍼를 새로 고침하고 문제가 잘못된 인코딩 있다면, 그것을 해결됩니다. set fileencoding=utf8저장할 때 가장 혼란스러운 "일부 문자를 변환 할 수 없습니다"오류가 발생하지 않도록 옵션을 추가했습니다 .
Maxim Sloyko 2011 년

인코딩 설정이 작동했습니다. .vimrc 파일에 set encoding = utf8을 추가했으며 이제 utf8로 모든 것이 정상입니다.
Alexander Kim

OSX에서는 콜론없이이 두 줄을 추가했는데 ~/.vimrc제대로 작동했습니다
lionello

7

일본인이 여기에 오면 다음 줄을 추가하십시오. ~/.vimrc

set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac

6

Microsoft Windows에서 gvim은 고정 폭이 아닌 글꼴을 선택할 수 없습니다. 안타깝게도 Latha는 모노 스페이스가 아닌 글꼴입니다.

그렇게 할 수있는 해킹 방법이 있습니다 : 사용 폰트 포지는 (당신의 윈도우 바이너리 다운로드 할 수 있습니다 http://www.geocities.jp/meir000/fontforge/을 편집 Latha.ttf에)와 고정 폭 글꼴로 표시합니다. 이렇게 :

  1. fontforge를로드하고 latha.ttf를 선택합니다.
  2. 메뉴 : 요소-> 글꼴 정보
  3. 글꼴 정보 대화 상자의 왼쪽 목록에서 "OS / 2"를 선택합니다.
  4. "Panose"탭 선택
  5. 비율 설정 = 고정 폭
  6. 이 글꼴의 새 TTF 버전을 저장하고 사용해보세요!

행운을 빕니다!


1
latha 글꼴을 고정 폭으로 변경할 수 없습니다. 나는 정확히 단계를 따라하지만, 저장된 파일은 여전히 :( 고정 폭 글꼴로 작동하지 않습니다
사티시 Manohar에게

1
@Sathish Manohar 1) 기존 TTF 파일을 덮어 쓰고 Windows를 다시 시작한 다음 사용해보십시오. 또는 2) TTF를 새 파일에 저장하고 글꼴 이름을 수정할 수 있습니다. 새 TTF 파일을 설치하십시오. 이 새 글꼴은 목록에서 사용할 수 있습니다.
Yi Zhao

그 이후 (7 년) 후에 VIM에 사용할 수있는 몇 가지 무료 글꼴이 있습니다. Google Noto 글꼴 google.com/get/noto ; Iosveka github.com/be5invis/Iosevka/releases 는 평가하기에 매우 좋은 대안입니다.
Yi Zhao

3

Linux에서 VIM 구성 파일을 엽니 다.

$ sudo -H gedit /etc/vim/vimrc

다음 줄이 추가되었습니다.

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

저장 및 종료 및 터미널 명령 :

$ source /etc/vim/vimrc

이때 VIM은 중국어를 올바르게 표시합니다.


2

그동안이 문제가 해결 되었습니까?

나는 gvim이 모든 유니 코드 문자를 표시하지 않고 (그러나 움라우트와 악센트 부호가있는 문자를 포함한 하위 집합 만) :set guifont?비어 있다는 문제가있었습니다. 내 질문을 참조하십시오 . 여기를 읽은 후 guifont합리적인 값으로 설정하면 문제 가 해결되었습니다. 그러나 2 바이트 이상의 문자는 필요하지 않습니다.


1
guifont의 현명한 값은 무엇입니까? 무엇을 넣었습니까?
Christian

이 답변 에서 나를 위해 일한 값을 나열했습니다 .
Tobias

2

Windows GVim 편집기에 표시하기 위해 설치 한 다른 글꼴을 얻을 수 없었기 때문에 Lucida Console최소한 UTF-8 지원이 더 나은 것으로 전환했습니다 . 당신의 끝에 이것을 추가하십시오 _vimrc:

" For making everything utf-8
set enc=utf-8
set guifont=Lucida_Console:h9:cANSI
set guifontwide=Lucida_Console:h12

이제 적어도 일부 UTF-8 문자가 표시됩니다.


내 경우에는 cANSI는 cGREEK로 변경했다 (편집 -> GVIM에서 글꼴 선택 ...) Consolas 글꼴로, 제대로 그리스어 문자와 UTF-8 인코딩 된 텍스트 파일을 표시하기 위해
hello_earth

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.