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