BobbyQuineのブログ(備忘録)

Linux関係の備忘録、その他タバコ、Vape関連なんかも。

uim + Anthyのカスタマイズ (Arch Linux)

ども、BobbyQuineです。今回は前回あたりにCLIで日本語使うために入れたuimAnthyのカスタマイズをしていきます。実はあの記事を書き終わったあと再起動を行ったところ、xfce上でもuimが起動してしまいfcitx+mozcが使えなくなってしまいました。xfceを起動するときにuimを機動しないようにすればいいはずなのですがどうにもやり方を見つけることができておらず、とりあえずはuim+Anthyで生活しなければならなくなったわけです。そこでAnthyuimをカスタムしようということで。

 

uimのカスタム

前回、少し書きましたが~/.uimuimの設定が記述できる。どうやらこの設定ファイルはSchemeというプログラミング言語で書かれているようである。正直Schemeについての知識はないのでぼんやりとしか分からないが結構おもしろそうな言語である。さてとりあえずこのuimは余計な子音が排除されるように設定されている。個人的にはこれは好ましくない。そこでまずはここのコードを丸コピして~/.uimに追加した。

https://wiki.archlinux.jp/index.php/Uim_%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E5%85%A5%E5%8A%9B#.E5.85.A8.E8.A7.92.E3.83.A2.E3.83.BC.E3.83.89.E3.81.A7.E5.AD.90.E9.9F.B3.E3.82.92.E5.85.A5.E5.8A.9B.E3.81.A7.E3.81.8D.E3.81.BE.E3.81.9B.E3.82.93

これで子音は残るようになったが、たとえば「あrch」と打った場合にcとhが残ってくれない。どうにも2つの子音+母音を使ってひらがなを入力するパターン(たとえば子の場合はc+h+iで「ち」となるような)の子音二つはその後に子音が着てしまうと消えてしまうようである。この辺どうしようかと考えていたところ、こんな記事を見つけた。

http://d.hatena.ne.jp/mkotha/20100913/1284387994

 

ここにあるコードをさらに追加してみたところ、子音は打てるようになったが先ほどの例のような箇所だけ全角英字となってしまった。何か気持ち悪いのに加えて個人的に全角英字は嫌いなのでこれを半角のものに変えたいと考えた。Schemeについての知識はほぼないに等しかったので適当に同じようなことやろうとしているサイトなんかをみてちょっと分かった気になりながら弄るべき該当箇所を探したところここっぽい

 

以下上記サイトにあるコードから引用-------------------------------------------------------------------

 

(define (fullwidth str)
(let ((w-str (ja-wide str)))
(list w-str w-str str)))

 

-------------------------------------------------------------------------------------------------------------------------

 

これの三行目"(list w-str w-str str)))"を弄ればとりあえずは動くものが作れそうだということでここを

(list str str str)))

と変えてみた。すると期待通りの動きになったのでこれでよし。ただ一ヶ所、なぜか「thy」という文字列は変な挙動をするのでそのうち何とかしたい。まぁ、あんまし使う時ないし放置で。気が向いたらやる。

 

Anthyに個人的辞書を追加する

ざっとググってみるとどうやらkasumiというGUIツールがあるらしい。そこでとりまそれをいれてみたがやっぱわざわざカーソルを移動させるのが面倒くさい。で、だ。kasumiについてもうちょいと調べてみると " ~/.anthy/private_words_default " というファイルに平文で辞書が追加されて行っているようである。さらにAnthyの辞書はこの中身が50音順に並んでいなければならないようである。それをふまえて適当にシェルスクリプトを書いた。

 

anthydictionary.sh  ----------------------------------------------------------------------------------------------

 

#!/bin/bash

export LANG=ja_JP.utf8
echo -n "spelling: "
read spel
echo -n "sound: "
read sou

echo "$sou #T35*500 $spel" >> ~/.anthy/private_words_default

mkdir /tmp/foranthy
sort ~/.anthy/private_words_default >> /tmp/foranthy/private_words_default
mv /tmp/foranthy/private_words_default ~/.anthy/
rm -r /tmp/foranthy

 

-------------------------------------------------------------------------------------------------------------------------

 

ここでわざわざexport LANG=ja_JP.utf8としているのは環境がこれじゃないとsortコマンドでの処理が適切に行われないためである。あとはまぁ自分で文章打ってて変換につまった箇所があったらその都度このスクリプトで追加している。なおkasumiについての解説はどっかで適当に読んでください。

 

以上、ざっと備忘録でした。