読者です 読者をやめる 読者になる 読者になる

ぽかぽかウンティの自由帳

ぽかぽか動物園から投稿します。

windows に emacs 入れて emacs に ddskk 入れた

今更 Windows で開発する気はまったくない。テキストファイルを開く機会がたまにあり、その度にメモ帳で開いて糞フォントが目に入るのが苦痛だったから止むを得ず。

ディレクトリ構成

まずはディレクトリ的な全体像。

C:\Users\Hogehoge
├ .emacs.d/
│ ├ elisp/
│ │ └ color-theme-6.6.0/
│ └ init.el
├ ddskk-15.1/
├ Emacs/
└ UnxUtils/
  ├ bin/
  └ usr/

本体

まずは本体をダウンロードしてきて解凍してホームディレクトリに配置。今回は emacs-24.3-bin-i386.zip をダウンロード。

GNU Project Archives

ホームディレクトリ

次にホームディレクトリの PATH を通す。ユーザー環境変数に変数名 HOME で C:\Users\Hogehoge を追加。この設定後に emacs を起動すると、自動でホームディレクトリに .emacs.d ディレクトリを作成してくれる。

C:\Users\Hogehoge\.emacs.d ディレクトリにはとりあえず elisp ディレクトリを作成。そして設定ファイルの init.el も作成。再帰的にロードさせるために設定ファイルに以下を記述。

(defun add-to-load-path(&rest paths)
  (let (path)
    (dolist (path paths paths)
      (let ((default-directory
	      (expand-file-name (concat user-emacs-directory path))))
	(add-to-list 'load-path default-directory)
	(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
	    (normal-top-level-add-subdirs-to-load-path))))))

(add-to-load-path "elisp")

カラーテーマ

続いて、カラーテーマをダウンロードして解凍し、上記の elisp ディレクトリに配置。今回は color-theme-6.6.0.zip をダウンロード。

Index of /releases/color-theme

背景黒系にする。

(when (require 'color-theme nil t)
  (color-theme-initialize)
  (color-theme-hober))

フォント

フォントは昔入れていた MigMix 1M を使用。

MigMixフォント : M+とIPAの合成フォント

(set-face-attribute 'default nil
                    :family "MigMix 1M"
                    :height 120)

(set-fontset-font nil 'japanese-jisx0208
                  (font-spec :family "MigMix 1M"))

シェルモードでシェルを動かす

次に、shell モードで dos じゃなくて sh が動くように UnxUtils をダウンロードして解凍してホームディレクトリ内に配置。ddskk のインストールで make を使うためこれは必要。

UnxUtils | Free software downloads at SourceForge.net

以下の設定で動くようになる。

(when (eq window-system 'w32)
  (setenv "PATH"
  	(format "%s;%s;%s"
  		"C:\\Users\\HOGEHOGE\\UnxUtils\\bin"
  		"C:\\Users\\HOGEHOGE\\UnxUtils\\usr\\local\\wbin"
  		(or (getenv "PATH") "")))
  (setq explicit-shell-file-name "C:\\Users\\HOGEHOGE\\UnxUtils\\bin\\sh.exe"))

ddskk

最後に ddskk を emacs にインストールする。今回は ddskk-15.1.tar.gz をダウンロード。ホームディレクトリに解凍して配置。

Index of /skk/maintrunk

予めインストール前に辞書をダウンロードして、ddskk を展開したディレクトリ内の dic ディレクトリ内に配置しておく。今回は SKK-JISYO.L だけ使う。

Index of /skk/skk/dic

emacs を起動し、M-x shell でシェルモードに移行。ddskk を展開したディレクトリに移動し、make を実行。

# pwd
=> c:/Users/HOGEHOGE/.emacs.d

# cd ../ddskk-15.1/
# pwd
=> c:/Users/HOGEHOGE/ddskk-15.1

# make what-where EMACS="c:/Users/HOGEHOGE/Emacs/bin/emacs.exe"
# make install EMACS="c:/Users/HOGEHOGE/Emacs/bin/emacs.exe"

設定ファイル

(when (eq window-system 'w32)
  (setenv "PATH"
  	(format "%s;%s;%s"
  		"C:\\Users\\HOGEHOGE\\UnxUtils\\bin"
  		"C:\\Users\\HOGEHOGE\\UnxUtils\\usr\\local\\wbin"
  		(or (getenv "PATH") "")))
  (setq explicit-shell-file-name "C:\\Users\\HOGEHOGE\\UnxUtils\\bin\\sh.exe"))

(defun add-to-load-path(&rest paths)
  (let (path)
    (dolist (path paths paths)
      (let ((default-directory
	      (expand-file-name (concat user-emacs-directory path))))
	(add-to-list 'load-path default-directory)
	(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
	    (normal-top-level-add-subdirs-to-load-path))))))

(add-to-load-path "elisp")

(setq-default tab-width 2)
(setq-default indent-tabs-mode nil)

(setq inhibit-startup-screen t)
(setq make-backup-files nil)
(setq auto-save-default nil)
(setq display-time-day-and-date t)
(setq display-time-24hr-format t)
(setq show-paren-delay 0)

(when window-system
  (tool-bar-mode 0)
  (scroll-bar-mode 0)
  (menu-bar-mode 0)
  (setq initial-frame-alist
        '((top . 0) (left . 0) (width . 120) (height . 30))))

(column-number-mode t)
(size-indication-mode t)
(display-time-mode t)
(display-battery-mode t)
(global-linum-mode t)
(show-paren-mode t)

(when (require 'color-theme nil t)
  (color-theme-initialize)
  (color-theme-hober))

(require 'cl)
(fset 'yes-or-no-p 'y-or-n-p)

(set-face-attribute 'default nil
                    :family "MigMix 1M"
                    :height 120)

(set-fontset-font nil 'japanese-jisx0208
                  (font-spec :family "MigMix 1M"))

参考書籍

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)

Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)