Vi에서 한글깨질때

일단 로케일 문제가 맞습니다. 맞고요~(썰렁~)

UTF-8로 개발했거나 EUC-KR로 개발했는데

vi로 열경우 시스템 로케일이 반대일경우, 혹은 개발로케일과 다를경우

한글이 깨져보입니다.

그럴경우 vi자체에 로케일을 자동으로 인식해주는 법을

bundo님께 전수받아 이렇게 팁으로 올립니다. 사실 제가 올리기가 많이도 부끄럽습니다.

홈폴더에 .vimrc 를 생성하신 다음

set fencs=utf-8,euc-kr,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le

이렇게 추가해주면 알아서 한글이 잘 보이더군요!!

vim의 옵션은 뭐 많이 있으니 찾아보시면 될겁니다.

^^ 팁이 아닌 팁이었습니다.

분도님께 감사드립니다. ^^

[quote="hero4638":gijju9bu]
홈폴더에 .vimrc 를 생성하신 다음
set fencs=utf-8,euc-kr,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le
[/quote:gijju9bu]

저도 이 방법을 사용합니다만,
위와같이 설정했을 경우 리눅스 상의 vim에서 작성한 문서를 MS윈도우즈 상의 비주얼스튜디오에서 불러올때 문제가 생기더군요.

이와 관련해서는 kldp.org 등에 이미 글타래가 있습니다.

그래서 저는 아래와 같이 옵션을 한줄 더 추가해서 사용중입니다.

[code:gijju9bu]set fileencoding=cp949[/code:gijju9bu]

[quote="seungje":36w2o04x]위와같이 설정했을 경우 리눅스 상의 vim에서 작성한 문서를 MS윈도우즈 상의 비주얼스튜디오에서 불러올때 문제가 생기더군요.[/quote:36w2o04x]
vs 2005 쓰는데… utf8 문서 열게하는 옵션 있습니다. =.=

[quote="haze11":3vdeu2ku]vs 2005 쓰는데… utf8 문서 열게하는 옵션 있습니다. =.=[/quote:3vdeu2ku]
아, 그런가요?

저도 vs 2005 standard 사용 중입니다만, 결국 vim에서 수정해서 해결을 봤었는데…
다시 찾아봐야겠군요. 감사합니다.
(그런데 그 옵션은 어디서 설정하는 건가요?)

[quote="seungje":1qadz42l][quote="haze11":1qadz42l]vs 2005 쓰는데… utf8 문서 열게하는 옵션 있습니다. =.=[/quote:1qadz42l]
아, 그런가요?

저도 vs 2005 standard 사용 중입니다만, 결국 vim에서 수정해서 해결을 봤었는데…
다시 찾아봐야겠군요. 감사합니다.
(그런데 그 옵션은 어디서 설정하는 건가요?)[/quote:1qadz42l]
메뉴: 도구-옵션, 텍스트편집기-서명 없는 UTF-8 인코딩 자동 검색
마침(!) vs가 열려있어서 찾아봤네요;;

[quote="haze11":ki9cpj9i]메뉴: 도구-옵션, 텍스트편집기-서명 없는 UTF-8 인코딩 자동 검색
마침(!) vs가 열려있어서 찾아봤네요;;[/quote:ki9cpj9i]

감사합니다. :D ^^*

윗분들에 좋은 답변 잘 받고 갑니다. ^^

아주 깔끔한 정보입니다.

set fencs=utf8,euc-kr,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le
를 로컬에서 ~/.vimrc 로 해도 되지만,

전역으로 하는 방법도 좋을듯 합니다.

/etc/vim/vimrc , gvimrc 에 자동 반영하는 파일이

vimrc.local , gvimrc.local 이니 다음과 같이 하세요.

$ echo ‘set fencs=utf8,euc-kr,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le’ > vimrc.local1 ; sudo cp vimrc.local1 /etc/vim/vimrc.local ; sudo cp vimrc.local1 /etc/vim/gvimrc.local ; rm vimrc.local1

이렇게 batch command 로 실행해도 됩니다.
참조하세요.

set fencs=utf8,euc-kr,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le
이것으로 한글외의 다른 문자셋을 제대로 표현하리라 보시나요?

euc-kr은 그 문자수가 적어서 euc-jp등과 겹치지 않지만…
cp949만 사용하더라도 바로 겹쳐버립니다.

그러면… 일문이나 중문은 바로 cp949의 이상한 문자들로 표현됩니다.
latin1은 iso8859-1인데… 이것도 겹칩니다.

set fencs=ucs-bom,utf8, euc-kr,cp949
이렇게 까지 밖에 설정하지 못할 것이며…
일문,중문등은 유니코드를 사용하는 문자셋으로 검출되거나,
LC_ALL, LANG, LANGUAGE로 표현되는 로케일설정변수를 설정하여 보거나,

[code:6goyds2y]
"일본어로 보기
:e ++enc=euc-jp
[/code:6goyds2y]
등으로 강제로 해당 인코딩으로 변경하여 보는것이 최선일것입니다.

[code:6goyds2y]
" UTF-8, euc-kr 한글문서 그냥 열기
if v:lang =~ "^ko"
set encoding=cp949
set fileencodings=euc-kr,cp949
set guifontset=---medium-r-normal–16-------*

elseif v:lang =~ "^ja_JP"
set encoding=euc-jp
set fileencodings=shift-jis,euc-jp
"cp932
set guifontset=-misc-fixed-medium-r-normal–14-------*

elseif v:lang =~ "^zh_TW"
set encoding=euc-tw
set fileencodings=big5,gb2312
"cp950
set guifontset=-sony-fixed-medium-r-normal–16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal–16-150-75-75-c-160-big5-0

elseif v:lang =~ "^zh_CN"
set encoding=euc-cn
"cp936
set fileencodings=gb2312,big5
set guifontset=-r-
endif

if v:lang =~ "utf" || v:lang =~ "UTF"
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,euc-kr,cp949
endif
"utf-32,utf-16,ucs-2,ucs-4를 모두 처리 하려면 주석을 제거
"set encoding=utf-32
[/code:6goyds2y]