Emacs 25.1.1をWindows10にインストール

まずEmacsはコントロール・キーを多用するので、押しやすいCapsLockをControlに変えてしまう、Ctrl2capドライバをインストールしておきます。

つぎに、日本語IMEのインライン変換の不都合をなくすためのパッチがあたったNTEmacsをダウンロードします。

展開して、emacsディレクトリをProgram Filesにでも放り込んでおいてrunemacs.exeのショートカットをスタートメニューにでも作っておけばOK。仰々しいインストール作業はありません。

で、あとは設定ファイル~/.emacs.d/init.elに、

(global-set-key [kanji] 'toggle-input-method)

を書いておくとESCの下にある漢字キーで日本語IMEがトグル動作するようになります(Windowsでの通常動作。Emacs的にはC-\がデフォルト)。

Emacsのフレーム(ウィンドウ)の初期表示位置や大きさは以下のコードをいじってこれまたinit.elに入れとくと良いです。

;;; Frame size & position
(setq default-frame-alist
(append (list
;;'(foreground-color . "black")
;;'(background-color . "LemonChiffon")
;;'(background-color . "gray")
;;'(border-color . "black")
;;'(mouse-color . "white")
;;'(cursor-color . "black")
'(width . 100)
'(height . 61)
'(top . 0)
'(left . 500)
)
default-frame-alist))

私はフォントはあまりこだわらないほうなのですが、いろいろと設定すると好みにあったようにできるようです。

 


mcomplete.el にmcomplete-history.elをうまく取り込むには

mcomplete.elを使ってくれている人はakihisaさん作のmcomplete-history.elも一緒に

使っているという人が多いことがGoogleで調べてわかった。

mcomplete-history.elは使ったことがなかったので初めてインストールしてみた。

まだ詳しくは分からないが、mcomplete.elの補完ターゲットとなる集合をヒストリ

からもってくるというアイデアだと思う。

mcomplete-history.elを使っている人はM-xすなわちexecute-extended-command

でのキー入力が短縮できるのが気に入っているみたいだ。

mcomplete-history.elは、ターゲットをヒストリから本来の集合にもどすのに

マッチングメソッドの切り替えで行っているみたいだけど、マッチングメソッドの

切り替えとターゲット集合の切り替えはお互いに直交する行為なのでターゲット集合を

切り替える独自のキーバインディングたとえばC-M-Pでターゲット集合の切り替えを

行うのはどうだろうと考えた。標準バインディングがM-Pでヒストリから1つ文字列を

もってくるので分かりやすい気がするからだ。で、ミニバッファを使うコマンドごとに

最初にどの集合をターゲットにするのかカスタマイズできるようにすれば、M-X用の

設定を書いておけばmcomplete-history.elの機能をきれいに吸収できる気がする。

                          history set

                                 ^

                                 |

prefix-matching <—–+——>substring matching

                                 |

                                v

                         completions set

とはいうものの、なんとかGNU Emacs23からの内部関数名変更に由来するバグを

やっとつぶしたばかりなので、まずはelispマニュアルのminibufferの項目をよく読んで

頭の内部の状態ができあがるまでコードに手を加えるのは控えたい。elispも大分

忘れているし。

mcomplete.elのバグ発見

*Completions*バッファ中でのアイテム選択がサブストリングマッチだと失敗するというバグ。

GNU Emacs24.1 Windows7で確認

mcompleteモードが有効な状態で、M-x でミニバッファに行って、substringマッチモードにする。conと入力したあと?で*Completions*バッファを表示させる。*Completions*バッファの中のiconifty-frameをマウスクリックすると、coniconifty-frameコマンドはないというエラーがでる。

今日、一日中このバグをつぶそうとがんばったが失敗。