터미널에서 한글이 안나오고 입력도 안되는 문제 해결

31367 
Created at 2006-09-29 06:56:09 
486   0   0   0  
Copyright (c) 2002, 2001 Jeon, Jeongho.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.



--------------------------------------------------------------------------------

Cygwin에 포함된 소프트웨어들은 기본적으로 영어권을 대상으로 컴파일되거나 설정되있다. 이 글은 최소한의 노력으로 한글을 사용할 수 있게하는 것이 목적이다. 완전한 한글화는 C 라이브러리 등의 제약으로 상당한 노력이 필요하다.

1. 쉘(bash)에서 한글 쓰기
~/.inputrc 파일을 만들고 다음 내용을 입력한다.

set meta-flag On
set convert-meta Off
set output-meta On





2. ls에서 한글 파일명 제대로 보기
~/.bashrc에 다음 내용을 입력한다.

alias ls='ls -F --color=auto --show-control-char'





옵션을 간단히 설명하면, -F는 파일형식에 따라 파일명 뒤에 (디렉토리) /, (실행파일) *, (심볼릭링크) @를 붙이고, --color=auto는 파일형식에 따라 다른 색으로 표시하고, --show-control-char는 한글을 보이게 한다. ~/.bash_profile 대신 ~/.bashrc에 추가하는 이유는 부모쉘의 alias가 자식쉘에 전달되지 않기때문에 alias 정의가 쉘이 시작할때마다 실행되는 ~/.bashrc에 있어야 한다.

정정: ~/.bashrc에만 넣어두면 처음 cygwin을 실행할 때 (즉, login shell) 실행이 안되므로 ~/.bash_profile (혹은 ~/.profile)에도 alias 정의가 있어야 합니다. 제가 ~/.bash_profile에 source ~/.bashrc를 적어두어서 미처 발견하지 못했습니다. (유제환님께 감사 :)

3. vi(vim)에서 화면 안깨지고 한글 쓰기
기본으로 설치된 vi에서 한글을 입력할때마다 화면이 깨지면, vi를 다시 컴파일해야 한다. vim 소스는 http://www.vim.org/에서 받을 수 있다.

./configure에 --enable-multibyte 옵션을 추가해야 한다. (최근 Cygwin의 vim 6.0 버전에서는 다시 컴파일할 필요가 없다. vi --version에서 +multi_byte를 확인할 수 있다.) 설치하면 vim 이름으로만 설치되니, vi로도 링크를 걸어준다. 또 필요하다면 /usr/local/share/vim/vim60/vimrc_example.vim을 /usr/local/share/vim/vimrc나 ~/.vimrc로 복사한후 알맞게 수정한다.

여기서 한 글자가 2바이트인 한글을 올바로 처리하려면, ~/.vimrc에 다음 내용을 추가한다.

set fileencodings=euc-kr
set encoding=cp949





화면 폭보다 긴 줄이 화면에서 제일 아래 줄인 경우 줄 대신 '@' 표시가 나오는데, 이때 한글을 입력하면 화면이 한줄씩 밀리게 된다. 터미널과 관련된 문제로 보이지만 아직 정확한 이유를 찾지못했다. 만약 알고있다면 알려주길 바란다. 대신 편법으로 아래 내용을 ~/.vimrc에 추가하면 한 줄을 넘어서는 부분은 (뒤에 더 있음) >, (앞에 더 있음) <으로 표시된다.

set nowrap
set listchars=extends:>,precedes:<





보통 다음도 추가한다. 첫번째 줄은 Tab 간격을 정하고, 두번째 줄은 시끄러운 삐소리를 없앤다.
set tabstop=4
set visualbell t_vb=





4. 그런데 아직도 vi(vim)에서 한글이 계속 깨져요!
불행히도 Windows command.exe가 제공하는 터미널에 문제가 많아서 한글을 사용할때 불편한 경우가 있다. 구체적으로 행바꿈시 화면에 두칸이 띄어지는 것처럼 보이는 문제, 한글 상태에서 화면정리(Ctrl-L)시 한줄이 밀리는 현상, 긴줄이 화면 밑에 있을때 한줄이 밀리는 현상, 화면이 깨져서 자주 화면정리를 해줘야하는 문제 등이 있다. 아래의 방법으로 부분적으로 해결할 수 있다. 혹시 좋은 방법을 알고 있다면 알려주길 바란다. (Windows 98과 Windows 2000에 포함된 command.exe 혹은 cmd.exe의 경우이다. 혹시 다른 버전의 command.exe에는 이런 문제가 없을 수 있다.)


