rcmdnk's blog

20130723_AutoHotKey_200_200

以前書いた Vimを使う上でのIME(日本語入力)の取り扱い への付け加えで、AutoHotkeyを使って行う方法について。

vim_ime.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
; Auto execute section is the region before any return/hotkey

; For Terminal/Vim
GroupAdd Terminal, ahk_class PuTTY
GroupAdd Terminal, ahk_class mintty ; cygwin
GroupAdd TerminalVim, ahk_group Terminal
GroupAdd TerminalVim, ahk_class Vim

; Include IME.hak
; http://www6.atwiki.jp/eamat/pages/17.html
#Include  %A_ScriptDir%IME.ahk

Return

; ESC + IME
#IfWInActive, ahk_group TerminalVim
Esc:: ; Just send Esc at converting.
  if (IME_GET(A)) {
    if (IME_GetConverting(A)) {
      Send,{Esc}
    } else {
      IME_SET()
    }
  } else {
    Send,{Esc}
  }
  Return
^[:: ; Go to Normal mode (for vim) with IME off even at converting.
  if (IME_GET(A)) {
    Send,{Esc}
    Sleep 1 ; wait 1 ms (Need to stop converting)
    IME_SET()
    Send,{Esc}
  } else {
    Send,{Esc}
  }
  Return
#IfWInActive

こんなかんじで。 eamat @Cabinetさんのところで公開されている IME.ahkが別途必要です。 (同じディレクトリに入れて起動するか必要な関数をコピペして入れておけばOK。)

初期設定ではPuTTY、Mintty (Cygwinで使ってる場合も)及びVim上で有効になります。

AutoHotkeyをインストールしてなくても使える様にexeファイルも作っておきました: vim_ime.exe

Sponsored Links
Sponsored Links

« Vim以外でVimする: Windows+AutoHotkey編 pacoでmake installしたパッケージを管理 »

}