なんちゃってAZIK-SKK
EmacsのSKK上でAZIKを使うには、ddskkに入っているexperimental/skk-azik.elを使うことが多いと思う。でもこの設定はAZIKをつきつめていて、普通のSKK使いにはいささか使いにくい。"q"でカナモードにならなかったり、"「"を入力するのに"x["だったり、"つ"を入力するのに"tsu"と入力しないといけなかったり、"z."が"…"にならなかったり等々。これはAZIK-SKKが悪いんじゃなくて、SKKとAZIKの仕様の相容れない部分を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))