TERM 환경변수 수정
TERM 환경변수를 기본값인 cygwin이 아닌 다른 값으로 수정하여 문제를 줄일 수 있다. 그러나 Windows command.exe 문제때문에 영어권에서도 ncurses가 완벽하게 동작하지 않음을 볼 때 큰 기대를 가지진말라. 또 다른 프로그램이 정상적으로 작동하지 않을 수도 있다. ~/.bash_profile에 export TERM=ansi-mini와 같이 다른 터미널 이름을 입력하면 된다.


vi(vim) 설정 수정
(Vim 6.0 버전에서는 적용이 안된다.)

위의 두방법은 원격 호스트에서 vi를 사용한다면 해당 호스트의 설정도 수정해야 한다는 단점이 있다. 편집기 서버 기능(vim 도움말 remote.txt 참조)이나 scp, rcp, ftp로 네트웍에서 파일 읽고쓰기 기능(pi_netrw.txt 참조)이 조금 도움이 될 수 있다.

완전히 다른 터미널을 사용하는 방법도 있다. 사실 이 방법들을 더 추천한다.


vim Win32 GUI 사용
vim Win32 GUI를 따로 설치한후 PATH 환경변수에 추가하여 사용한다. (예, ~/.bash_profile에 export PATH=/cygdrive/c/Vim/vim60:$PATH) gvim이란 파일명으로만 설치되므로 vi나 vim 이름으로 심볼링크를 걸거나 alias를 만들어둔다. (alias 예, ~/.bashrc에 function vim() { gvim $1 & }) vim 도움말 gui_win32.txt에 있는 팁들도 유용하다. 단점은 command.exe를 사용할때와 마찬가지로 원격 호스트에서 편집할때 문제가 있다.


telnetd 사용
cygwin의 inetd를 활성화한후 (팁 모음 참조) 터미널 문제가 없는 원격 터미널 에뮬레이터(teraterm 등)를 사용하여 localhost에 접속하여 Cygwin을 사용한다. 경우에 따라 원격 테미널 에뮬레이터에 맞게 TERM 환경변수를 수정할 필요가 있다. (혹시 접근하는데 문제가 있다면 Windows 2000의 '텔넷 서버 관리'에서 서비스를 중지하라.)


rxvt 사용 (재컴파일 필요)
rxvt는 cygwin에 기본적으로 포함된 터미널이다. 따로 창이 뜨고 X11은 필요없다. 그러나 폰트 등 2바이트 지원을 위해 새로 컴파일해줘야 한다.


X11에서 hanterm 사용
Windows에 X11 display server(Cygwin/XFree86, Xmanager 등)와 hanterm을 설치하고, hanterm에서 vim을 사용한다. 아니면 vim X11 GUI를 사용할 수도 있다.


Share on Facebook Share on X

◀ PREVIOUS
cgi File Downloading Module
▶ NEXT
SoBig.Worm Virus 퇴치 방법
  댓글 0
로그인을 하시면 댓글을 등록 할 수 있습니다.
OTHER POSTS IN THE SAME CATEGORY

메일서버 세팅하기 (created at 2006-09-29)

pop3 제대로 되는지 테스트 하는 방법 (created at 2006-09-29)

메일을 보내면 릴레이를 거부하는데? (created at 2006-09-29)

firewall setting / host deny (created at 2006-09-29)

apache+php에 oracle연동하기 (created at 2006-09-29)

OpenSSL Installation with PHP, Apache, ... (created at 2006-09-29)

OpenSSL Installation - Ref. 2 (created at 2006-09-29)

OpenSSL Example PHP Code - VerifySignature (created at 2006-09-29)

WOWLINUX에서 POP3 구동시키기 (created at 2006-09-29)

메일(mail)이 보내지는건 되는데, 안받아져요 (created at 2006-09-29)

외부에서 PING 안되게 막기 (created at 2006-09-29)

IP 및 GATEWAY 설정 변경 방법 (created at 2006-09-29)

dante ~ free sock v4/v5 server for linux (created at 2006-09-29)

WOWLINUX 7.3 Paran R2 - HDD Quota 설정 (created at 2006-09-29)

SoBig.Worm Virus 퇴치 방법 (created at 2006-09-29)

cgi File Downloading Module (created at 2006-09-29)

매크로로 라이브러리 링크하는 방법 (created at 2006-09-29)

AES (Advanced Encryption Standard) Source Code (created at 2006-09-29)

Check Function - Is NT/2000/XP ? (created at 2006-09-29)

Simple Socket Server based on C (created at 2006-09-29)

File Search Sample Code (created at 2006-09-29)

String Find 알고리즘 (created at 2006-09-29)

HTTP Downloading Reference Source Code (created at 2006-09-29)

UNIX에서 LOCALTIME 구하는 방법 & GetTicketCount() (created at 2006-09-29)

