emacs 한글입력기를 만들어봤습니다.

18
points

기존에 포함되어 있는 한글 입력기는 한글입력에 제한이 있어 alee님의 aim을 참고하여 새로 만들어봤습니다.
emacs가 인식하는 디렉토리(예: ~/.emacs.d/)에 첨부파일을 복사한후 설정파일에 아래와 같이 추가하시면 기존의 korean-hangul입력기를 오버라이딩합니다.
(require 'hangul)
3벌식 입력기 korean-hangul3도 포함되어 있습니다.

첨부 파일파일 크기
hangul3.png18.29 KB
hangul.el_.gz2.93 KB
peccavi의 이미지
4186
points

이맥스에 한걸음 더

3
points

이맥스에 한걸음 더 가까워 질 수 있을것 같습니다. 정말 고맙습니다.

----
jai guru deva om...

antz의 이미지
8420
points

오~ 멋집니다. :-)

5
points

시간이 지나서 묻혀지지 않게
kldp.net과 같은 곳에서 관리되었으면 좋겠습니다.

좋은 프로그램 고맙습니다.
잘 쓰겠습니다. :-)

---


Blog : http://lum7671.egloos.com

hexascii의 이미지
1040
points

일단 추천입니다.

4
points

정말 좋은 프로그램 감사합니다.

그런데, emacs를 사용한지 얼마 안되서 드리는 질문입니다.
(검색은 해 봤는데, 확신이 가지 않습니다.)

~/.emacs 파일에
(require `hangul)

~/.emacs.d/ dir에
첨부 파일 복사가 맞습니까?

File error: Cannot open load file, hangul

라고 에러가 발생합니다.

네..맞습니다. load-path

5
points

네..맞습니다.
load-path에 ~/.emacs.d/ 가 추가되어 있는지 확인해보세요.
추가되어 있지 않다면 추가해야 됩니다.
(setq load-path (cons (expand-file-name "~/.emacs.d/") load-path))
아..그리고 기존의 것을 오버라이딩 하기때문에 설정파일 마지막에 넣는편이 좋습니다.

M.W.Park의 이미지
6923
points

혹시나 해서...

4
points

작은(홑) 따옴표가 좀 이상한듯합니다만...

(require `hangul) --> (require 'hangul)

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

hexascii의 이미지
1040
points

답변 감사드립니다.

5
points

초보가 고생시켜 드리는군요^^;;;;

(setq load-path (cons (expand-file-name "~/.emacs.d/") load-path))
(require 'hangul)

요것만 현재 ~/.emacs에 쓰여져 있고
~/.emacs.d/에 다운받은 패치가 되어 있는 상황입니다.

lisp은 알겠는데,
emacs의 customizing load가 어떻게 되는 건지 모르겠네요.ㅡㅡ;;;

여전히 로딩 에러가 납니다만.ㅡㅡ;;;

emacs의 customizing에 관련된 문서 추천 좀 해주세요.ㅡㅜ

혹시 mule패키지가

3
points

혹시 mule패키지가 설치되어있는지 확인해보세요..
quail이 있어야됩니다.
보통은 emacs가 설치된 디렉토리 아래의 lisp/international/quail.el.gz 로 존재합니다.

hexascii의 이미지
1040
points

우분투 7.10 에서 Emacs 22.1을 사용하고 있습니다.

3
points

/usr/share/emacs/22.1/lisp/international/에

/quail.elc가 존재합니다.

혹시나 해서 이전 버전인 21.4도 설치해 봤는데, 역시나

/usr/share/emacs/21.4/lisp/international/에

/quail.elc만 존재합니다.

이거 괜히 첨 써서 짐만 안겨드리는게 아닌가 하네요 ㅡㅡ;;;

아무것도 세팅되지 않은 emacs입니다.

글쎄요..뭐가

3
points

글쎄요..뭐가 문제인지 모르겠군요..;

oppor의 이미지
1614
points

압축을

3
points

압축을 풀어보세요.~~~~~

최종은 없나요?~~

3
points

세벌사랑,한글사랑
글이 살아야 나라가 산다.

포함된 버전이 3벌식

3
points

포함된 버전이 3벌식 최종입니다.

존경합니다.

3
points

Emacs 최고의 문제점이 해결되었네요.
EmacsWiki 등에 올리셔서 kldp 외의 분들도 볼수 있도록 해주실수는 없을까요?

emacs-devel에는

5
points

emacs-devel에는 보냈습니다. 어떻게 될지는 모르겠네요.

한영변환키

3
points

한영변환키는 뭔가요?
저는 여전히 예전 입력기가 동작하는군요?(Shift-space)
modeline에 한2u로 나오네요 맨 위그림은 한2U 인데

U부분은 입력기에서

2
points

U부분은 입력기에서 구현하는 부분이 아닙니다.
한2가 나오는게 맞습니다. 입력이 안되면 현재 터미널 코딩을 확인해보시기 바랍니다.
터미널 코딩에서 인식못하는 글자는 분리해서 나타내어집니다.
예를들어 euc-kr에서 '햏'을 입력하면 '해ㅎ'가 입력되는거죠.

저는 390 사용자인데요.

2
points

저는 390 사용자인데요,
좋은 확장을 만들어 주신 것 같은데.... 좀 휘청하는 얘기지만,
기존의 입력에 문제가 있다는 것이 햏 같은 글짜가 이전에 안나오는 그런 문제를 해결하신건가요?

또, 저는 지금껏, 윈도우에서 emacs를 사용해 왔는데, 사실, 한글입력기에 큰 불만 없이 그냥 그럭저럭 사용해 왔습니다만(390 사용자라 그런가..?)
한가지 문제가 기본 한글 입력 상태에서 "[" 나 "]" 를 입력하면, 이상한 꺽쇠가 찍히더군요. "{" 나 "}" 의 경우도 마찬가지였던것 같고..

근데. 만드신 hangul.el 은 정확하게 3벌식 최종의 부호가 찍히더군요.. emacs 기본 3벌식 입력방식에서 그러한 것들을 어떻게 하면 제가 원하는 데로
수정할 수 있는지... 좀 힌트라도 주시면 안되겠습니까? elisp은 아주 기본...만 알아서...
무슨 table 같은게 있을 것 같은데...

부탁드려봅니당.

390유저가 생각보다

2
points

390유저가 생각보다 많아서 390입력기도 추가했습니다. :)
input method명은 korean-hangul390 입니다.
제가 2벌식 유저라서 3벌식 최종이나 390은 버그가 있을지도 모르겠네요.

세벌식 최종에서 초성 입력 시 약간의 버그가..

2
points

새로운 한글 입력기를 유용하게 잘 사용하고 있습니다. ^^
그런데, 두 음절에 걸쳐서 반복되는 초성이 있을 경우
앞 음절에 된소리로 되어 버리는 현상이 있는 걸 발견했습니다.
예를 들어서, '저자'라고 입력을 하려 하면 '쩌ㅏ'가 되어 버립니다.
우선은 ntemacs 22.1 버전에서만 확인이 된 것인데,
저만 그런 것인지 다른 분들도 그런 것인지 궁금하네요.

수정했습니다.

3
points

수정했습니다. :)
사용하다 문제점이 있으면 알려주세요.

