Emacs 25.3をWindows10にインストール

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

もしくは、

というやり方もあります。


つぎに、日本語IMEのインライン変換の不都合をなくすためのパッチがあたったNTEmacsから最新バージョン(emacs-25.3-simple_ime-no_symbol.zip (2017.9.16) 58,512,208byte)をありがたくダウンロードさせていただきます。

私はemacsフォルダをC:\に展開しています。


つぎに環境変数HOMEにホームディレクトリを設定します。
スタートボタン横の検索窓に”環境変数”と入れたらうまくいきました。


さっき環境変数HOMEに指定したディレクトリ(フォルダ)の中に”.emacs.d”ディレクトリを作り(runemacs.exeを一度起動すると自動的に作られます)、さらにその中に”init.el”ファイルを作成します。
私は環境変数HOME=”G:\home”にしてあるので、”G:\home\.emacs.d\init.el”ファイルを作りました。

このinit.elファイルはEmacs Lispで各種設定を記述し、emacsが起動するときに自動的に読み込まれ設定が反映されます。

テンプレート的なinit.elを置いておきます。


日本語環境と好みの文字コードを指定するコードはinit.elに次のようにしています。

(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)

フォントの設定はinit.elに次のようにしています。
“Yu Gothic UI”フォントは最新のWindows10に標準でついてくるようです。
“MyricaM M”は、フリーで配布されています

;; 固定等幅フォント
(set-face-attribute 'fixed-pitch    nil :family "MyricaM M")
;; 可変幅フォント
(set-face-attribute 'variable-pitch nil :family "Yu Gothic UI")

;; "MyricaM M-13"の13が文字の大きさなので好みの値にする
(add-to-list 'default-frame-alist '(font . "MyricaM M-13"))
(set-face-font 'font-lock-comment-face       "MyricaM M-13")
(set-face-font 'font-lock-string-face        "MyricaM M-13")
(set-face-font 'font-lock-keyword-face       "MyricaM M-13")
(set-face-font 'font-lock-builtin-face       "MyricaM M-13")
(set-face-font 'font-lock-function-name-face "MyricaM M-13")
(set-face-font 'font-lock-variable-name-face "MyricaM M-13")
(set-face-font 'font-lock-type-face          "MyricaM M-13")
(set-face-font 'font-lock-constant-face      "MyricaM M-13")
(set-face-font 'font-lock-warning-face       "MyricaM M-13")

自分のWindows環境でどんなフォントが使えるか見るには次のようにするとリストが表示されます。

C-b *scratch*  
;; *scratch* バッファに移動します。
;; Emacs内の落書き帳みたいなバッファです。

(w32-select-font) C-j
;; C-jで直前の(w32-select-font)を評価(eval)します。

C-b や C-j は、コントロールキーを押したまま、bやjを押します


Emacsのフレーム(Windowsでいうウィンドウ)の初期表示位置や大きさは以下のコードをいじって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) ;; Emacsの横幅(文字単位)
               '(height . 61) ;; Emacsの縦幅(文字単位)
               '(top . 0)     ;; Emacsの上端表示位置(ドット単位)
               '(left . 500) ;; Emacsの左端表示位置(ドット単位)
               )
              default-frame-alist))

msys2などをインストールされている方は、Info形式のマニュアルがあるディレクトリを追加しておくと、`C-h i’したときにメニューが統合されます。

(setq Info-default-directory-list (cons "c:/msys64/usr/share/info" Info-default-directory-list))

最後にrunemacs.exeのショートカットをスタートメニューに登録し、起動後の作業ディレクトリが先ほど指定したホームディレクトリになるようにして、おつかれさまでした。




Emacs 25.1.1をWindows10にインストール

2017年11月現在Emacs新バージョン25.3が出ています。

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

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

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

で、あとは設定ファイル~/.emacs.d/init.elに(環境変数HOMEにてホームディレクトリを指定)、

(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も大分

忘れているし。