Last modified: Sun Aug 04 15:24:32 JST 2024

善き魔術師(いいマジシャン, Emacsian)への道

前回は(メドウ)の達人をモジって 'めどうし' としていましたが, 今回は Emacsian(イイマクシアン)を無理矢理 'いいマジシャン' としています. 魔導士から魔術師へ!

ここでは日本語の boiled 入力環境構築までを紹介します. その次のステップは 善き魔術師への道(青年編) へお進みください. (その他 大人編もあります)

Windows をインストールする度に古い Meadow を引っ張り出し, さらに Canna を 無理やりインストールして... と言う作業を繰り返して来ました. 振り返れば, 私の Meadow の最初の記事が 2003 年頃だから Windows XP の時代. 私の使っているものは emacs-version を見ると,

GNU Emacs 22.3.1 (i386-msvc-nt6.2.9200) of 2009-08-10 on KOICHIRO-PC

2009 年の開発版. もう 10 年以上も経ってます. 無理やり使い続けている間に, 世間では本家の Emacs を使う動きが主流となっている のは知っていました. gnupack 等の記事も見てはいたのですが, 日本語エディタとしての使い勝手は Meadow + Cannna + YC が気に入っていて, この boiled-egg 的な環境を手放せずにいました. フォント設定など自分好みに 育て上げたのをやり直したくないと言う気持ちもありました.

そんな中, boiled-mozc の情報が流れてくるようになり, 「次は(本家) Emacs に乗り換えよう」と心に決めて, せっせと情報を収集していました. そして今回(2020/09), ついに乗り換え実行です.

目標は Windows 上での Emacs + Mozc + boiled-mozc 環境の実現です. いざ試してみると, 頑張って情報収集したにもかかわらず, 試行錯誤の連続です. そもそも Windows 上でと言うのがネックで, 実行例が少ないです. さらに Windows 上でも Cygwin (gnupack)環境と合わせたり, WSL (Windows Subsystem for Linux)環境だったりして, 何らかの UNIX(Linux) 環境を利用するものがほとんどです. はっきり言って面倒です.

「もっと簡単に」やりたい!

以下, 私が実行した「可能な限りシンプルに」環境構築する方法です. もっともっと単純な構築方法もあるかと思いますが, よろしかったら是非お試しください. そして boiled な環境を味わってみてください. 高い確率で気に入っていただけると信じています. Let's boil!

追記

Emacs 27.1 を順調に利用していましたが, 本日(2022/08) 28.1 に バージョンアップ.

追記 2