첨부 파일파일 크기
hangul.el_.gz3.3 KB

감사합니다.

2
points

감사합니다.
이제 잘 됩니다. ^^

oppor의 이미지
1614
points

ntemacs22 에서 이런 오류가 나옵니다.

3
points

cond: Symbol's function definition is void: setf

이렇게 나오고 한글이 아예 안써지네요.

require 'hangul 을 없애면 그냥 한글이 써지긴 하는데요. 뭥미, 햏 이런건 안써지네요.

저게 무슨 오류인지 아시나요?

hangul.el이나

1
point

hangul.el이나 .emacs파일에 (require 'cl) 을 한번 추가해보세요.

새로 올리신 내용

3
points

새로 올리신 내용 가지고 해보니, 심벌들이 제가 원하는데로 찍히는 것을 확인했습니다.
이제 더이상 [] 나 {} 문자를 위해서 영문으로 굳이 변환해야 할 필요가 없어져서 너무 기분이 좋네요.

그리고...

slyphong 님의 package가 emacswiki.org 에 올라왔는데, 여기에 대한 소개가 없어서
제가 그냥 아래 링크에 추가했습니다.

http://www.emacswiki.org/cgi-bin/wiki/WritingKorean

slyphong님 혹시 시간되시면, 나중에 방문하셔서 상세 설명좀 부탁드려요.
다음번 emacs에 꼭 채택되었으면 하는 바램입니다.

여전히 똠햏 을 입력하면...

1
point

새로운 입력기 설치는 잘 된것 같은데
여전히 햏 입력하면 해ㅎ 이라구 찍히면서 안되네요.
fontset으로 ksc5601이외의 글자체를 지정해야 되는건지?
xft방식으로 넘어가지 않으면 입력기상 지원해도 햏 을 입력하면 안되는건가요?

M.W.Park의 이미지
6923
points

유니코드 지원되는

1
point

유니코드 지원되는 버전(snapshot 버전이던가?)을 한번 설치해보세요.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

한자/특수문자도 입력가능합니다.

3
points

입력기를 확장하여 한자와 특수문자도 입력가능하도록 했습니다.
사실 만든지 꽤됐는데 KLDP에 업로드가 안되서 링크를 걸었습니다. 아래의 파일들을 받아서 .emacs.d에 넣으시면 됩니다.
F9를 누르시면 위 스크린샷처럼 한자를 선택할 수 있습니다. 현재 입력중인 글자에 대해서만 작동을 하며 입력중이지 않을때는 기존의 한자입력기로 전환될겁니다.
hangul.el.gz
hanja-util.el.gz

드디어 emacs

3
points

드디어 emacs 한글입력기가 커밋됐습니다.
다음 릴리즈에 반영될 것 같네요.

antz의 이미지
8420
points

축하드립니다~ :-)

