わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

NTEmacsでの「<enlw> is undefined」「<auto> is undefined」には,Windows + Space

Happy Hacking Keyboard (HHKB) Lite2をいつものように使っていたら,Emacsで日本語入力ができなくなり,困りました.
Windows 10の「April 2018 Update」を終えたばかりです.日本語入力はATOKを主に使用し,Microsoft IMEと,Google日本語入力も利用はできます.Emacsは,https://github.com/chuntaro/NTEmacs64より入手できる,GNU Emacs 25.2.1 (x86_64-w64-mingw32)のIMEパッチ適用版(emacs-25.2-IME-patched.zip)です.
不具合の具体的な状況として,スペースバーの2つ左,Happy Hackingキーは「半角/全角漢字」に割り当てられているのですが,これを押しても日本語入力ができるモードにならないのです.そのキーを押すと,エコーエリアには,「<enlw> is undefined」と「<auto> is undefined」が交互に(「半角/全角漢字」を押すたびに)表示されます.


C-\ のキーストロークではエラーが出ず,モードラインが日本語入力に変わるものの,日本語入力はできません.
少し調べると,以前から知られている不具合で,対策としては,「Windows + Spaceを押す」「Emacsのウィンドウを動かすかサイズを変える」の2種類があるとのこと.とくに以下のページは,一部画像が見えていませんが参考になりました.

しかしながら,ウィンドウを動かしたり,サイズを変えたりするのでは,問題は解決しませんでした.
Windows + Spaceを試すことにしました.なのですが,Happy Hacking Keyboard (HHKB) Lite2では,Fnを押しながらHappy Hackingキーで,Windowsキー相当になり,そこからSpaceを押しても,認識してくれません.
ソフトウェアキーボードを使ってみました.画面左下,「ここに入力して検索」のところに「keyb」まで打ち込むと,「スクリーン キーボード」というデスクトップアプリが選べるようになり,Enterキーを押してアプリを起動しました.

Emacsをアクティブにしてから,このスクリーン キーボードに移り,Windowsキー,スペースバーの順に押すと,日本語入力が変更されました.あと2回,同じ操作をして,ATOKになり,あとはHappy Hackingキーを押して,やっと,日本語入力ができるようになりました.
この記事を書きながら,操作を試したところ,Fn + Kana + Spaceは有効で,これはWindows + Spaceになってくれることを知りました.ということでスクリーン キーボードは御役御免となりましたが,さまざまなやり方を知っておいて,別のPCで不具合を見かけたときには,順に試す*1としましょう….

*1:実は仕事先のPCでも同じ不具合が発生しました.こちらもApril 2018 Updateを終えたばかりで,HKEY_CURRENT_USER\Control Panel\DesktopのActiveWndTrkTimeoutが消失しており,マウスオーバーすると瞬時にアクティブになっていました.その場合,Emacsをアクティブにしてからスクリーン キーボードに移動しても,キー操作がEmacsに伝わりません.regeditを起動して,ActiveWndTrkTimeoutをDWORD値で作り10進数で500を指定し(500ミリ秒のマウスオーバーでアクティブ),再起動してから,ようやく,Emacsとスクリーン キーボードでWindows + Spaceの操作ができるようになりました.