Application Event써서 Keyboard 받아내기 (created at 2006-09-29)

Web Browser Control에서 Enter키 먹게 하기 (created at 2006-09-29)

윈도우 찾아서 Top Most로 올려주기 (updated at 2023-12-17)

Application defined window call procedure (created at 2006-09-29)

ActiveX의 등록 - Safe Code 넣어주기 (updated at 2023-12-17)

ActiveX를 Safe한 Component로 등록하는 방법 (created at 2006-09-29)

UPDATES

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-03-14)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-03-13)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)

신한은행/신한투자증권 금융거래 종합보고서 다운로드 방법 (updated at 2024-02-26)

100년 된 일본 장난감 회사가 내놓은 변신 기술에 난리난 과학계 (created at 2024-02-26)

알리에서 발견한 한글 지원하는 가성비 쩌는 무선 기계식키보드 (updated at 2024-02-25)

쌍팔년도가 1988년인줄 알았던 1인 (updated at 2024-02-23)

이쁜 색으로 변신한 테슬라 사이버트럭 (created at 2024-02-23)

2024년 카타르 아시안컵 4강전 전날 한국 대표팀 내부에 있었던 이강인의 폭주 (updated at 2024-02-21)

강릉 맛집 지도 (updated at 2024-02-20)

간이 안좋을 때 나타나는 증상 20가지 (updated at 2024-02-20)

배설물을 이용하여 일본에 저항했던 독립운동가 조명하 (updated at 2024-02-20)

요건 몰랐지롱? 이순신을 사랑한 외국인 (created at 2024-02-20)

원빈도 머리빨 (created at 2024-02-19)

대표적인 대한민국의 미남배우 중 하나인 원빈 (created at 2024-02-19)

백제의 건국 시조 온조왕 (updated at 2024-02-19)

700년동안 대한민국 고대국가의 한축이었던 백제시대 (created at 2024-02-19)

대머리들에게 주는 대머리의 조언 (created at 2024-02-17)

일본의 여성 락그룹 프린세스 프린세스의 "다이아몬드" (created at 2024-02-17)

결혼식 직전 연락두절된 신랑 (created at 2024-02-17)

대한민국 축구팀 파문으로 인해 중국 소셜미디어까지 등장한 탁구 전도사 이강인 (updated at 2024-02-16)

조국의 반격으로 흥미진진하게 흘러가는 한국의 정치판 - 데뷰와 동시에 한동훈 장관에게 던진 4개의 질문 (updated at 2024-02-15)

2024년 카타르 아시안컵 4강전 전날 내분사태로 갑자기 회자되는 이승우선수의 친화력 (created at 2024-02-15)

카카오뱅크 금융거래종합보고서/잔액증명서/거래내역서 발급 방법 (created at 2024-02-14)

아이가 최고의 스승이었다 (created at 2024-02-13)

이제는 국민 유행어로 등극한 한동훈의 "싫으면 시집가" (updated at 2024-02-13)

설 연휴 잔소리 메뉴판 - 이제 잔소리 하기전에 요금부터... (updated at 2024-02-10)

로버트 드니로의 70년 전 모습 (created at 2024-02-08)

카메라 어플로 만들어본 슈퍼걸 - 엄... 최종 작품은 왠지... (created at 2024-02-08)

앞트임 하고 새롭게 태어난 대한민국의 젊은 용사 (created at 2024-02-08)

비가 억수로 내리던 2024년의 2월 어느날 캘리포니아의 밤 카니예 웨스트와 그의 아나 비앙카 센소리 (updated at 2024-02-08)

스케방형사 1화 - 수수께끼의 전학소녀사키 (created at 2024-02-05)

백제와 일본의 교류가 가장 활발했던 시기는 근초고왕 시대 (created at 2024-02-05)

일에 찌들은 아빠가 꿈에서 깨어나지 않자 구출해주는 짱구 (created at 2024-02-03)

이제는 할아버지가 된 휴 그랜트(Hugh Grant)가 블랙핑크 콘서트에 다녀온 후 소감 (created at 2024-02-03)

다시 한번 감상해보는 추억의 날리면 패러디 (updated at 2024-02-01)

25년간 노예로 살다가 돌아온 남동생 (created at 2024-02-01)

가까우면서도 멀게 느껴지는 나라 일본 (created at 2024-02-01)

친구와 비교하다가 이혼하게 된 부부 (created at 2024-02-01)

요꼬 미나미노의 바람의 마도리걸(風のマドリガル) (created at 2024-01-30)

옛날 어린이들이 신문을 챙겨봤던 이유 (created at 2024-01-30)

Remaster된 요꼬 미나미노(南野陽子)의 판도라의 연인(パンドラの恋人) (updated at 2024-01-30)