SKKの設定

DDSKK(Daredevil SKK)をインストールする。

http://openlab.ring.gr.jp/skk/maintrunk/ から ddskk-14.0.92.tar.gz をダウンロード。
http://openlab.ring.gr.jp/skk/wiki/wiki.cgi?page=SKK%BC%AD%BD%F1 から辞書もダウンロードしておく。
SKK-JISYO.L

APELも必要なのでダウンロードしておく。
apel-10.8.tar.gz

APELのインストール

  1. apel-10.8.tar.gz を解凍し、中にあるmakeit.bat を編集する
REM 以降で使用するディレクトリ
set PREFIX=D:\home\.emacs.d

REM NTEmacs のコマンド(runemacs.exe ではないので注意)
set EMACS=%PREFIX%\bin\bin\emacs.exe

REM APELインストール先フォルダ
set LISPDIR=%PREFIX%\elisp

REM EMUインストール先フォルダ
set VLISPDIR=%PREFIX%\elisp

REM make1.bat に渡す引数(elc:バイトコンパイル install:インストール what-where:インストール先確認)
set DEFAULT_MAKE_ARG=install
  1. makeit.bat を実行する
  2. ~/.emacs.d/elisp/apel/, ~/.emacs.d/elisp/emu/ が作成される。

SKKのインストール

  1. ddskk-14.0.92.tar.gz を解凍する。
  2. 辞書ファイル SKK-JISYO.L を dic フォルダにコピーする。
  3. 中にあるmakeit.bat, SKKCFG を編集する

makeit.bat

set PREFIX=D:\home\.emacs.d
set EMACS=%PREFIX%\bin\bin\emacs.exe
set LISPDIR=%PREFIX%\elisp\skk
set DEFAULT_MAKE_ARG=install

SKKCFG

(setq APEL_DIR "D:/home/.emacs.d/elisp/apel")
(setq EMU_DIR "D:/home/.emacs.d/elisp/emu")
(setq SKK_DATADIR "D:/home/.emacs.d/elisp/skk")
(setq SKK_LISPDIR "D:/home/.emacs.d/elisp/skk")
(setq SKK_SET_JISYO t)
  1. makeit.bat を実行する

SKK の設定

通常何も設定しなくても使えるみたいだが、その場合は ~/.emacs.d/elisp/skk に入れたものを
NTEmacs の site-lisp に移動しないと実行できなかった。
インストールフォルダを変える場合は以下の設定が必要。
04init-keybind.el

(require 'skk-autoloads)
(global-set-key (kbd "C-x C-j") 'skk-mode)
(setq skk-large-jisyo (expand-file-name "~/.emacs.d/elisp/skk/SKK-JISYO.L"))
(setq skk-tut-file (expand-file-name "~/.emacs.d/elisp/skk/SKK.tut"))

Emacs テクニックバイブルの sticky.el を使用しようとしたら使えなかったので、
以下を設定。
04init-keybind.el

(setq skk-sticky-key ";")

sticky-shift が便利そうだったので、
http://homepage1.nifty.com/blankspace/emacs/sticky.html を参考に以下を設定。
04init-keybind.el

(defvar sticky-key skk-sticky-key)
(defvar sticky-list
  '*1
(defvar sticky-map (make-sparse-keymap))
(define-key global-map sticky-key sticky-map)
(mapcar (lambda (pair)
          (define-key sticky-map (car pair)
            `(lambda()(interactive)
               (setq unread-command-events
                     (cons ,(string-to-char (cdr pair)) unread-command-events)))))
        sticky-list)
(define-key sticky-map sticky-key '(lambda ()(interactive)(insert sticky-key)))

*1:"a" . "A")("b" . "B")("c" . "C")("d" . "D")("e" . "E")("f" . "F")("g" . "G") ("h" . "H")("i" . "I")("j" . "J")("k" . "K")("l" . "L")("m" . "M")("n" . "N") ("o" . "O")("p" . "P")("q" . "Q")("r" . "R")("s" . "S")("t" . "T")("u" . "U") ("v" . "V")("w" . "W")("x" . "X")("y" . "Y")("z" . "Z") ("1" . "!")("2" . "@")("3" . "#")("4" . "$")("5" . "%")("6" . "^")("7" . "&") ("8" . "*")("9" . "(")("0" . ")") ("`" . "~")("[" . "{")("]" . "}")("-" . "_")("=" . "+")("," . "<")("." . ">") ("/" . "?")(";" . ":")("'" . "\"")("\\" . "|")