cocolog:87357678
Windows 10 で IME なしの日本語キーボードを追加する方法がどうやらなくなっているらしい。そのため、Emacs で quail-naggy.el を使うには、DIFE.exe がほぼ必須のようだ。 (JRF 8141)
JRF 2017年5月 8日 (月)
Windows 7 では↓の引用のような対策が取れた。
《quail-naggy.el: 単漢字変換 Input Method for Emacs》
http://jrf.cocolog-nifty.com/software/2015/10/post.html
JRF2017/5/86194
>gnupack の Emacs で、Windows の日本語 IME を『風』ではなく、 Windows 標準の Microsoft IME を使っていると、「変換」キーでカタカナ変換をしたあと、変換モードに入ってしまう。これを避けるには、私が標準的でないと思っている、S-tab でカタカナ変換しないといけない。
JRF2017/5/80428
(…)
これを避けるもう一つの方法は、IME のツールバーを右クリックで出てくる設定において、追加として日本語キーボードに(Microsoft IME でなく)単なる「日本語」と書かれたものも選択しておき、shift+control などで選んで、その Microsoft IME でない、日本語キーボードを使うというものである。
<
JRF2017/5/83748
ところが、Windows10 だと、[スタート]→[時刻と言語]→[地域と言語]→[日本語 の オプション] で、[キーボードの追加]をしようとして選択肢を見ても IME なしの日本語キーボードがない。英語キーボードとかだと、キーの位置が変わってしまい、そもそも「漢字」キーが使えなくなる。
JRF2017/5/82430
……。
そこで、必要になってくるのが、Emacs での IME の起動を外から強制的に OFF にする DIFE.exe (Disable IME for Emacs)。
↓で私はまず知ったが、
《GNU emacs で Windows のIMEを無効にする ハードなソフトの話/ウェブリブログ》
http://hardsoft.at.webry.info/201203/article_2.html
JRF2017/5/83645
結局、↓から取得する。
《Disable Ime For Emacs》
https://www.emacswiki.org/emacs/DisableImeForEmacs
そこの Emacs 23 用と書かれている DIFE-DisableIMEforEmacs-r1-bin.zip を取って来れば良い。Emacs 25.2 でも使えた。
JRF2017/5/81298
そこのページに書いてるように Emacs を起動させるときに、DIFE.exe も起動するようにすれば良いのだが、Emacs を終了したあとも DIFE は常駐したままになる。ところが、Emacs を再起動したときは、DIFE は二重起動が抑制される上に、再起動した Emacs はフックされないらしく Disable IME が有効にならない。よって、Emacs を再起動するときは、DIFE もタスクバーのアイコンから終了するようにしないといけないようだ。
JRF2017/5/81137
なお、DIFE.exe のインストーラはなく、runemacs.exe のあるディレクトリにでも EmacsHooker.dll とともにインストールすればいいのだが、Windows 10 そのままだと、実行しようとしても MFC71.dll と MSVCR71.dll がないと言われて実行できない。今、検索すると、MSVCR71.dll のほうは簡単に見つかるが、MFC71.dll のほうは簡単に見つからない。
JRF2017/5/84080
MFC71.dll は「Microsoft .NET Framework Version 1.1 再頒布可能パッケージ」で入れれば良いという情報があるが、Windows 10 ではそれを使ってもうまくいかないようだった。結局、ライセンスの都合からか、そうとははっきり書いていない↓を使うのが便利だった。
《VC++ .NET ランタイムインストーラーの詳細情報 : Vector ソフトを探す!》
http://www.vector.co.jp/soft/win95/util/se353331.html
JRF2017/5/83067
(なお、これには MFC70.dll もついてくるようだ。)
JRF2017/5/83786
……。
…と、この段階で、(ActivePerl か Cygwin Perl と Unicode::Japanese をインストールして、適宜設定していれば) quail-naggy.el はいちおう使えるようになるはずだ。ただし、フォントの関係で、候補表示がどうしてもズレてしまう。
JRF2017/5/89531
これをまともにするにはフォントを別のにするしかない。
↓を参考にして…
《Windows の Emacs で Myrica フォント(等幅)を使う - Qiita》
http://qiita.com/ybiquitous/items/5b319a62e9260b65bab0
>↓の設定を追加。
(add-to-list 'default-frame-alist '(font . "Myrica M"))
<
JRF2017/5/84790
↓のフォントをインストール。フォントのインストールはエクスプローラで ttc ファイルを右クリックしたメニューの中にあるインストールを選べば良い。
《プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。》
https://myrica.estable.jp/
JRF2017/5/84658
このフォントにすると、quail-naggy.el の以下の設定は 25.2 ではいらなくなった。(24.5 ではこのフォントでも必要だった。)
<pre>
(if (>= (string-to-number emacs-version) 24.5)
(progn
(setq naggy-vk-split-window-length 7)
(setq naggy-vk-frame-length 7)))
</pre>
JRF2017/5/83391
……。
Windows 10 は後方互換性もあって広く使われているようだが、私には今一つな要素が多い。父の Windows 7 から Windows 10 に「強制的に」アップデートされたマシンを譲り受けて使っているのだが、バルーンティップが表示されなかったり、DDwin がうまくインストールできなかったり問題が多い。問題といかなくても、IME なしの日本語キーボードがなかったり、スタートメニューに項目の追加が難しくなっていたりして不満点も多い。
JRF2017/5/82588
Microsoft は本当にこの OS で利を得ているのだろうか? ちゃんとユーザーの意見はブロックされずに届いているのだろうか? なぜ、この OS に関する訴訟のニュースを聞くことがないのか、私は不思議に思う。(私がニュースを得ているスラドにマイクロソフトが出資してるから?)
JRF2017/5/87537
……。
……。
追記。
MS Windows では DIFE.exe を使うのに対し、X Window の場合は、~/.Xresources に次のような設定をすればいいらしい。
<pre>
Emacs.useXIM: off
</pre>
JRF2017/5/178443
これは↓に書かれた方法。
《Input Methods - EmacsWiki》
https://www.emacswiki.org/emacs/InputMethods
JRF2017/5/172348
ただし、他によると
<pre>
Emacs*useXIM: false
</pre>
と書くべきだが、どうもそれが読み込まれない環境があるらしく、
<pre>
Emacs24*useXIM: false
</pre>
と書いたり、emacs を起動するとき、
<pre>
$ XMODIFIERS=@im=none emacs
</pre>
…とすればいいみたい。
JRF2017/5/174711
でも、この辺り、MS Windows でも X Window でも問題になってるみたいだから、.emacs から設定できるようにしてくれたらいいのに…と思う。
JRF2017/5/177825
……。
……。
追記。
等幅の Myrica フォントを使うと、その全角・半角が、Emacs で全角か半角かを調べる char-width の結果と異なるため、例えば quail-naggy.el の候補ウィンドウで表示がズレてしまう。
JRF2017/7/71530
↓を使うと罫線などはちゃんと表示されるようになる。
《GitHub - hamano/locale-eaw: East Asian Ambiguous Width問題と絵文字の横幅問題の修正ロケール》
https://github.com/hamano/locale-eaw
>
(require 'eaw)
(eaw-fullwidth)
<
JRF2017/7/72110
が、アクセント付きアルファベットについては、これでも直らない。これらについては、Myrica フォントが全角にしてしまうのが行儀よくない気もする。
いや、JIS X 0213 にはアクセント付きアルファベットがあり、それは全角で表示してほしい向きもあるかもしれない。そうだとすると eaw.el がそれらに(一部しか)対応してないほうが問題なのか…。
あちらを立てればこちらが立たず…という感じ。
JRF2017/7/70336
……。
……。
追記。
Windows 10 のアップデートのせいなのか、ウィルス駆除ソフトのせいなのか、判然としないが、DIFE.exe が emacs26.1 で動かなくなっていた。
しかたなく、私は、Microsoft IME の設定をいじって対応することにした。問題になるのは「変換」キーだけのようなので、そのキー入力を無効化してしまう。
JRF2018/12/225724
具体的には、Windows 10 のタスクバーの「あ」と書いてるところを右クリックして「プロパティ」を選び、そこで「詳細設定」を選ぶと、「Microsft IME の詳細設定」のウィンドウが開く。そこで、「全般」→「編集操作」→「キー設定」→「変更」で、「変換」キーの最初のところを「-」(何もしない)にすればよい。
必要なら「SHIFT+変換」キーを「再変換」に割り当てる(元々「変換」キーに割り当たっていた機能)。
JRF2018/12/222307
当然、他のソフトも影響するが、メインの日本語入力が私は Emacs なので、しかたなくそうしている。
JRF2018/12/229329
……。
追記。
DIFE.exe が emacs26.1 で動かないと書いたが、それは私が 64bit 版 Emacs をインストールしたからだった。DIFE のページによると、64bit 版では DIFE.exe が動かないのは仕様のようだ。
今後、32bit 版の扱いがどうなるか不安だ。せっかく GNU ftp の emacs を使っているのに、他からしか 32bit 版が手に入らないのなら意義が損われる。まぁ、そういう未来には DIFE ももしかするとバージョンアップされて 64bit 版に対応することがあるかもしれない。
JRF2018/12/287026
どう転ぶかわからないが、先に書いた「変換」キーを「-」にするという方法なら今後も通じるだろう。…と思いたい。
JRF2018/12/280278
トラックバック
他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。
quail-naggy.el と jrf_semaphore.pl をほんの少しアップデートした。バグ修正のみ。 続きを読む
受信: 2017-06-28 19:14:22 (JST)
quail-naggy.el をアップデートした。バージョン 0.09。ほんの少しのバグ取りと、罫線がらみのほとんど意味のない変更。 続きを読む
受信: 2017-09-30 06:56:45 (JST)
Windows 用の Emacs (例えばバージョン 25.2) で IME を用いず、leim (quail や skk) を使いたいとき、Emacs の中途半端な IME や TSF の実装が邪魔になる。特に私の作っている quail-naggy.el では、カタカナ確定の「変換」キーがらみでおかしな動作をしてしまう。この悩みは gnupack や NTEmacs では解決できない。
JRF2017/5/86730