0
points

축하드리고요.
덕분에 편해지겠네요. :-)
고맙습니다~


Blog : http://lum7671.blogspot.com, http://lum7671.egloos.com

토끼아빠의 이미지
4417
points

Congratulations!

1
point

좋은 하루 되세요!!

exsider의 이미지
1802
points

안녕하세요. 올리신

0
points

안녕하세요. 올리신 파일은 드보락 자판에서는 제대로 동작하지 않는 것 같습니다. 파일 앞쪽에 있는 hangul-djamo-table 이나 *-keymap 을 수정하면 될 것 같기는 한데 각 숫자가 뭘의미하는지 모르겠네요.
가르침을 주시면 열심히 삽질해보겠습니다...

각 keymap에 있는

0
points

각 keymap에 있는 숫자는 한글자모의 인덱스를 나타냅니다. 그리고 djamo-table은 자모 중에 쌍자모가 존재할 경우를 나타내고 그 인덱스를 자모의 원래 인덱스에 더합니다.

기존의 입력기에서는 한글입력에 문제가 없었는지요?

exsider의 이미지
1802
points

emacs 에 원래

0
points

emacs 에 원래 포함되어있던 입력기는 영문시퀀스에 각 글자가 매핑되는 식이어서
영문시퀀스를 드보락에 맞게 변환하는 프로그램을 만들어서 변환하여 사용했습니다.

keymap 의 숫자는 한글자모의 인덱스를 나타낸다고 하셨는데,
unicode 테이블의 특정 지점을 기준으로한 인덱스인가요?

그럼 "a 는 ㅁ 에 대응한다" 는 식의 정보는 어디에 있나요?

hangul2-keymap은

0
points

hangul2-keymap은 처음부터 차례대로 a~z에 대응됩니다. 예를 들면 제일처음에 나오는 숫자 17은 a가 17에 대응되는것을 나타냅니다. 여기서 17은 유니코드의 '한글 호환 자모' 영역내에서의 인덱스를 뜻합니다. 0x3130부터 시작했을때 17번째 있는 글자는 'ㅁ'이 되죠.
드보락 자판을 사용하신다면 알파벳 순서에 맞게 위치를 바꾸시면 될듯합니다.
만약 3벌식을 쓰신다면 좀더 복잡해집니다. 이때는 제어코드를 제외한 아스키코드 영역을 재정의해야 됩니다.

exsider의 이미지
1802
points

답변

0
points

답변 감사합니다.
hangul3-keymap 은 어떤 순서로 되어있는지 알고싶습니다.(저는 세벌식씁니다.)
그리고 세벌식 최종과 390을 모두 지원하는데 같은 keymap 을 쓰는 건가요?

세벌식은

0
points

세벌식은 아스키코드에서 제어코드에 해당하는 0x00~0x20, 0x7F를 제외한 부분, 즉 0x21~0x7E영역이 차례대로 저장되어 있습니다. 세벌식 최종과 390 모두 같은 방식으로 저장되어 있지만 서로 레이아웃이 다르므로 다른 keymap을 사용합니다.
dvorak을 써보지 않아서 잘모르겠지만 제 생각에는 keymap을 바꾸는거보다는 dvorak으로 입력된 것을 qwerty로 변환하는 함수를 만들어서 hangul2-input-method, hangul3-input-method, hangul390-input-method에서 처리하기 전에 변환하는 편이 나아보이네요.

exsider의 이미지
1802
points

감사합니다. 지금

0
points

감사합니다.
지금 확인해보니 새로 올리신 파일에는 최종과 390용 keymap 이 별도로 되어있군요.

제가 ELisp 를 겉만 핧아봐서 코드를 수정하는 건 힘들것 같구요,
그냥 keymap 부분을 dvorak 에 맞게 수정한 파일을 따로 만드는게 편할 것 같습니다.

만들어서 테스트해보고 잘 되면 여기에 올리겠습니다.

oppor의 이미지
1614
points

이건 이맥스

0
points

이건 이맥스 23버젼에서부터 되는거죠??
22버전은 아무리 해도 안되네요.

네. 22에서는 몇가지

0
points

네. 22에서는 몇가지 함수가 완전히 구현되지 않아서 안될겁니다.

oppor의 이미지
1614
points

ㅋㅋㅋ 괜히 삽질

0
points

ㅋㅋㅋ 괜히 삽질 했네요~~^^;;

23버젼 제대로 나올때까지 기다려야겠어요.^^

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.