読者です 読者をやめる 読者になる 読者になる

SKKを使ってみた

skk

SKKなるものがいいらしいとあちこちから薦められたので、試しに使ってみた。存在は以前から知っていたものの、導入が面倒そうで必要性も感じていなかったので手は出していなかった。

導入

私は普段はWindowsを使用しているので、SKKIMEを使用することに。
http://www.tatari-sakamoto.jp/skkime.jis.html からSKKIME 1.5 WindowsXP msvcr80の最新版を取得。 .INFファイルがあるので、右クリック→インストールでインストール完了。とっても簡単。

続いて辞書を取得する。辞書がないとSKKは毛ほども役に立たない。
エラー - SKK辞書Wiki から自分が使いそうな辞書を片っ端からDL。SKK-JISYO.Lは必須な感じ。

次にコントロールパネル→地域と言語のオプション→言語タブ→詳細...→規定の言語に「日本語 - SKKIME ver. 1.5」があるので、それに変更。これで次からはSKKIMEが使用される。
続けてそのままプロパティ→辞書設定タブでDLしてきた辞書を追加。この時、「この辞書はソートされている」にチェックを入れる。最後にお好みで辞書の順序を入れ替えおく。上の方の辞書が優先される。

これだけでとりあえず使える。

設定

基本的な設定
  • 「Enterで確定のみの動作にする」にチェック。
  • キーマップの設定で\C-[とEscapeに\C-gと同じkeyboard-quitを割り当てた。
  • ローマ字設定でoh → hなルールを追加する。これを入れないと、「ohhon」が「おっほん」ではなく「おおほん」になるらしい。
    • この辺よくわかってない。
  • 上記のSKKIMEのページにinit.elというファイルがあるので、ユーザ辞書と同じ場所(デフォルトは%APPDATA%\skk\skki1_5)に入れておくと、 /today で今日の日付が変換できるようになる。
    • 多分使わんけど、一応入れた。
  • その他何か変えた気もするけどどこを弄ったか忘れた。
キーバインド

キーバインドに関する紆余曲折の旅。
SKKはShiftキーを多用するので、SandSやSticky Shiftなどと呼ばれる設定と併用されることが多いらしい。私は 普段Autohotkeyを使っているので、これでなんとかしてみることに。

まずはSandSを試す。
http://lukewarm.s101.xrea.com/up/file/089.zip にSandSスクリプトがあったので失敬した。
一応動くには動いたが、

  • Spaceの挿入タイミングが慣れないと違和感がある。
  • 普段使ってる常駐スクリプトに組みくもうとゴニョゴニョしたら、動作がおかしくなった。 ←これは自分のせい
  • Spaceのキーリピートができない。
    • これはタップするとキーリピートになるように改造した。
  • wなどを素早く押すとWになってしまう。

などなど、色々不満が。特に最後のはVimwを保存に割り当てたりしてる身としてはかなり辛い。

で、次にSticky Shiftを試した。
これは特にスクリプトが見当たらなかったので自作。超てきとー。

StickyShift(trig){
    MatchList=1,2,3,4,5,6,7,8,9,0,-,^,\,q,w,e,r,t,y,u,i,o,p,@,[,a,s,d,f,g,h,j,k,l,:,],z,x,c,v,b,n,m,.,/,;,,,
    Hotkey,%trig%,Off
    Input,key,I L1,,%MatchList%
    Hotkey,%trig%,On
    if(ErrorLevel == "Max"){
        Send,%key%
    }else if(ErrorLevel == "Match"){
        Send,+%key%
    }
}

割り当てたいキーからこの関数を呼ぶ感じ。で、問題はどのキーに割り当てるかだけど…。
Shiftはないなーと思いとりあえず無変換に割り当ててみた。

が。

これまでのIME環境は、無変換→IME OFF 変換→IME ONに割り当てていたのだけれど、こうするとIME OFFが使えなくなる*1。ASCIIモードでなんとかなるかなーと思ってたけど、Ctrl-Jは色々と面倒。何より、見た目で現在の状態がわからない*2

で、どのキーがいいのかと漁ってみたところ、セミコロンという意見がちらほら。で、

$`;::
if(IME_GET()){
    StickyShift(";")
}else{
    Send,`;
}
return

こうなった。←いまココ
割といい感じ。個人的にはSandSよりこっちの方が使いやすいかなぁ。

辞書の変換

カタカナに変換したいときはqでいいわけだけど、慣れないうちはついSpaceで変換してしまう。すでにある辞書からカタカナ語の辞書を作成するツールがあったので、使ってみた。
http://www1.interq.or.jp/~deton/skktool/ から変換に必要らしい skkdic-expr2 をDL。
辞書メンテナンスツール - SKK辞書Wiki の一番下からRubyスクリプトをDL。

$ abbrev-convert.rb -K SKK-JISYO.L | skkdic-expr2 > SKK-JISYO.katakana

みたいに使う。詳細は付属のREADMEに書いてあるので、他にも色々変換して辞書を追加してみた。

だいぶ快適になった。でもカタカナはqの方が早いのでちょっとずつqに慣れていこう。

所感など

  • 設定がレジストリは激しく面倒。テキストにしてほしい。
  • 意外に送り仮名が分からなくて焦る(ぇ
  • Vimperatorのコマンドラインで変換しようとすると、候補リストが画面外に出てしまう。これは致命的な欠陥。
  • 送り仮名を自動認識するにチェックを入れると、送りなしの単語が変換できなくなる。謎。
  • Ctrl+ShiftでなぜかMS-IMESKKIMEがトグルする。どのレイヤーの仕様だろうか。最初のうちは気付かないうちにトグルされてムキーってなった。
  • 今までぁぃぅぇぉをlaliluleloで入力してたので、この当たりで支障がでてる。xaxixuxexoに慣れるまで待つか、思い切ってローマ字設定変えてしまうか迷い中。

現在試用1週間目。慣れるにはもう少し使ってみないとだめかなー。

*1:Alt+全角/半角でできなくはないけど

*2:ソフトによってはキャレットの色やテキストエリアの背景でIMEの状態が分かるようにしている