PRIME + T-Code

投稿者 akira 2004-01-27 15:00:00 GMT

PRIMEではT-Codeサポートがかなり良くなってきていて、もちろんtc2などからの移行を考えるのであれば慣れの問題はあるのだけど、日常的に使っていけそうな気配がしてきている。何より作者の小松くんが、T-Codeのようなマイナーな問題にも根気強くしかも迅速に対応をしてくれるのがありがたい。

現時点でT-Code向けの環境を作るとするとprime-0.7.6-rc2prime-el-1.3.1-rc2prime-dict-0.6.6suikyo-1.3.0と、MELL、Ruby、Sary、Sary-Rubyが必要になる。Debian/sidならmell、sukyo-elisp、libsuikyo-ruby1.8、ruby1.8、libsary-ruby1.8をそのまま使うことができる。prime、prime-elもパッケージがあるのだけど、それらは安定版でちょっと古いので、これれらについては手でインストールするなりなんなりする。インストール方法はPRIMEのホームページにある通り。

T-Codeのために必要となる設定はPRIMEサーバの設定ファイルである~/.prime/Custom_prime.rbにPRIME_ENV['typing_method'] = 'tcode'と書くだけ。prime-elの設定は特に必要ない*1。以上が完了したらホームページに書いてあるような動作確認をした上でEmacsを起動し、C-x C-m C-\してjapanese-primeを選ぶ。そうするとPRIMEでの入力が可能となっているはずだ。

ただし、この状態では、たとえば「か」という入力から「確定」を得ることはできない(「かくてい」、「確てい」、「かく定」という入力から「確定」を得ることはできる)。また「のまない」から「飲まない」を得ることができない。この二つのことをできるようにするには、primeに以下のような変更を加えるとよい。

--- lib/prime.rb        28 Jan 2004 08:34:56 -0000      1.2.2.16
+++ lib/prime.rb        28 Jan 2004 12:08:54 -0000
@@ -146,13 +146,17 @@
   end
 
   def lookup_direct (string)
+    results_prefix    = lookup_prefix(string)                         # XXX(A)
     results_expansion = lookup_expansion(string)
     results_mixed     = lookup_mixed(string)
+    results_japanese  = lookup_japanese(string)                        # XXX(B)
     results_overall   = lookup_overall(string)
 
     result = PrimeWordList::merge_with_label(@context,
+                                            results_prefix[0, 3],     # XXX(A)
                                              results_expansion,
                                              results_mixed,
+                                            results_japanese,          # XXX(B)
                                              results_overall)
     return result
   end

(A)の部分が前者(読みに対する前方一致で変換候補を探す)に対応し、(B)の部分が後者(活用を考えて変換候補を探す)に対応する。もしも前者を不要と思えば(A)の部分は加えないか、コメントアウトしておけばよい。

追記: 「3.」のようなストロークで問題があった。MLで報告したところ、さっそく修正が入った。とりあえず前述のバージョンに関してはこのような変更を加えておくとよいとのこと。

追記(2004-01-29): prime-0.7.6-rc3prime-el-1.3.1-rc3で上の交ぜ書きの問題と「3.」の問題が解決された。交ぜ書きの問題は(B)が加えられる形になっているので、もし必要ならさらに(A)を足すとよい(が、個人的には(A)はなくてもよいだろうと思っている)。

*1 prime-elはPRIMEサーバから入力メソッドを聞き出して、自動的に調整してくれる。

トラックバック

トラックバックリンク:
http://arika.org/diary/trackbacks?article_id=743