初版: 2003/02/21
最終更新日:
2003/02/21
Ngが快適に使えるようになると、さらに欲が出てくるもので、 軽快さをそこなわずに日本語の入力もできないものかと感じるようになりました。
幸い、Ng-1.4.3には「SKG」という「SKK」ライクな 日本語入力システムが付属しています。 そこで、ローマ字→かな変換のルールをチューニングしたり、 キーバインディングを変更したりして、 より「手に馴染む」ようにQuick&Dirty Hackをしてみました。
k a n j i h e n k a n [SPC]のように入力します。しかし、SKGでは、
k a n n j i h e n n k a n n [SPC]と「ん」のために「nn」と入力する必要がありました。 子音の前に「n」が一つだけあったら、「ん」に変換してほしいのですが、 あいにくそのようにはなっていませんでした。
幸い、SKGのローマ字変換ルールは 「SKG-ROMAN」というファイルに記述することになってますので、 これに手を入れるだけで、この問題の大部分を解決できます。 それは、たとえば、このファイルの
ka か ki き ku く ke け ko ことなっている部分を
ka か nka んか ki き nki んき ku く nku んく ke け nke んけ ko こ nko んこのようにします。もちろん、すべてのルールについて「手で」、 『「n+子音」は「ん」を付加する』というのを追加していくのは アホらしいですが、こんなのはperl一発か、エディタのコピーと置換で 機械的に処理できますから(笑)。
ここまで処理すると、「漢字変換」と入れるときには、
k a n j i h e n k a n n [SPC]とタイプすればいいことになります。 最後だけ「n」の二度押しが必要ですが、 これはローマ字変換ルールの記述だけでうまくやる方法がわからなかったので、 skg.cに手を入れて解決しました。
(global-set-key "\^\\" 'skg-input)と書けばよいのですが、終了キーはskg.cの450行目あたりに ハードコーディングされています。
また、カタカナを入力したいときは、 ローマ字を大文字で入力するという仕様になってますが、 これも、とりあえずひらがなで入力したあとで、 「C-n」や「C-p」で「後から変換」するのがわたしの手には馴染んでいます。 これは、『「C-n」を押したら 「バッファに入ってるローマ字の大文字小文字を入れ換える」 という処理』を追加することで解決しました。
こういった変更を加えたのが、 ng143-skg-hack.patch という パッチです。