Last modified: Sun Aug 01 22:57:52 JST 2024

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

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

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

Windows でも UNIX 風に Emacs をと, Meadow + Cygwin から始まり, Emacs + Cygwin を経て, 今は Emacs + MSYS2 に至っています. この記事もEmacs + Cygwin ベースで書いたものに, MSYS2 用の変更を加筆修正してきましたが, 積み重ねた変更量が多く, 読みにくくなってしまったので, 改めて Emacs + MSYS2 で書き直します. 目標は前記事と同じ Windows 上での Emacs + Mozc + boiled-mozc 環境の実現です. 説明の流れも基本的に Emacs + Cygwin の記事と同じです. Let's boil!

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

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

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

0. MSYS2 のインストール

まずは Windows 上で UNIX 風の環境を実現する MSYS2 のインストールです. Emacs 自体は MSYS2 をインストールしなくても動かせます. 手っ取り早く Emacs だけを動かしたいという方は本章をスキップし 次章にお進みください.

Emacs 自体 UNIX 環境と深い関係にあり, Emacs だけでなく UNIX 環境も合わせて 導入する事をお勧めします. 以前は Windows 上での UNIX 環境として Cygwin を利用していましたが, 今は MSYS2 に切り替えています. ダウンロード及びインストールは OUT00: MSYS2 の TOP ページの Installation に従って作業するのみ. 説明は英文ですが, 難しい表現は出てこないので簡単に読めると思います. ダウンロードリンクも文章中に示されています. パッケージも取り敢えず書かれている例の通り GCC を入れて完了です. この時点で UNIX 系のテキスト処理プログラム awk/grep/sed や, C プログラムのコンパイラ gcc などが使えます. その他に必要なパケージがあれば, 好きな時に加えることが出来ます. ちなみにパッケージマネージャーの名前は pacman. ジジイにとってはニヤリとさせられる響きです. :-)

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

ここで重要な注意点を. MSYS2 のパッケージの中に Emacs が存在します. しかしこの Emacs は IME のサポートなどがこれから導入する Emacs と 異なっているようです. これから入れる Emacs と混じるとややこしいので パッケージ中の Emacs はインストールしないでください.

1. 準備

1.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 時間早いの意
(MSYS2 を利用する場合)

環境変数 HOME が有効になると, 次回から MSYS2 のターミナル(MSYS2 UCRT64)を 立ち上げたときのホームディレクトリの位置が変わります. (例えば私の場合 C:/msys64/home/uranov から C:/Users/uranov になります.) 今後, shell の環境設定をアレンジしたい時のために, 元のディレクトリから 新たなディレクトリに .bashrc, .profile 等のファイルをコピーしておきましょう.

  (ユーザー uranov の場合)
  
  $ cd ~
  $ pwd
  /c/Users/uranov
  $ cp -p /home/uranov/.* .
  (もしくは任意のディレクトリで以下を実行)
  $ cp -p /home/uranov/.* ~/.

1.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 ファイル 参照.)

さしあたりホームディレクトリ下に .emacs.d ディレクトリを作成し, その中に空の init.el を用意しておけば十分です.

  $ cd ~
  $ mkdir .emacs.d
  $ cd .emacs.d
  $ touch init.el

2. 本体のインストール

こちらも作業としては簡単です. ダウンロードしたファイルを展開し適当な場所に 配置するだけです. 具体的な作業を書いておきます.

  1. 本家のページをアクセス. DL01: GNU Emacs - Download & installation その中の Windows の項目の [nearby GNU mirror] のリンクに飛ぶ.
  2. リスト中の最新ディレクトリを選択. (現在 emacs-29 でした. (2024/08))
  3. さらにリスト中の 64bit 版 ZIP ファイルを選択しダウンロード. (現在 emacs-29.4.zip でした. (2024/08))
  4. 適当なフォルダを作成. その下にダウンロードしたファイルを展開. それで完了です.

配置場所は MSYS2 をインストールしている場合は既に作られている C:\msys64\mingw64 以下が推奨です. MSYS2 をインストールしない場合も同様の構成にするために, 自分で C: 以下に \msys64\mingw64 ディレクトリを作成し, そこに置いてください. 作業が完了すれば以下のようなフォルダ構成となるはずです.

以前の説明通りインストール先は C:\emacs でも良いのですが, ディレクトリ説明を統一するために同じ構成とすることを推奨します.
  C:/msys64/mingw64 ---+--- bin
                       +--- include
                       +--- lib
                       +--- libexec
                       +--- share

bin フォルダの下の runemacs.exe を実行すれば(= ダブルクリックすれば), 下図のように Emacs が立ち上がります.

今回試したところ, 最初はユーザーアカウント制御(UAC)に引っ掛かり, 警告画面から, 詳細情報を選び実行する必要がありました. さらに最初の立ち上がりは異常なほど時間がかかりました. (2 回目以降はスムーズに立ち上がりました.)

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

[emacs initial window]

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

[emacs shortcut] [emacs shortcut property]

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

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

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

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

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

インストールが完了すると IME アイコンが Google 日本語入力のものに変わリます. 一連の作業が終わるまでは Google 日本語入力とお付き合いください. その方が混乱なく作業を進めることができます. 一通り作業を終えてしまえば, 標準の IME を Microsoft IME に戻しても構いません. (どちらを選ぼうと Emacs からの Mozc 呼び出しには影響ありません. ちゃんと Google 日本語入力が呼び出されます.)

私は Microsoft IME を使っています. M-IME にしているのはこれまで苦労してキー割り当てなどをカスタマイズしてきた ためです. IME の切り替えについては別記事 IN02: IME の切り替え を参照ください.

4. mozc_emacs_helper のインストール

Emacs と Mozc の連携あたりは NTEmacs @ ウィキさんの OUT05: 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:\msys64\mingw64\bin の下にコピーする.

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

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

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

さあ, ここから本格的に Emacs 上での作業が始まります. まずは Mozc パッケージのインストールです. 自分で Download して install をしても良いのですが 最近の Emacs には Package と言うソフト管理システムが用意されています. 「もっと簡単に」を合言葉に Package システムを使ってみましょう. この Package に関しては Qiita の @Maizu さんの記事 OUT06: 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/"))
    (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               2.30.5544.102 available  melpa-s... minor mode to input Jap
    I mozc               20240729.1542 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-20240729.1542 フォルダが作成され, その中に mozc パッケージが入っています.

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

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

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

作業は簡単で, (「4. 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-20240729.1542 フォルダの下にコピーする.

これだけです.

7. 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")
; mozc_emacs_helper.exe のパス指定. (自分の環境に合わせて修正ください)
(setq mozc-helper-program-name "C:/msys64/mingw64/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 を終了します.

8. 使用開始

さあここまでの設定がうまく行ったいたら日本語入力もバッチリなはず. やってみましょう. ここからは 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:/msys64/mingw64/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 を使っていた時と比べると, 機能的に十分ではありません. 設定を加えれば, 更に使い勝手は向上するはずです. 私の使い勝手は向上の取り組みについては 善き魔術師への道(青年編) をお楽しみに.

リンク一覧