JRF on quail-naggy.el: 単漢字変換 Input Method for Emacs.
ここに書いて読む人がいるだろうか?
GitHub のほうの quail-naggy (↓)には fix_skk_jisyo_l.pl というスクリプトを足しておいた。
https://github.com/JRF-2018/quail-naggy
これは、「nihon:」を変換したときに「ニホン」が最初の候補に来るなどするのが、とてもムカついたので作った、SKK-JISYO.L からカタカナへの変換などを除去するツールになる。これでできたものを make_skk_dic_db.pl にかけたあと、site-init.nginit を例えば次のようにして使えばいい。
<pre>
load-init-file default-init.nginit
set-tankanji-dic Wind2.txt -s
#set-tankanji-dic tankanji.txt -e
#add-skk-dic SKK-JISYO.L -e
add-skk-dic SKK-JISYO.fixed.L -e
add-skk-dic bushu-skk-dic.txt -e
add-skk-dic emoji-skk-dic.txt -u
</pre>
ただし、あまりチェックしていないので、完璧に「いい感じ」ではないかもしれない。
あと、ちょっとした Tips。最初にシフトキーを押して「Nihon」と入力して変換するのも「nohon:」と入力して変換するのも同じ感じになるのであるが、「風」系の哲学として、入力したあとのキーで選びたいということがある。だから、「nihon」の後 S-SPC で nihon: SPC と入力したのと同じように変換したい。…という場合は次のようにすればいい。
<pre>
(require 'quail-naggy)
(defun quail-naggy-alt-convert ()
(interactive)
(setq quail-current-key
(concat quail-current-key ":"))
(or (catch 'quail-tag
(quail-update-translation (quail-translate-key))
t)
(setq quail-translating nil))
(quail-naggy-convert))
(add-hook 'input-method-activate-hook
(lambda ()
(if (string= (quail-name) "japanese-naggy")
(progn
(define-key (quail-conversion-keymap)
[?\S- ] 'quail-naggy-alt-convert)
(define-key (quail-conversion-keymap)
[?\C- ] 'quail-naggy-insert-space)))))
</pre>
quail-naggy-insert-space を C-SPC に移動する必要があり、それはラテン語圏などでもし S-SPC をこれまで頻繁に使っている人がいると、それは迷惑だろうから、標準では取り込まなかった。でも漢字圏の人はこのキーバインドのほうが圧倒的に楽になると思う。
投稿: JRF | 2025-06-24 04:12:36 (JST)
JRF on quail-naggy.el: 単漢字変換 Input Method for Emacs.
先の Tips を更新。若干ダーティだけど、以下のようにしたほうが、意図どおりの動作になると思う。
<pre>
(require 'quail-naggy)
(defun quail-naggy-alt-convert-naggy-backend-command-advice
(old-function &rest args)
(if (string= (caar args) "convert")
(apply old-function
(list (list "convert" (concat (cadar args) ":"))))
(apply old-function args)))
(defun quail-naggy-alt-convert ()
(interactive)
(advice-add 'naggy-backend-command :around
#'quail-naggy-alt-convert-naggy-backend-command-advice)
(unwind-protect
(quail-naggy-convert)
(advice-remove 'naggy-backend-command
#'quail-naggy-alt-convert-naggy-backend-command-advice)))
(add-hook 'input-method-activate-hook
(lambda ()
(if (string= (quail-name) "japanese-naggy")
(progn
(define-key (quail-conversion-keymap)
[?\S- ] 'quail-naggy-alt-convert)
(define-key (quail-conversion-keymap)
[?\C- ] 'quail-naggy-insert-space)))))
</pre>
投稿: JRF | 2025-06-24 10:25:38 (JST)