SKKで丸数字(ついでにSKKIMEでも)

SKKで丸数字(①とか)を入力する方法2種類書いてみる。
それぞれ以下のような利点と欠点がある

方法 利点 欠点
skk-num-type-alist を使う方法 20まで入力可能。普通の文章に混ぜやすい。 単体での入力が少し面倒。
skk-rom-kana-rule-list を使う方法 単体での入力が簡単。 10までしか入力できない。普通の文章に混ぜるのが少し面倒。

どちらの方法もSKKIMEで似たような方法が使える。

skk-num-type-alist を使う方法

以下の設定を.emacsに入れて、数字の入力箇所で#6で登録する。後は普通に入力するだけ。

(defun skk-num-maru-suji (num)
  (let ((s "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳")
	(n (string-to-number num)))
    (when (and (>= n 1) (<= n 20))
      (let ((m (1- n)))
	(substring s m (1+ m))))))
(add-to-list 'skk-num-type-alist '(6 . skk-num-maru-suji))

skk-rom-kana-rule-list を使う方法

以下の設定を.emacsに入れて、z1とか入力する。

(let ((s "⑩①②③④⑤⑥⑦⑧⑨"))
  (dotimes (n (length s))
    (add-to-list
     'skk-rom-kana-rule-list
     (list (concat "z" (number-to-string n))
	   nil
	   (cons (substring s n (1+ n)) (substring s n (1+ n)))))))
  • [2007-07-31] z0で⑩を入力できるようにした。

【番外】SKKIMEで使う

プロパティダイアログの「ローマ字仮名変換ルール設定」タブに以下のように登録しとく。
z1とか入力するれば丸数字が入力できる。

現状態 z1
仮名入力
片仮名

【番外】SKKIMEで使うその2

まる1とかに対して以下を登録するとSKKIMEでも「skk-num-type-alist を使う方法」みたいに入力できた。これ便利かも。

(let* ((num (car skk-num-list)) (s "○①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳") (n (string-to-number num))) (if (and (>= n 1) (<= n 20)) (substring s n (1+ n)) num))