MS 윈도우용 Emacs에서 IME 사용하지 않고 자체(내장) 입력기 사용하기
리눅스 같은 경우 emacs 자체(내장) 입력기를 사용하기 위해
기본 입력기를 비활성화 시키는 방법이 몇 가지 있는데
저 같은 경우 데비안에서 .Xresources 파일에 "Emacs.useXIM: off"를 넣어서 사용합니다.
그러나 MS 윈도우 XP에서는 어떻게 하는지도 모르고 가끔 사용해서 불편한 대로 사용했는데
오랜만에 XP에서 emacs를 사용하니 리눅스에서 emacs를 사용하던 습관 때문에
갑자기 짜증이 확 밀려와서...--;
훅킹으로 EmacsW32에서만 IME를 막아버리는 프로그램을 만들어 봤습니다.
Type 3를 사용하셔서 shift+space로 한영 전환을 사용하시는 분들도 사용하실 수 있습니다.
인스톨 프로그램도 만들려 했으나 귀찮은 관계로...^^;
(적당히 시작 프로그램에 추가해서 사용하세요.)
주의 사항으로 EmacsW32에서
한/영키는 "kana"로 한자키는 "kanji"로 shift+space(Type 3)는 "shift+kana"로 인식됩니다.
그래서 .emacs에 아래처럼 추가하셔야 사용하실 수 있습니다.
(global-set-key [(kana)] 'toggle-input-method) (global-set-key [(kanji)] 'hangul-to-hanja-conversion) ;; Type 3 (global-set-key [(shift kana)] 'toggle-input-method) (global-set-key [(control kanji)] 'set-mark-command)
그리고...MFC71.dll도 필요합니다.
--
그냥 간단히 사용할려고 만든 것이기에 나머지는 다음 분께 패스.....
추가:
저는 사용을 안 하지만 만드는 김에 오리지널 GNU Emacs 22 것도...
너무 막 만들었는지 프로그램을 종료할 때
IME를 복원하지 못하는 경우가 생깁니다. 다음 분께 패스.....^^;
오리지널 GNU Emacs 22는 IME를 막아도 spy++로 보면 이벤트는 받고 있지만
한/영,한자키 자체를 인식 안 했습니다. (Type 3일 때는 shift+space, ctrl+space 도 포함)
그래서 키보드 훅킹을 해서 다른 키가 눌린 것처럼 만들고 .emacs에 아래처럼 추가했습니다.
;; * 한/영키 (toggle-input-method) ;; 키보드 훅킹을 해서 한/영키를 누르면 기본 바인딩 "C-\"를 누른 것처럼 변환됩니다. ;; 그래서 키바인딩 설정 필요없음 ;; * 한자키 (quail-hangul-switch-hanja) ;; 키보드 훅킹을 해서 한자키를 누르면 아래 키바인딩을 누른 것처럼 변환됩니다. ;; (오리지널 GNU Emacs 22에는 hangul-to-hanja-conversion 가 없었음) (global-set-key [(control shift meta f9)] 'quail-hangul-switch-hanja) ;;(global-set-key [(control shift meta f9)] 'hangul-to-hanja-conversion) ;; * Type 3일 때 shift+space, ctrl+space ;; 키보드 훅킹을 해서 아래 키바인딩을 누른 것처럼 변환됩니다. (global-set-key [(control shift meta f11)] 'toggle-input-method) (global-set-key [(control shift meta f12)] 'set-mark-command)
첨부 | 파일 크기 |
---|---|
DIFE-DisableIMEforEmacsW32-src.zip | 38.56 KB |
DIFE-DisableIMEforEmacsW32-bin.zip | 33.42 KB |
DIFE-DisableIMEforEmacs(TheOriginal)-src.zip | 45.05 KB |
DIFE-DisableIMEforEmacs(TheOriginal)-bin.zip | 51.12 KB |
DIFE-DisableIMEforEmacs-src.zip | 51.61 KB |
DIFE-DisableIMEforEmacs-bin.zip | 33.78 KB |
DIFE-DisableIMEforEmacs22-src.zip | 56.34 KB |
DIFE-DisableIMEforEmacs22-bin.zip | 51.41 KB |
DIFE-DisableIMEforEmacs-r1-src.zip | 57.78 KB |
DIFE-DisableIMEforEmacs-r1-bin.zip | 34.06 KB |
DIFE-DisableIMEforEmacs22-r1-src.zip | 63.42 KB |
DIFE-DisableIMEforEmacs22-r1-bin.zip | 51.63 KB |
autohotkey
저도 비슷한 고민을 했었네요.
한영키가 달린 키보드를 쓸때는 다른 어플에서는 한영키를 쓰고 이맥스에서는 shift-space 를 썼었는데
한영키가 없는 키보드로 바꾼후에 윈도 IME 에서 shift-space 를 쓰도록 한 후에는 이맥스를 쓸때 좀 답답했습니다.
그래서 한영키가 없는 키보드지만 한영키가 달린 키보드로 드라이버를 잡아주고(타입3?) autohotkey 를 이용해서 shift-space 가 들어오면 emacs 를 제외한 어플에서는 한영키로 변환을 하고 emacs 에서는 그냥 통과시켰습니다.( 오래된 일이라 키보드 타입 바꿔준건 기억이 가물가물 하네요. 지금은 거의 리눅스만 써서.. )
ms 분들이 IME 에 제외목록 같은걸 제공했다면 이런 삽질이 필요없었을텐데 말입니다.
덕분에 해결했습니다. 감사합니다.
현재 Windows 7 에서도 IME 기조는 똑같네요. 남겨주신 댓글보고 저도 해결했습니다.
조금만 다르고 똑같이 해결했습니다.
'한국어 101 키 유형 1 USB 키보드'로 http://support.microsoft.com/kb/927824/ko 를 참고해 변경했습니다.
저는 이걸로 씁니다. LShift &
저는 이걸로 씁니다.
shift 키 두 개를 같이 누르거나 (left shift를 먼저 눌러야 함), shift+space를 누를 때마다 한글입력과 영문입력 사이를 오고갑니다. Windows 8 에서 실험해보면 키보드유형과는 상관이 없고 한글입력IME만 설치되어있으면 됩니다.
예전부터 궁금했던
예전부터 궁금했던 것인데 Emacs는 왜 비 IME 친화적인 정책을 쓰는 걸까요? 저는 S-를 쓰지 않고 그냥 한/영키를 씁니다.
- 죠커's blog / HanIRC:#CN
- 죠커's blog / HanIRC:#CN
저경우에는 IME를 통해 키입력을 받는 gvim에
저경우에는 IME를 통해 키입력을 받는 gvim에 비해 자체입력기를 갖는 emacs방식이 훨씬 낫더군요.
vim의 경우 command 모드에서 한글 입력으로 되어 있는 경우가 자주 있어서 좀 짜증나는데, emacs에서는 시작하고 한번만 입력언어를 영어로 해두면 컴퓨터 끌때까지는 편하게 쓸 수 있으니까요..
2018년 12월 30일에 emacs 25.2 버전에 사용해본 결과 잘 작동합니다
2018년 12월 30일에 emacs 25.3 windows 버전에 사용해본 결과 잘 작동합니다. 상당히 오래전에 작성된 글이라 작동 안 할 줄 알았는데 정상적으로 작동하네요 :-)
DIFE-DisableIMEforEmacsW32-bin.zip 를 다운받아서 MSVCR71.dll 을 c:\Windows\SysWOW64\ 폴더에 놓고 실행한 결과 잘 작동합니다
최근에 emacs 윈도우로 유입하시는 분들은 참고하세요~
DIFE 대신 AutoHotkey 추천합니다.
DIFE 는 32비트 버전만 지원하기에 64비트 이맥스를 사용할 수 없습니다.
스크립트는
요 3줄로 충분하네요.
GNU Emacs 29.4 잘 되네요
Windows XP SP3의 GNU Emacs 29.4에서도 DIFE-DisableIMEforEmacsW32-bin.zip가 잘 동작하네요.
---
자유 소프트웨어에 관심이 많은 학생입니다.
hexagonwin [at] disroot [dot] org
www.z80.kr