なんちゃってAZIK-SKK

EmacsSKK上でAZIKを使うには、ddskkに入っているexperimental/skk-azik.elを使うことが多いと思う。でもこの設定はAZIKをつきつめていて、普通のSKK使いにはいささか使いにくい。"q"でカナモードにならなかったり、"「"を入力するのに"x["だったり、"つ"を入力するのに"tsu"と入力しないといけなかったり、"z."が"…"にならなかったり等々。これはAZIK-SKKが悪いんじゃなくて、SKKAZIKの仕様の相容れない部分をAZIK-SKKが最大限何とかした結果なので、AZIK-SKKをせめてはいけない。
しかしよくよく考えてみると、僕はAZIKの全キーバインドが必要なわけではなく、";"で"っ"が入力できればいいように思う。ということで、AZIK-SKKから必要な部分を抜き出してみた。なおこのプログラムのライセンスは、GPL2です。

;;; skk-tiny-azik.el --- AZIK を SKK で使うための設定(なんちゃって版)
;;; $Id: skk-tiny-azik.el,v 1.2 2005/04/02 00:28:49 s-tanaka Exp $

;; Copyright (C) 2002 ONODA Arata <onoto@ma.nma.ne.jp>
;;               2005 TANAKA Shin-ya <zstanaka@archer.livedoor.com>

;; Original file is part of Daredevil SKK(ddskk-12.2.0).

;; Daredevil SKK is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2, or
;; (at your option) any later version.

;; Daredevil SKK is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with Daredevil SKK, see the file COPYING.  If not, write to
;; the Free Software Foundation Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Commentary:
;; 拡張ローマ字入力 "AZIK" をなんとなく SKK で使うための設定です。
;; 使える機能は"つ"と"ぁぃぅぇぉゃゅょ"のみです。
;;
;; "AZIK"については、以下の URL を参照して下さい。
;;   http://hp.vector.co.jp/authors/VA002116/azik/azikindx.htm
;;
;; 使い方 - このファイルを適当なディレクトリに置き、"/hoge/hoge"
;;          の部分をそのディレクトリに合わせて置き換えた下記の設定を
;;          .skk に加えてください。
;;          その後 Emacs(Mule) を再起動すれば skk による AZIK での
;;          入力が可能です。
;;
;;          (setq skk-azik-keyboard-type 'jp106)
;;          (load "/hoge/hoge/skk-azik.el")
;;
;;          変数 skk-azik-keyboard-type にお使いのキーボードのタイプを
;;          指定して下さい。skk-azik-keyboard-type はシンボルで
;;          'jp106 もしくは 'jp-pc98 、または、 'en を指定します。
;;

;;; Code:
(require 'skk-vars)

(defvar skk-azik-keyboard-type 'en
  "AZIK で使うときのキーボードのタイプをシンボルで指定する。
デフォルトは、 'jp106。
指定できるのは、
    'jp106
    'jp-pc98
jp106 および jp-pc98 以外が指定されると英語キーボードとして処理します。
nil が指定された場合は、キーボードのタイプの違いを吸収する割当てを行いません。")

;; キーボード依存部分。
;; skk-azik-keyboard-type が設定されていれば以下を実行。
(if skk-azik-keyboard-type
    (cond
     ((eq skk-azik-keyboard-type 'jp106)
      (setq skk-set-henkan-point-key
            (append '(?+) skk-set-henkan-point-key))
      (setq skk-downcase-alist
            (append '((?+ . ?\;)) skk-downcase-alist)))
     ((eq skk-azik-keyboard-type 'jp-pc98)
      (setq skk-set-henkan-point-key
            (append '(?+) skk-set-henkan-point-key))
      (setq skk-downcase-alist
            (append '((?+ . ?\;)) skk-downcase-alist)))
     (t
      (setq skk-set-henkan-point-key
            (append '(?:) skk-set-henkan-point-key))
      (setq skk-downcase-alist
            (append '((?: . ?\;)) skk-downcase-alist)))
     ))

(setq skk-rom-kana-rule-list
      (append
       '((";" nil ("ッ" . "っ"))
	 ("x;" nil ";")
	 ("la" nil ("ァ" . "ぁ"))
	 ("li" nil ("ィ" . "ぃ"))
	 ("lu" nil ("ゥ" . "ぅ"))
	 ("le" nil ("ェ" . "ぇ"))
	 ("lo" nil ("ォ" . "ぉ"))
	 ("lya" nil ("ャ" . "ゃ"))
	 ("lyu" nil ("ュ" . "ゅ"))
	 ("lyo" nil ("ョ" . "ょ")))
       skk-rom-kana-rule-list))

参照: 拡張ローマ字入力『AZIK』/『ACT』