2023/4, 新 PC にインストールする機会があり, MSYS2 からのインストール(失敗)を試しました. でもうまく行っていません. (リンクはインストール失敗記事としてお読みください.

追記 3

試行錯誤の結果, MSYS2 環境と Windows 版 Emacs を組み合わせることにより うまく動くようになりました. 従来は Cygwin と言う Windows 上の UNIX 環境と Emacs との組み合わせで 動かしていたのですが, Cygwin 環境を MSYS2 に置き換えた形です. つまり Emacs のインストール部分は以下の記述のままです. そのままお読みください.

MSYS2 と共存させる場合の注意. MSYS2 のパッケージ群の中に Emacs が存在します. pacman と言うパッケージマネージャーで簡単にインストールできます. しかしこのバージョンの Emacs はうまく Google 日本語入力と接続できません. 将来は問題なく動くようになる可能性がありますが, 差し当たりは MSYS2 の Emacs パッケージはインストールせずに, Emacs 本家のモノを利用する事を お勧めします.

導入メモ(Windows + Emacs + Mozc + boiled-mozc)

以下, 順に従って実行して行けば環境構築までの一番の近道となるように 説明して行きます. OS は Windows 10 です. (細かく言えば Windows 10 Pro 64bit です.)

余裕があれば OUT, IN の記事も是非お読みください. (特に OUT の方 :-) さらに良い環境構築のためのヒントが見つかると思います. そして, 良い方法が見つかったら是非公開してください.

0. 準備

まず諸々のインストールに先だって環境変数設定などの準備です. 実は私の場合, 先に Meadow をインストールしており, 今回のために改めて 作業したわけではありませんが, どこでその設定が影響しているのか分からないので 準備として書き留めておきます. 特にこの項の最初の MSYS2 環境の導入はお勧めです. もちろん MSYS2 環境を 導入しなくても Emacs は動かせます. 手っ取り早く Emacs だけを動かしたい という方は次項 0.0 をスキップください

0.0 MSYS2 環境の導入

Emacs 自体 UNIX 環境と深い関係にあり, Emacs だけでなく UNIX 環境も合わせて 導入する事をお勧めします. 以前は Windows 上での UNIX 環境として Cygwin を利用していましたが, 今は MSYS2 に切り替えています. インストール手順は金子邦彦さんの OUT00: MSYS2 のインストールと...(開発用パッケージのインストール) (Windows 上) を参考にしました. 但し, 記事では LLVM など様々なパッケージを インストールしていますが, 私はとりあえず GCC を入れたのみです.

  $ pacman -S mingw-w64-ucrt-x86_64-gcc

0.1 環境変数の設定

環境変数の設定は環境変数設定画面で行います. 画面は以下の 2 つの呼び出し方があります.

  1. [アクションセンターを開く] → [すべての設定] → [設定の検索] で環境変数を編集」と入力する.
  2. [コントロールパネル] (→ [小さいアイコン] 表示) → [システム] → [システムの詳細設定] → [環境変数(N)] と選択する

どちらかの方法で環境変数設定画面を開き, ユーザー環境変数(U) の方に新規(N) 登録して行きます. (該当変数名が既に登録されている場合は, 編集(E) になります.)

上述のように Windows の設定には「アクションセンター」からアクセスする方法と, 「コントロールパネル」を利用する方法との 2 通りがあります. 以下, 本ページの説明には「コントロールパネル」を利用する方法を使います. 簡単なアクセス方法については別記事 IN01: コントロールパネルを手軽に を参照ください.

私が設定している環境変数のうち Emacs 設定に関係するかも知れないものは 以下の 2 つのみです. これらは設定しておいて損は無いと思うので, 是非事前に 設定ください.

Windows 環境変数
変数 値(例) コメント
HOME C:\Users\uranov Windows での(本人の)ユーザディレクトリにしておくと何かと便利
TZ JST-9 タイムゾーンです. JST は日本標準時, -9 はグリニッジ標準時より 9 時間早いの意

0.2 Emacs 初期化ファイルの準備

Emacs は Lisp と言うプログラム言語を読み込んで動作します. 立ち上げ時ににはやはり Lisp で書かれた初期設定ファイルを読み込みます. 初期化ファイルは優先順位が決まっていて,

  1. ~/.emacs (環境変数 HOME の下の .emacs と言うファイル. %HOME%\.emacs)
  2. ~/.emacs.el (Emacs の Lisp プログラムはテキストファイルで, 通常拡張子 .el が使われる)
  3. ~/.emacs.d/init.el

となっています. 順番にチェックし, 該当ファイルが存在しなければ次へ. 見つかったらそのファイルを読み込んで初期化します. (見つかれば それ以降のファイルは読まれません. 詳しくは ayatakesi さん提供の OUT01: (GNU Emacs Manual) init ファイル 参照.)

2023/4 には以下のように書きましたが, もう Meadow を起動する事が無くなりました. さしあたり空の ~/.emacs.d/init.el を用意しておけば十分です.

私の場合, Emacs とともに Meadow 設定も残しておきたいので, 以下の様に 2 つの設定が共存できるようにしています. Emacs のみを使われる方は ~/.emacs.d/init.el のみで良いです. (私の場合, 何も書かれていない ~/.emacs.d/init.el を用意しましたが, 最初に準備する必要もありません. init.el が無くても問題無く起動します :-)


[~/.emacs] (elisp ではセミコロン ; 以下はコメントとして扱う. よって実際に意味のある行は 4 行のみ.

;; -*- mode: lisp-interaction; syntax: elisp; coding: utf-8 -*-
;; last modified: Fri Sep 25 20:42:33 JST 2020
;;
;; .emacs
;;

;;====================
;; INI ファイルの切替
;;====================
(if (string-match "22.3.1" emacs-version)
    (load "~/.emacs.d/meadow.el") ;; Meadow(22.3.1)
  (load "~/.emacs.d/init.el")     ;; Others
)

;; EOF

[~/.emacs.d/meadow.el] (Meadow で使っていた .emacs を移動 & リネーム)

;; -*- mode: lisp-interaction; syntax: elisp; coding: utf-8 -*-
;; last modified: Wed Nov 20 20:50:40 JST 2019
;;
;; .emacs       for "Meadow-3.02-dev (RINDOU) (2009-06-17 Rev.4261)"
;;

;;================
;; 日本語環境設定
;;================
;;---------------
;; Mule-UCS 設定
;;---------------
(require 'un-define) ; Unicode
(require 'jisx0213) ; JIS X 0213
;;----------------
;; 日本語環境設定
;;----------------
(set-language-environment "Japanese")
〜〜〜 以下略 〜〜〜
[~/.emacs.d/init.el] (Emacs 用設定. さしあたりは空)

この私の切り替え方法, イマイチです. Emacs は GUI からのカスタマイズ設定などを init ファイルに自動で書き出したりします. 単に切り替えだけの記述だったはずの .emacs が少しづつ書き足されていく...

1. 本体のインストール

金子邦彦さんの OUT02: emacs のインストール (Windows 上) を参考にしました. 但し, 記事では本家の Emacs をインストールした後, mhatta さんが公開している IME パッチを当てたバージョン OUT03: 64bit 版 GNU Emacs for Windows (w/ IME パッチ) を上書きしているが, 私は(試行錯誤の結果)現在オリジナル版のままで 利用しています.

具体的な作業を書いておきます. (上記金子さんのページが画面例付きで詳しいです :-)

  1. 本家のページをアクセス. DL01: GNU Emacs - Download & installation その中の Windows の項目の [nearby GNU mirror] のリンクに飛ぶ.
  2. リスト中の最新ディレクトリを選択. (現在 emacs-27 でした. (2020/09))
  3. さらにリスト中の 64bit 版 ZIP ファイルを選択しダウンロード. (現在 emacs-27.1-x86_64.zip でした. (2020/09))
  4. C:\emacs フォルダを作成. その下にダウンロードしたファイルを展開. (ZIP ファイルの解凍ソフト及びその利用方法は説明を省きます. 私は lhaz を利用しています.)

作業が完了すれば以下のようなフォルダ構成となるはずです.

C:\emacs ---+--- bin
            +--- etc
            +--- include
            +--- lib
            +--- libexec
            +--- share

bin フォルダの下の runemacs.exe を実行すれば(= ダブルクリックすれば), 下図のように Emacs が立ち上がります. この時点では init.el に何も設定していないので (= 何も書いていないので)デフォルト設定のまま立ち上がります. これでも Emacs を使った経験があれば, テキストエディタとして十分使えます. 日本語も Windows で利用中の IME (私の場合は Microsoft IME)を使って 普通に入力できます. 但し目標の「茹で上がった環境」にするには更に作業が必要です. Let's boil!.

[emacs initial window]
GNU Emacs 27.1 (build 1, x86_64-w64-mingw32) of 2020-08-22

あ, これから何度も Emacs を起動することになるので, (デスクトップに) runemacs.exe のショートカットを作っておきましょう. その時に作業フォルダー(S)を %HOME% に変更しておくと幸せになれます.

[emacs shortcut] [emacs shortcut property]

2. Google 日本語入力のインストール

今回の Emacs と通信する かな漢字変換サーバ「Google 日本語入力」をインストールします. かな漢字変換サーバ って言い方は古いですね. Windows 流に言えば IME です. オープンソースとなっている Mozc をコンパイルして使うと言う Linux と同等の手段も ありますが「もっと簡単に」の旗印のもと, Google 版をそのままインストールします.

インストール手順は色々なページで紹介されています. 'PC 設定のカルマ' さんの OUT04: Windows10 - Google 日本語入力 (IME) のインストール , 'SEECK.JP サポート' さんの OUT05: Google 日本語入力をインストールする方法 など皆さん画面例付きで詳しく紹介されています.

具体的な作業を書いておくと,

  1. Google 日本語入力のダウンロードページをアクセスし「WINDOWS 版をダウンロード」 をクリック. DL02: Google 日本語入力のダウンロード
  2. 利用規約を読み「同意してインストール」をクリック. セットアップ用のプログラムがダウンロードされる.
  3. ダウンロードした GoogleJapaneseInputSetup.exe を実行. 3 項目にチェックを入れ OK. インストールが行われる.
    [google japanese input setup]

インストールが完了すると IME アイコンが Google 日本語入力のものに変わリます.

このまま Microsoft IME の代わりに Google 日本語入力を使っても良いんですが, 私は Microsoft IME を使っています. (どちらを選ぼうと Emacs からの Mozc 呼び出しには影響ありません.)
M-IME にしているのはこれまで苦労してキー割り当てなどをカスタマイズしてきたためです. Emacs 案件が片付いたら Windows 全体での G-IME への乗り換えも試す予定です. IME の切り替えについては別記事 IN02: IME の切り替え を参照ください.

3. mozc_emacs_helper のインストール

Emacs と Mozc の連携あたりは NTEmacs @ ウィキさんの OUT06: emacs-mozc を動かすための設定 あたりを大いに参考にしました.

リンク先のページだけでなくこちらの Wiki は有用な記事で溢れています. 是非読んでみてください.
バイナリ(実行ファイル)をインストールするので無くできるだけ自分でソースの コンパイルからやりたい, WSL 環境でやりたいなど, あらゆる人に対応できるように 記事が書かれています. そのため情報量が膨大で追っかけづらいかもしれません. まず簡単にインストールを終えてしまい, 後でじっくり記事を読むのもありです. 何か問題が発生した場合などは, Wiki 内に解決法やヒントがあるかも知れません.

こちらの作業は簡単です.

  1. GitHub の mozc_emacs_helper のページをアクセス. DL03: mozc_emacs_helper for Windows その中の [code button] をクリックし, 「Download ZIP」を選択.
  2. ダウンロードした mozc_emacs_helper-master.zip を適当な場所に展開し, その中の mozc_emacs_helper.exe を C:\emacs\bin の下にコピーする.

これだけで作業完了です. (実際には Path の通った場所ならどこにおいても OK です. この記事では説明の都合上 'C:\emacs\bin の下' の一択です.)

exe ファイルはコピーでなく移動でも構いません. 展開したファイルも削除して OK です. できれば削除前に README.org を目を通しておいてください. これは他のソフトに関しても言えることですが, 作者からのメッセージには有用な情報が 多く含まれています.

4. Mozc パッケージのインストール

さあ, ここから本格的に Emacs 上での作業が始まります. まずは Mozc パッケージのインストールです. 自分で Download して install をしても良いのですが 最近の Emacs には Package と言うソフト管理システムが用意されています. 「もっと簡単に」を合言葉に Package システムを使ってみましょう. この Package に関しては Qiita の @Maizu さんの記事 OUT07: Emacs で快適な研究環境を整えよう 2 ~パッケージ導入 & 日本語入力編 ~ を参考にしました.

具体的な作業を書いておくと,

  1. 以下の内容を書き込んだ ~/.emacs.d/init.el を作成する. (メモ帳などのエディタを使うのもありです. でも折角 Emacs が走るようになったので是非お使いください. ビギナーの方は以下を参考にしてください. IN03: ビギナー向け Emacs でのテキストファイル編集/作成)
    [~/.emacs.d/init.el] (簡略化のため, コメントや日本語を抜いてあります)
    
    (require 'package)
    (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
    (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
    (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
    (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
    (package-initialize)
    
    Emacs での作成が終わったら, 一旦 Emacs を終了して下さい
  2. Emacs を起動します. (起動時いつものアルタミラ洞窟の壁画のような画面だけで なくエラーメッセージが出るようであれば init.el に間違いがあります. 単語のスペルや括弧を確認ください.)
  3. (Emacs 上で) 'M-x package-list-packages' とコマンド入力. Package モードに入り, 以下のような画面になります.
    [emacs package mode]
  4. 'mozc' パッケージを探し出し, その行にカーソルを持っていき 'i' を入力. すると, 行頭に 'I' のマークがつきます.
    (mozc パッケージは 2 種見つかりますが, 新しい方を選びます)
      :
      mozc               2018snapsh... available  melpa-s... minor mode to input Jap
    I mozc               20200822.1229 available  melpa      minor mode to input Jap
      mozc-cand-posframe 20200208.750  available  melpa      Posframe frontend for m
      mozc-im            20160412.22   available  melpa      Mozc with input-method-
      mozc-popup         20150224.34   available  melpa      Mozc with popup
      mozc-temp          1.0.0         available  melpa-s... Use mozc temporarily
      mozc-temp          20160228.840  available  melpa      Use mozc temporarily
      :
    
  5. 次に 'x' を入力. インストールが実行されます.
  6. 最後に 'q' を入力し Package モードを終了します.

インストールが完了すると ~/.emacs.d/elpa フォルダの下に mozc-20200822.1229 フォルダが作成され, その中に mozc パッケージが入っています.

~/.emacs.d ---+--- elpa ---+--- mozc-20200822.1229 ---+--- mozc.el
              |            |                          +--- mozc.elc
              |            |                          +--- mozc-autoload.el
              |            |                          +--- mozc-pkg.el
              :            :

5. boiled-mozc のインストール

ここまでで一旦 Mozc との通信を確認するのが確実なやり方なのですが, ここでは一気に boiled-mozc も入れてしまいます.

作業は簡単で, (「3. mozc_emacs_helper のインストール」と似た作業です.)

  1. GitHub の boiled-mozc のページをアクセス. DL04: boiled-mozc その中の [code button] をクリックし, 「Download ZIP」を選択.
  2. ダウンロードした boiled-mozc-master.zip を適当な場所に展開し, その中の boiled-mozc.el を ~/.emacs.d/elpa/mozc-20200822.1229 フォルダの下にコピーする.

これだけです.

6. Emacs での Mozc の設定

最後の作業です. Emacs と Mozc(Google 日本語入力)との通信のための mozc, boiled-mozc を利用するための設定を行います.

再び ~/.emacs.d/init.el を開き, Mosc の設定(以下の行)を追加し保存します. (ちょっと長いのでコピペが楽かな :-)

(set-language-environment "Japanese")
(prefer-coding-system 'utf-8)
(set-file-name-coding-system 'cp932)
(set-keyboard-coding-system 'cp932)
(set-terminal-coding-system 'cp932)
(require 'mozc)
(setq default-input-method "japanese-mozc")
(setq mozc-helper-program-name "C:/emacs/bin/mozc_emacs_helper.exe")
(advice-add 'mozc-session-execute-command
            :after (lambda (&rest args)
                     (when (eq (nth 0 args) 'CreateSession)
                       (mozc-session-sendkey '(Hankaku/Zenkaku)))))
(autoload 'boiled-mozc-rK-conv "boiled-mozc"
  "Romaji to Kana-Kanji conversion" t)
(autoload 'boiled-mozc-rhkR-conv "boiled-mozc"
  "Romaji to Hiragana conversion" t)
(global-set-key "\C-j" 'boiled-mozc-rK-conv)
(global-set-key "\M-j" 'boiled-mozc-rhkR-conv)
(define-key lisp-interaction-mode-map "\C-j" nil)

作業が終わったら Emacs を終了します.

7. 使用開始

さあここまでの設定がうまく行ったいたら日本語入力もバッチリなはず. やってみましょう. ここからは Emacs を使い慣れた人は自分で好きに進めて下さい. 一応ビギナーに向けて 簡単な確認方法の例を書いておきます. (緑の行が 実行する内容です.)

  1. Emacs を立ち上げます. そして 'C-x C-f ~/tmp.txt' と打ち込んで下さい.
    ちなみに 'C-x' はコントロール-エックスと読み, 'Ctrl' キーを押しながら 'x' キーを押します.
    'C-x C-f' を打った時点で エコーエリア(最下行)に 'Find file: ~/' となっているかも知れません. その場合 '~/tmp.txt' と打つと表示は '~/~/tmp.txt' となってしまいますが 問題ありません. 自分のホームディレクトリ(~/.)に tmp.txt ファイルが 既にあればそれが開かれます. なければ新規ファイルが作られます. (できれば新規ファイルで説明したいので, もし tmp.txt があり変更したくない ファイルであれば tmp01.txt など適当なファイル名を使用ください.) 新規の場合モードラインに '(New file)' と表示されます.
  2. さあ日本語を入力してみます. 'C-\' と打ち込んで下さい.
    モードライン(下から 2 番目ライン)の表示が 'U:---' から '[Mozc]U:---' に 変わるはずです. Mozc 入力モードだと示しています.
    もう一度 'C-\' と打ち込んでみて下さい. 元のモードに戻ります. もう一度打ち込んで, Mozc モードにしておきましょう.
  3. Mozc モードは基本的に, ローマ字入力するとひらがなに変換され画面表示され, 'Space' キーで漢字に変換です.
    色々タイプして, うまく動作していることが 確認できたら Mozc の動作確認完了です. 完了したら Mozc モードから抜けておいて下さい.
  4. 次に Mozc モードから抜けた状態で 'ohayou' と入力してください.
    画面にはひらがなに変換されることなくタイプしたまま ohayou と表示されているはずです.
    ここで 'C-j' を入力して下さい.
    どうです? 一発で 'ohayou' が 'おはよう'に変わりましたよね. これが boiled 変換です.
    いくつか試して動作が確認できたら boiled-mozc の動作確認も終了です. Emacs を終了下さい.
    終了時に Save するかどうか聞かれたら 'y' (Yes)を入力下さい. テスト終了後 tmp.txt ファイルは削除して構いません. また tmp.txt~ や #tmp.txt# も削除して構いません. (Emacs が作成するバックアップファイルや一時ファイルです.)

Mozc 変換と boiled-mozc 変換, 要は日本語/英語のモードを先に設定してからタイプするか, 先にタイプしてから後で日本語に変換するかだけの違いです. 小さな違いなのですが これが日本語/英語混在の文章を書く機会が多い人間には大違いです. 特に私の場合, 句読点に '、。' を使わずに ',.' を使うのですごく違います. さあ, 声を揃えて Let's boil!.

カスタマイズ

これで作業目標「Windows 上での Emacs + Mozc + boiled-mozc 環境の実現」は完了です. 後は簡単に私のカスタマイズ例を紹介しておきましょう.

a. バイトコンパイル

Emacs にはバイトコンパイルと呼ぶ, Lisp ファイルをより実行しやすい形式 (byte-code)に変換する(コンパイルする)機能があります. *.el ファイルを コンパイルすると *.elc ファイルが作られ, 実行時間が少し早くなります. boiled-mozc.el もバイトコンパイルしてみましょう.

'M-x byte-compile-file' と入力すると対象ファイルを聞かれるので '~/.emacs.d/elpa/mozc-20200822.1229/boiled-mozc.el' と入力すると 直ちにバイトコンパイルされ, 同じフォルダに boiled-mozc.elc が作られます.

フォルダを確認下さい. (mozc.elc 等, 最初からバイトコンパイルされたファイル も提供されている場合も多くあります.)

後述の init.el をバイトコンパイルする人もいます. Emacs の立上りが若干 早くなります. 但し, init.el を頻繁に書き換える人は, その都度バイトコンパイルする必要が生じ面倒です. ある程度内容が固まって来てからの実行が良いでしょう.

b. フォント設定

meadow の乗り換えをためらった理由の一つにフォント設定があります. 何度もカット & トライし, 気に入ったフォント設定にたどり着いたので 簡単には捨てられません.

私の気に入っていた設定は日本語 'メイリオ', 英語 'consolas' の組合せです. これに近いモノが見つかりました. MeiryoKe です. メイリオフォントに パッチを当て, 等幅で見やすいフォントを実現しています.

まず自分の Windows のメイリオフォントのバージョンをチェックします. [コントロールパネル] → [フォント] でフォントウィンドウを開きます. 表示を絞るため右上の検索ボックスで「メイリオ」を検索します.

[meadow font sample]

次に「メイリオ」で右クリックし「プレビュー(V)」を選択します. 複数の画面が表示されますが, 左上のバージョン情報をチェックください. 手元の PC は 6.30 でした.

DL05: MeiryoKeから自分のフォントに合ったバージョンを手にいれ, meiryoKe_*.ttc, meiryoKeB_*.ttc を生成します. 私は meiryoKe_gen_6.30rev5.zip をダウンロードしました. 生成方法はパッケージ中の README.html をお読み下さい. meiryoKe_630r5.ttc, meiryoKeB_630r5.ttc が生成されました.

生成したフォントをフォントウィンドウにDrag & Drop するだけ. これでフォントのインストールは完了です. MeiryoKe_PGothic, MeiryoKe_UIGothic, MeiryoKe_Gothic, MeiryoKe_Console が追加されました. フォントウィンドウ内で 'meiryoke' で検索すると確認しやすいです.

後は init.el でフォント設定するだけ. 以下の記述を追加ください. (ついでに少し画面設定も加えてます :-)

(setq default-frame-alist
      (append (list '(foreground-color . "black")
                    '(background-color . "LemonChiffon")
                    '(background-color . "gray")
                    '(border-color . "black")
                    '(mouse-color . "white")
                    '(cursor-color . "black")
                    '(font . "MeiryoKe_Console-10"); MeiryoKe(console) - 10pt
                    '(line-spacing . 2)
                    '(width . 80)
                    '(height . 80) ; MeiryoKe_Console-10 で縦 1080 ほぼ一杯
                    '(top . 0)
                    '(left . 100))
              default-frame-alist))

従来利用していた Meadow と設定後の Emacs との比較です. (個人的には Meadow の 方が英字の高さが低めで読みやすいですが, 許容範囲です :-) 時間があったら 9pt の設定で横間隔を広げる方法を検討します.

[meadow font sample] [emacs font sample]

プログラミング用途を考えると Emacs のフォントは等幅フォントが良いです. ここで紹介した MeiryoKe の他 Ricty Diminished など, プログラミング用 等幅フォントは色々存在します. あれこれ試して気に入ったものをお使い下さい.

HackGen(白源), Firge(ファージ)等を試したい.

c. カスタマイズもろもろ

最後に現在の私の init.el を公開します. ここまでに紹介した式もコメント入りで 書いてあります. 各式の詳しい内容はネットで調べて下さい. (ネットから仕入れた情報は出典を書き留めてあります. そうすると 更新情報や追加情報を調べるときに重宝します. 是非皆さんも実行下さい.)

またもや余談ですが, 今はインターネットで簡単に情報が入手できる様になって 本当に便利です. 昔は周囲の詳しい人に教えてもらうか, マニュアル(Man 等)/ 書籍/雑誌を読むしかありませんでした. 詳しい人がいない状況で新しい情報を 知るのはとても大変でした. Emacs 関係で私のお世話になった本を紹介して おきます. 共立の方は初版 1988 年(私のものは 1992 年の 22 刷) 原本は 1986 年で Emacs のバージョンは 18 となっています, ソフトバンクの方は初版 1993 年でこちらも同バージョンが対象です. 懐かしく思い出される方もいるのでは...

[My emacs books]
;; -*- mode: lisp-interaction; syntax: elisp; coding: utf-8 -*-
;; last modified: Tue Sep 29 23:27:37 JST 2020
;;
;; .emacs (http://dreamserver2.dsmynas.com/uranov/)
;;

;;============
;; 日本語環境
;;============
(set-language-environment "Japanese")
(prefer-coding-system 'utf-8)
(set-file-name-coding-system 'cp932)
(set-keyboard-coding-system 'cp932)
(set-terminal-coding-system 'cp932)
;;------
;; Mozc
;;------
;; >> http://ubiqlog.com/archives/8538
;; >> https://blog.rustle.info/archives/1881
(require 'mozc)
(setq default-input-method "japanese-mozc")
;(global-set-key (kbd "C-o") 'toggle-input-method)
(setq mozc-helper-program-name "C:/emacs/bin/mozc_emacs_helper.exe")
;; Windows の mozc は接続直後 direct モード になるので hiragana モード にする.
(advice-add 'mozc-session-execute-command
            :after (lambda (&rest args)
                     (when (eq (nth 0 args) 'CreateSession)
                       ;; (mozc-session-sendkey '(hiragana)))))
                       (mozc-session-sendkey '(Hankaku/Zenkaku)))))
;;-------------
;; boiled-mozc
;;-------------
(autoload 'boiled-mozc-rK-conv "boiled-mozc"
  "Romaji to Kana-Kanji conversion" t)
(autoload 'boiled-mozc-rhkR-conv "boiled-mozc"
  "Romaji to Hiragana conversion" t)
;;(global-set-key "\C-o" 'boiled-mozc-rK-conv)
;;(global-set-key "\M-o" 'boiled-mozc-rhkR-conv)
;; 次行は (define-key global-map "\C-j" 'boiled-mozc-rK-conv) と等価.
(global-set-key "\C-j" 'boiled-mozc-rK-conv)
(global-set-key "\M-j" 'boiled-mozc-rhkR-conv)
;; 変換中に C-o, C-i, C-p が使えるようにしたい.
;;
;; Lisp Interaction mode では \C-j が式の評価に割り当てられている.
;; boild-mozc を使うために \C-: に割当変更.
(define-key lisp-interaction-mode-map "\C-j" nil)
(define-key lisp-interaction-mode-map (kbd "C-:") 'eval-print-last-sexp)

;;==============
;; フレーム設定
;;==============
;;------------------
;; 初期フレーム設定
;;------------------
;; フォントセット, サイズ, 行間は気に入ったものを探すしかない.
;; 最後にフレームの高さを調整.
(setq default-frame-alist
      (append (list '(foreground-color . "black")
                    '(background-color . "LemonChiffon")
                    '(background-color . "gray")
                    '(border-color . "black")
                    '(mouse-color . "white")
                    '(cursor-color . "black")
;                   '(font . "MeiryoKe_Gothic-10") ; MeiryoKe - 10pt
;                   '(line-spacing . 1)
                    '(font . "MeiryoKe_Console-10"); MeiryoKe(console) - 10pt
                    '(line-spacing . 2)
;;                  '(font . "MeiryoKe_Console-9") ; MeiryoKe(console) - 9pt
;;                  '(line-spacing . 2)
;                   '(font . "Ricty Diminished-10"); Ricty Diminished - 10pt
;                   '(line-spacing . 1)
                    '(width . 80)
                    '(height . 40)
                    '(top . 0)
                    '(left . 100))
              default-frame-alist))
;;------------------------------
;; メニューバー, スクロールバー
;;------------------------------
(tool-bar-mode -1)
(menu-bar-mode -1)
;(scroll-bar-mode -1)
;;--------
;; その他
;;--------
;; スタート画面を表示しない
(setq inhibit-startup-message t)
;;(setq initial-scratch-message "") 
;; 行番号表示
;(global-linum-mode t) ; Emacs 26.0.50 まで
;(global-display-line-numbers-mode) ; それ以降
;; モードラインにカラム番号を追加(デフォルトはライン番号のみ)
;(column-number-mode t)
;; 折り返し表示(デフォルト有効)
;(setq-default truncate-lines t)
;; 表示行/論理行移動
(setq line-move-visual nil)

;;==========
;; 詳細設定
;;==========
;;------------------
;; バックアップ不要
;;------------------
(setq make-backup-files nil)
;;------
;; ベル
;;------
;; (setq visible-bell t)
(setq ring-bell-function 'ignore)
;;----------------
;; パッケージ管理
;;----------------
;; >> https://qiita.com/Maizu/items/fee34328f559c7dc59d8
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/"))
(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
(package-initialize)

;; EOF

以上のカスタマイズでそこそこ使えるようになりましたが, まだ Meadow を使っていた時と比べると, 機能的に十分ではありません. 設定を加えれば, 更に使い勝手は向上するはずです. 私の使い勝手は向上の取り組みについては 善き魔術師への道(青年編) をお楽しみに.

バージョンアップ

ネットを見ていたら Emacs 28.1 がリリースされていた. すぐにダウンロードし, バージョンアップ. 今回(2022/08)ダウンロードしたのは emacs-28.1.zip. (emacs-28.2.zip が出ました. (追記 2022/09)) 念のため, 従来のファイルを全て別ディレクトリに移し, そこに解凍したファイルを 置いた. 後は従来版利用時に手動で emacs/bin 以下に置いたファイルをコピー. これで完了. (私の場合 mozc_emacs_helper.exe, cmigemo.exe, migemo.dll の 3 つ)

[emacs 28.1 initial window]

MSYS2 からのインストール(失敗)

追記 3のコメントとして書いたように, 今のところ, MSYS2 環境の中の Emacs パッケージは利用しない方が良い と言う結論です. 0.0 MSYS2 環境の導入に書いたように, あくまで Emacs とは独立に MSYS2 環境をインストールください.

きっかけは本家のダウンロードページ DL01: GNU Emacs - Download & installation. その中の Windows の項目に以下の記述を見つけた事.


MSYS2 users can install Emacs (64bits build) with the following:
pacman -S mingw-w64-x86_64-emacs
<.del>

最近は Windows での UNIX like な環境導入には Cygwin ではなく MSYS2 の方が主流になっているとの記事を読み, 興味を持っていたが Emacs がそのままインストールできるとは! これはやってみるしかない. ということで MSYS2 のインストールから始めました.

冒頭の追記 2 に書いた通り, この作業は今のところうまく行っていません. 問題はバージョンやライブラリにあり手順としては間違っていないものと信じ 実行した手順を書き留めておきます. (以下は失敗記事としてお読みください.) (2023/4 記)

実際に行った作業手順 IN04: MSYS2 からの Emacs インストールです.

リンク一覧