기존에 깔린 윈도우용 gvim 6.1에 위의 링크 걸린 바이너리로 바꿨더니
에러가 뜨는군여...메뉴도 안나오고 달랑 화면만 뜨고..어떤 설졍을
바꿔줘야 하나여?
:
: 약간의 수정할 부분. gvim 6.1a (unstable)을 mingw로 컴파일했음.
:
: 1. include 두 줄 추가하는 부분에서 인클루드할 파일명이
: 보이지 않았군요. 파일명 양옆을 아래와 같이 쌍따옴표로
: 써주면 여기 게시판의 게시물에서도 보입니다.
:
: #include "ime.h"
: #include "imm.h"
:
: 2. 추가로, ../src/proto/gui_w32.pro 파일에서
: 맨 위에다가 다음 두 줄을 적어줍니다.
:
: #include "ime.h"
: #include "imm.h"
:
: 3. vc++의 ime.h가 필요하신 분은 다음 주소에서 받으십쇼.
:
: http://pchacker.pe.kr/ime.zip :
: 4. 바이너리 필요하신 분은 받으십쇼.
:
: http://pchacker.pe.kr/gvim61a_mbyte_IME.zip :
:
:
: ---------
:
: : gvim 6.1 help 를 보던 중 입력모드나 명령모드에서 normal 모드로 돌아오기 위해 ESC(ctrl+c or c
: : trl+[) 키를 누르면 window 에서 자동으로 영어모드로 변경을 해 주게 해주는 기능을 알게
: : 되었다. ( :help mbyte-IME ) 그 기능을 쓸 수 있다면 한글로 입력을 하다가도 normal 모드로 가
: : 기 위해서 ESC 만 눌러주면 자동으로 영어로 바뀌기 때문에 vim normal 명령 입력이 수월해
: : 질 수 있을 것이다. 기존의 경우에는 normal 모드로 와서 한영변환키를 눌러 영어모드로
: : 변환한 후 명령어를 입력해야 만 한다. 명령어가 한글모드인 상태에서는 입력이 안되기
: : 때문이다. 또 편리한 점은 기존의 입력모드에서의 상태를 기억하고 있다는 것이다. 즉
: : 영어모드로 입력하고 있는 입력 모드상태에서 normal 로 돌아와서 다시 입력모드로 가면
: : 영어모드로 변환되어 있고, 한글모드로 입력하고 있는 입력 모드상태에서 normal 로 돌아
: : 와서 다시 입력모드로 가면 한글모드로 변환되어 있다. 그렇지만 그런 help 기능을 제공
: : 하고 있음에도 gvim6.0 / gvim6.1 에서 사용해 보려고 했지만, 전혀 먹지가 않았다. 문제가
: : 무엇인지 몰라서 그저 bug 이구나 라고 생각하던중... kldp.org 의 Q&A 란에서 hongha at hitel.net
: : 님이 gvim.exe에서 그 기능이 사용가능하게 compile 성공하였다는 소식을 듣고 자신감을 얻고 Mingw 라는 프리 컴파일러를 이용하여 window 에서 컴파일을 시도하였다. 여러가지 옵션을 바꿔가며 compile 을 하였지만, 내가 원하는 mbyte-IME 기능은 작동하지 않았다. 그래서 hongha at hitel.net 님께 도움 요청 메일을 보냈고
: : gui_w32.c 에서 im_set_active 함수에 문제가 있음을 알게 되었다. 그것을 잘 고치고, 컴파일
: 에러 나는 부분의 소스를 조금씩 고쳐서 mbyte-IME 기능이 완벽히 작동하는 gvim.exe 를 얻게
: 되었다.
: : 이 문서는 window에서 mingw(www.mingw.org) 컴파일러를 사용하여 mbyte-IME 기능이 작동하는 gvim
: .exe 를 만드는 방법을 : 소개한 문서입니다. window에서 gvim 이 컴파일 잘 된다는게 정말
: 신기하고 설레지만, 정말 한번 해보시라고 추천해 드리고 : 싶습니다. 직접 만든 gvim.exe
: 를 쓰니 더 애정이 넘치게 되는 군요...
: : 1. gui_w32.c 화일에서 1342 번째줄의 void im_set_active 함수를 다음과 같이 바꾸어줌.
: : ----- gui_w32.c ------------------------------------------------------------------
: : void
: : im_set_active(int active)
: : {
: : HIMC hImc;
: :
: : if (p_imdisable)
: : active = FALSE;
: : if (pImmGetContext && (hImc = pImmGetContext(s_hwnd)))
: : {
: : //아래 함수를 주석처리
: : //pImmSetOpenStatus(hImc, active);
: : //아래 2줄을 추가
: : if( active ) ImmSetConversionStatus ( hImc, IME_CMODE_NATIVE,
: : IME_SMODE_NONE);
: : else ImmSetConversionStatus( hImc, IME_CMODE_ALPHANUMERIC,
: : IME_SMODE_NONE);
: : pImmReleaseContext(s_hwnd, hImc);
: : }
: : }
: : ----- gui_w32.c -------------------------------------------------------------------
: :
: : hongha at hitel.net(홍하) 님의 도움을 받음(
) thanks very much
: :
: : 2. Make_ming.mak 화일에서 146 번째의 DEF_GUI 부분에 -DFEAT_MBYTE_IME 부분을 추가시켜줌.
: : ----- Make_ming.mak -------------------------------------------------------------------
: : DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_BIG -DFEAT_MBYTE_IME
: : ----- Make_ming.mak -------------------------------------------------------------------
: :
: : 3. Make_ming.mak 화일에서 246 번째줄의 LIB 부분에 -limm32 부분을 추가시켜줌.
: : ----- Make_ming.mak -------------------------------------------------------------------
: : LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lole32 -luuid -limm32
: : ----- Make_ming.mak -------------------------------------------------------------------
: :
: : 4. gui_w32.c 화일에서 214 번째 줄에
: : #include <ime.h>
: : #include <imm.h>
: : 을 넣어줌
: : ----- gui_w32.c -------------------------------------------------------------------
: : #ifdef FEAT_MBYTE_IME
: : #include <ime.h>
: : #include <imm.h>
: : static LRESULT _OnImeComposition(HWND hwnd, WPARAM dbcs, LPARAM param);
: : static char_u *GetResultStr(HWND hwnd, int GCS);
: : #endif
: : ----- gui_w32.c -------------------------------------------------------------------
: :
: : 5. gui_w48.c 화일에서 285 번째줄에
: : #include <ime.h>
: : #include <imm.h>
: : 을 넣어줌
: : ----- gui_w48.c -------------------------------------------------------------------
: : #ifdef FEAT_MBYTE_IME
: : #include <ime.h>
: : #include <imm.h>
: : static LRESULT _OnImeNotify(HWND hWnd, DWORD dwCommand, DWORD dwData);
: : #endif
: : ----- gui_w48.c -------------------------------------------------------------------
: :
: : 6. 다음을 실행
: :
: : make -f Make_ming.mak gvim.exe
: :
: : 7. 컴파일에러가 ime.h 에서 난다면... visual c 에서 ime.h 를 구하여 MINGW 가 깔린 INCLUDE 디렉
: : 토리에 그것을 복사한후 6을 다시 시도해 본다.
: :
: :
: :
: : _________________________________________
: : donghyun lim ( vimmania )
: : ICQ#: 67021543
: : More ways to contact me: http://wwp.icq.com/67021543 : : See more about me: http://web.icq.com/whitepages/about_me
: : ?Uin=67021543 : : _________________________________________
:
: --
: 콜라는 수면을 방해한다. 특히 코카콜라 라이트--맨드레이크 조아...