2008년 03월 02일
emacs 한글 입력기
emacs가 유니코드를 지원한지 꽤됐는데 아직 입력기는 euc-kr을 벗어나지 못하고 있습니다.
그래서 한글을 입력하다보면 아래와 같은 현상이 자주 발생하는데요. 코딩할땐 괜찮은데 erc로 채팅할땐 여간 불편한게 아닙니다.

emacs에서 한글입력은 mule패키지에 있는 quail모듈을 통해서 이루어집니다.
quail은 다국어 입력을 위해 다양한 함수와 매크로를 제공하는데 한글입력을 처리하는 hangul.el파일을 보면 quail-define-rules매크로를 통해 transition rule을 정의하여 한글입력을 구현하고 있습니다.
'r'이라는 입력이 들어오면 'ㄱ'으로, 여기서 'k'가 입력되면 '가'로 전이가 되는 방식이죠.

이러한 방식으로 한글을 구현하면 11,172개의 룰을 정의해야 됩니다. 하지만 hangul.el은 euc-kr영역에 해당하는 룰만 정의해놓았고 그로인해 유니코드 환경에서도 euc-kr영역외의 글자는 입력할 수 없습니다.
위의 방식은 너무 비효율적인것같아 alee님의 aim을 참고하여 새로운 입력기을 만들어봤습니다.
hangul.el
이 파일을 받아서 emacs가 인식하는 디렉토리에 넣어두고 설정파일에 아래와 같이 한줄만 추가하면 기존의 korean-hangul, korean-hangul3 메소드를 오버라이딩합니다.
기존에 한글 설정이 되어 있다면 문제없이 사용할 수 있을것입니다.
그래서 한글을 입력하다보면 아래와 같은 현상이 자주 발생하는데요. 코딩할땐 괜찮은데 erc로 채팅할땐 여간 불편한게 아닙니다.

emacs에서 한글입력은 mule패키지에 있는 quail모듈을 통해서 이루어집니다.
quail은 다국어 입력을 위해 다양한 함수와 매크로를 제공하는데 한글입력을 처리하는 hangul.el파일을 보면 quail-define-rules매크로를 통해 transition rule을 정의하여 한글입력을 구현하고 있습니다.
'r'이라는 입력이 들어오면 'ㄱ'으로, 여기서 'k'가 입력되면 '가'로 전이가 되는 방식이죠.

이러한 방식으로 한글을 구현하면 11,172개의 룰을 정의해야 됩니다. 하지만 hangul.el은 euc-kr영역에 해당하는 룰만 정의해놓았고 그로인해 유니코드 환경에서도 euc-kr영역외의 글자는 입력할 수 없습니다.
위의 방식은 너무 비효율적인것같아 alee님의 aim을 참고하여 새로운 입력기을 만들어봤습니다.
hangul.el
이 파일을 받아서 emacs가 인식하는 디렉토리에 넣어두고 설정파일에 아래와 같이 한줄만 추가하면 기존의 korean-hangul, korean-hangul3 메소드를 오버라이딩합니다.
(require 'hangul)
기존에 한글 설정이 되어 있다면 문제없이 사용할 수 있을것입니다.

# by | 2008/03/02 23:10 | 트랙백 | 핑백(1) | 덧글(1)
◀ 이전 페이지 다음 페이지 ▶



