diff --git a/ChangeLog b/ChangeLog index ff190cc5..99f12225 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2023-03-30 Takahiro Fujisawa + + Converted the code written in ISO-2022-JP, Shift JIS, and EUC-JP character codes to UTF-8. + 2020-09-06 Tsuyoshi Kitamoto * skk.el (skk-henkan-show-candidates-buffer, skk-show-num-type-info): Remove code for window management. diff --git a/READMEs/AUTHORS.ja b/READMEs/AUTHORS.ja index a84c68c3..336a29cb 100644 --- a/READMEs/AUTHORS.ja +++ b/READMEs/AUTHORS.ja @@ -625,7 +625,7 @@ skk-server.el, skk.el, skk-study.el, bayesian/bskk ** and more. - + Local variables: coding: utf-8 mode: outline diff --git a/READMEs/CODENAME.ja b/READMEs/CODENAME.ja index 641553d8..f8215aa2 100644 --- a/READMEs/CODENAME.ja +++ b/READMEs/CODENAME.ja @@ -115,7 +115,7 @@ http://www.jrhokkaido.co.jp/network/img/routemap_j.pdf http://www2.jrhokkaido.co.jp/global/english/rmap/route_map.pdf * Next, where shall we go? - + Local variables: coding: utf-8 mode: outline diff --git a/READMEs/INSTALL b/READMEs/INSTALL index 847cce22..7c943b16 100644 --- a/READMEs/INSTALL +++ b/READMEs/INSTALL @@ -134,7 +134,7 @@ PDF manual are available. If you are looking for example elisp codes for customization, see files etc/dot.emacs and etc/dot.skk, which are included in this distribution. - + Local variables: coding: utf-8 mode: outline diff --git a/READMEs/NEWS.ja b/READMEs/NEWS.ja index d1ead763..3a5bbf44 100644 --- a/READMEs/NEWS.ja +++ b/READMEs/NEWS.ja @@ -1930,7 +1930,7 @@ works well with SKK by itself. skk-vip.el is discarded. ** Experimental package skk-tutcode.el is provided by GUNJI Takao . Now you can imput Japanese by TUT-code with SKK. - + Local variables: coding: utf-8 mode: outline diff --git a/READMEs/PROPOSAL.ja b/READMEs/PROPOSAL.ja index 675a4638..1b33c757 100644 --- a/READMEs/PROPOSAL.ja +++ b/READMEs/PROPOSAL.ja @@ -593,7 +593,7 @@ o skk-after-point-move として inline function として実装。フックを o skk-mode の中で post-command-hook のローカルフックとして skk-after-point-move をフックした。 - + Local variables: coding: utf-8 mode: outline diff --git a/READMEs/README.MacOSX.ja b/READMEs/README.MacOSX.ja index 62f44b9b..5e66281f 100644 --- a/READMEs/README.MacOSX.ja +++ b/READMEs/README.MacOSX.ja @@ -1 +1,179 @@ -Mac OS X SKK g@ɂ‚Đ܂B INSTALL README ɂڂʂĂĉB * O ** Developer Tools (Xcode) ̃CXg[ Mac OS X ɂ͏Ԃł make R}hCXg[Ă܂B ~̍Ƃ邽߂ɂ Developer Tools (Xcode) CXg[Kv ܂B Developer Tools OS pbP[Wōwꍇ͓Ă܂B ŐV Developer Tools Kvȏꍇ Apple Developer Connection https://connect.apple.com/ ɂĖ̉o^鎖Ń_E[hɂRXĝ݂œ肷鎖 ł܂B܂AApp Store łŐV Developer Tools 肷邱Ƃ ܂BȂ Developer Tools ́A݂ Xcode ƂP̃AvP[V ɂȂĂ܂B Xcode 4.3 ȍ~ł make Ȃǂ̃R}hCc[ Xcode N Preferences Downloads Command Line Tools ŕʓrCXg[Kv ܂B ** RpCɗp Emacs ̊mF Terminal Emacs ̈ʒumF܂B $ which emacs Mac OS X W Emacs /usr/bin/emacs ɑ݂܂BOS X 10.7.3 ̒iK ŃCXg[Ă̂́AGNU Emacs 22.1 x[XłB AMac OS X ̃EBhEVXeœ삷 Emacs ɂ Carbon g ̂ Cocoa ĝ܂BCarbon Emacs ɂނ悤 AKJi Carbon Emacs Package ( http://homepage.mac.com/zenitani/emacs-j.html ) http://th.nao.ac.jp/MEMBER/zenitani/emacs-j.html ł悭XVĂA܂{‹\ߐĂ̂ŁAg ł傤B̃pbP[ẂAlXȃpXɃCXg[邱Ƃ”\ł AWIɂ /Applications (n[hfBXŃuAvP[VvtH _)ɃCXg[܂B̏ꍇ̎s`t@C /Applications/Emacs.app/Contents/MacOS/Emacs łBŐV2010Nł GNU Emacs 22.3 x[XłB ܂AGNU Emacs 23 \[X̏CȂ Cocoa ł̃RpC”\ Ȃ܂BCocoa Carbon Emacs Ɠl Self contained ȃAvP[ VohɂȂ܂BWIɂ /Applications ɃCXg[ As`t@C /Applications/Emacs.app/Contents/MacOS/Emacs B * Emacs ւ̃CXg[ ** APEL ̃CXg[ (DDSKK 14.1 gꍇ) *** DDSKK 14.2 Carbon Emacs, Cocoa Emacs Ƃ APEL ̕ʓrCXg[ svɂȂ܂B{ DDSKK 14.1 ̃[Û߂̐łB *** APEL 擾 DDSKK 14.1 ł́A܂ APEL CXg[邵܂BDaredevil SKK ł́A APEL10.7 ȍ~ł̓삪mFĂ܂Ał邾ŐVo[W CXg[邱Ƃ߂܂B APEL ́A http://git.chise.org/elisp/apel/ ł܂B *** APEL ̓WJ() APEL ̃A[JCu_uNbN StuffIt Expander ɂ𓀂 ܂B܂ATerminal ̑ɊĂꍇ͈ȉ̃R}hs ł𓀂ł܂B $ tar xvfz apel-10.8.tar.gz *** APEL byte-compile ƃCXg[ Carbon Emacs Cocoa Emacs ̂悤ȁA /Applications ̉ Emacs.app gꍇ́A Makefile EMACS ̍ŝ悤ɕҏW܂B EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs ̃pX Emacs.app ̃CXg[pXɍ킹ēKXύXĂB which R}hŕԂė Emacs 𗘗pꍇ͐ݒ̕Kv͂܂B APEL ̓WJfBNg Terminal ȉ̃R}hs܂B $ make $ sudo make install $ password: (Password𕷂Ă̂ŊǗpX[h) *** load-path ւ̒lj which R}hŕԂė Emacs 𗘗pꍇ͐ݒ̕Kv͂܂B ܂ACarbon Emacs Cocoa Emacs łݒ̕Kv͂܂B ** SKK ̃CXg[ *** SKK ̓WJ() APEL Ɠl̕@ʼn𓀂ł܂B *** SKK ̃CXg[ SKK WJgbvfBNg SKK-CFG Ƃt@C܂B ̃t@C̓VXeˑ̃CXg[ݒ[Us߂ɂ B̒̃hLgƐݒQlɂĂB {Iɂ APEL ƓlA Carbon Emacs Cocoa Emacs 𗘗pꍇ Makefile EMACS ̍s APEL ̏ꍇƓlɕҏWɁA܂ which R} hŕԂė Emacs pꍇ͂̂܂܁A `sudo make install' ŃCXg[ł͂łB *** load-path ւ̒lj which R}hŕԂė Emacs 𗘗pꍇ͐ݒ̕Kv͂܂B ܂ACarbon Emacs Cocoa Emacs łݒ̕Kv͂܂B *** .emacs ւ̒lj which R}hŕԂė Emacs 𗘗pꍇ͐ݒ̕Kv͂܂B ܂ACarbon Emacs Cocoa Emacs łݒ̕Kv͂܂B * Mac OS X œT[oɂ‚ Mac OS X ŗpł SKK T[oɂ͎̂悤Ȃ̂܂B ** skkserv skkserv http://openlab.jp/skk/skk/skkserv/ ł܂B ** dbskkd dbskkd http://www.ne.jp/asahi/bdx/info/software/jp-dbskkd.html ł܂B ** XNvgŎꂽT[o ruby gpłȂ΁A rskkserv gpł܂B rskkserv http://sourceforge.jp/projects/rskkserv/ ł܂B * Mac OS X ŗpł SKK Mac OS X œ삷 SKK CN IME ܂B ** AquaSKK Cocoa ɂĂ܂BSKK Ƌʂ̎gpł܂B http://aquaskk.sourceforge.jp/ * ̏ {hLgƍ킹Ĉȉ̏mF邱Ƃ߂܂B http://sakito.s2.xrea.com/detail/emacs/emacs21.html Local variables: mode: outline end: \ No newline at end of file +Mac OS X で SKK を使う方法について説明します。 + +同梱の INSTALL および README にも目を通しておいて下さい。 + +* 事前準備 + +** Developer Tools (Xcode) のインストール + +Mac OS X には初期状態では make コマンドがインストールされていません。以 +降の作業をするためには Developer Tools (Xcode) をインストールする必要が +あります。 + +Developer Tools は OS をパッケージで購入した場合は同梱されています。も +し最新の Developer Tools が必要な場合は Apple Developer Connection + + https://connect.apple.com/ + +にて無料の会員登録をする事でダウンロードにかかるコストのみで入手する事が +できます。また、App Store でも最新の Developer Tools を入手することがで +きます。なお Developer Tools は、現在は Xcode という単一のアプリケーショ +ンになっています。 + +Xcode 4.3 以降では make などのコマンドラインツールは Xcode 起動後に +Preferences → Downloads → Command Line Tools で別途インストールする必要 +があります。 + +** コンパイルに利用する Emacs の確認 + +Terminal より Emacs の位置を確認します。 + +$ which emacs + +Mac OS X 標準の Emacs は /usr/bin/emacs に存在します。OS X 10.7.3 の段階 +でインストールされているものは、GNU Emacs 22.1 ベースです。 +一方、Mac OS X のウィンドウシステムで動作する Emacs には Carbon を使った +ものと Cocoa を使ったものがあります。Carbon Emacs にも何種類かあるようで +すが、銭谷誠司さん作の Carbon Emacs Package + + ( http://homepage.mac.com/zenitani/emacs-j.html ) + http://th.nao.ac.jp/MEMBER/zenitani/emacs-j.html + +が最もよく更新されており、また日本語環境が予め整備されているので、使い易 +いでしょう。このパッケージは、様々なパスにインストールすることが可能です +が、標準的には /Applications (ハードディスクの「アプリケーション」フォル +ダ)にインストールします。その場合の実行形式ファイルは +/Applications/Emacs.app/Contents/MacOS/Emacs です。最新の2010年版は GNU +Emacs 22.3 ベースです。 + +また、GNU Emacs 23 から ソースの修整なしに Cocoa 版のコンパイルが可能に +なりました。Cocoa 版 も Carbon Emacs と同様に Self contained なアプリケー +ションバンドルになります。こちらも標準的には /Applications にインストー +ルし、実行形式ファイルは /Applications/Emacs.app/Contents/MacOS/Emacs で +す。 + +* Emacs へのインストール + +** APEL のインストール (DDSKK 14.1 を使う場合) + +*** 注意 + +DDSKK 14.2 より Carbon Emacs, Cocoa Emacs とも APEL の別途インストールは +不要になりました。本項は DDSKK 14.1 のユーザのための説明です。 + +*** APEL の 取得 + +DDSKK 14.1 では、まず APEL をインストールするします。Daredevil SKK では、 +APEL10.7 以降での動作が確認されていますが、できるだけ最新バージョンを +インストールすることをお勧めします。 + +APEL は、 + + http://git.chise.org/elisp/apel/ + +から入手できます。 + +*** APEL の展開(解凍) + +APEL のアーカイブをダブルクリックすれば StuffIt Expander により解凍され +ます。また、Terminal の操作に慣れている場合は以下のコマンドを実行する +事でも解凍できます。 + + $ tar xvfz apel-10.8.tar.gz + +*** APEL の byte-compile とインストール + +Carbon Emacs や Cocoa Emacs のような、 /Applications の下の Emacs.app を +使う場合は、 Makefile の EMACS の行を次のように編集します。 + +EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs + +このパスは Emacs.app のインストールパスに合わせて適宜変更してください。 +which コマンドで返って来た Emacs を利用する場合は設定の必要はありません。 + +APEL の展開ディレクトリで Terminal より以下のコマンドを実行します。 + + $ make + $ sudo make install + $ password: (Passwordを聞いてくるので管理パスワードを入力) + +*** load-path への追加 + +which コマンドで返って来た Emacs を利用する場合は設定の必要はありません。 +また、Carbon Emacs や Cocoa Emacs でも設定の必要はありません。 + +** SKK のインストール + +*** SKK の展開(解凍) + +APEL と同様の方法で解凍できます。 + +*** SKK のインストール + +SKK を展開したトップディレクトリに SKK-CFG というファイルがあります。 +このファイルはシステム依存のインストール設定をユーザが行うためにありま +す。この中のドキュメントと設定例を参考にしてください。 + +基本的には APEL と同様、 Carbon Emacs や Cocoa Emacs を利用する場合は +Makefile の EMACS の行を APEL の場合と同様に編集した後に、また which コマ +ンドで返って来た Emacs を 利用する場合はそのまま、 `sudo make install' +でインストールできるはずです。 + +*** load-path への追加 + +which コマンドで返って来た Emacs を利用する場合は設定の必要はありません。 +また、Carbon Emacs や Cocoa Emacs でも設定の必要はありません。 + +*** .emacs への追加 + +which コマンドで返って来た Emacs を利用する場合は設定の必要はありません。 +また、Carbon Emacs や Cocoa Emacs でも設定の必要はありません。 + +* Mac OS X 上で動く辞書サーバについて + +Mac OS X で利用できる SKK 辞書サーバには次のようなものがあります。 + +** skkserv + +skkserv は + + http://openlab.jp/skk/skk/skkserv/ + +から入手できます。 + +** dbskkd + +dbskkd は + + http://www.ne.jp/asahi/bdx/info/software/jp-dbskkd.html + +から入手できます。 + +** スクリプト言語で実装されたサーバ + +ruby が使用できるならば、 rskkserv が使用できます。 +rskkserv は + + http://sourceforge.jp/projects/rskkserv/ + +から入手できます。 + +* Mac OS X で利用できる SKK 実装 + +Mac OS X 上で動作する SKK ライクの IME があります。 + +** AquaSKK + +Cocoa により実装されています。SKK と共通の辞書が使用できます。 + + http://aquaskk.sourceforge.jp/ + +* 他の情報源 + +本ドキュメントと合わせて以下の情報を確認することをお勧めします。 + + http://sakito.s2.xrea.com/detail/emacs/emacs21.html + +Local variables: +mode: outline +end: diff --git a/READMEs/README.VIP.ja b/READMEs/README.VIP.ja index 3d502d74..5accf6fd 100644 --- a/READMEs/README.VIP.ja +++ b/READMEs/README.VIP.ja @@ -22,7 +22,7 @@ o vip と skk の両方を使うユーザは、さらに、以下を追加する o vip, skk の両方に関係するコードはすべて、vip.el に吸収したので、skk での個人設定は何もしなくてよい。 - + Local variables: coding: utf-8 mode: text diff --git a/READMEs/TODO.ja b/READMEs/TODO.ja index aad1b01c..6c217d01 100644 --- a/READMEs/TODO.ja +++ b/READMEs/TODO.ja @@ -338,7 +338,7 @@ skk-dcomp-multiple-activate を t と設定し、実際に dcomp 候補を複数 きない (Carbon Emacs では X の場合のように Emacs のフォント設定ができ た)。 - + Local variables: coding: utf-8 mode: outline diff --git a/SKK-CFG b/SKK-CFG index c72b8280..a0079241 100644 --- a/SKK-CFG +++ b/SKK-CFG @@ -9,37 +9,37 @@ ;;; Commentary: -;; SKK-MK $B$Nl9g!"$3$N%U%!(B -;; $B%$%k(B (SKK-CFG) $B$rJT=8$9$k$3$H$K$h$C$F$*;H$$$N4D6-$K9g$o$;$?@_Dj$r$9$k$3$H$,$G(B -;; $B$-$^$9!#$3$3$G$O@_Dj$G$-$kJQ?t$r>R2p$7!"l9g$O!"(B +;; また、インストーラが SKK の各ファイルをどこにインストールしようとしているか +;; 知りたい場合は、 ;; -;; ($BNc(B)% make what-where +;; (例)% make what-where -;; $B$rl=j$,ITE,@Z$J>l9g!"$3$N%U%!%$%k$G%$%s%9%H!<%k@h$r@_Dj(B -;; $B$7$?8e!":FEY(B make what-where $B$r$@$1$O$3$N%U%!%$%k$G$O@_Dj$G$-$:!"FC$K;XDj(B -;; $B$7$?$$>l9g$O%3%^%s%I%i%$%s$+$i;XDj$9$kI,MW$,$"$j$^$9!#(B +;; なお、Emacs の実行形式ファイル名だけはこのファイルでは設定できず、特に指定 +;; したい場合はコマンドラインから指定する必要があります。 ;; -;; ($BNc(B 1)% make install EMACS=c:/emacs-24.5/bin/emacs.exe +;; (例 1)% make install EMACS=c:/emacs-24.5/bin/emacs.exe ;; -;; ($BNc(B 2)% make install EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs +;; (例 2)% make install EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs ;; -;; $BHs(B UNIX $BE*$J(B Emacs $B4D6-$G$OFC$K%$%s%9%H!<%k@h$,E,@Z$K7hDj$5$l$J$$$3$H$,(B -;; $B$"$jF@$^$9$N$G!"$3$N%U%!%$%k$r3hMQ$7$F@_Dj$7$F$/$@$5$$!#(B +;; 非 UNIX 的な Emacs 環境では特にインストール先が適切に決定されないことが +;; あり得ますので、このファイルを活用して設定してください。 ;;; Explanation: @@ -48,70 +48,70 @@ ;; ;; PREFIX: -;; $BA4$F$N%U%!%$%k$,%$%s%9%H!<%k$5$l$k%G%#%l%/%H%j$N(B root $B%G%#%l%/%H%j!#(B -;; $B$3$NJQ?t$KCM$r@_Dj$7$J$+$C$?>l9g$O!"(BEmacs $B$,%$%s%9%H!<%k$5$l$F$$$k%Q%9(B -;; $B$+$i<+F0E*$K@_Dj$5$l$k!#(B +;; 全てのファイルがインストールされるディレクトリの root ディレクトリ。 +;; この変数に値を設定しなかった場合は、Emacs がインストールされているパス +;; から自動的に設定される。 ;; LISPDIR: ;; ADDITIONAL_LISPDIR: -;; $BDI2C$G(B load-path $B$r@_Dj$7$?$$%G%#%l%/%H%j$r;XDj$9$k!#(B -;; $BNc$($P(B skk-lookup.el $B$r%$%s%9%H!<%k$9$k:]$O!"%$%s%9%H!<%k;~$K(B lookup.el $B$r(B -;; require $B$9$k$N$G!"(Blookup $B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/%H%j$,%G%#%U%)%k(B -;; $B%H$G(B (emacs $B$,(B -q $B%*%W%7%g%sIU$-$G5/F0$5$l$?$H$-(B) load-path $B$K2C$($i$l$F$$(B -;; $B$J$$>l9g$O!"$=$N%G%#%l%/%H%j$rL@<(E*$K(B load-path $B$KDI2C$9$kI,MW$,$"$k!#$=(B -;; $B$N:]!"$3$NJQ?t$rMxMQ$7$F2<5-$N$h$&$K@_Dj$9$k!#(B +;; 追加で load-path を設定したいディレクトリを指定する。 +;; 例えば skk-lookup.el をインストールする際は、インストール時に lookup.el を +;; require するので、lookup がインストールされているディレクトリがディフォル +;; トで (emacs が -q オプション付きで起動されたとき) load-path に加えられてい +;; ない場合は、そのディレクトリを明示的に load-path に追加する必要がある。そ +;; の際、この変数を利用して下記のように設定する。 ;; ;; (setq ADDITIONAL_LISPDIR "/usr/local/lib/emacs/site-lisp/lookup") ;; ;; VERSION_SPECIFIC_LISPDIR: -;; Emacs $B$N(B version specific $B$J(B Lisp program $B$,%$%s%9%H!<%k$5$l$F$$$k%G%#%l%/(B -;; $B%H%j!#$3$N%G%#%l%/%H%j$,;XDj$5$l$k$H(B SKK_MODULES $B$N%3%s%Q%$%k$N:]$K(B -;; load-path $B$,DL$5$l!"$^$?(B SKK $B$OI8=`$G$O$3$N%G%#%l%/%H%j0J2<$K%$%s%9%H!<%k(B -;; $B$5$l$k!#(B +;; Emacs の version specific な Lisp program がインストールされているディレク +;; トリ。このディレクトリが指定されると SKK_MODULES のコンパイルの際に +;; load-path が通され、また SKK は標準ではこのディレクトリ以下にインストール +;; される。 ;; SKK_DATADIR: -;; $B%A%e!<%H%j%"%k$J$I$N%$%s%9%H!<%k@h!#(B -;; $B$3$NJQ?t$KCM$r@_Dj$7$J$+$C$?>l9g$O!"(BPREFIX $B$NCM$+$i4D6-$K1~$8$F<+F0E*$K(B -;; $B@_Dj$5$l$k!#(B +;; チュートリアルなどのインストール先。 +;; この変数に値を設定しなかった場合は、PREFIX の値から環境に応じて自動的に +;; 設定される。 ;; SKK_INFODIR: -;; skk.info ($B%X%k%W(B) $B$N%$%s%9%H!<%k@h!#(B -;; $B$3$NJQ?t$KCM$r@_Dj$7$J$+$C$?>l9g$O!"(BPREFIX $B$NCM$+$i4D6-$K1~$8$F<+F0E*$K(B -;; $B@_Dj$5$l$k!#(B +;; skk.info (ヘルプ) のインストール先。 +;; この変数に値を設定しなかった場合は、PREFIX の値から環境に応じて自動的に +;; 設定される。 ;; SKK_LISPDIR: -;; SKK $B$N(B Emacs Lisp $B$N%$%s%9%H!<%k@h!#(B -;; $B$3$NJQ?t$KCM$r@_Dj$7$J$+$C$?>l9g$O!"(BVERSION_SPECIFIC_LISPDIR $B0J2<$N(B -;; "skk" $B$H$$$&%5%V%G%#%l%/%H%j$,A*Br$5$l$k!#(B +;; SKK の Emacs Lisp のインストール先。 +;; この変数に値を設定しなかった場合は、VERSION_SPECIFIC_LISPDIR 以下の +;; "skk" というサブディレクトリが選択される。 ;; SKK_SET_JISYO: -;; skk-large-jisyo $B$NCM$r<+F0@_Dj$9$k$+$I$&$+7h$a$k!#(B -;; t $B$J$I(B non-nil $B$J$i<+F0@_Dj$9$k!#(Bnil $B$J$i$7$J$$!#(B -;; $B$3$NJQ?t$KCM$r@_Dj$7$J$+$C$?>l9g$O!"(BSKK $B%5!<%P$,MxMQ$G$-$J$$>l9g$K(B -;; $B8B$C$F(B skk-large-jisyo $B$NCM$,<+F0@_Dj$5$l$k!#(B +;; skk-large-jisyo の値を自動設定するかどうか決める。 +;; t など non-nil なら自動設定する。nil ならしない。 +;; この変数に値を設定しなかった場合は、SKK サーバが利用できない場合に +;; 限って skk-large-jisyo の値が自動設定される。 ;;; Example: ;; (setq SKK-MK-debugging nil) -;;; NTEmacs $B$N@_DjNc(B: +;;; NTEmacs の設定例: ;; (setq SKK_DATADIR "C:/usr/emacs-25.1/share/emacs/25.1/etc") ;; (setq SKK_INFODIR "C:/usr/emacs-25.1/share/info") ;; (setq SKK_LISPDIR "C:/usr/emacs-25.1/share/emacs/site-lisp/skk") ;; (setq SKK_SET_JISYO t) ;; -;; *[$BCm(B] Microsoft Windows $BMQ$N(B Emacs $B$O%P!<%8%g%s$d%S%k%I!"%G%#%9%H%j%S%e!<%7%g%s(B -;; $B$K$h$C$F%U%!%$%kG[CV$K:90[$,$"$k$3$H$,$"$j$^$9!#(B -;; make what-where $B$N=PNO$KCm0U$7$F$/$@$5$$!#(B +;; *[注] Microsoft Windows 用の Emacs はバージョンやビルド、ディストリビューション +;; によってファイル配置に差異があることがあります。 +;; make what-where の出力に注意してください。 -;;; Apple OS X $B$K$*$1$k(B self-contained $B$J(B Carbon/Cocoa Emacs $B$N@_DjNc(B: +;;; Apple OS X における self-contained な Carbon/Cocoa Emacs の設定例: ;; (setq SKK_DATADIR "/Applications/Emacs.app/Contents/Resources/etc/skk") ;; (setq SKK_INFODIR "/Applications/Emacs.app/Contents/Resources/info") ;; (setq SKK_LISPDIR "/Applications/Emacs.app/Contents/Resources/site-lisp/skk") ;; (setq SKK_SET_JISYO t) ;; -;; *[$BCm(B] Carbon/Cocoa Emacs $B$O%3%s%Q%$%k;~$N@_Dj$K$h$j(B self-contained $B$+$I$&$+(B -;; $B@_Dj$G$-$^$9!#(Bself-contained $B$G$J$$>l9g$ODL>o$N(B UNIX $BE*%U%!%$%kG[CV$K$J$j$^(B -;; $B$9!#(B +;; *[注] Carbon/Cocoa Emacs はコンパイル時の設定により self-contained かどうか +;; 設定できます。self-contained でない場合は通常の UNIX 的ファイル配置になりま +;; す。 ;;; SKK-CFG ends here diff --git a/SKK-MK b/SKK-MK index 87e15d32..3423c25c 100644 --- a/SKK-MK +++ b/SKK-MK @@ -99,8 +99,8 @@ This version of SKK requires MULE features")) (setq install-prefix (cond ((eq system-type 'windows-nt) - ;; Meadow $B$H(B NTEmacs $B$O<+8J407k7?!#$3$l$i$KBP$7$F(B APEL $B$,I8=`$G(B - ;; $B@_Dj$9$k(B install-prefix $B$OIT<+A3$J$N$G!"$3$3$G=$@5$9$k!#(B + ;; Meadow と NTEmacs は自己完結型。これらに対して APEL が標準で + ;; 設定する install-prefix は不自然なので、ここで修正する。 (setq EMACS_SELF_CONTAINED t) (if (string-match "libexec" exec-directory) (expand-file-name "share/emacs" @@ -108,16 +108,16 @@ This version of SKK requires MULE features")) (expand-file-name ".." exec-directory))) ((eq system-type 'darwin) - ;; Mac OS X (Carbon emacs, Cocoa Emacs $B$^$?$O(B OS $BIUB0$N(B Emacs) - ;; $B$G(B DDSKK $B$r(B build $B$9$k>l9g$O<+8J407k7?$+$I$&$+$rA*$Y$k!#(B - ;; $B%f!<%6$,<+8J407k7?$r;H$C$F$$$k$+$I$&$+D4$Y$k!#(B + ;; Mac OS X (Carbon emacs, Cocoa Emacs または OS 付属の Emacs) + ;; で DDSKK を build する場合は自己完結型かどうかを選べる。 + ;; ユーザが自己完結型を使っているかどうか調べる。 (let ((dir (expand-file-name ".." data-directory))) (if (string-match "/.+\\.app/Contents/Resources/?$" dir) - ;; $B<+8J407k7?(B + ;; 自己完結型 (progn (setq EMACS_SELF_CONTAINED t) dir) - ;; UNIX $BE*4D6-$HF1MM(B + ;; UNIX 的環境と同様 (expand-file-name "../../../.." data-directory)))) (t (expand-file-name "../../../.." data-directory)))) @@ -129,13 +129,13 @@ This version of SKK requires MULE features")) (setq load-path (cons (expand-file-name ".") load-path)) -;; $BJQ?t(B install-prefix $B$O(B install.el $B$GDj5A$5$l$F$*$j!"(B -;; $B$=$NCM$O(B UNIX $BE*4D6-$G$O(B "/usr/local" $B$N$h$&$JCM$H$J$k!#(B -;; $BHs(B UNIX $BE*4D6-$N$?$a$K>e5-$N(B setq $B$G(B install-prefix $B$r:F@_Dj$7$F$$$k!#(B -;; $BHs(B UNIX $BE*4D6-$G$ODL>o<+8J407k7?(B (self-contained) $B$N%U%!%$%kG[CV$r(B -;; $B$H$k!#$3$N>l9g!"FCDj$N%G%#%l%/%H%j2<$K(B etc, info, lisp, site-lisp -;; $B$J$I$N%G%#%l%/%H%j$,A4$F4^$^$l$F$$$k!#(B -;; ($BC$5$J$/$H$b%$%s%9%H!<%k>e$OLdBj$,$J$$$,!"(Bwhat-where $B$K$F%$%s%9%H!<%k$5$l$J(B -;; $B$$%W%m%0%i%`$,I=<($5$l$k$N$rKI$0$?$a!"%H%C%W%G%#%l%/%H%j$K$J$$%W%m%0%i%`$O(B -;; $B>C$7$F$*$/!#(B +;; 消さなくともインストール上は問題がないが、what-where にてインストールされな +;; いプログラムが表示されるのを防ぐため、トップディレクトリにないプログラムは +;; 消しておく。 (let ((modules SKK_MODULES)) (while modules (unless (or - ;; skk-autoloads.el $B$O<+F0@8@.$5$l$k$N$G$^$@B8:_$7$J$$!#(B + ;; skk-autoloads.el は自動生成されるのでまだ存在しない。 (memq (car modules) '(skk-autoloads)) (file-exists-p (concat (symbol-name (car modules)) ".el"))) @@ -375,7 +375,7 @@ This version of SKK requires MULE features")) ;;; [FUNCTIONS] (defun SKK-MK-make-setup-file (spec) - ;; SPEC $B$O8rBe%j%9%H!#(B + ;; SPEC は交代リスト。 (with-temp-buffer (save-excursion (insert-file-contents "skk-setup.el.in") @@ -606,8 +606,8 @@ This version of SKK requires MULE features")) (install-info info-file dir-file nil nil nil) (setq SKK_INFO_DIR_FILE dir-file)))) -;;; 2014-12-31, skk.texi $B$r(B utf-8 $B$H$7$?$3$H$KH<$$!"ITMW$H$J$C$?$,!"(B -;;; $B>-MhE*$K(B pre-format $B$rMW$9$k$3$H$,9M$($i$l$k$?$a!"OHAH$_$O;D$9!#(B +;;; 2014-12-31, skk.texi を utf-8 としたことに伴い、不要となったが、 +;;; 将来的に pre-format を要することが考えられるため、枠組みは残す。 (defun SKK-MK-texinfo-pre-format () ;; http://mail.ring.gr.jp/skk/201112/msg00023.html ;; (unless (and (featurep 'emacs) @@ -765,7 +765,7 @@ SKK dictionaries: (kill-buffer buf)))) ;;; DDSKK Interactive Installer (Jan 2011) -;;; Lookup $B$N(B install.el $B$r;29M$K$5$;$F$$$?$@$-$^$7$?!#(B +;;; Lookup の install.el を参考にさせていただきました。 (defun install-check-directory (directory) (and (not (file-exists-p directory)) @@ -794,15 +794,15 @@ SKK dictionaries: (switch-to-buffer (generate-new-buffer "*DDSKK Installer*")) (insert (version)) (insert "\n===================\n") - (insert "DDSKK $B%$%s%9%H!<%i(B\n") + (insert "DDSKK インストーラ\n") (insert "===================\n\n") (insert "DDSKK " VERSION-STRING - " $B$N%$%s%9%H!<%k$r;O$a$^$9!#(B\n") - (insert "C-g $B$r%?%$%W$9$k$H!"$$$D$G$bCfCG$G$-$^$9!#(B\n\n") + " のインストールを始めます。\n") + (insert "C-g をタイプすると、いつでも中断できます。\n\n") - (insert "$B$3$N%?%$%_%s%0$G<-=q%U%!%$%k$r%@%&%s%m!<%I$9$k$3$H$b$G$-$^$9!#(B:\n") - (when (yes-or-no-p "$B%@%&%s%m!<%I$7$^$9$+!)(B ") + (insert "このタイミングで辞書ファイルをダウンロードすることもできます。:\n") + (when (yes-or-no-p "ダウンロードしますか? ") (load-file (expand-file-name "./skk-develop.el")) (skk-get (expand-file-name "./dic")) (insert (format " @@ -816,22 +816,22 @@ SKK dictionaries: (expand-file-name "./dic") ))) - (insert "DDSKK $B$N%$%s%9%H!<%k@h$rF~NO$7$F$/$@$5$$(B:\n") + (insert "DDSKK のインストール先を入力してください:\n") (setq SKK_LISPDIR (install-check-directory (read-file-name "SKK_LISPDIR: " SKK_LISPDIR SKK_LISPDIR))) (insert " => " SKK_LISPDIR "\n\n") (sit-for 0) - (insert "Info $B%U%!%$%k$rCV$/%G%#%l%/%H%j$rF~NO$7$F$/$@$5$$(B:\n") + (insert "Info ファイルを置くディレクトリを入力してください:\n") (setq SKK_INFODIR (install-check-directory (read-file-name "SKK_INFODIR: " SKK_INFODIR SKK_INFODIR))) (insert " => " SKK_INFODIR "\n\n") (sit-for 0) - (insert "$B%A%e!<%H%j%"%k!&%U%!%$%k$rCV$/%G%#%l%/%H%j$rF~NO$7$F$/$@$5$$(B:\n") + (insert "チュートリアル・ファイルを置くディレクトリを入力してください:\n") (setq SKK_DATADIR (install-check-directory (read-file-name "SKK_DATADIR: " SKK_DATADIR SKK_DATADIR))) (insert " => " SKK_DATADIR "\n\n") (sit-for 0) - (insert "$B3NG'$7$F$/$@$5$$!#(B\n") + (insert "確認してください。\n") (insert (format "SKK modules: %s\n => %s\n\n" (mapconcat 'symbol-name SKK_MODULES ", ") SKK_LISPDIR)) @@ -850,28 +850,28 @@ SKK dictionaries: (insert (format "SKK dictionaries: %s\n => %s\n\n" (mapconcat 'identity exists ", ") SKK_DATADIR))) - (insert "$B3F%G%#%l%/%H%j$rD{@5$9$k$K$O!"$3$N%$%s%9%H!<%i$rCfCG!J(BC-g $B$r%?%$%W!K$7$F:G=i$+$i$d$jD>$7$F$/$@$5$$!J(BSKK-CFG $B$G@_Dj$9$k$3$H$b2DG=$G$9!K!#(B\n") - (if (yes-or-no-p "$B%$%s%9%H!<%k$rB39T$7$^$9$+!)(B ") + (insert "各ディレクトリを訂正するには、このインストーラを中断(C-g をタイプ)して最初からやり直してください(SKK-CFG で設定することも可能です)。\n") + (if (yes-or-no-p "インストールを続行しますか? ") nil - (error "$B%$%s%9%H!<%k$rCfCG$7$^$7$?!#(B"))) + (error "インストールを中断しました。"))) ;; SKK-MK-compile (if noninteractive nil (let (enable-local-eval) - (insert "skk-autoloads.el $B$r@8@.Cf(B...") (sit-for 0) + (insert "skk-autoloads.el を生成中...") (sit-for 0) (SKK-MK-generate-autoloads-el) (insert "done\n") - (insert "skk-autoloads.el $B$rFI$_9~$_Cf(B...") (sit-for 0) + (insert "skk-autoloads.el を読み込み中...") (sit-for 0) (load (expand-file-name "skk-autoloads.el")) (insert "done\n") - (insert "skk.el $B$rFI$_9~$_Cf(B...") (sit-for 0) + (insert "skk.el を読み込み中...") (sit-for 0) (require 'skk (expand-file-name "skk.el")) (insert "done\n") - (insert "elisp $B%U%!%$%k$N%3%s%Q%$%kCf(B...") (sit-for 0) + (insert "elisp ファイルのコンパイル中...") (sit-for 0) (compile-elisp-modules SKK_MODULES (expand-file-name ".")) (switch-to-buffer (get-buffer "*DDSKK Installer*")) @@ -881,7 +881,7 @@ SKK dictionaries: ;; SKK-MK-install-elc (if noninteractive nil - (insert "elisp $B%U%!%$%k$N%$%s%9%H!<%kCf(B...") (sit-for 0) + (insert "elisp ファイルのインストール中...") (sit-for 0) (SKK-MK-install-elc) (switch-to-buffer (get-buffer "*DDSKK Installer*")) (insert "done\n")) @@ -889,46 +889,46 @@ SKK dictionaries: ;; SKK-MK-install-info (if noninteractive nil - (insert "info $B$N%$%s%9%H!<%kCf(B...") (sit-for 0) + (insert "info のインストール中...") (sit-for 0) (SKK-MK-install-info) (insert "done\n") - (insert "info/dir $B%N!<%IDI2CCf(B...") (sit-for 0) + (insert "info/dir ノード追加中...") (sit-for 0) (SKK-MK-install-info-1) (insert "done\n")) ;; Congratulations! (if noninteractive nil - (insert "\n\nCongratulations!\nDDSKK $B$N%$%s%9%H!<%k$,40N;$7$^$7$?!#(B + (insert "\n\nCongratulations!\nDDSKK のインストールが完了しました。 -load-path $B$N@_Dj(B +load-path の設定 ---------------- -$Be5-$N@_DjFbMF$r(B ~/.emacs $B$K5-:\$7$F(B Emacs $B$r:F5/F0$9$l$P(B DDSKK $B$r;HMQ$9(B -$B$k$3$H$,$G$-$k$O$:$G$9!#(B -$B$b$7(B DDSKK $B$,5/F0$7$J$$$h$&$G$"$l$P(B ~/.emacs $B$K(B +上記の設定内容を ~/.emacs に記載して Emacs を再起動すれば DDSKK を使用す +ることができるはずです。 +もし DDSKK が起動しないようであれば ~/.emacs に (require 'skk-autoloads) -$B$H5-:\$7$F!"$"$i$?$a$F(B Emacs $B$r:F5/F0$7$F$/$@$5$$!#(B +と記載して、あらためて Emacs を再起動してください。 -DDSKK $B$N@_Dj(B +DDSKK の設定 ------------ -etc/dot.emacs $B$H(B etc/dot.skk $B$K@_DjNc$,5s$2$i$l$F$$$^$9$N$G;29M$K$7$F$/$@$5$$!#(B -Info $B$b$*FI$_$/$@$5$$!#(B +etc/dot.emacs と etc/dot.skk に設定例が挙げられていますので参考にしてください。 +Info もお読みください。 ")) (if noninteractive diff --git a/bayesian/bskk b/bayesian/bskk index 4f3abb05..cc4c1ab4 100755 --- a/bayesian/bskk +++ b/bayesian/bskk @@ -24,18 +24,18 @@ ## along with this program. If not, see . ### Commentary: -## Ȥϡskk-bayesian.el Commentary 򻲾 +## 使い方は、skk-bayesian.el の Commentary を参照 ### Specifications: -## bskk λˡ -s ץ󤬤뤫ˤ餺TERM ʥ -## 뤳ȡ +## bskk を終了させる方法は -s オプションがあるかによらず、TERM シグナル +## を送ること。 -## TERM ʥľ˽λ롣¸ϹԤʤ +## TERM シグナルを受け取ると直ちに終了する。履歴の保存は行わない。 -## emacs Ͻλ bskk Ф COMMAND_SAVE ¸򤵤 -## ʤƤϤʤ +## emacs は終了の前に bskk に対して COMMAND_SAVE を送り履歴の保存をさせ +## なくてはいけない。 ### TODO: ## /home/USER/bin/bskk:325: warning: assigned but unused variable - adr @@ -66,8 +66,8 @@ end class Distribution public - # obj.class == String -> e.g. obj="#1/#2/" - # ԥɤޤǤϤʤ + # obj.class == String -> e.g. obj="着#1/着#2/" + # 改行コードを含んではいけない def initialize( obj ) @word2count = Hash.new(0) @total_count = 0 @@ -110,7 +110,7 @@ class Distribution end private - ## @total_count Bignum ʤ顢Fixnum ˼ޤ褦ˤ + ## @total_count が Bignum なら、Fixnum に収まるようにする def decrement # = NEWS for Ruby 2.4.0 # == Changes since the 2.3.0 release @@ -119,7 +119,7 @@ class Distribution # * Fixnum and Bignum are unified into Integer [Feature #12005] # /home/USER/bin/bskk:116: warning: constant ::Bignum is deprecated # - # Bignum Fixnum ζ̤ʤΤǡʤˤʤǤ褤ΤǤϡ + # Bignum と Fixnum の区別がないので、なにも処理しないでよいのでは。 if 2.3 < RUBY_VERSION.to_f return end @@ -189,9 +189,9 @@ class DB end end - ## - ## word_str : "" - ## prefix_list : ["", "", "", "", ""] + ## 引数の例 + ## word_str : "着" + ## prefix_list : ["、", "を", "服", "の", "そ"] def add_history( word_str, prefix_list ) check_type( word_str, String ) check_type( prefix_list, Array ) @@ -216,10 +216,10 @@ class DB } end - ## - ## entries : ["", "", ""] - ## prefix_list : ["", "", "", "", ""] - ## return : [["", "", ""], [0.4, 0.2, 0.1]] + ## 引数の例 + ## entries : ["斬", "切", "着"] + ## prefix_list : ["、", "を", "服", "の", "そ"] + ## return : [["着", "斬", "切"], [0.4, 0.2, 0.1]] def sort( entries, prefix_list ) check_type( entries, Array ) check_type( prefix_list, Array ) @@ -239,7 +239,7 @@ class DB entry[1] += prob * weights[p_i] } } - ## ߽˥ + ## 降順にソート sorted_entries.sort!{ |e1, e2| e2[1] <=> e1[1] } @@ -297,8 +297,8 @@ class DB debug_log( "marchasl() took " + (Time.now-time).to_f.to_s + "(sec)." ) end - ## ʬۤνŤߤ֤ - ## ֤ͤϡArray: [w_1, w_2, .., w_n] + ## 混合分布の重みを返す + ## 返り値は、Array: [w_1, w_2, .., w_n] ## p( word | p_1, .., p_n ) ## = \sum_{i=1}^n p( word | p_i ) * w_i ## "p_n p_{n-1} .. p_1 word" @@ -320,10 +320,10 @@ end ## ensuring-bind tcp server -## TCPServer ϡbind 򤦤ޤƤʤ褦ruby 1.8.1 -## TCPServer.open ǡbind 褦bskk 2ư -## ʤ3Ĥ̵ä -## ܤɤäƤʤ +## TCPServer は、bind をうまくしていないようだ。ruby 1.8.1 +## TCPServer.open で、bind されるようだが、bskk を2つ動かせた。 +## なぜか、3つは無理だった。 +## 詳しくは追っていない。 class EBTCPServer require "socket" include Socket::Constants @@ -334,7 +334,7 @@ class EBTCPServer @soc_waiting.listen( backlog ) end - ## Socket Υ󥹥󥹤֤ + ## Socket のインスタンスを返す def accept if @soc_waiting soc, adr = @soc_waiting.accept @@ -384,11 +384,11 @@ def split_line( line ) return array end -# out ϡemacs buffer ˽Ϥ +# out は、emacs の buffer に出力される def serve( db, input, out, history_file, history_file_bak ) - # emacs ϡǽβԤȤä buffer ɾ롣 - # 2 ܰʹߤɾɬפʾϤƤϤʤ - # ޤ2 ܰʹߤϥȥȤɬפ롣 + # emacs は、最初の改行を受けとった時点で buffer を評価する。 + # 2 行目以降に評価の必要な情報を出力してはいけない。 + # また、2 行目以降はコメントアウトする必要がある。 debug_log( "start" ) begin # mail loop @@ -403,7 +403,7 @@ def serve( db, input, out, history_file, history_file_bak ) out.puts "(" + sorted_entries.map!{|entry| entry.inspect }.join( " " ) + ")" - # out.puts ";;(\"#{probs.join("\" \"")}\")" # ruby 1.6.8 ǡԶ + # out.puts ";;(\"#{probs.join("\" \"")}\")" # ruby 1.6.8 で、不具合 out.puts ";;(\""+ probs.join( "\" \"" ) + "\")" out.puts ";;OK." when COMMAND_ADD @@ -520,7 +520,7 @@ def mode_serve( history_file, server, port ) else serve( db, STDIN, STDOUT, history_file, history_file_bak ) end - rescue SignalException => e # TERM ʳ + rescue SignalException => e # TERM 以外 debug_log( "SIG #{e.to_s}; " + Time.now.to_s ) STDERR.puts "Signal #{e.to_s}" STDERR.puts "use TERM signal to halt bskk." @@ -591,7 +591,7 @@ def main mode_serve( history_file, server, port ) end -# Υե뤬¹ԥեȤƼ¹Ԥ줿 +# このファイルが実行ファイルとして実行された時 if $0 == __FILE__ main end diff --git a/bayesian/skk-bayesian.el b/bayesian/skk-bayesian.el index a89b6de2..02e5fbe3 100644 --- a/bayesian/skk-bayesian.el +++ b/bayesian/skk-bayesian.el @@ -24,67 +24,67 @@ ;;; Commentary: -;; skk-study $B$,D>A0$NMzNr$N$_$r;HMQ$9$k$N$G!"$3$l$r3HD%$7$?$$$H;W$C$?$N(B -;; $B$,A4$F$NF05!$G$9!#(BSKK $B$H$=$N%3%_%e%K%F%#$K46 -;; $BNc(B: (skk-bayesian-context-len = 5 $B$N;~(B) -;; $B!V$=$NI~$r!"!W$N8e$K!"$-(Br $B$rJQ49$9$k>u67$K$*$$$F!"(B -;; entry $B$,!"(B("$B@Z(B" "$BCe(B" "$B;B(B") $B$G$"$k>u67$r9M$($k!#(B -;; $B$3$N(B enrty $B$r0J2<$N3NN($r7W;;$9$k$3$H$G!"%=!<%H$9$k!#(B +;; <動作> +;; 例: (skk-bayesian-context-len = 5 の時) +;; 「その服を、」の後に、きr を変換する状況において、 +;; entry が、("切" "着" "斬") である状況を考える。 +;; この enrty を以下の確率を計算することで、ソートする。 -;; Prob( word="$B@Z(B" | p_1="$B!"(B", p_2="$B$r(B", p_3="$BI~(B", p_4="$B$N(B", p_5="$B$=(B" ) -;; Prob( word="$BCe(B" | p_1="$B!"(B", p_2="$B$r(B", p_3="$BI~(B", p_4="$B$N(B", p_5="$B$=(B" ) -;; Prob( word="$B;B(B" | p_1="$B!"(B", p_2="$B$r(B", p_3="$BI~(B", p_4="$B$N(B", p_5="$B$=(B" ) +;; Prob( word="切" | p_1="、", p_2="を", p_3="服", p_4="の", p_5="そ" ) +;; Prob( word="着" | p_1="、", p_2="を", p_3="服", p_4="の", p_5="そ" ) +;; Prob( word="斬" | p_1="、", p_2="を", p_3="服", p_4="の", p_5="そ" ) -;; $B3X=,$9$Y$-%Q%i%a!<%?$N?t$r8:$i$9$?$a!"$3$N3NN(%b%G%k$r0J2<$N$h$&$J(B -;; $B:.9gJ,I[$G$"$k$H2>Dj$9$k!#(B +;; 学習すべきパラメータの数を減らすため、この確率モデルを以下のような +;; 混合分布であると仮定する。 -;; Prob( word="$B@Z(B" | p_1="$B!"(B", p_2="$B$r(B", p_3="$BI~(B", p_4="$B$N(B", p_5="$B$=(B" ) -;; ~= \sum_{i=1}^5 w_i * Prob( word="$B@Z(B" | p_i ) +;; Prob( word="切" | p_1="、", p_2="を", p_3="服", p_4="の", p_5="そ" ) +;; ~= \sum_{i=1}^5 w_i * Prob( word="切" | p_i ) -;; $B$?$@$7!"(Bw_i $B$O:.9gJ,I[$N=E$_$G$"$k!#(B +;; ただし、w_i は混合分布の重みである。 -;; <$B2]Bj(B> -;; 1. bskk $B$,C1=c$K:n$i$l$F$$$k$N$G!"JQ49$NMzNr$,Bg$-$/$J$C$?;~$K!"F0:n(B -;; $BB.EY$HI,MW$J%a%b%j$NNL$,?4G[!#(B -;; 2. $B:.9gJ,I[$N=E$_(B w_i $B$O8=:_!"(Bw_1, w_2, ..., w_n $B$KBP$7$F!"(B +;; <課題> +;; 1. bskk が単純に作られているので、変換の履歴が大きくなった時に、動作 +;; 速度と必要なメモリの量が心配。 +;; 2. 混合分布の重み w_i は現在、w_1, w_2, ..., w_n に対して、 ;; w_i : w_j = (n-i) : (n-j) -;; $B$H$J$k$h$&$KCM$r7h$a$F$$$k!#K\Mh!"$$$:$l$b1#$lJQ?t$H$7$F!"(BEM$B%"%k(B -;; $B%4%j%:%`(B, VBA $BEy$K$h$j3X=,$9$Y$-$+$b$7$l$J$$!#(B -;; 3. skk-bayesian-context-len $B$OJQ?t$K$7$F$$$k$N$G!"%f!<%6$,7hDj$G$-$k(B -;; $B$,!"M}A[E*$K$O%b%G%k$N?dDjLdBj$H$H$i$($F!"3X=,%G!<%?$+$i7hDj$9$Y(B -;; $B$-$@$m$&!#$^$?!"$"$kDxEY!"3X=,$7$?8e$K(B skk-bayesian-context-len$B$r(B -;; $BBg$-$$CM$KJQ99$9$k$N$O!"?dDj$K0-1F6A$rM?$($=$&!#(B -;; 4. 2$B$H(B3$B$K=E$J$k$,!"Cx:n8"$N?4G[$r$7$J$/$F$b$h$$%3!<%Q%9$+$i!"3X=,$r9T$$(B -;; skk-bayesian-context-len $B$H(B $B:.9gJ,I[$N=E$_$r7hDj$7$?$$!#(B -;; 5. bskk $B$H$N%W%m%H%3%k$,AG?M=-$$!#(B - - -;; <$B;H$$J}(B> -;; ~/.skk $B$K!"(B(require 'skk-bayesian) $B$H=q$$$F2<$5$$!#(B -;; skk-study $B$H$NJ;MQ$O5!G=$,=E$J$k$N$G!"$*4+$a$G$-$^$;$s!#(B - -;; $B$^$?!"(Bbskk $B$O!"%5%V%W%m%;%9$+%5!<%P$H$7$F;HMQ$7$^$9!#(B -;; *$B%5%V%W%m%;%9(B -;; $B%5%V%W%m%;%9$H$7$F;HMQ$9$k$K$O!"(Bbskk $B$r4D6-JQ?t(B PATH $B$NDL$C$?>l=j$K(B -;; $BCV$/$@$1$G$9!#(B -;; $BLdBj$O!"$$$/$D$b(B emacs $B$r5/F0$9$k$H(B ~/.skk-bayesian $B$O:G8e$K99?7$7$?(B -;; emacs $B$K0M$k$N$G!"B>$N(B emacs $B$G$N3X=,%G!<%?$OJ]B8$5$l$^$;$s!#(B -;; *$B%5!<%P(B -;; bskk $B$r%5!<%P$H$7$F;HMQ$9$k$K$O!"(Bemacs $B$,(B skk-bayesian.el $B$rFI$_9~(B -;; $B$`A0$K!"(B +;; となるように値を決めている。本来、いずれも隠れ変数として、EMアル +;; ゴリズム, VBA 等により学習すべきかもしれない。 +;; 3. skk-bayesian-context-len は変数にしているので、ユーザが決定できる +;; が、理想的にはモデルの推定問題ととらえて、学習データから決定すべ +;; きだろう。また、ある程度、学習した後に skk-bayesian-context-lenを +;; 大きい値に変更するのは、推定に悪影響を与えそう。 +;; 4. 2と3に重なるが、著作権の心配をしなくてもよいコーパスから、学習を行い +;; skk-bayesian-context-len と 混合分布の重みを決定したい。 +;; 5. bskk とのプロトコルが素人臭い。 + + +;; <使い方> +;; ~/.skk に、(require 'skk-bayesian) と書いて下さい。 +;; skk-study との併用は機能が重なるので、お勧めできません。 + +;; また、bskk は、サブプロセスかサーバとして使用します。 +;; *サブプロセス +;; サブプロセスとして使用するには、bskk を環境変数 PATH の通った場所に +;; 置くだけです。 +;; 問題は、いくつも emacs を起動すると ~/.skk-bayesian は最後に更新した +;; emacs に依るので、他の emacs での学習データは保存されません。 +;; *サーバ +;; bskk をサーバとして使用するには、emacs が skk-bayesian.el を読み込 +;; む前に、 ;; % bskk -f ~/.skk-bayesian -s -;; $B$H -;; $B3F4X?t$H!"(Bbskk $B$N%3%a%s%HFb$N(B Specifications $B$K=q$+$l$F$$$k!#(B +;; <仕様の覚え書き> +;; 各関数と、bskk のコメント内の Specifications に書かれている。 ;;; Code: @@ -101,24 +101,24 @@ ;;; variables for skk-bayesian ;;; (defcustom skk-bayesian-prefer-server nil - "*non-nil $B$J$i$P!"(B`skk-bayesian-host' $B$N(B `skk-bayesian-port' $B$K@\B3$9$k!#(B -$B$=$&$G$J$1$l$P!"(Bbskk $B$r%5%V%W%m%;%9$H$7$FN)$A>e$2$k!#(B" + "*non-nil ならば、`skk-bayesian-host' の `skk-bayesian-port' に接続する。 +そうでなければ、bskk をサブプロセスとして立ち上げる。" :type 'boolean :group 'skk-bayesian) (defcustom skk-bayesian-port 51178 - "*`skk-bayesian-host' $B$K@\B3$9$k%]!<%HHV9f!#(B -$B%5!<%P$K@\B3$9$k$K$O(B `skk-bayesian-prefer-server' $B$,(B non-nil $B$G$"$kI,MW$,$"$k!#(B" + "*`skk-bayesian-host' に接続するポート番号。 +サーバに接続するには `skk-bayesian-prefer-server' が non-nil である必要がある。" :type 'integer :group 'skk-bayesian) (defcustom skk-bayesian-host "localhost" - "*`skk-bayesian-prefer-server' $B$,(B non-nil $B$N;~$K@\B3$9$k%[%9%HL>!#(B" + "*`skk-bayesian-prefer-server' が non-nil の時に接続するホスト名。" :type 'string :group 'skk-bayesian) (defcustom skk-bayesian-context-len 20 - "*$B3X=,$dM=B,$K;HMQ$9$k!"JQ498l$ND>A0$NJ8;z?t!#(B" + "*学習や予測に使用する、変換語の直前の文字数。" :type 'integer :group 'skk-bayesian) @@ -126,28 +126,28 @@ (if skk-user-directory (expand-file-name "bayesian" skk-user-directory) (convert-standard-filename "~/.skk-bayesian")) - "*$BMzNr$r5-O?$9$k%U%!%$%kL>!#(B -`skk-bayesian-prefer-server' $B$,(B non-nil $B$N;~$K$N$_;HMQ$5$l$k!#(B" + "*履歴を記録するファイル名。 +`skk-bayesian-prefer-server' が non-nil の時にのみ使用される。" :type 'file :group 'skk-bayesian) (defcustom skk-bayesian-debug nil - "*non-nil $B$J$i$P!"%G%P%C%0MQ$N%a%C%;!<%8$rI=<($9$k!#(B" - ;; bskk $B$N%m%0(B = $HOME/tmp/bskk.log + "*non-nil ならば、デバッグ用のメッセージを表示する。" + ;; bskk のログ = $HOME/tmp/bskk.log :type 'boolean :group 'skk-bayesian) (defcustom skk-bayesian-max-commands-to-wait-for 15 - "*$B3NDj8l$r3X=,$9$k$^$G$KBT$D%3%^%s%I$N?t!#(B -$B3NDj$N8e$K(B `skk-bayesian-max-commands-to-wait-for' $B2s$N%3%^%s%I(B -$B$N$&$A$K3NDj8l(B($BAw$j2>L>$r4^$`(B)$B$,JQ99$5$l$J$1$l$P!"$=$N3NDj8l$rJ]B8(B -$B$9$k!#(B`skk-bayesian-max-commands-to-wait-for' $B$,%<%m0J2<$J$i$P!"3NDj8e!"(B -$BD>$A$KMzNr$KJ]B8$9$k!#(B" + "*確定語を学習するまでに待つコマンドの数。 +確定の後に `skk-bayesian-max-commands-to-wait-for' 回のコマンド +のうちに確定語(送り仮名を含む)が変更されなければ、その確定語を保存 +する。`skk-bayesian-max-commands-to-wait-for' がゼロ以下ならば、確定後、 +直ちに履歴に保存する。" :type 'integer :group 'skk-bayesian) (defcustom skk-bayesian-corpus-make nil - "*nin-nil $B$J$i$P!"(Bcorpus $B$r(B `skk-bayesian-corpus-file' $B$K:n@.$9$k!#(B" + "*nin-nil ならば、corpus を `skk-bayesian-corpus-file' に作成する。" :type 'boolean :group 'skk-bayesian) @@ -155,19 +155,19 @@ (if skk-user-directory (expand-file-name "corpus" skk-user-directory) (convert-standard-filename "~/.skk-corpus")) - "*corpus $B$rJ]B8$9$k%U%!%$%k!#(B" + "*corpus を保存するファイル。" :type 'file :group 'skk-bayesian) ;; internal variables -(defvar skk-bayesian-last-context nil "*$B3NDj8l$ND>A0$NJ8;zNs!#(B") +(defvar skk-bayesian-last-context nil "*確定語の直前の文字列。") (defvar skk-bayesian-number-of-command-after-kakutei 0 - "*$BA02s$N3NDj$+$i8=:_$^$G$N%3%^%s%I$N2s?t!#(B") -(defvar skk-bayesian-pending-data-alist nil "*non-nil $B$J$i$P(B pending $BCf!#(B") + "*前回の確定から現在までのコマンドの回数。") +(defvar skk-bayesian-pending-data-alist nil "*non-nil ならば pending 中。") (defvar skk-bayesian-process nil) (defvar skk-bayesian-corpus-buffer nil) (defvar skk-bayesian-corpus-last-sorted-entry nil - "*$BA02s(B skk-bayesian-search $B$GJV$7$?(B entry") + "*前回 skk-bayesian-search で返した entry") ;; constants (defconst skk-bayesian-command-sort "#sort\n") @@ -185,19 +185,19 @@ (message ,STRING ,@ARGS))) (defsubst skk-bayesian-process-live-p () - "`skk-bayesian-process' $B$,(B non-nil $B$+$D$=$N%W%m%;%9$,o$N%5%V%W%m%;%9$J$i!"(Brun$B!#(B - ;; $B$3$l$i$O!"GSB>E*!#(B + ;; ネットワークプロセスなら、open, 通常のサブプロセスなら、run。 + ;; これらは、排他的。 (memq (process-status skk-bayesian-process) '(open run)))) (defsubst skk-bayesian-make-pending-data-alist - ;; henkan-point $B$O3NDj8l$N:G=i$NJ8;z$N0LCV$N(B marker + ;; henkan-point は確定語の最初の文字の位置の marker (word okurigana midasi buffer henkan-point context) (setq skk-bayesian-pending-data-alist (if (and word midasi buffer henkan-point context) - ;; $BFC$K(B henkan-point $B$,(B nil $B$K$J$j0W$$$h$&$@!#(B - ;; okurigana $B$O!"(Bnil $B$G$b$h$$!#(B + ;; 特に henkan-point が nil になり易いようだ。 + ;; okurigana は、nil でもよい。 (list (cons 'word word) (cons 'okurigana okurigana) (cons 'midasi midasi) @@ -211,7 +211,7 @@ (error (concat "Error; invalid key=" (prin1-to-string 'key))))) (defsubst skk-bayesian-read-process-output (input) - "INPUT $B$r(B `skk-bayesian-process' $B$KAw$k!#$=$N8e!"(B\\n $B$,(B `skk-bayesian-process' $B$N%P%C%U%!$K=PNO$5$l$k$^$GBT$A!"(B\\n $B$,=PNO$5$l$?;~E@$G!"%P%C%U%!$rI>2A$7JV$9!#(B" + "INPUT を `skk-bayesian-process' に送る。その後、\\n が `skk-bayesian-process' のバッファに出力されるまで待ち、\\n が出力された時点で、バッファを評価し返す。" (when input (skk-bayesian-init) (with-current-buffer (process-buffer skk-bayesian-process) @@ -224,19 +224,19 @@ (condition-case err (read (current-buffer)) (error (skk-message "Error while reading the out put of bskk; %s" - "bskk $B$N=PNO$NFI$_9~$_Cf$K%(%i!<(B; %s" + "bskk の出力の読み込み中にエラー; %s" (error-message-string err)) nil))))) (defun skk-bayesian-make-context (henkan-buffer) - ;; $B$b$7(B"$B"'(B"$B$,$"$l$P!"(B`skk-bayesian-context-len' $B$ND9$5$NJ8;zNs$rJV$9!#(B - ;; $B$J$1$l$P!"(Bnil$B!#(B + ;; もし"▼"があれば、`skk-bayesian-context-len' の長さの文字列を返す。 + ;; なければ、nil。 (let ((raw-text (with-current-buffer henkan-buffer (let ((kakutei-symbol-point (save-excursion - ;; 100 $BJ8;zA0$^$G$7$+"'$r8!:w$7$J$$(B - (search-backward "$B"'(B" (max (point-min) (- (point) 100)) t)))) + ;; 100 文字前までしか▼を検索しない + (search-backward "▼" (max (point-min) (- (point) 100)) t)))) (if kakutei-symbol-point (buffer-substring-no-properties (max (- kakutei-symbol-point skk-bayesian-context-len) @@ -246,8 +246,8 @@ (with-temp-buffer (let ((min (point-min))) (insert raw-text) - ;; $BJ8;zNs$+$i2~9T$r(B join-line $B$G=|$/!#(B - ;; $BC"$7!"F|K\8l$NCf$N2~9T$O6uGr$,F~$k$N$G!"$=$l$r=|$/!#(B + ;; 文字列から改行を join-line で除く。 + ;; 但し、日本語の中の改行は空白が入るので、それを除く。 (while (not (eq min (point))) (goto-char (point-max)) (join-line) @@ -267,16 +267,16 @@ nil))) (defun skk-bayesian-search (henkan-buffer midasi okurigana entry) - ;; $B%=!<%H$7$?!"(Bentry $B$rJV$9(B - ;; $B0z?t$NNc(B - ;; entry : ("$B;B(B" "$B@Z(B" "$BCe(B") - ;; midasi: $B$-(Br - ;; okurigana: $B$k(B + ;; ソートした、entry を返す + ;; 引数の例 + ;; entry : ("斬" "切" "着") + ;; midasi: きr + ;; okurigana: る (setq skk-bayesian-last-context nil) (if (= 1 (length entry)) entry (let ((context (skk-bayesian-make-context henkan-buffer)) - ;; $BKvHx$N(B "/" $B$OB?J,ITMW$@$,(B + ;; 末尾の "/" は多分不要だが (entry-str (concat (mapconcat #'identity entry "/") "/")) sorted-entry) ;; send context to skk-bayesian-process @@ -298,11 +298,11 @@ entry)))) (defun skk-bayesian-update (henkan-buffer midasi okurigana word purge) - (when skk-bayesian-last-context ;; entry $B$NMWAG$,(B 1 $B$N;~$O!"(Bnil + (when skk-bayesian-last-context ;; entry の要素が 1 の時は、nil (if (and skk-bayesian-corpus-make skk-bayesian-corpus-last-sorted-entry (not (string= word (car skk-bayesian-corpus-last-sorted-entry)))) - ;; $BBh0l8uJd$,4V0c$$$@$C$?;~(B + ;; 第一候補が間違いだった時 (skk-bayesian-corpus-append 'bad-inference skk-bayesian-last-context midasi @@ -310,20 +310,20 @@ (car skk-bayesian-corpus-last-sorted-entry))) (add-hook 'post-command-hook 'skk-bayesian-check-modification-after-kakutei) (if skk-bayesian-pending-data-alist - ;; pending $B$7$F$$$?$N$rJ]B8(B + ;; pending していたのを保存 (skk-bayesian-add-to-history)) - ;; pending $B3+;O(B + ;; pending 開始 (skk-bayesian-debug-message "Update: pending... word=%s" word) - (setq skk-bayesian-number-of-command-after-kakutei -1);; $B3NDj$K(B 1 $B2s$+$+$k$N$G(B -1 + (setq skk-bayesian-number-of-command-after-kakutei -1);; 確定に 1 回かかるので -1 (skk-bayesian-make-pending-data-alist word okurigana midasi henkan-buffer (with-current-buffer henkan-buffer - ;; skk-get-last-henkan-datum $B$O!"(Bbuffer-local $B$JJQ?t$rMQ$$$F$$$k!#(B - ;; skk-get-last-henkan-datum $B$O!"(Bskk-update-end-function $B$rFI$s(B - ;; $B$@8e$K99?7$5$l$k!#$3$3$G$O;H$($J$$!#(B + ;; skk-get-last-henkan-datum は、buffer-local な変数を用いている。 + ;; skk-get-last-henkan-datum は、skk-update-end-function を読ん + ;; だ後に更新される。ここでは使えない。 (if skk-undo-kakutei-word-only (point-marker) (save-excursion @@ -331,17 +331,17 @@ (forward-char (- 0 (length okurigana) - ;; word $B$,Cml9g(B -$B$ODI2C$7$J$$!#;29M(B:`skk-bayesian-max-commands-to-wait-for'$B!#(B" - ;; $B0MB8$7$F$$$kJQ?t(B + "`skk-bayesian-last-kakutei-word' を、bskk の履歴に追加する。も +し、`skk-bayesian-last-kakutei-word' が変換後に修正されていた場合 +は追加しない。参考:`skk-bayesian-max-commands-to-wait-for'。" + ;; 依存している変数 ;; skk-bayesian-pending-data-alist - ;; $BCm0U(B - ;; skk-get-last-henkan-datum $B$O!"?7$7$$3NDj$,(B pending $BCf$K5/$3$k$N$G!";H$($J$$!#(B + ;; 注意 + ;; skk-get-last-henkan-datum は、新しい確定が pending 中に起こるので、使えない。 (if (not (skk-bayesian-process-live-p)) (setq skk-bayesian-pending-data-alist nil)) (when (and skk-bayesian-pending-data-alist @@ -367,14 +367,14 @@ (kakutei-with-okuri (concat kakutei-word okurigana)) (word-len (length kakutei-with-okuri)) (midasi (skk-bayesian-get-pending-data-alist 'midasi)) - ;; henkan-point $B$O!"Aw$j2>L>$,$"$k>l9g$O!"Aw$j2>L>$N(B point + ;; henkan-point は、送り仮名がある場合は、送り仮名の point (start (marker-position (skk-bayesian-get-pending-data-alist 'henkan-point))) (end (+ start word-len)) (current-word (if (and (<= (point-min) start) (<= end (point-max))) (buffer-substring-no-properties start end))) (context (skk-bayesian-get-pending-data-alist 'context))) - ;; kakutei-word $B$,JQ99$5$l$F$$$k$+(B + ;; kakutei-word が変更されているか (if (not (string= current-word kakutei-with-okuri)) (progn (skk-bayesian-debug-message "Add: kakutei-word has been modified") @@ -397,15 +397,15 @@ "Save skk-bayesian history to `skk-bayesian-history-file'." (interactive) (if skk-bayesian-pending-data-alist - ;; pending $B$7$F$$$?$N$rJ]B8(B + ;; pending していたのを保存 (skk-bayesian-add-to-history)) (when (skk-bayesian-process-live-p) - (skk-message "skk-bayesian $B$NMzNr$rJ]B8$7$F$$$^$9(B..." + (skk-message "skk-bayesian の履歴を保存しています..." "saving skk-bayesian history...") (if (skk-bayesian-read-process-output skk-bayesian-command-save) - (skk-message "skk-bayesian $B$NMzNr$rJ]B8$7$F$$$^$9(B...$B40N;(B" + (skk-message "skk-bayesian の履歴を保存しています...完了" "saving skk-bayesian history...done") - (skk-message "skk-bayesian $B$NMzNr$rJ]B8$7$F$$$^$9(B...$B<:GT(B" + (skk-message "skk-bayesian の履歴を保存しています...失敗" "saving skk-bayesian history...failed")))) (defun skk-bayesian-restart-process () @@ -414,7 +414,7 @@ "*skk-bayesian*" " *skk-bayesian*"))) (proc-name "skk-bayesian")) - (skk-message "$B%W%m%;%9(B bskk $B$r5/F0$7$F$$$^$9(B..." + (skk-message "プロセス bskk を起動しています..." "Launching a process, bskk...") (setq skk-bayesian-process (or (and skk-bayesian-prefer-server @@ -438,9 +438,9 @@ "ruby" "-S" "bskk" "-f" skk-bayesian-history-file)))) (if skk-bayesian-process - (skk-message "$B%W%m%;%9(B bskk $B$r5/F0$7$F$$$^$9(B...$B40N;(B" + (skk-message "プロセス bskk を起動しています...完了" "Launching a process, bskk...done") - (skk-message "$B%W%m%;%9(B bskk $B$r5/F0$7$F$$$^$9(B...$B<:GT(B" + (skk-message "プロセス bskk を起動しています...失敗" "Launching a process, bskk...failed"))) (set-process-coding-system skk-bayesian-process skk-bayesian-coding-system @@ -513,8 +513,8 @@ "Save corpus to `skk-bayesian-corpus-file'." (interactive) (if (let ((attrs (file-attributes skk-bayesian-corpus-file))) - (or (not attrs) ;; $B%U%!%$%k$,B8:_$7$J$1$l$P!"(Battrs $B$O!"(Bnil - (eq (nth 8 attrs) 0))) ;; $B%U%!%$%k%5%$%:$,(B 0 + (or (not attrs) ;; ファイルが存在しなければ、attrs は、nil + (eq (nth 8 attrs) 0))) ;; ファイルサイズが 0 (with-temp-buffer (insert ";; + means positive ;; m means modified after henkan diff --git a/context-skk.el b/context-skk.el index 9ee6322d..72ea313e 100644 --- a/context-skk.el +++ b/context-skk.el @@ -23,80 +23,80 @@ ;;; Commentary: -;; $B$3$N%W%m%0%i%`$O(B skk $B$NF0:n!"?6Iq$$$K4X$7$F(B2$B$D$N5!G=$rDs6!$7$^$9!#(B +;; このプログラムは skk の動作、振舞いに関して2つの機能を提供します。 -;; (1) $BJT=8$NJ8L.$K1~$8$F<+F0E*$K(B skk $B$N%b!<%I$r(B latin $B$K@Z$jBX$($^$9!#(B -;; $BL@$i$+$K(B skk $B$K$h$kF|K\8lF~NO$,I,MW$J$$8D=j$G!"(Bskk $B$r%*%s$K$7$?$^$^(B -;; $B%-!l9gF|(B -;; $BK\8lF~NO$OI,MW$"$j$^$;$s!#(B -;; $B$?$H$($P(B emacs lisp $B$G$O!"(B +;; あるプログラミング言語でプログラムを書いているとき、日本語入力の必 +;; 要があるのは一般に、そのプログラミング言語の文字列中かコメント中に +;; 限られます。文字列、コメントの「外」を編集するときは、多くの場合日 +;; 本語入力は必要ありません。 +;; たとえば emacs lisp では、 -;; "$B!A(B" $B$d(B ;; $B!A(B +;; "~" や ;; ~ -;; $B$H$$$C$?8D=j$G$@$1F|K\8lF~NO$,I,MW$H$J$j$^$9!#(B +;; といった個所でだけ日本語入力が必要となります。 ;; -;; $B8=:_$NJ8;zNs$H%3%a%s%H$N!V30!W$GJT=83+;O$HF1;~$K(B -;; (skk $B$,%*%s$G$"$l$P(B) skk $B$NF~NO%b!<%I$r(B latin $B$K@Z$jBX$($^$9!#(B -;; $B!V30!W$G$NJT=8$r3+;O$9$k$K$"$?$C$F!"F|K\8lF~NO$,(B on $B$K$J$C$F$$$?$?(B -;; $B$a$KH/@8$9$kF~NO8m$j$H$=$N=$@5A`:n$r2sHr$9$k$3$H$,$G$-$^$9!#(B +;; 現在の文字列とコメントの「外」で編集開始と同時に +;; (skk がオンであれば) skk の入力モードを latin に切り替えます。 +;; 「外」での編集を開始するにあたって、日本語入力が on になっていたた +;; めに発生する入力誤りとその修正操作を回避することができます。 ;; -;; (1)-C. $B%-!<%^%C%W$,EPO?$5$l$F$$$k$+$I$&$+$rH=Dj(B +;; (1)-C. キーマップが登録されているかどうかを判定 ;; ------------------------------------------- -;; $B%]%$%s%H2<$K(B `keymap' $B$"$k$$$O(B `local-map' $B$NB0@-$r;}$DJ8;z$"$k$$$O(B -;; $B%*!<%P%l%$$,$"$k$+$I$&$+$rD4$Y$^$9!#%-!<%^%C%W$,@_Dj$5$l$F$$$k>l9g!"(B -;; $B$5$i$K(B skk $B$GJl2;$NF~NO$K;H$&(B ?a, ?i, ?u, ?e, ?o$B$N%-!<$,%-!<%^%C%W(B -;; $BCf$KDj5A$5$l$F$$$k$+D4$Y$^$9!#Dj5A$5$l$F$$$k>l9g!"%-!<%^%C%WCf$N%-!<(B -;; $B$K3dEv$F$i$l$?5!G=$rA0$K0z?tL5$7$G(B -;; $B8F$S=P$5$l!V(Bskk $B$r%*%U$K$9$kJ8L.$K$"$k$H$-(B non-nil $B$rJV$94X?t!W$rDj5A(B -;; $B$7$F!"$3$NJQ?t$K(B `add-hook' $B$7$F2<$5$$!#(B +;; 変数を使います。skk の文字入力関数 `skk-insert' の実行直前に引数無しで +;; 呼び出され「skk をオフにする文脈にあるとき non-nil を返す関数」を定義 +;; して、この変数に `add-hook' して下さい。 -;; (2) $BJT=8$NJ8L.$K1~$8$F(B skk $B$N@_Dj$rJQ99$7$^$9!#(B -;; skk $B$NJ8;zF~NO4X?t(B `skk-insert' $B$N$^$o$j$K(B `let' $B$rG[CV$7$F!"J8;zF~(B -;; $BNOCf$K0l;~E*$KJQ?t$NB+G{$rJQ99$7$F!"J8;zF~NO$N$?$S$K(B skk $B$N@_Dj$rJQ(B -;; $B99$G$-$^$9!#$3$N%W%m%0%i%`$K$O!"(Bskk $B$K$h$k%F%-%9%H$NF~NO@h$N%P%C%U%!(B -;; $B$r%9%-%c%s$7!"(B($B6gFIE@$Nl9g!"4X?t$r=q$/I,MW$,$"$j$^$9!#(B -;; `context-skk-customize-functions' $B$N%I%-%e%a%s%H$K=>$$!"4X?t$r=q$-!"(B +;; 独自に変数を設定したい場合、関数を書く必要があります。 +;; `context-skk-customize-functions' のドキュメントに従い、関数を書き、 ;; (add-to-list 'context-skk-customize-functions ;; 'your-on-the-fly-customize-func) -;; $B$H$7$FEPO?$7$^$9!#(BM-x context-skk-dump-customize $B$K$h$k8=:_$N%]%$%s%H(B -;; $B$KBP$7$F!"(Bcontext-skk $B$K$h$C$F0le=R$7$?(B2$B$D$N5!G=$O(B context-skk-mode $B$H$$$&%^%$%J!<%b!<%I$H$7$Fl9g!"$3(B -;; $B$N%^%$%J!<%b!<%I$,(B on $B$K$J$C$F$$$k$3$H$r0UL#$7$^$9!#(B +;; で オン/オフをできます。モードラインに ";▽" が表示されている場合、こ +;; のマイナーモードが on になっていることを意味します。 -;; - $B%$%s%9%H!<%k(B - -;; ~/.emacs.d/init.el $B$K0J2<$r5-=R$7$^$9!#(B +;; - インストール - +;; ~/.emacs.d/init.el に以下を記述します。 ;; (add-hook 'skk-load-hook ;; (lambda () @@ -123,8 +123,8 @@ '(context-skk-out-of-string-or-comment-in-programming-mode-p context-skk-on-keymap-defined-area-p context-skk-in-read-only-p) - "*$BF|K\8lF~NO$r<+F0E*$K(B off $B$K$7$?$$!V%3%s%F%-%9%H!W$K$$$l$P(B t $B$rJV$9(B -$B4X?t$rEPO?$9$k!#(B" + "*日本語入力を自動的に off にしたい「コンテキスト」にいれば t を返す +関数を登録する。" :type 'hook :group 'context-skk) @@ -135,14 +135,14 @@ ;;;###autoload (defcustom context-skk-customize-functions '(context-skk-customize-kutouten) - "*skk $B$K$h$kF~NO3+;OD>A0$K!"F~NO$r%+%9%?%^%$%:$9$k4X?t$rEPO?$9$k!#(B -$B4X?t$O0J2<$N7A<0$N%G!<%?$rMWAG$H$9$k%j%9%H$rJV$9$b$N$H$9$k(B: + "*skk による入力開始直前に、入力をカスタマイズする関数を登録する。 +関数は以下の形式のデータを要素とするリストを返すものとする: \(VARIABLE VALUE\) -`skk-insert' $B$r0O$`(B `let' $B$K$h$C$F(B VARIABLE $B$O(B VALUE $B$KB+G{$5$l$k!#(B -$BFC$K$=$N>l$G%+%9%?%^%$%:$9$Y$-JQ?t$,$J$$>l9g(B `nil' $B$rJV$;$PNI$$!#(B -$B4X?t$K$O2?$b0z?t$,EO$5$l$J$$!#(B" +`skk-insert' を囲む `let' によって VARIABLE は VALUE に束縛される。 +特にその場でカスタマイズすべき変数がない場合 `nil' を返せば良い。 +関数には何も引数が渡されない。" :type 'hook ; hook? list of function? :group 'context-skk) @@ -157,31 +157,31 @@ prolog-mode ps-mode postscript-mode ruby-mode scheme-mode sh-mode simula-mode ;; sql-mode tcl-mode vhdl-mode emacs-lisp-mode) - "*context-skk $B$K$F!V%W%m%0%i%_%s%0%b!<%I!W$H8+Pv$9%b!<%I$N%j%9%H(B" + "*context-skk にて「プログラミングモード」と見做すモードのリスト" :type '(repeat (symbol)) :group 'context-skk) ;;;###autoload (defcustom context-skk-mode-hook nil - "*`context-skk-mode' $B$r@Z$jBX$($k:]$K8F$P$l$k%U%C%/!#(B" + "*`context-skk-mode' を切り替える際に呼ばれるフック。" :type 'hook :group 'context-skk) ;;;###autoload (defcustom context-skk-mode-on-hook nil - "*`context-skk-mode' $B$,(B on $B$K$J$k:]$K8F$P$l$k%U%C%/!#(B" + "*`context-skk-mode' が on になる際に呼ばれるフック。" :type 'hook :group 'context-skk) ;;;###autoload (defcustom context-skk-mode-off-hook nil - "*`context-skk-mode' $B$,(B off $B$K$J$k:]$K8F$P$l$k%U%C%/!#(B" + "*`context-skk-mode' が off になる際に呼ばれるフック。" :type 'hook :group 'context-skk) ;;;###autoload -(defcustom context-skk-mode-off-message "[context-skk] $BF|K\8lF~NO(B off" - "*`context-skk-mode' $B$,(B off $B$K$J$C$?$H$-$K%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8!#(B" +(defcustom context-skk-mode-off-message "[context-skk] 日本語入力 off" + "*`context-skk-mode' が off になったときにエコーエリアに表示するメッセージ。" :type 'string :group 'context-skk) @@ -189,18 +189,18 @@ ;; Minor mode definition ;; ;; Change autoload cookie for XEmacs. -;;;###autoload (autoload 'context-skk-mode "context-skk" "$BJ8L.$K1~$8$F<+F0E*$K(Bskk$B$NF~NO%b!<%I$r(Blatin$B$K@Z$j49$($k%^%$%J!<%b!<%I!#(B" t) +;;;###autoload (autoload 'context-skk-mode "context-skk" "文脈に応じて自動的にskkの入力モードをlatinに切り換えるマイナーモード。" t) (define-minor-mode context-skk-mode - "$BJ8L.$K1~$8$F<+F0E*$K(B skk $B$NF~NO%b!<%I$r(B latin $B$K@Z$j49$($k%^%$%J!<%b!<%I!#(B" + "文脈に応じて自動的に skk の入力モードを latin に切り換えるマイナーモード。" :init-value t - :lighter " ;$B"&(B") + :lighter " ;▽") ;; ;; Advices ;; (defmacro define-context-skk-advice (target) `(defadvice ,target (around ,(intern (concat (symbol-name target) "-ctx-switch")) activate) - "$BJ8L.$K1~$8$F<+F0E*$K(B skk $B$NF~NO%b!<%I$r(B latin $B$K$9$k!#(B" + "文脈に応じて自動的に skk の入力モードを latin にする。" (if context-skk-mode (if (context-skk-context-check) (context-skk-insert) @@ -215,11 +215,11 @@ ;; Helper ;; (defun context-skk-context-check () - "$BF|K\8lF~NO$r<+F0E*$K(B off $B$K$7$?$$!V%3%s%F%-%9%H!W$K$$$l$P(B t $B$rJV$9(B" + "日本語入力を自動的に off にしたい「コンテキスト」にいれば t を返す" (run-hook-with-args-until-success 'context-skk-context-check-hook)) (defun context-skk-customize () - "$B%+%9%?%^%$%:$7$?$$JQ?t$HCM$NAH$rF@$k!#(B" + "カスタマイズしたい変数と値の組を得る。" (let (customized-pairs) (dolist (func context-skk-customize-functions) (setq customized-pairs @@ -229,19 +229,19 @@ customized-pairs)) (defun context-skk-dump-customize () - "$B8=:_$N%]%$%s%H$N0LCV$K$*$1$k(B (context-skk-customize) $B$N7k2L$rI=<($9$k!#(B" + "現在のポイントの位置における (context-skk-customize) の結果を表示する。" (interactive) (let ((customized-pairs (context-skk-customize))) (with-output-to-temp-buffer "*context-skk customize result*" (pp customized-pairs)))) (defun context-skk-insert () - "skk-latin-mode $B$r(B on $B$K$7$?>e(B `this-command-keys' $B$KBP$9$k4X?t$r8F$S=P$7D>$9!#(B" + "skk-latin-mode を on にした上 `this-command-keys' に対する関数を呼び出し直す。" (message "%s" context-skk-mode-off-message) (skk-latin-mode t) (let* ((keys (this-command-keys)) - ;; `this-command-keys' $B$,(B tab $B$rJV$7$?$H$-$J$I(B function-key-map $B$d(B - ;; key-translation-map $B$K0MB8$7$F$$$k>l9g$O$=$l$i$N(B keymap $B$r;2>H$9$k(B + ;; `this-command-keys' が tab を返したときなど function-key-map や + ;; key-translation-map に依存している場合はそれらの keymap を参照する (binding (or (key-binding keys) (key-binding (lookup-key function-key-map keys)) (key-binding (lookup-key key-translation-map keys))))) @@ -255,7 +255,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; -;; $B%j!<%I%*%s%j!<$G$J$$$+!)(B +;; リードオンリーでないか? ;; (defun context-skk-in-read-only-p () (or (context-skk-in-read-only-buffer-p) @@ -274,14 +274,14 @@ (not (get-char-property (1- (point)) 'rear-nonsticky))))) ;; -;; $BDL>oF|K\8lF~NO$rI,MW$H$7$J$$%W%m%0%i%_%s%0$N%b!<%I$K$$$k$+$I$&$+(B -;; $BJ8;zNs$rJT=8Cf$+$I$&$+(B -;; $B%3%a%s%H$rJT=8Cf$+$I$&$+(B +;; 通常日本語入力を必要としないプログラミングのモードにいるかどうか +;; 文字列を編集中かどうか +;; コメントを編集中かどうか ;; (defun context-skk-out-of-string-or-comment-in-programming-mode-p () - "$B%W%m%0%i%_%s%0%b!<%I$K$"$C$FJ8;zNs$"$k$$$O%3%a%s%H$N30$K$$$l$P(B non-nil $B$rJV$9!#(B -$B%W%m%0%i%_%s%0%b!<%I$K$$$J$$>l9g$O(B nil $B$rJV$9!#(B -$B%W%m%0%i%_%s%0%b!<%I$K$"$C$FJ8;zNs$"$k$$$O%3%a%s%H$NCf$K$$$k>l9g(B nil $B$rJV$9!#(B" + "プログラミングモードにあって文字列あるいはコメントの外にいれば non-nil を返す。 +プログラミングモードにいない場合は nil を返す。 +プログラミングモードにあって文字列あるいはコメントの中にいる場合 nil を返す。" (and (context-skk-in-programming-mode-p) (not (or (context-skk-in-string-p) (context-skk-in-comment-p))))) @@ -296,7 +296,7 @@ (nth 4 (parse-partial-sexp (point-min) (point)))) ;; -;; $B8=:_$N%]%$%s%H2<$K(B keymap $B$,Dj5A$5$l$F$$$k$+$I$&$+!)(B +;; 現在のポイント下に keymap が定義されているかどうか? ;; (defun context-skk-on-keymap-defined-area-p () (or (context-skk-on-vowel-key-reserved-p 'keymap) @@ -305,7 +305,7 @@ (defun context-skk-on-vowel-key-reserved-p (map-symbol) (let ((map (get-char-property (point) map-symbol))) (when map - ;; "$B$"$$$&$($*(B" $B$rF~NO$9$k$3$H$rA[Dj$7$F%A%'%C%/$9$k!#(B + ;; "あいうえお" を入力することを想定してチェックする。 (or (lookup-key map "a") (lookup-key map "i") (lookup-key map "u") @@ -319,17 +319,17 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; -;; $B6gFIE@(B (skk-kutouten-type) +;; 句読点 (skk-kutouten-type) ;; ;; Based on a post to skk ml by ;; Kenichi Kurihara (kenichi_kurihara at nifty dot com) ;; Message-ID: ;; (defun context-skk-customize-kutouten () - (let ((kuten-jp (context-skk-customize-regexp-scan "$B!#(B" 'forward 0 nil)) - (kuten-en (context-skk-customize-regexp-scan "$B!%(B" 'forward 0 nil)) - (touten-jp (context-skk-customize-regexp-scan "$B!"(B" 'forward 0 nil)) - (touten-en (context-skk-customize-regexp-scan "$B!$(B" 'forward 0 nil))) + (let ((kuten-jp (context-skk-customize-regexp-scan "。" 'forward 0 nil)) + (kuten-en (context-skk-customize-regexp-scan "." 'forward 0 nil)) + (touten-jp (context-skk-customize-regexp-scan "、" 'forward 0 nil)) + (touten-en (context-skk-customize-regexp-scan "," 'forward 0 nil))) (if (or (eq kuten-jp kuten-en) (eq touten-jp touten-en)) nil ;; Nothing to customize diff --git a/etc/NICOLA-SKK.tut b/etc/NICOLA-SKK.tut index d47b2046..f91d237b 100644 --- a/etc/NICOLA-SKK.tut +++ b/etc/NICOLA-SKK.tut @@ -26,650 +26,650 @@ ;; modified versions, except that this permission notice may be stated ;; in a translation approved by Masahiko Sato. ---- -== SKK $B%A%e!<%H%j%"%k$N;H$$J}(B == +== SKK チュートリアルの使い方 == -NICOLA SKK $B$O(B NICOLA $B$+$JF~NO(B ($B?F;X%7%U%H$+$JF~NO(B) $B$r;H$C$?F|K\8lF~NO(B -$B%7%9%F%`$G$9!#$3$N%A%e!<%H%j%"%k$G$O!"(BEmacs $B$K4X$9$kCN<1$r2>Dj$7$F!"(BSKK -$B$N2r@b$r9T$$$^$9!#(B +NICOLA SKK は NICOLA かな入力 (親指シフトかな入力) を使った日本語入力 +システムです。このチュートリアルでは、Emacs に関する知識を仮定して、SKK +の解説を行います。 -$B%A%e!<%H%j%"%k$OLdBj$r2r$-$J$,$i?J$s$G$$$-$^$9!#!Z(B*$BLd(B*$B![%P%C%U%!$N:G8e$K!Z(B>>$B![(B -$B$G;O$^$k9T$,$"$j$^$9!#$3$l$HF1$89T$r!Z(B*$BEz(B*$B![%P%C%U%!$K:n$k$3$H$,LdBj$K$J$j(B -$B$^$9!#Ez$,$G$-$?$i!"!X(BC-x n$B!Y(B(Next) $B$rF~NO$7$F$/$@$5$$(B ($B!X(BC-x$B!Y$O!"(B -$B!"$9$J$o$A!"(B $B%-!<$H!X(Bx$B!Y%-!<$rF1;~$K2!$9$3$H$r<((B -$B$7$^$9(B)$B!#Ez$,@5$7$1$l$P!"%P%C%U%!$,99?7$5$l!">】 +で始まる行があります。これと同じ行を【*答*】バッファに作ることが問題になり +ます。答ができたら、『C-x n』(Next) を入力してください (『C-x』は、 +、すなわち、 キーと『x』キーを同時に押すことを示 +します)。答が正しければ、バッファが更新され、次の問題が表示されます。 -$B%A%e!<%H%j%"%k$rESCf$G=*N;$7$?$1$l$P!"!X(BC-x q$B!Y(B(Quit) $B$r%?%$%W$7$F$/$@$5$$!#(B -$BLdBj$r%9%-%C%W$7$?$$$H$-$O!"!X(BC-x s$B!Y(B(Skip) $B$r%?%$%W$7$F$/$@$5$$!#(B +チュートリアルを途中で終了したければ、『C-x q』(Quit) をタイプしてください。 +問題をスキップしたいときは、『C-x s』(Skip) をタイプしてください。 -$B$G$O:G=i$NLdBj$G$9!#(B +では最初の問題です。 >> (concat "My name is " (skktut-user-name) ".") ---- -== SKK $B$N5/F0!"!V$+$J%b!<%I!W(B == +== SKK の起動、「かなモード」 == -$B0J2<$N@bL@$G!"@hF,$,!Z(B!!$B![$H$J$C$F$$$k9T$K$D$$$F$O!"$=$3$K=q$$$F$"$k$3$H(B -$B$r$=$N$H$*$jL>$rF~NO$9$k$3$H$,$G$-$^$9!#(B +モード行に【にこら】と表示されました。このモードを「かなモード」と言いま +す。「かなモード」では、NICOLA 配列で平仮名を入力することができます。 -$B??Cf$K=D@~$GJ,3d$7$?$H$3$m$h$j1&$,1&> $B$+$-$/$1$3(B +>> かきくけこ ---- -== $B$+$J$NF~NO(B 2$B!"!VF1;~BG80!W(B == +== かなの入力 2、「同時打鍵」 == -$BB3$1$F$+$J$NF~NO$rN}=,$7$F$_$^$7$g$&!#%-!<%\!<%I$N:G>eCJ$r=|$$$?G[Ns$O(B -$Bl9g$O(B $B%-!<(B - $B$GBeMQ$7$^$9(B) $B$H:8%7%U%H%-!<(B ($B@lMQ$N(B -$B%-!<$,$J$$>l9g$O(B $B%-!<$N:8$K$"$k!VL5JQ49!W$J$I$N%-!<$GBeMQ$7$^$9(B) -$B$r3NG'$7$F$/$@$5$$!#$=$l$>$l1& キー + で代用します) と左シフトキー (専用の +キーがない場合は キーの左にある「無変換」などのキーで代用します) +を確認してください。それぞれ右手と左手の親指で押します。 -$B3NG'$7$?$i!"!V:8%7%U%H%-!> $B$"$$$7$F(B +>> あいして ---- -== $B$+$J$NF~NO(B 3$B!"!VF1$8B&$NF1;~BG80!W(B == +== かなの入力 3、「同じ側の同時打鍵」 == -$B=DK@$h$j$b:8$N!":8> $B$H$F$b$"$$$7$F$$$k!#(B +>> とてもあいしている。 ---- -== $BByE@$NF~NO!"!V0c$&B&$NF1;~BG80!W(B == +== 濁点の入力、「違う側の同時打鍵」 == -$B@hDx$N!VF1$8B&$N%7%U%H$NF1;~BG80!W$G$O!"ByE@$dH>ByE@$,F~NO$G$-$^$;$s!#(B -$B$3$l$i$N$D$$$?$+$J$O!V0c$&B&$NF1;~BG80!W$GF~NO$7$^$9!#Nc$($P!V$.!W$O!"(B -$B1&e$N%7%U%H$7$J$$$H$-$N%-!> $B$,$.$0$2$4$6$8$:$<$>(B +>> がぎぐげござじずぜぞ ---- -== $BH>ByE@$NF~NO!"!V0c$&B&$NF1;~BG80(B2$B!W(B == +== 半濁点の入力、「違う側の同時打鍵2」 == -$BH>ByE@$O!"0J2<$NI=$N$h$&$K!V0c$&B&$NF1;~BG80!W$r;H$C$FF~NO$7$^$9!#(B -$BNc$($P!V$T!W$O!V!$!W$r:8%7%U%H$HF1;~$K2!$7$^$9!#(B +半濁点は、以下の表のように「違う側の同時打鍵」を使って入力します。 +例えば「ぴ」は「,」を左シフトと同時に押します。 - [] $B$,(B $B$@(B $B$4(B $B$6(B | $B$Q(B $B$B(B $B$0(B $B$E(B $B$T(B - $B%t(B $B$8(B $B$G(B $B$2(B $B$<(B | $B$P(B $B$I(B $B$.(B $B$](B [] - [] $B$S(B $B$:(B $B$V(B $B$Y(B | $B$W(B $B$>(B $B$Z(B $B$\(B [] + [] が だ ご ざ | ぱ ぢ ぐ づ ぴ + ヴ じ で げ ぜ | ば ど ぎ ぽ [] + [] び ず ぶ べ | ぷ ぞ ぺ ぼ [] - (*) [] $B$NItJ,$O!"F~NOJ}<0$K$h$C$F0[$J$j$^$9!#(B + (*) [] の部分は、入力方式によって異なります。 ->> $B$Q$T$W$Z$](B +>> ぱぴぷぺぽ ---- -== $B$+$JF~NO$N$^$H$a(B == +== かな入力のまとめ == -$B$5$F!"0J>e$NJ}K!$G$9$Y$F$N$+$J$,F~NO$G$-$k$O$:$G$9!#%-!(B $B$Z(B $B$\(B [] +【違う側のシフト】 [] が だ ご ざ | ぱ ぢ ぐ づ ぴ + ヴ じ で げ ぜ | ば ど ぎ ぽ [] + [] び ず ぶ べ | ぷ ぞ ぺ ぼ [] ->> $B$R$i$,$J$r!"$3$s$T$e!<$?!<$K!"$K$e$&$j$g$/$9$k!#(B +>> ひらがなを、こんぴゅーたーに、にゅうりょくする。 ---- -== $B5-9f$NF~NO(B == +== 記号の入力 == -$B5-9f$O:G>eCJ$N?t;z%-!<$d!"$=$NB>$N%-!<$Kl9g(B -$B$O!"!X(BC-h 2$B!Y(B $B$G3N$+$a$k$3$H$,$G$-$^$9!#(B +記号は最上段の数字キーや、その他のキーに主に割当てられています。これらは +入力方式によって割当てが異なります。あなたの入力方式について知りたい場合 +は、『C-h 2』 で確かめることができます。 -!! $B!X(BC-h 2$B!Y$H%?%$%W$7$F$_$F$/$@$5$$!#(B +!! 『C-h 2』とタイプしてみてください。 -$B:#8+$??^$r0u:~$7$F$*$/$HJXMx$G$9!#$G$O$3$l$K4p$E$$$FF~NO$7$F$_$^$7$g$&!#(B +今見た図を印刷しておくと便利です。ではこれに基づいて入力してみましょう。 ->> $B!V(B2$B$D$N$+$.$+$C$3!*!W(B +>> 「2つのかぎかっこ!」 ---- -== $B$+$JF~NO(B == +== かな入力 == -$B:#8e$NLdBj$K$O!"%-!e$d2<$KE=$C$F$*$$$F!"B3$1$k$N$b$$$$$G$7$g$&!#(B +今後の問題には、キー配列表が画面に出て来ません。かな入力に +慣れていない方はここで問題を 『C-x q』 で一旦終了して、 +NICOLA かな入力を練習してから次の問題に進みましょう。キー配列表を +画面の上や下に貼っておいて、続けるのもいいでしょう。 -!! $B%-!l9g$O!X(BC-h 2$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! キー配列表が見たい場合は『C-h 2』とタイプしてください。 ->> $B$+$J$K$e$&$j$g$/$r$*$\$($^$7$?$+!)(B +>> かなにゅうりょくをおぼえましたか? ---- -== $B!V$+$J%b!<%I!W$+$i!V%"%9%-!<%b!<%I!W$X$N0\9T(B == +== 「かなモード」から「アスキーモード」への移行 == -$B!V$+$J%b!<%I!W$+$i!"!V%"%9%-!<%b!<%I!W$K$O!V:81&%7%U%H$NF1;~BG80!W(B($B0J2<(B -[$B:81&(B] $B$HN,$7$^$9(B) $B$G0\$j$^$9!#%b!<%I9T$r8+$F%b!<%I$N?d0\$r3NG'$7$F$/$@$5$$!#(B +「かなモード」から、「アスキーモード」には「左右シフトの同時打鍵」(以下 +[左右] と略します) で移ります。モード行を見てモードの推移を確認してください。 -$B!V%"%9%-!<%b!<%I!W$G$O!"F~NO$5$l$?%-!<$ODL>o$N(B Emacs $B$N%3%^%s%I$H$7$F2ruBV$H9M$($i$l$^$9!#%b!<%I9T$N!Z(BSKK$B![$O(B NICOLA SKK $B$,$3$N%P%C%U%!$G(B -$B5/F0$5$l$F$$$k$3$H$r<($9$?$a$N$b$N$G$9!#(B +「アスキーモード」では、入力されたキーは通常の Emacs のコマンドとして解釈 +されます。「アスキーモード」は次項で説明する点を除いては、SKK を起動する前と +同じ状態と考えられます。モード行の【SKK】は NICOLA SKK がこのバッファで +起動されていることを示すためのものです。 >> Now we are in ASCII mode. ---- -== $B!V%"%9%-!<%b!<%I!W$+$i!V$+$J%b!<%I!W$X$N0\9T(B == +== 「アスキーモード」から「かなモード」への移行 == -$B!V%"%9%-!<%b!<%I!W$+$i!V$+$J%b!<%I!W$X$O$b$&0lEY(B [$B:81&(B]$B!"$^$?$O(B $B!X(BC-j$B!Y(B -$B$r;H$C$F0\$j$^$9!#$^$H$a$k$H!"(B +「アスキーモード」から「かなモード」へはもう一度 [左右]、または 『C-j』 +を使って移ります。まとめると、 - [$B:81&(B] : $B$+$J(B <--> $B%"%9%-!<(B - C-j : $B%"%9%-!<(B --> $B$+$J(B + [左右] : かな <--> アスキー + C-j : アスキー --> かな ->> ASCII $B$+$i(B $B$+$J(B +>> ASCII から かな ---- -== $B!V%+%J%b!<%I!W(B == +== 「カナモード」 == -$B%+%?%+%J$NF~NO$O!V%+%J%b!<%I!W$G9T$$$^$9!#!V$+$J%b!<%I!W$H!V%+%J%b!<%I!W(B -$B$N?d0\$O(B [dk] (d $B$H(B k $B$NF1;~BG80(B) $B$G9T$$$^$9!#(B +カタカナの入力は「カナモード」で行います。「かなモード」と「カナモード」 +の推移は [dk] (d と k の同時打鍵) で行います。 - [dk] : $B$+$J(B --> $B%+%J(B - [dk] : $B%+%J(B --> $B$+$J(B + [dk] : かな --> カナ + [dk] : カナ --> かな ->> $B$R$i$,$J(B $B$+$i(B $B%+%?%+%J(B $B$=$7$F$^$?(B $B$R$i$,$J(B +>> ひらがな から カタカナ そしてまた ひらがな ---- -== $B!VA41Q%b!<%I!W(B == +== 「全英モード」 == -$B!Z#S#K#K![$N$h$&$JA43Q1QJ8;zNs$NF~NO$O!VA41Q%b!<%I!W$G9T$$$^$9!#!VA41Q(B -$B%b!<%I!W$G$O!"!X(Ba$B!Y(B-$B!X(Bz$B!Y$*$h$S!X(BA$B!Y(B-$B!X(BZ$B!Y$OA43Q$N%"%k%U%!%Y%C%H$H$7$FF~NO(B -$B$5$l$^$9!#!VA41Q%b!<%I!W$X$O!V$+$J%b!<%I!W$^$?$O!V%+%J%b!<%I!W$+$i!X(BZ$B!Y%-!<(B -$B$G0\9T$7$^$9(B ($B!X(BZ$B!Y$O!V(BZenei$B!W$NF,J8;z(B)$B!#!VA41Q%b!<%I!W$+$i!"!V$+$J%b!<%I!W(B -$B$X$O!X(BC-j$B!Y$GLa$j$^$9!#(B +【SKK】のような全角英文字列の入力は「全英モード」で行います。「全英 +モード」では、『a』-『z』および『A』-『Z』は全角のアルファベットとして入力 +されます。「全英モード」へは「かなモード」または「カナモード」から『Z』キー +で移行します (『Z』は「Zenei」の頭文字)。「全英モード」から、「かなモード」 +へは『C-j』で戻ります。 - Z : $B$+$J(B/$B%+%J(B --> $BA41Q(B - C-j : $BA41Q(B --> $B$+$J(B + Z : かな/カナ --> 全英 + C-j : 全英 --> かな ->> $B#N#I#C#O#L#A!]#S#K#K$,$D$+$($k$N$O#E#m#a#c#s$@$1$G$9(B +>> NICOLA-SKKがつかえるのはEmacsだけです ---- -== $B$3$l$^$G$N$^$H$a(B == +== これまでのまとめ == -SKK $B$O!X(BC-x C-j$B!Y$G5/F0$5$l$^$9!#(BSKK $B$K$O(B4$B$D$N%b!<%I$,$"$j$^$9!#(B +SKK は『C-x C-j』で起動されます。SKK には4つのモードがあります。 - $B!V%"%9%-!<%b!<%I!W!"!V$+$J%b!<%I!W!"!V%+%J%b!<%I!W!"!VA41Q%b!<%I!W(B + 「アスキーモード」、「かなモード」、「カナモード」、「全英モード」 -$B%b!<%I4V$N?d0\$O $B$+$J(B == [$B:81&(B] ==> $B%"%9%-!<(B + アスキー == C-j ==> かな == [左右] ==> アスキー - $B$+$J(B <== [dk] ==> $B%+%J(B + かな <== [dk] ==> カナ - $BA41Q(B == C-j ==> $B$+$J(B == Z ==> $BA41Q(B + 全英 == C-j ==> かな == Z ==> 全英 ->> $B#S#K#K$K$O(B ASCII$B%b!<%I(B $B$H(B $B$+$J%b!<%I(B $B$H(B $B%+%J%b!<%I(B $B$H(B $B$<$s$($$%b!<%I(B $B$,$"$k(B +>> SKKには ASCIIモード と かなモード と カナモード と ぜんえいモード がある ---- -== $B!V$+$J%b!<%I!W(B == +== 「かなモード」 == -$B!V$+$J%b!<%I!W$G$O0J2<$N%-!<$,FCJL$N0UL#$r;}$A$^$9!#$3$l0J30$N%-!o$N(B Emacs $B$N%-!<$H$7$F$N0UL#$r;}$A$^$9!#!V%+%J%b!<(B -$B%I!W$G$bF1MM$G$9!#(B +「かなモード」では以下のキーが特別の意味を持ちます。これ以外のキー、例え +ば、『C-a』、『%』等は通常の Emacs のキーとしての意味を持ちます。「カナモー +ド」でも同様です。 - [dk], [$B:81&(B] $B$9$G$K@bL@$7$?$H$*$j(B - $B1Q>.J8;z(B $B2>L>F~NO(B - [gh] $B1Q;zJQ49%b!<%I$X$N0\9T(B - [fj] $BJQ493+;OE@$N;XDj(B - @ $B!Z!"![$H$7$FF~NO$5$l$k(B - q $B!Z!#![$H$7$FF~NO$5$l$k(B - D $B:#F|$NF|IU$,F~NO$5$l$k(B - $B?t;z%-!<$d$=$NB>$N5-9f%-!<(B $B$$$/$D$+$N5-9f(B ($B!X(BC-h 2$B!Y(B $B$G3N$+$a$F!*(B) + [dk], [左右] すでに説明したとおり + 英小文字 仮名入力 + [gh] 英字変換モードへの移行 + [fj] 変換開始点の指定 + @ 【、】として入力される + q 【。】として入力される + D 今日の日付が入力される + 数字キーやその他の記号キー いくつかの記号 (『C-h 2』 で確かめて!) -!! $B$?$a$7$K!"6gFIE@$rF~NO$7$F$_$F$/$@$5$$!#(B +!! ためしに、句読点を入力してみてください。 ->> $B$"!"$=$&$@$C$?$N$+!#(B +>> あ、そうだったのか。 ---- -== $B2>L>4A;zJQ49(B == +== 仮名漢字変換 == -$B2>L>4A;zJQ49$O!V$+$J%b!<%I!W$G9T$o$l$^$9!#(B +仮名漢字変換は「かなモード」で行われます。 -!! $B%b!<%I$r(B ($B$b$7:#!V$+$J%b!<%I!W$G$J$1$l$P(B)$B!V$+$J%b!<%I!W$K$7$F!"(B -!! [fj] (f $B$H(B j $B$rF1;~$K2!$9(B) $B$H%?%$%W$7$F$/$@$5$$!#(B +!! モードを (もし今「かなモード」でなければ)「かなモード」にして、 +!! [fj] (f と j を同時に押す) とタイプしてください。 -$B%P%C%U%!$O!Z"&![$H$J$C$?$O$:$G$9!#(B +バッファは【▽】となったはずです。 -!! $B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! 次に 『かんじ』とタイプし、 キーを押してください。 -$B%P%C%U%!$O!Z"&$+$s$8![$H$J$j!"> $B4A;z(B +>> 漢字 ---- -$B$b$&0lEY!"$d$C$F$_$^$7$g$&!#(B +もう一度、やってみましょう。 -!! $B%b!<%I$r(B ($B$b$7:#!V$+$J%b!<%I!W$G$J$1$l$P(B)$B!V$+$J%b!<%I!W$K$7$F!"(B -!! $B!X(B[fj]$B$+$s$8!Y$H%?%$%W$7$F!"$=$l$+$i!"(B $B%-!<$r(B2$B2s2!$7$F$/$@$5$$!#(B +!! モードを (もし今「かなモード」でなければ)「かなモード」にして、 +!! 『[fj]かんじ』とタイプして、それから、 キーを2回押してください。 -$B%P%C%U%!$O(B +バッファは - $B!Z"&$+$s$8![(B ==> $B!Z"'4A;z![(B ==> $B!Z"'44;v![(B + 【▽かんじ】 ==> 【▼漢字】 ==> 【▼幹事】 -$B$H$J$j$^$9!#(B +となります。 -!! $B> $B44;v(B +>> 幹事 ---- -$B:#EY$O>/$7D9$$$N$G!"4V0c$o$J$$$h$&$K!"$f$C$/$j$H%?%$%W$7$F$/$@$5$$!#(B -$B!X""!Y$O(B $B%-!<$rI=$o$7$^$9!#$7$?$,$C$F!"!X""""!Y$H$"$l$P!"(B - $B%-!<$r(B2$B2sB3$1$F2!$7$F$/$@$5$$!#(B +今度は少し長いので、間違わないように、ゆっくりとタイプしてください。 +『□』は キーを表わします。したがって、『□□』とあれば、 + キーを2回続けて押してください。 -!! $B%b!<%I$r(B ($B$b$7:#!V$+$J%b!<%I!W$G$J$1$l$P(B)$B!V$+$J%b!<%I!W$K$7$F!"(B -!! $B!X(B[fj]$B$+$s$8""""$N(B[fj]$B$K$e$&$j$g$/""$O(B[fj]$B$h$&$$""$G$9!#!Y$H(B -!! $B%?%$%W$7$F$/$@$5$$!#(B +!! モードを (もし今「かなモード」でなければ)「かなモード」にして、 +!! 『[fj]かんじ□□の[fj]にゅうりょく□は[fj]ようい□です。』と +!! タイプしてください。 ->> $B4A;z$NF~NO$OMF0W$G$9!#(B +>> 漢字の入力は容易です。 ---- -!! $B!V$+$J%b!<%I!W$G!"!X$+$s$8!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「かなモード」で、『かんじ』とタイプしてください。 -$B%P%C%U%!$O!Z$+$s$8![$H$J$j$^$9!#$7$+$7!"K\Ev$O!X(B[fj]$B$+$s$8!Y$H%?%$%W$7$?$+$C$?(B -$B$H$7$^$9!#$3$N>l9g(B3$BJ8;z:o=|(B (delete) $B$7$F$+$i!"!X(B[fj]$B$+$s$8!Y$H%?%$%W$7$F$b(B -$B$h$$$N$G$9$,!")$B!"!X(BC-j$B!Y$r%?%$(B -!! $B%W$7$F$/$@$5$$!#(B +!! 『C-e』(end-of-line) をタイプしてから、『□』()、『C-j』をタイ +!! プしてください。 ->> $B4A;z(B +>> 漢字 ---- -== $B!V$+$J%b!<%I!W$NItJ,%b!<%I(B == +== 「かなモード」の部分モード == -$B!V$+$J%b!<%I!W$O!"!VJ?2>L>3NDjF~NO%b!<%I!W$H!V4A;zJQ49%b!<%I!W$N(B2$B$D$NIt(B -$BJ,%b!<%I$KJ,$+$l$^$9!#!VJ?2>L>3NDjF~NO%b!<%I!W$N$3$H$r!":#8e$O!"!V"#%b!<(B -$B%I!W$H8@$$$^$9!#!V4A;zJQ49%b!<%I!W$O$5$i$K!"!V"&%b!<%I!W$H!V"'%b!<%I!W$K(B -$BJ,$+$l$^$9!#$D$^$j!"!V$+$J%b!<%I!W$O!"(B +「かなモード」は、「平仮名確定入力モード」と「漢字変換モード」の2つの部 +分モードに分かれます。「平仮名確定入力モード」のことを、今後は、「■モー +ド」と言います。「漢字変換モード」はさらに、「▽モード」と「▼モード」に +分かれます。つまり、「かなモード」は、 - $B!V"#%b!<%I!W!"!V"&%b!<%I!W!"!V"'%b!<%I!W(B + 「■モード」、「▽モード」、「▼モード」 -$B$N(B3$B$D$NItJ,%b!<%I$KJ,3d$5$l$^$9!#(B +の3つの部分モードに分割されます。 -$B!V"#%b!<%I!W$G$O!"J?2>L>$,$=$N$^$^3NDjF~NO$5$l$^$9!#!V"#%b!<%I!W(B($BJ?2>L>(B -$B3NDjF~NO%b!<%I(B) $B$O$3$l$+$i2?EY$b=P$F$/$k$N$G!"$h$/3P$($F$*$$$F$/$@$5$$!#(B +「■モード」では、平仮名がそのまま確定入力されます。「■モード」(平仮名 +確定入力モード) はこれから何度も出てくるので、よく覚えておいてください。 ->> $B$R$i$+$J$+$/$F$$$K$e$&$j$g$/$O!"$J$s$I$b!"$l$s$7$e$&$7$F$-$^$7$?!#(B +>> ひらかなかくていにゅうりょくは、なんども、れんしゅうしてきました。 ---- -== $B!V"&%b!<%I!W$H!V"'%b!<%I!W(B == +== 「▽モード」と「▼モード」 == -SKK$B$G$N2>L>4A;zJQ49$O]$K$J$kJ8;zNs$r3NDj$9$k(B ($B!V"&%b!<%I!W(B)$B!#(B - 2 $B3NDj$7$?J8;zNs$KBP$9$k8uJd$rNs5s$9$k(B ($B!V"'%b!<%I!W(B)$B!#(B - 3 $B5a$a$k8uJd$rA*Br$7JQ49$r3NDj$9$k(B ($B!V"'%b!<%I!W(B)$B!#(B + 1 変換の対象になる文字列を確定する (「▽モード」)。 + 2 確定した文字列に対する候補を列挙する (「▼モード」)。 + 3 求める候補を選択し変換を確定する (「▼モード」)。 -$B$9$G$K8+$?$h$&$K!"!Z4A;z![$rNc$K]$H$J$kJ8;zNs$O!Z$+$s$8![(B -$B$G$9!#(B[fj] $B$rF~NO$9$k$H!V"&%b!<%I!W$K$J$j$^$9!#$3$3$G!X$+$s$8!Y$N$h$&$K$+$J(B -$B$rF~NO$7$^$9!#!V"&%b!<%I!W$G(B $B$r%?%$%W$9$l$P!"!Z"&![$H%]%$%s%H(B -$B$N4V$NJ8;zNs$,JQ49$NBP>]$H$7$F3NDj$7$^$9!#F1;~$K%b!<%I$O!V"'%b!<%I!W$K$J(B -$B$j!"JQ49$N:G=i$N8uJd$,I=<($5$l$^$9!#!V"'%b!<%I!W$G(B $B$O をタイプすれば、【▽】とポイント +の間の文字列が変換の対象として確定します。同時にモードは「▼モード」にな +り、変換の最初の候補が表示されます。「▼モード」で は次候補を表示し +ます。「▼モード」で『C-j』をタイプすれば、現在表示されている候補が選択さ +れて確定します。同時にモードは「■モード」になります。 ->> $B!V@vBu!W$rA*Br$9$k!#(B +>> 「洗濯」を選択する。 ---- -$B%b!<%I$N?d0\$ODL>o $B"&(B == ==> $B"'(B == $B!X(BC-j$B!Y(B ==> $B"#(B + ■ == [fj] ==> ▽ == ==> ▼ == 『C-j』 ==> ■ -$B$3$N$[$+!"(B +このほか、 - $B"&(B == $B!X(BC-j$B!Y(B ==> $B"#(B + ▽ == 『C-j』 ==> ■ -$B$O8m$C$F(B [fj] $B$r%?%$%W$7$F!V"&%b!<%I!W$K$J$C$?$H$-$K;H$$$^$9!#$^$?!"(B +は誤って [fj] をタイプして「▽モード」になったときに使います。また、 - $B"'(B == $B$H0u;z2DG=$J$9$Y$F$N%-!<(B ==> $B"#(B + ▼ == と印字可能なすべてのキー ==> ■ -$B$O3NDj$rH<$J$&%-!<$r<($7$F$$$^$9!#;n$7$F$_$^$7$g$&!#(B +は確定を伴なうキーを示しています。試してみましょう。 -!! $B!V"#%b!<%I!W$G!X(B[fj]$B$-$g$&$H""!"(B[fj]$B$*$*$5$+""!"(B[fj]$B$3$&$Y""!#!Y$H(B -!! $B%?%$%W$7$F$/$@$5$$!#$?$@$7!"!X""!Y$O(B $B$rI=$o$7$^$9!#(B +!! 「■モード」で『[fj]きょうと□、[fj]おおさか□、[fj]こうべ□。』と +!! タイプしてください。ただし、『□』は を表わします。 ->> $B5~ET!"Bg:e!"?@8M!#(B +>> 京都、大阪、神戸。 ---- -$B!V"'%b!<%I!W$G$O(B $B$H0u;z2DG=$J$9$Y$F$N%-!<$O3NDj$rH<$J$&$3$H$rCN(B -$B$j$^$7$?!#(B +「▼モード」では と印字可能なすべてのキーは確定を伴なうことを知 +りました。 -$B$3$N$[$+!"!V"'%b!<%I!W$G$5$i$K(B [fj] $B$r%?%$%W$9$l$P!"8=:_$N8uJd$,$+$J(B -$B3NDj$7!"$5$i$K!"%b!<%I$O!V"&%b!<%I!W$K$J$j$^$9!#(B +このほか、「▼モード」でさらに [fj] をタイプすれば、現在の候補がかな +確定し、さらに、モードは「▽モード」になります。 - $B"'(B == [fj] ==> $B"&(B + ▼ == [fj] ==> ▽ -!! $B!V"#%b!<%I!W$G!X(B[fj]$B$+$J""(B[fj]$B$+$s$8""(B[fj]$B$X$s$+$s""!#!Y$H%?%$%W$7$F(B -!! $B$/$@$5$$!#$?$@$7!"!X""!Y$O(B $B$rI=$o$7$^$9!#(B +!! 「■モード」で『[fj]かな□[fj]かんじ□[fj]へんかん□。』とタイプして +!! ください。ただし、『□』は を表わします。 ->> $B2>L>4A;zJQ49!#(B +>> 仮名漢字変換。 ---- -!! $B!V"#%b!<%I!W$G!X(B[fj]$B$+$J$+$s$8$X$s$+$s""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で『[fj]かなかんじへんかん□』とタイプしてください。 -$B%P%C%U%!$O!Z"'$+$J$+$s$8$X$s$+$s![$H$J$j!"%_%K%P%C%U%!$K(B +バッファは【▼かなかんじへんかん】となり、ミニバッファに - $B$+$J$+$s$8$X$s$+$s(B + かなかんじへんかん -$B$H$$$&%W%m%s%W%H$,I=<($5$l$F$$$^$9!#(BSKK $B$G$O!"!V"'%b!<%I!W$G$O!"JQ49$N(B -$BBP>]$H$J$kJ8;zNs$O3NDj$7$F$$$^$9!#:#$N>l9g!"!Z$+$J$+$s$8$X$s$+$s![$H$$$&(B -$BJ8;zNs$r(B SKK $B$OJQ49$7$h$&$H$7$F!"<-=q$rC5$7$F!"8+$D$+$i$J$+$C$?(B -$B$N$G$9!#$3$&$$$&;~!"(BSKK $B$O<+F0E*$K<-=qEPO?%b!<%I$K$J$j$^$9!#(B +というプロンプトが表示されています。SKK では、「▼モード」では、変換の +対象となる文字列は確定しています。今の場合、【かなかんじへんかん】という +文字列を SKK は変換しようとして、辞書を探して、見つからなかった +のです。こういう時、SKK は自動的に辞書登録モードになります。 -$B<-=qEPO?%b!<%I$G$O!"JQ49$K<:GT$7$?J8;zNs$,EPO?$NBP>]$K$J$k$N$G!"EPO?$9$k(B -$B8l$NFI$_$r%f!<%6$,F~NO$9$kI,MW$O$"$j$^$;$s!#(B +辞書登録モードでは、変換に失敗した文字列が登録の対象になるので、登録する +語の読みをユーザが入力する必要はありません。 -!! $B%+!<%=%k$,%_%K%P%C%U%!$K$"$k$3$H$r3NG'$7$?>e$G!"!X(B[fj]$B$+$J""(B[fj]$B$+$s(B -!! $B$8""(B[fj]$B$X$s$+$s""!Y$H%?%$%W$7!"(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! カーソルがミニバッファにあることを確認した上で、『[fj]かな□[fj]かん +!! じ□[fj]へんかん□』とタイプし、 キーを押してください。 ->> $B2>L>4A;zJQ49(B +>> 仮名漢字変換 ---- -$B:#$N<-=qEPO?$G!"<-=q%P%C%U%!$K$O!"(B +今の辞書登録で、辞書バッファには、 - $B$+$J$+$s$8$X$s$+$s(B /$B2>L>4A;zJQ49(B/ + かなかんじへんかん /仮名漢字変換/ -$B$H$$$&9T$,DI2C$5$l$^$7$?!#3NG'$7$F$_$^$7$g$&!#(B +という行が追加されました。確認してみましょう。 -!! $B!V"#%b!<%I!W$G!X(B[fj]$B$+$J$+$s$8$X$s$+$s""!Y$H%?%$%W$7$F$/$@$5$$!#(B -!! $B!X(BC-j$B!Y$G3NDj$7$F$/$@$5$$!#(B +!! 「■モード」で『[fj]かなかんじへんかん□』とタイプしてください。 +!! 『C-j』で確定してください。 ->> $B2>L>4A;zJQ49(B +>> 仮名漢字変換 ---- -== $B6uEPO?(B == +== 空登録 == -$B%?%$%W%_%9Ey$G!"0U?^$7$J$$J8;zNs$KBP$7$F!"<-=qEPO?%b!<%I$K$J$C$?$H$-$O!"(B -$B6u$NJ8;zNs$rEPO?$9$l$P!" $B%-!<$r2!$7$F$/$@$5$$!#(B +!! カーソルがミニバッファにあることを確認して、 キーを押してください。 -$B!Z(B*$BEz(B*$B![%P%C%U%!$O!Z"&$+$J$+$s$8$X$s$?$s![$H$J$j$^$9!#(B +【*答*】バッファは【▽かなかんじへんたん】となります。 -!! $B!Z(B*$BEz(B*$B![$,%+%l%s%H!&%P%C%U%!$G$"$k$3$H$r3NG'$7!"(B -!! $B%-!<$r(B2$B2s2!$7$F$+$i!"!X$+$s""!#!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 【*答*】がカレント・バッファであることを確認し、 +!! キーを2回押してから、『かん□。』とタイプしてください。 ->> $B2>L>4A;zJQ49!#(B +>> 仮名漢字変換。 ---- -$B<-=q$,(B +辞書が - $B$4(B /$B8^(B/$B8_(B/$B8`(B/$B8a(B/$B8b(B/$B8c(B/$B8d(B/$B8e(B/$B8f(B/$B8g(B/$B8h(B/$B8i(B/$B8j(B/$B8k(B/$B8l(B/$B8m(B/$B8n(B/$B8o(B/ + ご /五/互/伍/午/呉/吾/娯/後/御/悟/梧/檎/瑚/碁/語/誤/護/醐/ -$B$H$$$&9T$r4^$s$G$$$k$H$7$F!"!Z8k![$r:n$C$F$_$^$7$g$&!#(B +という行を含んでいるとして、【碁】を作ってみましょう。 -!! $B!V"#%b!<%I!W$G!"!X(B[fj]$B$4""""""""""""!Y$H%?%$%W$7$F$/$@$5$$(B -!! ( $B$O(B6$B2s$G$9(B)$B!#(B +!! 「■モード」で、『[fj]ご□□□□□□』とタイプしてください +!! ( は6回です)。 -$B%(%3!e$"$k$H$-$O!":G=i$N(B4$B$D$O%P%C%U%!$K(B1 -$B$D$:$DI=<($5$l$^$9$,!"(B5$B$DL\0J9_$O%(%3!.J8;z$N!X(Bd$B!Y$r%?%$%W$7$^$9!#(B +となっています。このように候補が5つ以上あるときは、最初の4つはバッファに1 +つずつ表示されますが、5つ目以降はエコー領域に7つずつまとめて表示され +ます。【碁】を選択するには、小文字の『d』をタイプします。 ->> $B8k(B +>> 碁 ---- -!! $B!V"#%b!<%I!W$G!"!Z(B[fj]$B$4""![$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、【[fj]ご□】とタイプしてください。 -$BA0Ld$G3NDj$7$?!Z8k![$,:#EY$O:G=i$N8uJd$H$7$FI=<($5$l$^$9!#$7$+$7!":#2s(B -$B$O!Z8a![$r:n$C$F$_$^$9!#(B +前問で確定した【碁】が今度は最初の候補として表示されます。しかし、今回 +は【午】を作ってみます。 -!! $B!X""""""""""""!Y$H%?%$%W$7$F$/$@$5$$(B ( $B$r(B6$B2s(B)$B!#(B +!! 『□□□□□□』とタイプしてください ( を6回)。 -$B8uJd$,?T$-$?$N$G<-=qEPO?%b!<%I$K$J$C$F$7$^$7$^$7$?!#8uJd$NCf$K!Z8a![$O$"$C(B -$B$?$N$G$9$,!"9T$-2a$.$F$7$^$C$?$N$G$9!#(B +候補が尽きたので辞書登録モードになってしましました。候補の中に【午】はあっ +たのですが、行き過ぎてしまったのです。 -!! $B%-!<$r2!$7$F$+$i!X(BC-p$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! キーを押してから『C-p』とタイプしてください。 - $B%-!<$K$h$j6uEPO?$,$5$l!"<-=qEPO?$ND>A0$N>uBV$KLa$j$^$9!#!Z"'%b!<(B -$B%I![$G$O!X(BC-p$B!Y%-!<$K$h$jA08uJd(B ($B72(B) $B$rI=<($9$k$3$H$,$G$-$^$9!#(B + キーにより空登録がされ、辞書登録の直前の状態に戻ります。【▼モー +ド】では『C-p』キーにより前候補 (群) を表示することができます。 -!! $B%(%3!> $B8a(B +>> 午 ---- -$B:#EY$O!Z8a8e![$r:n$C$F$_$^$9!#(B +今度は【午後】を作ってみます。 -!! $B!V"#%b!<%I!W$G!"!X(B[fj]$B$4$4""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『[fj]ごご□』とタイプしてください。 -$B<-=q$K$O!Z$4$4![$,$J$$$N$G!"<-=qEPO?%b!<%I$K$J$j$^$9!#(B +辞書には【ごご】がないので、辞書登録モードになります。 -!! $B%_%K%P%C%U%!$N%W%m%s%W%H$,!Z$4$4![$G$"$k$3$H$r3N$+$a$F!"(B -!! $B!X(B[fj]$B$4""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! ミニバッファのプロンプトが【ごご】であることを確かめて、 +!! 『[fj]ご□』とタイプしてください。 -$B%_%K%P%C%U%!$O!Z$4$4(B $B"'8a![$H$J$j$^$9!#(B +ミニバッファは【ごご ▼午】となります。 -!! $BB3$$$F!"!X(B[fj]$B$4""""""""""(Bj$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 続いて、『[fj]ご□□□□□j』とタイプしてください。 -$B%_%K%P%C%U%!$K!Z$4$4(B $B8a8e![$,$G$-$^$7$?!#(B +ミニバッファに【ごご 午後】ができました。 -!! $B%-!<$r2!$7$F$/$@$5$$!#(B +!! キーを押してください。 ->> $B8a8e(B +>> 午後 ---- -$B<-=q%P%C%U%!$K!Z$4$4(B /$B8a8e(B/$B![$,EPO?$5$l$?$N$G!"> $B8a8e$N8k!#(B +>> 午後の碁。 ---- -== $B:F5"E*<-=qEPO?(B == +== 再帰的辞書登録 == -!! $B!V"#%b!<%I!W$G!"!X(B[fj]$B$5$$$-$F$-""!Y$H%?%$%W$7$F$/$@$5$$!#(B -!! $B%_%K%P%C%U%!$N%W%m%s%W%H$,!Z$5$$$-$F$-![$G$"$k$3$H$r3N$+$a$F!"(B -!! $B!X(B[fj]$B$5$$$-""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『[fj]さいきてき□』とタイプしてください。 +!! ミニバッファのプロンプトが【さいきてき】であることを確かめて、 +!! 『[fj]さいき□』とタイプしてください。 -$B<-=q$K$O!Z$5$$$-![$b$J$$$N$G!":F$S<-=qEPO?%b!<%I$K$J$j$^$9!#(B +辞書には【さいき】もないので、再び辞書登録モードになります。 -!! $B%_%K%P%C%U%!$K!Z:F5"![$r:n$C$F$/$@$5$$!#(B -!! $B%_%K%P%C%U%!$,!Z$5$$$-(B $B:F5"![$H$J$C$?$i!"(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファに【再帰】を作ってください。 +!! ミニバッファが【さいき 再帰】となったら、 キーを押してください。 -$B$3$l$G!"!Z$5$$$-$F$-![$NEPO?%b!<%I$KLa$j$^$9!#(B +これで、【さいきてき】の登録モードに戻ります。 -!! $B%_%K%P%C%U%!$,!Z$5$$$-$F$-(B $B:F5"![$H$J$C$F$$$k$N$r3N$+$a$F!"!ZE*![$r:n$C(B -!! $B$F$/$@$5$$!#(B +!! ミニバッファが【さいきてき 再帰】となっているのを確かめて、【的】を作っ +!! てください。 ->> $B:F5"E*<-=qEPO?$r3X=,$7$^$7$?!#(B +>> 再帰的辞書登録を学習しました。 ---- -== $BAw$j2>L>$N$"$k8l$NF~NO(B == +== 送り仮名のある語の入力 == -SKK$B$G$O!"!ZF0$/![$H$$$C$?!"Aw$j2>L>$N$"$k8l$O!"0J2<$N$h$&$K<-=q$KEPO?(B -$B$5$l$F$$$^$9!#(B +SKKでは、【動く】といった、送り仮名のある語は、以下のように辞書に登録 +されています。 - $B$&$4(Bk /$BF0(B/ + うごk /動/ -$B$3$N$H$-!"F~NO$O;l$K!Z$9$k![$,IU2C$7$F$G$-$?F0;l$K$D$$$F$O!"L>;l$NItJ,$rC1FH$GJQ49$7$F(B -$B$/$@$5$$!#L>;l$+$i:n$i$l$?7AMF;lEy$K$D$$$F$bF1MM$G$9!#(B +名詞に【する】が付加してできた動詞については、名詞の部分を単独で変換して +ください。名詞から作られた形容詞等についても同様です。 ->> $BF0$3$&$K$bF0$1$J$+$C$?!#(B +>> 動こうにも動けなかった。 ---- -;; (save-excursion (save-match-data (set-buffer " *skk-tut-jisyo*") (goto-char skk-okuri-ari-min) (search-forward "\n$B$&$4(Bk /$BF0(B/" skk-okuri-nasi-min) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point))))) -== $BAw$j2>L>$N$"$kC18l$NEPO?(B == +;; (save-excursion (save-match-data (set-buffer " *skk-tut-jisyo*") (goto-char skk-okuri-ari-min) (search-forward "\nうごk /動/" skk-okuri-nasi-min) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point))))) +== 送り仮名のある単語の登録 == -$B<-=q$K!V$&$4(Bk$B!W$H$$$&8+=P$78l$,$J$$$H$-$O$I$&$J$k$G$7$g$&!#(B +辞書に「うごk」という見出し語がないときはどうなるでしょう。 -!! $B!V"#%b!<%I!W$G!"!X(B[fj]$B$&$4(B[fj]$B$/!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『[fj]うご[fj]く』とタイプしてください。 -$B<-=q$K$J$$$N$G!"%_%K%P%C%U%!$GEPO?$9$k$3$H$K$J$j$^$9!#%_%K%P%C%U%!$O(B -$B!Z$&$4(B*$B$/(B $B![$H$J$j$^$9(B ($B!Z(B*$B![$N$"$H$N!Z$/![$OAw$j2>L>(B)$B!#<-=q$K$O(B -$B!Z$I$&(B /$BF0(B/$B![$H$$$&9`L\$,$"$k$N$G!"$3$l$rMQ$$$F!"%_%K%P%C%U%!$K!ZF0![$r(B -$B:n$j$^$9!#(B +辞書にないので、ミニバッファで登録することになります。ミニバッファは +【うご*く 】となります (【*】のあとの【く】は送り仮名)。辞書には +【どう /動/】という項目があるので、これを用いて、ミニバッファに【動】を +作ります。 -$BCm0U(B: $B%_%K%P%C%U%!$K!ZF0$/![$r:n$C$F$7$^$&$H!"%P%C%U%!$O!ZF0$/$/![$H$J$C$F(B -$B$7$^$$$^$9!#%_%K%P%C%U%!$K$OAw$j2>L>$r=|$$$?ItJ,$@$1$r:n$j$^$9!#(B +注意: ミニバッファに【動く】を作ってしまうと、バッファは【動くく】となって +しまいます。ミニバッファには送り仮名を除いた部分だけを作ります。 -!! $B%_%K%P%C%U%!$K!ZF0![$,$G$-$?$i!"(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファに【動】ができたら、 キーを押してください。 ->> $BF0$/(B +>> 動く ---- -== $BB%2;$r4^$`C18l$NJQ49(B == +== 促音を含む単語の変換 == -$BB%2;$r4^$`C18l$NJQ49$O!"> $B?M8}$,0l2/$KC#$7$?$3$H$rCN$C$?!#(B +>> 人口が一億に達したことを知った。 ---- -== $B1Q;zJQ49(B == +== 英字変換 == -$B30Mh8lEy$N%m!<%^;zF~NO$O!V%+%J%b!<%I!W$G$G$-$^$9$,!"!V1Q;zJQ49!W$r;H$&$3(B -$B$H$b$G$-$^$9!#(B +外来語等のローマ字入力は「カナモード」でできますが、「英字変換」を使うこ +ともできます。 -!! $B!V"#%b!<%I!W$G!"!X(B[gh]file$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『[gh]file□』とタイプしてください。 -$B!V"#%b!<%I!W$G!X(B[gh]$B!Y$r%?%$%W$9$k$H!"!V"&%b!<%I!W$K$J$j$^$9!#$?$@$7!"DL>o$N(B -$B!V"&%b!<%I!W$H0[$J$j!"0J2<$NF~NO$O1Q;zF~NO$K$J$j$^$9!#:#$N>l9g!"<-=q$K(B -$B!Z(Bfile$B![$,$J$$$N$G!"<-=qEPO?%b!<%I$K$J$j$^$9!#(B +「■モード」で『[gh]』をタイプすると、「▽モード」になります。ただし、通常の +「▽モード」と異なり、以下の入力は英字入力になります。今の場合、辞書に +【file】がないので、辞書登録モードになります。 -!! $B%_%K%P%C%U%!$N%W%m%s%W%H$,!Z(Bfile$B![$G$"$k$3$H$r3N$+$a$F!"(B -!! $B!X(B[dk] $B$U$!$$$k!Y$H%?%$%W$7$F$+$i(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファのプロンプトが【file】であることを確かめて、 +!! 『[dk] ふぁいる』とタイプしてから キーを押してください。 ->> $B!V%U%!%$%k!W$,EPO?$5$l$^$7$?!#(B +>> 「ファイル」が登録されました。 ---- -== $B5-9f(B == +== 記号 == -$B0J2<$N5-9f$O!"<-=q$K!Z$-$4$&![$H$7$FEPO?$5$l$F$$$^$9(B -(S$B<-=q$K$O!"0lItL$EPO?$N5-9f$,$"$j$^$9(B)$B!#(B +以下の記号は、辞書に【きごう】として登録されています +(S辞書には、一部未登録の記号があります)。 - $B!!(B $B!"(B $B!#(B $B!$(B $B!%(B $B!&(B $B!'(B $B!((B $B!)(B $B!*(B $B!+(B $B!,(B $B!-(B $B!.(B $B!/(B $B!0(B $B!1(B $B!2(B $B!3(B $B!4(B $B!5(B $B!6(B $B!7(B - $B!8(B $B!9(B $B!:(B $B!;(B $B!<(B $B!=(B $B!>(B $B!?(B $B!@(B $B!A(B $B!B(B $B!C(B $B!D(B $B!E(B $B!F(B $B!G(B $B!H(B $B!I(B $B!J(B $B!K(B $B!L(B $B!M(B $B!N(B $B!O(B - $B!P(B $B!Q(B $B!R(B $B!S(B $B!T(B $B!U(B $B!V(B $B!W(B $B!X(B $B!Y(B $B!Z(B $B![(B $B!\(B $B!](B $B!^(B $B!_(B $B!`(B $B!a(B $B!b(B $B!c(B $B!d(B $B!e(B $B!f(B $B!g(B - $B!h(B $B!i(B $B!j(B $B!k(B $B!l(B $B!m(B $B!n(B $B!o(B $B!p(B $B!q(B $B!r(B $B!s(B $B!t(B $B!u(B $B!v(B $B!w(B $B!x(B $B!y(B $B!z(B $B!{(B $B!|(B $B!}(B $B!~(B - $B"!(B $B""(B $B"#(B $B"$(B $B"%(B $B"&(B $B"'(B $B"((B $B")(B $B"*(B $B"+(B $B",(B $B"-(B $B".(B +   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ ^  ̄ _ ヽ ヾ ゝ ゞ 〃 + 仝 々 〆 〇 ー ― ‐ / \ ~ ∥ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] + { } 〈 〉 《 》 「 」 『 』 【 】 + - ± × ÷ = ≠ < > ≦ ≧ ∞ + ∴ ♂ ♀ ° ′ ″ ℃ ¥ $ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇ + ◆ □ ■ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ 〓 ->> $B")(B980 +>> 〒980 ---- -== $B%.%j%7%"J8;z$H%-%j!<%kJ8;z(B == +== ギリシア文字とキリール文字 == -$B$3$l$i$O!"<-=q$G$O0J2<$N$h$&$KEPO?$5$l$F$$$^$9(B -($B0JA0$N<-=q$G$O!"!V(BCyrillic$B!W!V(Bcyrillic$B!W$NBe$o$j$K(B -$B!V(BRussia$B!W!V(Brussia$B!W$GEPO?$5$l$F$$$^$7$?(B)$B!#(B +これらは、辞書では以下のように登録されています +(以前の辞書では、「Cyrillic」「cyrillic」の代わりに +「Russia」「russia」で登録されていました)。 -Greek /$B&!(B/$B&"(B/$B&#(B/$B&$(B/$B&%(B/$B&&(B/$B&'(B/$B&((B/$B&)(B/$B&*(B/$B&+(B/$B&,(B/$B&-(B/$B&.(B/$B&/(B/$B&0(B/$B&1(B/$B&2(B/$B&3(B/$B&4(B/$B&5(B/$B&6(B/$B&7(B/$B&8(B/ -greek /$B&A(B/$B&B(B/$B&C(B/$B&D(B/$B&E(B/$B&F(B/$B&G(B/$B&H(B/$B&I(B/$B&J(B/$B&K(B/$B&L(B/$B&M(B/$B&N(B/$B&O(B/$B&P(B/$B&Q(B/$B&R(B/$B&S(B/$B&T(B/$B&U(B/$B&V(B/$B&W(B/$B&X(B/ -Cyrillic /$B'!(B/$B'"(B/$B'#(B/$B'$(B/$B'%(B/$B'&(B/$B''(B/$B'((B/$B')(B/$B'*(B/$B'+(B/$B',(B/$B'-(B/$B'.(B/$B'/(B/$B'0(B/$B'1(B/$B'2(B/$B'3(B/$B'4(B/$B'5(B/$B'6(B/$B'7(B/$B'8(B/$B'9(B/$B':(B/$B';(B/$B'<(B/$B'=(B/$B'>(B/$B'?(B/$B'@(B/$B'A(B/ -cyrillic /$B'Q(B/$B'R(B/$B'S(B/$B'T(B/$B'U(B/$B'V(B/$B'W(B/$B'X(B/$B'Y(B/$B'Z(B/$B'[(B/$B'\(B/$B'](B/$B'^(B/$B'_(B/$B'`(B/$B'a(B/$B'b(B/$B'c(B/$B'd(B/$B'e(B/$B'f(B/$B'g(B/$B'h(B/$B'i(B/$B'j(B/$B'k(B/$B'l(B/$B'm(B/$B'n(B/$B'o(B/$B'p(B/$B'q(B/ +Greek /Α/Β/Γ/Δ/Ε/Ζ/Η/Θ/Ι/Κ/Λ/Μ/Ν/Ξ/Ο/Π/Ρ/Σ/Τ/Υ/Φ/Χ/Ψ/Ω/ +greek /α/β/γ/δ/ε/ζ/η/θ/ι/κ/λ/μ/ν/ξ/ο/π/ρ/σ/τ/υ/φ/χ/ψ/ω/ +Cyrillic /А/Б/В/Г/Д/Е/Ё/Ж/З/И/Й/К/Л/М/Н/О/П/Р/С/Т/У/Ф/Х/Ц/Ч/Ш/Щ/Ъ/Ы/Ь/Э/Ю/Я/ +cyrillic /а/б/в/г/д/е/ё/ж/з/и/й/к/л/м/н/о/п/р/с/т/у/ф/х/ц/ч/ш/щ/ъ/ы/ь/э/ю/я/ -$B$7$?$,$C$F!"!V1Q;zJQ49!W$GF~NO$7$^$9!#(B +したがって、「英字変換」で入力します。 ->> $B&E&D(B +>> εδ ---- -== $B%3!<%IF~NO(B == +== コード入力 == -$BBh(B2$B?e=`$N4A;zEy$N<-=q$K$J$$J8;z$K$D$$$F$O!"(BJIS$B%3!<%I$^$?$O(BEUC$B$K(B -$B$h$kF~NO$,:G8e$N $B%-!<$r2!$7$F$/$@$5$$!#(B +!! 『555c』とタイプし、 キーを押してください。 ->> $BElKLBgU\(B +>> 東北大學 ---- -== $BFI$_$N%3%s%W%j!<%7%g%s(B == +== 読みのコンプリーション == -$B!V"&%b!<%I!W$G(B $B%-!<$r2!$9$H!"!VFI$_$N%3%s%W%j!<%7%g%s!W$,9T$o$l$^$9!#(B - $B$r2!$9$^$G$K!V"&%b!<%I!W$GF~NO$5$l$?J8;zNs$r&R$H$9$k$H!"<-=q%P%C%U%!$N(B -$BCf$G!"@hF,$,&R$H0lCW$7!"D9$5$,&R$h$j$bD9$$FI$_$rC5$7$F!"$=$N$h$&$J&S$,$b(B -$B$7$"$l$P!"&R$NBe$o$j$K&S$rI=<($7$^$9!#(B +「▽モード」で キーを押すと、「読みのコンプリーション」が行われます。 + を押すまでに「▽モード」で入力された文字列をσとすると、辞書バッファの +中で、先頭がσと一致し、長さがσよりも長い読みを探して、そのようなτがも +しあれば、σの代わりにτを表示します。 -!! $B!V"#%b!<%I!W$G!"!X$3$N(B[fj]$B$R$3$&$-""$h$j$"$N(B[fj]$B$R!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『この[fj]ひこうき□よりあの[fj]ひ』とタイプしてください。 -$B%P%C%U%!$O!Z$3$NHt9T5!$h$j$"$N"&$R![$H$J$j$^$9!#(B +バッファは【この飛行機よりあの▽ひ】となります。 -!! $B%-!<$r2!$7$F$/$@$5$$!#(B +!! キーを押してください。 -$B%3%s%W%j!<%7%g%s$,9T$o$l$F%P%C%U%!$O!Z$3$NHt9T5!$h$j$"$N"&$R$3$&$-![$H$J$j$^(B -$B$9!#(B +コンプリーションが行われてバッファは【この飛行機よりあの▽ひこうき】となりま +す。 ->> $B$3$NHt9T5!$h$j$"$NHt9T5!$K$7$h$&!#(B +>> この飛行機よりあの飛行機にしよう。 ---- -$B%3%s%W%j!<%7%g%s$O<-=q%P%C%U%!$r:G=i$+$i=g$KD4$Y$F9T$o$l$k$N$G!"J8;zNs&R(B -$B$H@hF,$,0lCW$9$kFI$_$,%P%C%U%!$KJ#?t8D$"$k$H$-$OA0$NJ}$K$"$kFI$_$K%3%s%W(B -$B%j!<%7%g%s$5$l$^$9!#$3$l$,0U?^$7$?$b$N$G$J$+$C$?$H$-$K$O!"(B $B$ND>8e$K(B -$B!X(B.$B!Y(B(period) $B$r%?%$%W$9$k$H(B2$BHVL\$NFI$_$,I=<($5$l$^$9!#0J2 の直後に +『.』(period) をタイプすると2番目の読みが表示されます。以下同様に、『.』 +を続けてタイプすると、読みの候補が順次表示されます。『.』を打ちすぎて意 +図した読みを通り過ぎたときは『,』(comma) で前の候補に戻ります。 -$BNc$H$7$F!"!V:4F#$H:XF#$G$O:4F#$N$[$&$,$"$j$U$l$?L>;z$@!#!W$H$$$&J8$NF~NO(B -$B$r9M$($F$_$^$7$g$&!#(B +例として、「佐藤と斎藤では佐藤のほうがありふれた名字だ。」という文の入力 +を考えてみましょう。 -!! $B!V"#%b!<%I!W$G!"!X(B[fj]$B$5$H$&""$H(B[fj]$B$5$$$H$&""$G$O(B[fj]$B$5!Y$H%?%$%W$7$F$+$i(B -!! $B%-!<$r2!$7$F$/$@$5$$!#(B +!! 「■モード」で、『[fj]さとう□と[fj]さいとう□では[fj]さ』とタイプしてから +!! キーを押してください。 -$B%P%C%U%!$O!Z:4F#$H:XF#$G$O"&$5$$$H$&![$H$J$j$^$9!#(B +バッファは【佐藤と斎藤では▽さいとう】となります。 -!! $B!X(B..,$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 『..,』とタイプしてください。 ->> $B:4F#$H:XF#$G$O:4F#$N$[$&$,$"$j$U$l$?L>;z$@!#(B +>> 佐藤と斎藤では佐藤のほうがありふれた名字だ。 ---- -NICOLA SKK $B$N4pK\E*$J;HMQK!$N2r@b$O$3$l$G=*$j$G$9!#(B +NICOLA SKK の基本的な使用法の解説はこれで終りです。 -$B$J$*!"(BSKK $B$O5/F0;~$K%f!<%6<-=q%U%!%$%k$r<-=q%P%C%U%!$KFI$_9~$_!"!V"'%b!<(B -$B%I!W$G3NDj$9$k$?$S$K<-=q%P%C%U%!$O99?7$5$l$^$9!#$=$7$F(B Emacs $B$r=*N;$9$k(B -$B$H$-$K!"<-=q%P%C%U%!$O<-=q%U%!%$%k$K%;!<%V$5$l$^$9!#$7$?$,$C$F!"DL>o$O!"(B -$B0U<1$7$F<-=q%P%C%U%!$r%;!<%V$9$kI,MW$O$"$j$^$;$s!#$^$?!"F1;~$K0l2sA0$K(B -$B:n$i$l$?<-=q$O!"(B.skk-jisyo.BAK $B$K%P%C%/%"%C%W$5$l$k$N$G!";v8NEy$G!"(B -.skk-jisyo $B$,2u$l$?$j$7$?$H$-$K$O!"$3$N%U%!%$%k$G$+$J$j2sI|$,2DG=$G$9!#(B +なお、SKK は起動時にユーザ辞書ファイルを辞書バッファに読み込み、「▼モー +ド」で確定するたびに辞書バッファは更新されます。そして Emacs を終了する +ときに、辞書バッファは辞書ファイルにセーブされます。したがって、通常は、 +意識して辞書バッファをセーブする必要はありません。また、同時に一回前に +作られた辞書は、.skk-jisyo.BAK にバックアップされるので、事故等で、 +.skk-jisyo が壊れたりしたときには、このファイルでかなり回復が可能です。 -SKK $B$O$3$3$G@bL@$G$-$J$+$C$?B?$/$N5!G=$r$b$C$F$$$^$9!#(BSKK $B$N$h$j>\$7$$(B -$B;HMQK!$K$D$$$F$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5$$!#(B +SKK はここで説明できなかった多くの機能をもっています。SKK のより詳しい +使用法については、マニュアルを参照してください。 -$B$G$O!":G8e$NLdBj$G$9!#(B +では、最後の問題です。 ->> $B$3$l$G(B NICOLA SKK $B%A%e!<%H%j%"%k$r=*N;$7$^$9!#(B +>> これで NICOLA SKK チュートリアルを終了します。 ---- ;; (skktut-end-tutorial) diff --git a/etc/SKK.tut b/etc/SKK.tut index b324d2b0..b559414b 100644 --- a/etc/SKK.tut +++ b/etc/SKK.tut @@ -26,587 +26,587 @@ ;; modified versions, except that this permission notice may be stated in ;; a translation approved by Masahiko Sato. ---- -== SKK $B%A%e!<%H%j%"%k$N;H$$J}(B == +== SKK チュートリアルの使い方 == -SKK $B$O(B Emacs $B$N$?$a$N9bB.$G8zN(E*$JF|K\8lF~NO%7%9%F%`$G$9!#C1=c$J4pK\86M}$N(B -$B$b$H$G@_7W!":n@.$5$l$F$$$k$?$a$K!";H$$J}$rC;;~4V$G?H$K$D$1$k$3$H$,$G$-$^$9!#(B -$B$3$N%A%e!<%H%j%"%k$G$O!"(BEmacs $B$K4X$9$k4pACCN<1$rM-$7$F$$$k$b$N$H2>Dj$7$F(B -SKK $B$N2r@b$r9T$$$^$9!#(B +SKK は Emacs のための高速で効率的な日本語入力システムです。単純な基本原理の +もとで設計、作成されているために、使い方を短時間で身につけることができます。 +このチュートリアルでは、Emacs に関する基礎知識を有しているものと仮定して +SKK の解説を行います。 -$B%A%e!<%H%j%"%k$OLdBj$r2r$-$J$,$i?J$s$G$$$-$^$9!#!Z(B*$BLd(B*$B![%P%C%U%!$N:G8e$K!Z(B>>$B![(B -$B$G;O$^$k9T$,$"$j$^$9!#$3$l$HF1$89T$r!Z(B*$BEz(B*$B![%P%C%U%!$K:n$k$3$H$,2sEz$K$J$j(B -$B$^$9!#Ez$,$G$-$?$i!"!X(BC-x n$B!Y(B(Next) $B$r%?%$%W$7$F$/$@$5$$!#Ez$,@5$7$1$l$P(B -$B%P%C%U%!$,99?7$5$l!">】 +で始まる行があります。これと同じ行を【*答*】バッファに作ることが回答になり +ます。答ができたら、『C-x n』(Next) をタイプしてください。答が正しければ +バッファが更新され、次の問題が表示されます。 - ($B!X(BC-x$B!Y$O!"(B$B!"$9$J$o$A!"(B $B%-!<$H!X(Bx$B!Y%-!<$rF1;~$K2!$9(B -$B$3$H$r<($7$^$9(B) + (『C-x』は、、すなわち、 キーと『x』キーを同時に押す +ことを示します) -$B%A%e!<%H%j%"%k$rESCf$G=*N;$7$?$1$l$P!"!X(BC-x q$B!Y(B(Quit) $B$r%?%$%W$7$F$/$@$5$$!#(B -$BLdBj$r%9%-%C%W$7$?$$$H$-$O!"!X(BC-x s$B!Y(B(Skip) $B$r%?%$%W$7$F$/$@$5$$!#(B +チュートリアルを途中で終了したければ、『C-x q』(Quit) をタイプしてください。 +問題をスキップしたいときは、『C-x s』(Skip) をタイプしてください。 -$B$G$O:G=i$NLdBj$G$9!#(B +では最初の問題です。 >> (concat "My name is " (skktut-user-name) ".") ---- -== SKK $B$N5/F0!"!V$+$J%b!<%I!W(B == +== SKK の起動、「かなモード」 == -$B0J2<$N@bL@$G!"@hF,$,!Z(B!!$B![$H$J$C$F$$$k9T$K$D$$$F$O!"$=$3$K=q$$$F$"$kFbMF(B -$B$r$=$N$H$*$j.J8;z$GF~NO$5$l$?%m!<%^;z$O$R$i$+$J$KJQ49$5(B -$B$l$F$+$i%P%C%U%!$KA^F~$5$l$^$9!#Nc$($P!"!X(Baiueo$B!Y$H%?%$%W$9$l$P!Z$"$$$&$((B -$B$*![$H$J$j$^$9!#(B +モード行の表示に【かな】が加わりました。このモードを「かなモード」と言い +ます。「かなモード」では、英小文字で入力されたローマ字はひらかなに変換さ +れてからバッファに挿入されます。例えば、『aiueo』とタイプすれば【あいうえ +お】となります。 -$B"(!V$+$J%b!<%I!W$G$O!"@bL@$,$"$k$^$G$O1QBgJ8;z$r%?%$%W$7$J$$$G$/$@$5$$!#(B +※「かなモード」では、説明があるまでは英大文字をタイプしないでください。 ->> $B$+$-$/$1$3(B +>> かきくけこ ---- -== $B!V$+$J%b!<%I!W$+$i!V%"%9%-!<%b!<%I!W$X$N0\9T(B == +== 「かなモード」から「アスキーモード」への移行 == -$B!V$+$J%b!<%I!W$+$i!V%"%9%-!<%b!<%I!W$X0\$k$K$O!X(Bl$B!Y(B($B1Q>.J8;z$N%(%k!#!V(BLatin$B!W(B -$B$NF,J8;z(B) $B$rF~NO$7$^$9!#(B +「かなモード」から「アスキーモード」へ移るには『l』(英小文字のエル。「Latin」 +の頭文字) を入力します。 -!! $B!X(Bl$B!Y$r%?%$%W$7$F$/$@$5$$!#(B -!! $B%b!<%I9T$KCmL\$7$F!"%b!<%I$N?d0\$r3NG'$7$F$/$@$5$$!#(B +!! 『l』をタイプしてください。 +!! モード行に注目して、モードの推移を確認してください。 -$B!V%"%9%-!<%b!<%I!W$G$O!"F~NO$5$l$?%-!<$ODL>o$N(B Emacs $B$N%3%^%s%I$H$7$F2ruBV$H9M$($i$l$^$9!#%b!<%I9T$N!Z(BSKK$B![$O(B SKK $B$,$3$N%P%C%U%!$G5/F0$5(B -$B$l$F$$$k$3$H$r<($9$?$a$N$b$N$G$9!#(B +「アスキーモード」では、入力されたキーは通常の Emacs のコマンドとして解釈 +されます。「アスキーモード」は次項で説明する点を除いては、SKK を起動する +前と同じ状態と考えられます。モード行の【SKK】は SKK がこのバッファで起動さ +れていることを示すためのものです。 >> Now we are in ASCII mode. ---- -== $B!V%"%9%-!<%b!<%I!W$+$i!V$+$J%b!<%I!W$X$N0\9T(B == +== 「アスキーモード」から「かなモード」への移行 == -$B!V%"%9%-!<%b!<%I!W$+$i!V$+$J%b!<%I!W$X$O!X(BC-j$B!Y$r%?%$%W$7$F0\$j$^$9!#(B -$B$^$H$a$k$H!"(B +「アスキーモード」から「かなモード」へは『C-j』をタイプして移ります。 +まとめると、 - l : $B$+$J(B --> $B%"%9%-!<(B - C-j : $B%"%9%-!<(B --> $B$+$J(B + l : かな --> アスキー + C-j : アスキー --> かな ->> ASCII $B$+$i(B $B$+$J(B +>> ASCII から かな ---- -== $B!V%+%J%b!<%I!W(B == +== 「カナモード」 == -$B%+%?%+%J$NF~NO$O!V%+%J%b!<%I!W$G9T$$$^$9!#!V$+$J%b!<%I!W$H!V%+%J%b!<%I!W(B -$B$N?d0\$O!X(Bq$B!Y%-!<$G9T$$$^$9!#(B +カタカナの入力は「カナモード」で行います。「かなモード」と「カナモード」 +の推移は『q』キーで行います。 - q : $B$+$J(B --> $B%+%J(B - q : $B%+%J(B --> $B$+$J(B + q : かな --> カナ + q : カナ --> かな ->> $B$R$i$+$J(B $B$+$i(B $B%+%?%+%J(B $B$=$7$F$^$?(B $B$R$i$+$J(B +>> ひらかな から カタカナ そしてまた ひらかな ---- -== $B!Z$s![$NF~NOK!(B == +== 【ん】の入力法 == -$B!Z$s![$O!X(Bnn$B!Y$^$?$O!X(Bn'$B!Y$GF~NO$7$^$9!#D>8e$K(B ($B!X(Bn$B!Y!"!X(By$B!Y0J30$N(B) $B;R2;$,(B -$BB3$/$H$-$O!X(Bn$B!Y$@$1$GF~NO$G$-$^$9!#(B +【ん】は『nn』または『n'』で入力します。直後に (『n』、『y』以外の) 子音が +続くときは『n』だけで入力できます。 ->> $B$+$J$+$s$8$X$s$+$s(B +>> かなかんじへんかん ---- -== $B$R$i$+$J$N>.J8;z$NF~NOK!(B == +== ひらかなの小文字の入力法 == -$B$R$i$+$J$N>.J8;z$rC1FH$GF~NO$9$k$H$-$O!"(B +ひらかなの小文字を単独で入力するときは、 - $B!X(Bxa$B!Y(B==>$B!Z$!![!"!X(Bxya$B!Y(B==>$B!Z$c![(B + 『xa』==>【ぁ】、『xya』==>【ゃ】 -$B$J$I$N$h$&$K!X(Bx$B!Y$rMQ$$$^$9!#$7$+$7!"$?$$$F$$$O!"(B +などのように『x』を用います。しかし、たいていは、 - $B!X(Bchotto$B!Y(B==>$B!Z$A$g$C$H![!"!X(Btyotto$B!Y(B==>$B!Z$A$g$C$H![(B + 『chotto』==>【ちょっと】、『tyotto』==>【ちょっと】 -$B$N$h$&$K$7$FF~NO$G$-$^$9!#(B +のようにして入力できます。 ->> $B$"$C(B $B$=$&$@$C$?$N$+(B +>> あっ そうだったのか ---- -== $B$N$P$92;(B ($BD92;(B) $B$NF~NOK!(B == +== のばす音 (長音) の入力法 == -$B$N$P$92;$O!"(B +のばす音は、 - $B!X(B-$B!Y(B==>$B!Z!【ー】 -$B$GF~NO$7$^$9!#(B +で入力します。 ->> $B$(!<$H(B +>> えーと ---- -== $B!VA41Q%b!<%I!W(B == +== 「全英モード」 == -$B!Z#S#K#K![$N$h$&$JA43Q1QJ8;zNs$NF~NO$O!VA41Q%b!<%I!W$G9T$$$^$9!#!VA41Q(B -$B%b!<%I!W$G$O!"!X(Ba$B!Y$+$i!X(Bz$B!Y$*$h$S!X(BA$B!Y$+$i!X(BZ$B!Y$OA43Q%"%k%U%!%Y%C%H$H$7(B -$B$F%P%C%U%!$KA^F~$5$l$^$9!#!VA41Q%b!<%I!W$X$O!V$+$J%b!<%I!W$^$?$O!V%+%J%b(B -$B!<%I!W$+$i!X(BL$B!Y%-!<$G0\9T$7$^$9(B ($B!X(BL$B!Y$O!V(BLatin$B!W$NF,J8;z(B)$B!#(B -$B!VA41Q%b!<%I!W$+$i85$N!V$+$J%b!<%I!W$^$?$O!V%+%J%b!<%I!W$X$O!X(BC-j$B!Y$GLa$j(B -$B$^$9!#(B +【SKK】のような全角英文字列の入力は「全英モード」で行います。「全英 +モード」では、『a』から『z』および『A』から『Z』は全角アルファベットとし +てバッファに挿入されます。「全英モード」へは「かなモード」または「カナモ +ード」から『L』キーで移行します (『L』は「Latin」の頭文字)。 +「全英モード」から元の「かなモード」または「カナモード」へは『C-j』で戻り +ます。 - L : $B$+$J(B/$B%+%J(B --> $BA41Q(B - C-j : $BA41Q(B --> $B$+$J(B/$B%+%J(B + L : かな/カナ --> 全英 + C-j : 全英 --> かな/カナ ->> $B#S#K#K$,$D$+$($k$N$O#E#m#a#c#s$@$1$G$9(B +>> SKKがつかえるのはEmacsだけです ---- -== $B$3$l$^$G$N$^$H$a(B == +== これまでのまとめ == -SKK $B$O!X(BC-x C-j$B!Y$G5/F0$5$l$^$9!#(BSKK $B$K$O(B4$B$D$N%b!<%I$,$"$j$^$9!#(B +SKK は『C-x C-j』で起動されます。SKK には4つのモードがあります。 - $B!V%"%9%-!<%b!<%I!W!"!V$+$J%b!<%I!W!"!V%+%J%b!<%I!W!"!VA41Q%b!<%I!W(B + 「アスキーモード」、「かなモード」、「カナモード」、「全英モード」 -$B%b!<%I4V$N?d0\$O $B$+$J(B/$B%+%J(B == l ==> $B%"%9%-!<(B + アスキー == C-j ==> かな/カナ == l ==> アスキー - $B$+$J(B <== q ==> $B%+%J(B + かな <== q ==> カナ - $BA41Q(B == C-j ==> $B$+$J(B/$B%+%J(B == L ==> $BA41Q(B + 全英 == C-j ==> かな/カナ == L ==> 全英 ->> $B#S#K#K$K$O(B ASCII$B%b!<%I(B $B$H(B $B$+$J%b!<%I(B $B$H(B $B%+%J%b!<%I(B $B$H(B $B$<$s$($$%b!<%I(B $B$,$"$k(B +>> SKKには ASCIIモード と かなモード と カナモード と ぜんえいモード がある ---- -== $B!V$+$J%b!<%I!W(B == +== 「かなモード」 == -$B!V$+$J%b!<%I!W$H!V%+%J%b!<%I!W$G$O!"0J2<$N%-!<$,FCJL$N0UL#$r;}$A$^$9!#(B -$B$3$l0J30$N%-!o$N(B Emacs $B$N%-!<$H$7$F(B -$B5!G=$7$^$9!#(B +「かなモード」と「カナモード」では、以下のキーが特別の意味を持ちます。 +これ以外のキー(例えば『C-a』や『%』など)は、通常の Emacs のキーとして +機能します。 - l$B!"(Bq$B!"(Bx$B!"(BL $B$9$G$K@bL@$7$?$H$*$j(B - $B>e5-0J30$N1Q>.J8;z(B $B%m!<%^;z$+$JJQ49$NBP>](B - $B1QBgJ8;z(B $B4A;zJQ49%b!<%I$X$N0\9T(B - / $B1Q;zJQ49%b!<%I$X$N0\9T(B - , $B!Z!"![$H$7$FF~NO$5$l$k(B - . $B!Z!#![$H$7$FF~NO$5$l$k(B - [$B!"(B] $B!Z!V![!"!Z!W![$H$7$FF~NO$5$l$k(B + l、q、x、L すでに説明したとおり + 上記以外の英小文字 ローマ字かな変換の対象 + 英大文字 漢字変換モードへの移行 + / 英字変換モードへの移行 + , 【、】として入力される + . 【。】として入力される + [、] 【「】、【」】として入力される -!! $B$?$a$7$K!"6gFIE@$H%+%C%3$rF~NO$7$F$_$F$/$@$5$$!#(B +!! ためしに、句読点とカッコを入力してみてください。 ->> $B!V$"!"$=$&$@$C$?$N$+!#!W(B +>> 「あ、そうだったのか。」 ---- -== $B2>L>4A;zJQ49(B == +== 仮名漢字変換 == -$B2>L>4A;zJQ49$O!V$+$J%b!<%I!W$G9T$o$l$^$9!#(B +仮名漢字変換は「かなモード」で行われます。 -!! $B%b!<%I$r(B ($B$b$7:#!V$+$J%b!<%I!W$G$J$1$l$P(B)$B!V$+$J%b!<%I!W$K$7$F!"(B -!! $B!X(BKanji$B!Y$H%?%$%W$7$F$/$@$5$$(B ($B:G=i$N!X(BK$B!Y$@$1$,1QBgJ8;z$G$9(B)$B!#(B +!! モードを (もし今「かなモード」でなければ)「かなモード」にして、 +!! 『Kanji』とタイプしてください (最初の『K』だけが英大文字です)。 -$B%P%C%U%!$O!Z"&$+$s$8![$H$J$C$?$O$:$G$9!#(B +バッファは【▽かんじ】となったはずです。 -!! $B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! 次に キーを押してください。 -$B%P%C%U%!$O!Z"'4A;z![$H$J$j$^$9!#(B +バッファは【▼漢字】となります。 -!! $B> $B4A;z(B +>> 漢字 ---- -$B$b$&0lEY!"$d$C$F$_$^$7$g$&!#(B +もう一度、やってみましょう。 -!! $B%b!<%I$r(B ($B$b$7:#!V$+$J%b!<%I!W$G$J$1$l$P(B)$B!V$+$J%b!<%I!W$K$7$F!"(B -!! $B!X(BKanji$B!Y$H%?%$%W$7$F!"$=$l$+$i!"(B $B%-!<$r(B2$B2s2!$7$F$/$@$5$$!#(B +!! モードを (もし今「かなモード」でなければ)「かなモード」にして、 +!! 『Kanji』とタイプして、それから、 キーを2回押してください。 -$B%P%C%U%!$O(B +バッファは - $B!Z"&$+$s$8![(B ==> $B!Z"'4A;z![(B ==> $B!Z"'44;v![(B + 【▽かんじ】 ==> 【▼漢字】 ==> 【▼幹事】 -$B$H$J$j$^$9!#(B +となります。 -!! $B> $B44;v(B +>> 幹事 ---- -$B:#EY$O>/$7D9$$$N$G!"4V0c$o$J$$$h$&$K!"$f$C$/$j$H%?%$%W$7$F$/$@$5$$!#(B -$B!X""!Y$O(B $B%-!<$rI=$o$7$^$9!#$7$?$,$C$F!"!X""""!Y$H$"$l$P!"(B - $B%-!<$r(B2$B2sB3$1$F2!$7$F$/$@$5$$!#(B +今度は少し長いので、間違わないように、ゆっくりとタイプしてください。 +『□』は キーを表わします。したがって、『□□』とあれば、 + キーを2回続けて押してください。 -!! $B%b!<%I$r(B ($B$b$7:#!V$+$J%b!<%I!W$G$J$1$l$P(B)$B!V$+$J%b!<%I!W$K$7$F!"(B -!! $B!X(BKanji$B""""(BnoNyuuryoku$B""(BhaYoui$B""(Bdesu.$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! モードを (もし今「かなモード」でなければ)「かなモード」にして、 +!! 『Kanji□□noNyuuryoku□haYoui□desu.』とタイプしてください。 ->> $B4A;z$NF~NO$OMF0W$G$9!#(B +>> 漢字の入力は容易です。 ---- -!! $B!V$+$J%b!<%I!W$G!"!X(Bkanji$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「かなモード」で、『kanji』とタイプしてください。 -$B%P%C%U%!$O!Z$+$s$8![$H$J$j$^$9!#$7$+$7!"K\Ev$O!X(BKanji$B!Y$H%?%$%W$7$?$+$C$?$H(B -$B$7$^$9!#$3$N>l9g!"(B3$BJ8;z:o=|(B (delete) $B$7$F$+$i!X(BKanji$B!Y$H%?%$%W$7D>$7$F$b$h$$(B -$B$N$G$9$,!")$B!"!X(BC-j$B!Y$r%?%$(B -!! $B%W$7$F$/$@$5$$!#(B +!! 『C-e』(end-of-line) をタイプしてから、『□』()、『C-j』をタイ +!! プしてください。 ->> $B4A;z(B +>> 漢字 ---- -== $B!V$+$J%b!<%I!W$NItJ,%b!<%I(B == +== 「かなモード」の部分モード == -$B!V$+$J%b!<%I!W$O!"!VJ?2>L>3NDjF~NO%b!<%I!W$H!V4A;zJQ49%b!<%I!W$N(B2$B$D$NIt(B -$BJ,%b!<%I$KJ,$+$l$^$9!#:#8e$O!VJ?2>L>3NDjF~NO%b!<%I!W$N$3$H$r!V"#%b!<%I!W(B -$B$H8@$$$^$9!#!V4A;zJQ49%b!<%I!W$O99$K!V"&%b!<%I!W$H!V"'%b!<%I!W$KJ,$+$l$^(B -$B$9!#$D$^$j!"!V$+$J%b!<%I!W$O!"(B +「かなモード」は、「平仮名確定入力モード」と「漢字変換モード」の2つの部 +分モードに分かれます。今後は「平仮名確定入力モード」のことを「■モード」 +と言います。「漢字変換モード」は更に「▽モード」と「▼モード」に分かれま +す。つまり、「かなモード」は、 - $B!V"#%b!<%I!W!"!V"&%b!<%I!W!"!V"'%b!<%I!W(B + 「■モード」、「▽モード」、「▼モード」 -$B$N(B3$B$D$NItJ,%b!<%I$KJ,3d$5$l$^$9!#(B +の3つの部分モードに分割されます。 -$B!V"#%b!<%I!W$G$O!"1Q>.J8;z$K$h$k%m!<%^;z$,J?2>L>$KJQ49$5$l$F3NDjF~NO$5$l(B -$B$^$9!#!V"#%b!<%I!W(B($BJ?2>L>3NDjF~NO%b!<%I(B) $B$O$3$l$+$i2?EY$b=P$F$/$k$N$G!"$h(B -$B$/3P$($F$*$$$F$/$@$5$$!#(B +「■モード」では、英小文字によるローマ字が平仮名に変換されて確定入力され +ます。「■モード」(平仮名確定入力モード) はこれから何度も出てくるので、よ +く覚えておいてください。 ->> $B$R$i$+$J$+$/$F$$$K$e$&$j$g$/$O!"$J$s$I$b!"$l$s$7$e$&$7$F$-$^$7$?!#(B +>> ひらかなかくていにゅうりょくは、なんども、れんしゅうしてきました。 ---- -== $B!V"&%b!<%I!W$H!V"'%b!<%I!W(B == +== 「▽モード」と「▼モード」 == -SKK $B$G$N2>L>4A;zJQ49$O]$K$J$kJ8;zNs$r3NDj$9$k(B ($B!V"&%b!<%I!W(B)$B!#(B - 2 $B3NDj$7$?J8;zNs$KBP$9$k8uJd$rNs5s$9$k(B ($B!V"'%b!<%I!W(B)$B!#(B - 3 $B5a$a$k8uJd$rA*Br$7JQ49$r3NDj$9$k(B ($B!V"'%b!<%I!W(B)$B!#(B + 1 変換の対象になる文字列を確定する (「▽モード」)。 + 2 確定した文字列に対する候補を列挙する (「▼モード」)。 + 3 求める候補を選択し変換を確定する (「▼モード」)。 -$B$9$G$K8+$?$h$&$K!"!Z4A;z![$rNc$K5s$2$l$P!"JQ49$NBP>]$H$J$kJ8;zNs!J8+=P$7(B -$B8l!K$O!Z$+$s$8![$G$9!#!X(BKanji$B!Y$H:G=i$r1QBgJ8;z$G;O$a$F%?%$%W$9$l$P!"(B -$B!Z$+$s$8![$,!V"&%b!<%I!W$GF~NO$5$l$^$9!#!V"&%b!<%I!W$G(B $B$r%?%$%W$9(B -$B$l$P!"!Z"&![$H%]%$%s%H$N4V$NJ8;zNs$,JQ49$NBP>]!J8+=P$78l!K$H$7$F3NDj$7$^(B -$B$9!#F1;~$K%b!<%I$O!V"'%b!<%I!W$X0\$j!"JQ49$N:G=i$N8uJd$,I=<($5$l$^$9!#(B -$B!V"'%b!<%I!W$G$O(B $B$r%?%$%W$9$k$?$S$K をタイプす +れば、【▽】とポイントの間の文字列が変換の対象(見出し語)として確定しま +す。同時にモードは「▼モード」へ移り、変換の最初の候補が表示されます。 +「▼モード」では をタイプするたびに次候補を表示します。「▼モード」 +で『C-j』をタイプすれば、現在表示されている候補が選択されて確定します。 +同時にモードは「■モード」になります。 ->> $B!V@vBu!W$rA*Br$9$k!#(B +>> 「洗濯」を選択する。 ---- -$B%b!<%I$N?d0\$O!"DL>o$O $B"&(B == ==> $B"'(B == $B!X(BC-j$B!Y(B ==> $B"#(B + ■ == 英大文字 ==> ▽ == ==> ▼ == 『C-j』 ==> ■ -$B$3$N$[$+!"(B +このほか、 - $B"&(B == $B!X(BC-j$B!Y(B ==> $B"#(B + ▽ == 『C-j』 ==> ■ -$B$O8m$C$F1QBgJ8;z$r%?%$%W$7$F!V"&%b!<%I!W$K$J$C$?$H$-$K;H$$$^$9!#$^$?!"(B +は誤って英大文字をタイプして「▽モード」になったときに使います。また、 - $B"'(B == $B$H0u;z2DG=$J$9$Y$F$N%-!<(B ==> $B"#(B + ▼ == と印字可能なすべてのキー ==> ■ -$B$O3NDj$rH<$J$&%-!<$r<($7$F$$$^$9!#;n$7$F$_$^$7$g$&!#(B +は確定を伴なうキーを示しています。試してみましょう。 -!! $B!V"#%b!<%I!W$G!X(BKyouto$B""(B,Oosaka$B""(B,Koube$B""(B.$B!Y$H%?%$%W$7$F$/$@$5$$!#(B -!! $B$?$@$7!"!X""!Y$O(B $B$rI=$o$7$^$9!#(B +!! 「■モード」で『Kyouto□,Oosaka□,Koube□.』とタイプしてください。 +!! ただし、『□』は を表わします。 ->> $B5~ET!"Bg:e!"?@8M!#(B +>> 京都、大阪、神戸。 ---- -$B!V"'%b!<%I!W$G$O(B $B$H0u;z2DG=$J$9$Y$F$N%-!<$O3NDj$rH<$J$&$3$H$r3X(B -$B$S$^$7$?!#(B +「▼モード」では と印字可能なすべてのキーは確定を伴なうことを学 +びました。 -$B$3$N$[$+!"!V"'%b!<%I!W$G(B ($B!X(BL$B!Y0J30$N(B) $B1QBgJ8;z$r%?%$%W$9$l$P!"8=:_$N8uJd(B -$B$,3NDj$7!"99$K%b!<%I$O!V"&%b!<%I!W$K$J$j$^$9!#(B +このほか、「▼モード」で (『L』以外の) 英大文字をタイプすれば、現在の候補 +が確定し、更にモードは「▽モード」になります。 - $B"'(B == $B1QBgJ8;z(B ==> $B"&(B + ▼ == 英大文字 ==> ▽ -!! $B!V"#%b!<%I!W$G!X(BKana$B""(BKanji$B""(BHenkan$B""(B.$B!Y$H%?%$%W$7$F$/$@$5$$!#(B -!! $B$?$@$7!"!X""!Y$O(B $B$rI=$o$7$^$9!#(B +!! 「■モード」で『Kana□Kanji□Henkan□.』とタイプしてください。 +!! ただし、『□』は を表わします。 ->> $B2>L>4A;zJQ49!#(B +>> 仮名漢字変換。 ---- -!! $B!V"#%b!<%I!W$G!X(BKanakanjihenkan$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で『Kanakanjihenkan□』とタイプしてください。 -$B%P%C%U%!$O!Z"'$+$J$+$s$8$X$s$+$s![$H$J$j!"%_%K%P%C%U%!$K(B +バッファは【▼かなかんじへんかん】となり、ミニバッファに - [$B<-=qEPO?(B] $B$+$J$+$s$8$X$s$+$s(B: + [辞書登録] かなかんじへんかん: -$B$H$$$&%W%m%s%W%H$,I=<($5$l$F$$$^$9!#(BSKK $B$G$O!"!V"'%b!<%I!W$G$O!"JQ49$NBP(B -$B>]$H$J$kJ8;zNs$O3NDj$7$F$$$^$9!#:#$NNc$N>l9g!"(BSKK $B$O!Z$+$J$+$s$8$X$s$+$s![(B -$B$H$$$&J8;zNs$r4A;z$KJQ49$7$h$&$H$7$F!"<-=q$rC5$7$F!"8+$D$+$i$J$+$C$?$N$G(B -$B$9!#$3$&$$$&;~!"(BSKK $B$O<+F0E*$K<-=qEPO?%b!<%I$KF~$j$^$9!#(B +というプロンプトが表示されています。SKK では、「▼モード」では、変換の対 +象となる文字列は確定しています。今の例の場合、SKK は【かなかんじへんかん】 +という文字列を漢字に変換しようとして、辞書を探して、見つからなかったので +す。こういう時、SKK は自動的に辞書登録モードに入ります。 -$B<-=qEPO?%b!<%I$G$O!"JQ49$K<:GT$7$?J8;zNs$,EPO?$NBP>]$K$J$k$N$G!"EPO?$9$k(B -$B8l$NFI$_$r%f!<%6$,:FF~NO$9$kI,MW$O$"$j$^$;$s!#(B +辞書登録モードでは、変換に失敗した文字列が登録の対象になるので、登録する +語の読みをユーザが再入力する必要はありません。 -!! $B%+!<%=%k$,%_%K%P%C%U%!$K$"$k$3$H$r3NG'$7$?>e$G!"(B -!! $B!X(BKana$B""(BKanji$B""(BHenkan$B""!Y$H%?%$%W$7!"(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! カーソルがミニバッファにあることを確認した上で、 +!! 『Kana□Kanji□Henkan□』とタイプし、 キーを押してください。 ->> $B2>L>4A;zJQ49(B +>> 仮名漢字変換 ---- -$B:#$N<-=qEPO?$G!"<-=q%P%C%U%!!J8D?M<-=q!K$K$O!"(B +今の辞書登録で、辞書バッファ(個人辞書)には、 - $B$+$J$+$s$8$X$s$+$s(B /$B2>L>4A;zJQ49(B/ + かなかんじへんかん /仮名漢字変換/ -$B$H$$$&%(%s%H%j$,DI2C$5$l$^$7$?!#3NG'$7$F$_$^$7$g$&!#(B +というエントリが追加されました。確認してみましょう。 -!! $B!V"#%b!<%I!W$G!X(BKanakanjihenkan$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B -!! $B!X(BC-j$B!Y$G3NDj$7$F$/$@$5$$!#(B +!! 「■モード」で『Kanakanjihenkan□』とタイプしてください。 +!! 『C-j』で確定してください。 ->> $B2>L>4A;zJQ49(B +>> 仮名漢字変換 ---- -== $B6uEPO?(B == +== 空登録 == -$B%?%$%W%_%9Ey$G!"0U?^$7$J$$J8;zNs$rH<$C$F<-=qEPO?%b!<%I$KF~$C$F$7$^$C$?$H(B -$B$-$O!"6u$NJ8;zNs$rEPO?$9$l$P!" $B%-!<$r2!$7$F$/$@$5$$!#(B +!! カーソルがミニバッファにあることを確認して、 キーを押してください。 -$B!Z(B*$BEz(B*$B![%P%C%U%!$O!Z"&$+$J$+$s$8$X$s$1$s![$H$J$j$^$9!#(B +【*答*】バッファは【▽かなかんじへんけん】となります。 -!! $B!Z(B*$BEz(B*$B![$,%+%l%s%H!&%P%C%U%!$G$"$k$3$H$r3NG'$7!"(B -!! $B%-!<$r(B2$B2s2!$7$F$+$i!"!X(Bkan$B""(B.$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 【*答*】がカレント・バッファであることを確認し、 +!! キーを2回押してから、『kan□.』とタイプしてください。 ->> $B2>L>4A;zJQ49!#(B +>> 仮名漢字変換。 ---- -$B<-=q$,(B +辞書が - $B$4(B /$B8^(B/$B8_(B/$B8`(B/$B8a(B/$B8b(B/$B8c(B/$B8d(B/$B8e(B/$B8f(B/$B8g(B/$B8h(B/$B8i(B/$B8j(B/$B8k(B/$B8l(B/$B8m(B/$B8n(B/$B8o(B/ + ご /五/互/伍/午/呉/吾/娯/後/御/悟/梧/檎/瑚/碁/語/誤/護/醐/ -$B$H$$$&%(%s%H%j$r4^$s$G$$$k$H$7$F!"!Z8k![$r:n$C$F$_$^$7$g$&!#(B +というエントリを含んでいるとして、【碁】を作ってみましょう。 -!! $B!V"#%b!<%I!W$G!"!X(BGo$B""""""""""""!Y$H%?%$%W$7$F$/$@$5$$(B ( $B$O(B6$B2s$G$9(B)$B!#(B +!! 「■モード」で、『Go□□□□□□』とタイプしてください ( は6回です)。 -$B%(%3!e$"$k$H$-$O!":G=i$N(B4$B$D$O%P%C%U%!$K(B -1$B$D$:$DI=<($5$l$^$9$,!"(B5$B$DL\0J9_$O%(%3!.J8;z$N!X(Bd$B!Y$r%?%$%W$7$^$9!#(B +となっています。このように候補が5つ以上あるときは、最初の4つはバッファに +1つずつ表示されますが、5つ目以降はエコー領域に7つずつまとめて表示され +ます。【碁】を選択するには、小文字の『d』をタイプします。 ->> $B8k(B +>> 碁 ---- -!! $B!V"#%b!<%I!W$G!"!Z(BGo$B""![$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、【Go□】とタイプしてください。 -$BA0Ld$G3NDj$7$?!Z8k![$,:#EY$O:G=i$N8uJd$H$7$FI=<($5$l$^$9!#$7$+$7!":#2s(B -$B$O!Z8a![$r:n$C$F$_$^$9!#(B +前問で確定した【碁】が今度は最初の候補として表示されます。しかし、今回 +は【午】を作ってみます。 -!! $B!X""""""""""""!Y$H%?%$%W$7$F$/$@$5$$(B ( $B$r(B6$B2s(B)$B!#(B +!! 『□□□□□□』とタイプしてください ( を6回)。 -$B8uJd$,?T$-$?$N$G<-=qEPO?%b!<%I$K$J$C$F$7$^$$$^$7$?!#8uJd$NCf$K!Z8a![$O$"$C(B -$B$?$N$G$9$,!"!J8+$92a$7$F!K9T$-2a$.$F$7$^$C$?$N$G$9!#(B +候補が尽きたので辞書登録モードになってしまいました。候補の中に【午】はあっ +たのですが、(見す過して)行き過ぎてしまったのです。 -!! $B%-!<$r2!$7$F$+$i!X(Bx$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! キーを押してから『x』とタイプしてください。 - $B%-!<$K$h$j6uEPO?$,$5$l!"<-=qEPO?$ND>A0$N>uBV$KLa$j$^$9!#!Z"'%b!<(B -$B%I![$G$O!X(Bx$B!Y%-!<$K$h$jA08uJd(B ($B72(B) $B$rI=<($9$k$3$H$,$G$-$^$9!#(B + キーにより空登録がされ、辞書登録の直前の状態に戻ります。【▼モー +ド】では『x』キーにより前候補 (群) を表示することができます。 -!! $B%(%3!> $B8a(B +>> 午 ---- -$B:#EY$O!Z8a8e![$r:n$C$F$_$^$9!#(B +今度は【午後】を作ってみます。 -!! $B!V"#%b!<%I!W$G!"!X(BGogo$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『Gogo□』とタイプしてください。 -$B<-=q$K$O!Z$4$4![$,$J$$$N$G!"<-=qEPO?%b!<%I$K$J$j$^$9!#(B +辞書には【ごご】がないので、辞書登録モードになります。 -!! $B%_%K%P%C%U%!$N%W%m%s%W%H$,!Z$4$4![$G$"$k$3$H$r3N$+$a$F!"(B -!! $B!X(BGo$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! ミニバッファのプロンプトが【ごご】であることを確かめて、 +!! 『Go□』とタイプしてください。 -$B%_%K%P%C%U%!$O!Z$4$4(B $B"'8a![$H$J$j$^$9!#(B +ミニバッファは【ごご ▼午】となります。 -!! $BB3$$$F!"!X(BGo$B""""""""""(Bj$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 続いて、『Go□□□□□j』とタイプしてください。 -$B%_%K%P%C%U%!$K!Z$4$4(B $B8a8e![$,$G$-$^$7$?!#(B +ミニバッファに【ごご 午後】ができました。 -!! $B%-!<$r2!$7$F$/$@$5$$!#(B +!! キーを押してください。 ->> $B8a8e(B +>> 午後 ---- -$B<-=q%P%C%U%!!J8D?M<-=q!K$K!Z$4$4(B /$B8a8e(B/$B![$,EPO?$5$l$?$N$G!"> $B8a8e$N8k!#(B +>> 午後の碁。 ---- -== $B:F5"E*<-=qEPO?(B == +== 再帰的辞書登録 == -!! $B!V"#%b!<%I!W$G!"!X(BSaikiteki$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B -!! $B%_%K%P%C%U%!$N%W%m%s%W%H$,!Z(B[$B<-=qEPO?(B] $B$5$$$-$F$-(B:$B![$G$"$k$3$H$r3N$+$a$F!"(B -!! $B!X(BSaiki$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『Saikiteki□』とタイプしてください。 +!! ミニバッファのプロンプトが【[辞書登録] さいきてき:】であることを確かめて、 +!! 『Saiki□』とタイプしてください。 -$B<-=q$K$O!Z$5$$$-![$bEPO?$5$l$F$$$J$$$N$G!":F$S<-=qEPO?%b!<%I$K$J$j$^$9!#(B +辞書には【さいき】も登録されていないので、再び辞書登録モードになります。 -!! $B%_%K%P%C%U%!$K!Z:F5"![$r:n$C$F$/$@$5$$!#(B -!! $B%_%K%P%C%U%!$,!Z$5$$$-(B $B:F5"![$H$J$C$?$i!"(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファに【再帰】を作ってください。 +!! ミニバッファが【さいき 再帰】となったら、 キーを押してください。 -$B$3$l$G!"!Z$5$$$-$F$-![$NEPO?%b!<%I$KLa$j$^$9!#(B +これで、【さいきてき】の登録モードに戻ります。 -!! $B%_%K%P%C%U%!$,!Z$5$$$-$F$-(B $B:F5"![$H$J$C$F$$$k$N$r3N$+$a$F!"!ZE*![$rDI(B -!! $B2C$7$F(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファが【さいきてき 再帰】となっているのを確かめて、【的】を追 +!! 加して キーを押してください。 ->> $B:F5"E*<-=qEPO?$r3X=,$7$^$7$?!#(B +>> 再帰的辞書登録を学習しました。 ---- -== $BAw$j2>L>$N$"$k8l$NF~NO(B == +== 送り仮名のある語の入力 == -SKK$B$G$O!"!ZF0$/![$H$$$C$?!"Aw$j2>L>$N$"$k8l$O!"0J2<$N$h$&$K<-=q$KEPO?(B -$B$5$l$F$$$^$9!#(B +SKKでは、【動く】といった、送り仮名のある語は、以下のように辞書に登録 +されています。 - $B$&$4(Bk /$BF0(B/ + うごk /動/ -$B$3$N$H$-!"F~NO$O;l$K!Z$9$k![$,IU2C$7$F$G$-$?F0;l$K$D$$$F$O!"L>;l$NItJ,$rC1FH$GJQ49$7$F(B -$B$/$@$5$$!#L>;l$+$i:n$i$l$?7AMF;lEy$K$D$$$F$bF1MM$G$9!#(B +名詞に【する】が付加してできた動詞については、名詞の部分を単独で変換して +ください。名詞から作られた形容詞等についても同様です。 ->> $BF0$3$&$K$bF0$1$J$+$C$?!#(B +>> 動こうにも動けなかった。 ---- -;; (save-excursion (save-match-data (set-buffer " *skk-tut-jisyo*") (goto-char skk-okuri-ari-min) (when (search-forward "\n$B$&$4(Bk /$BF0(B/" skk-okuri-nasi-min t) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point)))))) -== $BAw$j2>L>$N$"$kC18l$NEPO?(B == +;; (save-excursion (save-match-data (set-buffer " *skk-tut-jisyo*") (goto-char skk-okuri-ari-min) (when (search-forward "\nうごk /動/" skk-okuri-nasi-min t) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point)))))) +== 送り仮名のある単語の登録 == -$B<-=q$K!V$&$4(Bk$B!W$H$$$&8+=P$78l$,$J$$$H$-$O$I$&$J$k$G$7$g$&!#(B +辞書に「うごk」という見出し語がないときはどうなるでしょう。 -!! $B!V"#%b!<%I!W$G!"!X(BUgoKu$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『UgoKu』とタイプしてください。 -$B<-=q$K$J$$$N$G!"%_%K%P%C%U%!$GEPO?$9$k$3$H$K$J$j$^$9!#%_%K%P%C%U%!$O(B -$B!Z$&$4(B*$B$/(B $B![$H$J$j$^$9(B ($B!Z(B*$B![$N$"$H$N!Z$/![$OAw$j2>L>(B)$B!#<-=q$K$O(B -$B!Z$I$&(B /$BF0(B/$B![$H$$$&9`L\$,$"$k$N$G!"$3$l$rMQ$$$F!"%_%K%P%C%U%!$K!ZF0![$r(B -$B:n$j$^$9!#(B +辞書にないので、ミニバッファで登録することになります。ミニバッファは +【うご*く 】となります (【*】のあとの【く】は送り仮名)。辞書には +【どう /動/】という項目があるので、これを用いて、ミニバッファに【動】を +作ります。 -$BCm0U(B: $B%_%K%P%C%U%!$K!ZF0$/![$r:n$C$F$7$^$&$H!"%P%C%U%!$O!ZF0$/$/![$H$J$C$F(B -$B$7$^$$$^$9!#%_%K%P%C%U%!$K$OAw$j2>L>$r=|$$$?ItJ,$@$1$r:n$j$^$9!#(B +注意: ミニバッファに【動く】を作ってしまうと、バッファは【動くく】となって +しまいます。ミニバッファには送り仮名を除いた部分だけを作ります。 -!! $B%_%K%P%C%U%!$K!ZF0![$,$G$-$?$i!"(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファに【動】ができたら、 キーを押してください。 ->> $BF0$/(B +>> 動く ---- -== $BB%2;$r4^$`C18l$NJQ49(B == +== 促音を含む単語の変換 == -$BB%2;$r4^$`C18l$NJQ49$O!"> $B?M8}$,0l2/$KC#$7$?$3$H$rCN$C$?!#(B +>> 人口が一億に達したことを知った。 ---- -== $B1Q;zJQ49(B == +== 英字変換 == -$B30Mh8lEy$N%m!<%^;zF~NO$O!V%+%J%b!<%I!W$G$G$-$^$9$,!"!V1Q;zJQ49!W$r;H$&$3(B -$B$H$b$G$-$^$9!#(B +外来語等のローマ字入力は「カナモード」でできますが、「英字変換」を使うこ +ともできます。 -!! $B!V"#%b!<%I!W$G!"!X(B/file$B""!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『/file□』とタイプしてください。 -$B!V"#%b!<%I!W$G!X(B/$B!Y$r%?%$%W$9$k$H!"!V"&%b!<%I!W$K$J$j$^$9!#$?$@$7!"DL>o$N(B -$B!V"&%b!<%I!W$H0[$J$j!"0J2<$NF~NO$O1Q;zF~NO$K$J$j$^$9!#:#$N>l9g!"<-=q$K(B -$B!Z(Bfile$B![$,$J$$$N$G!"<-=qEPO?%b!<%I$K$J$j$^$9!#(B +「■モード」で『/』をタイプすると、「▽モード」になります。ただし、通常の +「▽モード」と異なり、以下の入力は英字入力になります。今の場合、辞書に +【file】がないので、辞書登録モードになります。 -!! $B%_%K%P%C%U%!$N%W%m%s%W%H$,!Z(Bfile$B![$G$"$k$3$H$r3N$+$a$F!"(B -!! $B!X(Bqfairu$B!Y$H%?%$%W$7$F$+$i(B $B%-!<$r2!$7$F$/$@$5$$!#(B +!! ミニバッファのプロンプトが【file】であることを確かめて、 +!! 『qfairu』とタイプしてから キーを押してください。 ->> $B!V%U%!%$%k!W$,EPO?$5$l$^$7$?!#(B +>> 「ファイル」が登録されました。 ---- -== $B5-9f(B == +== 記号 == -$B0J2<$N5-9f$O!"!Z$-$4$&![$H$$$&FI$_$G<-=q$KEPO?$5$l$F$$$^$9(B -(S$B<-=q$K$O!"0lItL$EPO?$N5-9f$,$"$j$^$9(B)$B!#(B +以下の記号は、【きごう】という読みで辞書に登録されています +(S辞書には、一部未登録の記号があります)。 - $B!!(B $B!"(B $B!#(B $B!$(B $B!%(B $B!&(B $B!'(B $B!((B $B!)(B $B!*(B $B!+(B $B!,(B $B!-(B $B!.(B $B!/(B $B!0(B $B!1(B $B!2(B $B!3(B $B!4(B $B!5(B $B!6(B $B!7(B - $B!8(B $B!9(B $B!:(B $B!;(B $B!<(B $B!=(B $B!>(B $B!?(B $B!@(B $B!A(B $B!B(B $B!C(B $B!D(B $B!E(B $B!F(B $B!G(B $B!H(B $B!I(B $B!J(B $B!K(B $B!L(B $B!M(B $B!N(B $B!O(B - $B!P(B $B!Q(B $B!R(B $B!S(B $B!T(B $B!U(B $B!V(B $B!W(B $B!X(B $B!Y(B $B!Z(B $B![(B $B!\(B $B!](B $B!^(B $B!_(B $B!`(B $B!a(B $B!b(B $B!c(B $B!d(B $B!e(B $B!f(B $B!g(B - $B!h(B $B!i(B $B!j(B $B!k(B $B!l(B $B!m(B $B!n(B $B!o(B $B!p(B $B!q(B $B!r(B $B!s(B $B!t(B $B!u(B $B!v(B $B!w(B $B!x(B $B!y(B $B!z(B $B!{(B $B!|(B $B!}(B $B!~(B - $B"!(B $B""(B $B"#(B $B"$(B $B"%(B $B"&(B $B"'(B $B"((B $B")(B $B"*(B $B"+(B $B",(B $B"-(B $B".(B +   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ ^  ̄ _ ヽ ヾ ゝ ゞ 〃 + 仝 々 〆 〇 ー ― ‐ / \ ~ ∥ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] + { } 〈 〉 《 》 「 」 『 』 【 】 + - ± × ÷ = ≠ < > ≦ ≧ ∞ + ∴ ♂ ♀ ° ′ ″ ℃ ¥ $ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇ + ◆ □ ■ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ 〓 ->> $B")(B980 +>> 〒980 ---- -== $B%.%j%7%"J8;z$H%-%j!<%kJ8;z(B == +== ギリシア文字とキリール文字 == -$B$3$l$i$O!"<-=q$G$O0J2<$N$h$&$KEPO?$5$l$F$$$^$9!#(B +これらは、辞書では以下のように登録されています。 - Greek /$B&!(B/$B&"(B/$B&#(B/$B&$(B/$B&%(B/$B&&(B/$B&'(B/$B&((B/$B&)(B/$B&*(B/ ... + Greek /Α/Β/Γ/Δ/Ε/Ζ/Η/Θ/Ι/Κ/ ... - greek /$B&A(B/$B&B(B/$B&C(B/$B&D(B/$B&E(B/$B&F(B/$B&G(B/$B&H(B/$B&I(B/$B&J(B/ ... + greek /α/β/γ/δ/ε/ζ/η/θ/ι/κ/ ... - Cyrillic /$B'!(B/$B'"(B/$B'#(B/$B'$(B/$B'%(B/$B'&(B/$B''(B/$B'((B/$B')(B/$B'*(B/ ... + Cyrillic /А/Б/В/Г/Д/Е/Ё/Ж/З/И/ ... - cyrillic /$B'Q(B/$B'R(B/$B'S(B/$B'T(B/$B'U(B/$B'V(B/$B'W(B/$B'X(B/$B'Y(B/$B'Z(B/ ... + cyrillic /а/б/в/г/д/е/ё/ж/з/и/ ... -$B$7$?$,$C$F!"!V1Q;zJQ49!W$GF~NO$7$^$9!#(B +したがって、「英字変換」で入力します。 ->> $B&E&D(B +>> εδ ---- -== $B%3!<%IF~NO(B == +== コード入力 == -$BBh(B2$B?e=`$N4A;z$J$I<-=q$K$J$$J8;z$K$D$$$F$O!"(BJIS $B%3!<%I$^$?$O(B EUC $B$K$h$k(B -$BF~NO$,2DG=$G$9!#(B +第2水準の漢字など辞書にない文字については、JIS コードまたは EUC による +入力が可能です。 -$BNc$($P!"!ZU\![$N(B JIS $B%3!<%I(B (JIS X 0208) $B$O!V(B555C$B!W$J$N$G!" $B%-!<$r2!$7$F$/$@$5$$!#(B +!! 『555c』とタイプし、 キーを押してください。 ->> $BElKLBgU\(B +>> 東北大學 ---- -== $BFI$_$N%3%s%W%j!<%7%g%s(B == +== 読みのコンプリーション == -$B!V"&%b!<%I!W$G(B $B%-!<$r2!$9$H!"!VFI$_$N%3%s%W%j!<%7%g%s!W$,9T$o$l$^$9!#(B - $B$r2!$9$^$G$K!V"&%b!<%I!W$GF~NO$5$l$?J8;zNs$r&R$H$9$k$H!"<-=q%P%C%U%!$N(B -$BCf$G!"@hF,$,&R$H0lCW$7!"D9$5$,&R$h$j$bD9$$FI$_$rC5$7$F!"$=$N$h$&$J&S$,$b(B -$B$7$"$l$P!"&R$NBe$o$j$K&S$rI=<($7$^$9!#(B +「▽モード」で キーを押すと、「読みのコンプリーション」が行われます。 + を押すまでに「▽モード」で入力された文字列をσとすると、辞書バッファの +中で、先頭がσと一致し、長さがσよりも長い読みを探して、そのようなτがも +しあれば、σの代わりにτを表示します。 -!! $B!V"#%b!<%I!W$G!"!X(BkonoHikouki$B""(ByorianoHi$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 「■モード」で、『konoHikouki□yorianoHi』とタイプしてください。 -$B%P%C%U%!$O!Z$3$NHt9T5!$h$j$"$N"&$R![$H$J$j$^$9!#(B +バッファは【この飛行機よりあの▽ひ】となります。 -!! $B%-!<$r2!$7$F$/$@$5$$!#(B +!! キーを押してください。 -$B%3%s%W%j!<%7%g%s$,9T$o$l$F%P%C%U%!$O!Z$3$NHt9T5!$h$j$"$N"&$R$3$&$-![$H$J$j$^(B -$B$9!#(B +コンプリーションが行われてバッファは【この飛行機よりあの▽ひこうき】となりま +す。 ->> $B$3$NHt9T5!$h$j$"$NHt9T5!$K$7$h$&!#(B +>> この飛行機よりあの飛行機にしよう。 ---- -$B%3%s%W%j!<%7%g%s$O<-=q%P%C%U%!$r:G=i$+$i=g$KD4$Y$F9T$o$l$k$N$G!"J8;zNs&R(B -$B$H@hF,$,0lCW$9$kFI$_$,%P%C%U%!$KJ#?t8D$"$k$H$-$OA0$NJ}$K$"$kFI$_$K%3%s%W(B -$B%j!<%7%g%s$5$l$^$9!#$3$l$,0U?^$7$?$b$N$G$J$+$C$?$H$-$K$O!"(B $B$ND>8e$K(B -$B!X(B.$B!Y(B(period) $B$r%?%$%W$9$k$H(B2$BHVL\$NFI$_$,I=<($5$l$^$9!#0J2 の直後に +『.』(period) をタイプすると2番目の読みが表示されます。以下同様に、『.』を +続けてタイプすると、読みの候補が順次表示されます。『.』を打ちすぎて意図し +た読みを通り過ぎたときは『,』(comma) で前の候補に戻ります。 -$BNc$H$7$F!"!V:4F#$H:XF#$G$O:4F#$N$[$&$,$"$j$U$l$?L>;z$@!#!W$H$$$&J8$NF~NO(B -$B$r9M$($F$_$^$7$g$&!#(B +例として、「佐藤と斎藤では佐藤のほうがありふれた名字だ。」という文の入力 +を考えてみましょう。 -!! $B!V"#%b!<%I!W$G!"!X(BSatou$B""(BtoSaitou$B""(BdehaSa$B!Y$H%?%$%W$7$F$+$i(B -!! $B%-!<$r2!$7$F$/$@$5$$!#(B +!! 「■モード」で、『Satou□toSaitou□dehaSa』とタイプしてから +!! キーを押してください。 -$B%P%C%U%!$O!Z:4F#$H:XF#$G$O"&$5$$$H$&![$H$J$j$^$9!#(B +バッファは【佐藤と斎藤では▽さいとう】となります。 -!! $B!X(B..,$B!Y$H%?%$%W$7$F$/$@$5$$!#(B +!! 『..,』とタイプしてください。 ->> $B:4F#$H:XF#$G$O:4F#$N$[$&$,$"$j$U$l$?L>;z$@!#(B +>> 佐藤と斎藤では佐藤のほうがありふれた名字だ。 ---- -SKK $B$N4pK\E*$J;H$$J}$N2r@b$O$3$l$G=*$j$G$9!#(B +SKK の基本的な使い方の解説はこれで終りです。 -$B$J$*!"(BSKK $B$O5/F0;~$K%f!<%6<-=q%U%!%$%k(B (~/.skk-jisyo) $B$r<-=q%P%C%U%!$KFI(B -$B$_9~$_!"!V"'%b!<%I!W$G3NDj$9$k$?$S$K<-=q%P%C%U%!$O99?7$5$l$^$9!#$=$7$F(B -Emacs $B$r=*N;$9$k$H$-$K!"<-=q%P%C%U%!$O%f!<%6<-=q%U%!%$%k$K%;!<%V$5$l$^$9!#(B -$B$7$?$,$C$F!"DL>o$O!"0U<1$7$F<-=q%P%C%U%!$r%;!<%V$9$kI,MW$O$"$j$^$;$s!#(B -$B$^$?!"F1;~$K0l2sA0$K:n$i$l$?%f!<%6<-=q%U%!%$%k$O!"(B~/.skk-jisyo.BAK $B$K%P%C(B -$B%/%"%C%W$5$l$k$N$G!";v8NEy$G(B ~/.skk-jisyo $B$,2u$l$?$j$7$?$H$-$K$O!"(B +なお、SKK は起動時にユーザ辞書ファイル (~/.skk-jisyo) を辞書バッファに読 +み込み、「▼モード」で確定するたびに辞書バッファは更新されます。そして +Emacs を終了するときに、辞書バッファはユーザ辞書ファイルにセーブされます。 +したがって、通常は、意識して辞書バッファをセーブする必要はありません。 +また、同時に一回前に作られたユーザ辞書ファイルは、~/.skk-jisyo.BAK にバッ +クアップされるので、事故等で ~/.skk-jisyo が壊れたりしたときには、 $mv .skk-jisyo.BAK .skk-jisyo -$B$HA`:n$9$k$3$H$K$h$C$FBgItJ,$N2sI|$,2DG=$G$9!#(B +と操作することによって大部分の回復が可能です。 -SKK $B$O$3$3$G@bL@$G$-$J$+$C$?B?$/$N5!G=$r;}$C$F$$$^$9!#$h$j>\$7$$(B SKK $B$N(B -$B;H$$J}$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5$$!#(B +SKK はここで説明できなかった多くの機能を持っています。より詳しい SKK の +使い方は、マニュアルを参照してください。 -$B$G$O!":G8e$NLdBj$G$9!#(B +では、最後の問題です。 ->> $B$3$l$G(B SKK $B%A%e!<%H%j%"%k$r=*N;$7$^$9!#(B +>> これで SKK チュートリアルを終了します。 ---- ;; (skktut-end-tutorial) ;; Local Variables: diff --git a/etc/SKK.tut.E b/etc/SKK.tut.E index ee6d5754..1a5dd97d 100644 --- a/etc/SKK.tut.E +++ b/etc/SKK.tut.E @@ -34,481 +34,481 @@ principle, you can master the usage of SKK quickly. This tutorial explains SKK assuming that you know enough about Emacs. You will learn the usage of SKK by solving problems. The last line of each -Problem buffer will begin with $B!Z(B>>$B![(B. You have to make line in the Solution +Problem buffer will begin with 【>>】. You have to make line in the Solution buffer as same as the last line of each Problem buffer. When you have -done, type $B!X(BC-x n$B!Y(B(Next). ($B!X(BC-x$B!Y(B means , that is, typing -$B!X(Bx$B!Y(B key holding the control key.) If your solution is correct, the +done, type 『C-x n』(Next). (『C-x』 means , that is, typing +『x』 key holding the control key.) If your solution is correct, the buffers will be updated and you will proceed to the next problem. -Type $B!X(BC-x q$B!Y(B(Quit) if you wish to quit the tutorial. Type $B!X(BC-x s$B!Y(B +Type 『C-x q』(Quit) if you wish to quit the tutorial. Type 『C-x s』 (Skip) if you wish to skip the problem. >> (concat "My name is " (skktut-user-name) ".") ---- -== Invoking SKK, $B$+$J(B mode == +== Invoking SKK, かな mode == -In the following, if you encounter lines beginning with $B!Z(B!!$B![(B, follow the +In the following, if you encounter lines beginning with 【!!】, follow the instructions there. -You can invoke SKK by typing$B!X(BC-x C-j$B!Y(B. Let's try that. +You can invoke SKK by typing『C-x C-j』. Let's try that. -!! Type $B!X(BC-x C-j$B!Y(B. +!! Type 『C-x C-j』. Note that a part of the mode line which shows minor modes of the Solution -buffer is now $B!Z$+$J![(B. This mode is called $B$+$J(B mode. In this mode, -lowercase Latin letters are interpreted as Romazi ($B%m!<%^;z(B) and will be +buffer is now 【かな】. This mode is called かな mode. In this mode, +lowercase Latin letters are interpreted as Romazi (ローマ字) and will be converted to the corresponding hirakanas. For instance, if you type -$B!X(Baiueo$B!Y(B, you will get $B!Z$"$$$&$($*![(B. (In $B$+$J(B mode, don't use +『aiueo』, you will get 【あいうえお】. (In かな mode, don't use uppercase Latin characters until we explain about them.) ->> $B$+$-$/$1$3(B +>> かきくけこ ---- -== From $B$+$J(B mode to ASCII mode == +== From かな mode to ASCII mode == -You can move from $B$+$J(B mode to ASCII mode by typing $B!X(Bl$B!Y(B(for Latin). +You can move from かな mode to ASCII mode by typing 『l』(for Latin). -!! Type $B!X(Bl$B!Y(B now. +!! Type 『l』 now. Note also how the mode line changed. In ASCII mode, keys will be interpreted as ordinary Emacs commands. It is almost identical with the state you were in just before you invoked SKK, and we will explain the tiny difference soon. In ASCII mode, you will see -$B!Z(BSKK$B![(B in the mode line, and this is to indicate that SKK has been +【SKK】 in the mode line, and this is to indicate that SKK has been invoked in this buffer. >> Now we are in ASCII mode. ---- -== From ASCII mode to $B$+$J(B mode == +== From ASCII mode to かな mode == -You can move from ASCII mode to $B$+$J(B mode by typing $B!X(BC-j$B!Y(B. In summary: +You can move from ASCII mode to かな mode by typing 『C-j』. In summary: - l : $B$+$J(B --> ASCII - C-j : ASCII --> $B$+$J(B + l : かな --> ASCII + C-j : ASCII --> かな ->> ASCII $B$+$i(B $B$+$J(B +>> ASCII から かな ---- -== $B%+%J(B mode == +== カナ mode == -Input of katakana ($B%+%?%+%J(B) is done in $B%+%J(B mode. You can move -between $B$+$J(B mode and $B%+%J(B mode by typing $B!X(Bq$B!Y(B(for qana = $B$+$J(B/$B%+%J(B +Input of katakana (カタカナ) is done in カナ mode. You can move +between かな mode and カナ mode by typing 『q』(for qana = かな/カナ (^_^)). - q : $B$+$J(B --> $B%+%J(B - q : $B%+%J(B --> $B$+$J(B + q : かな --> カナ + q : カナ --> かな ->> $B$R$i$+$J(B $B$+$i(B $B%+%?%+%J(B $B$=$7$F$^$?(B $B$R$i$+$J(B +>> ひらかな から カタカナ そしてまた ひらかな ---- -== How to input $B!Z$s![(B == +== How to input 【ん】 == -$B!Z$s![(B can be inputted by $B!X(Bnn$B!Y(B or $B!X(Bn'$B!Y(B. If it will be followed by a -consonant except $B!X(Bn$B!Y(B and $B!X(By$B!Y(B, you may simply type $B!X(Bn$B!Y(B. +【ん】 can be inputted by 『nn』 or 『n'』. If it will be followed by a +consonant except 『n』 and 『y』, you may simply type 『n』. ->> $B$+$J$+$s$8$X$s$+$s(B +>> かなかんじへんかん ---- -== How to imput small $B$R$i$+$J(B characters== +== How to imput small ひらかな characters== -You can enter each small hirakana character by prefixing $B!X(Bx$B!Y(B to its +You can enter each small hirakana character by prefixing 『x』 to its Romazi representation, e.g.: - $B!X(Bxa$B!Y(B==>$B!Z$!![!"!X(Bxya$B!Y(B==>$B!Z$c![(B + 『xa』==>【ぁ】、『xya』==>【ゃ】 However, in most cases, you can enter them like this: - $B!X(Bchotto$B!Y(B==>$B!Z$A$g$C$H![!"!X(Btyotto$B!Y(B==>$B!Z$A$g$C$H![(B + 『chotto』==>【ちょっと】、『tyotto』==>【ちょっと】 ->> $B$"$C(B $B$=$&$@$C$?$N$+(B +>> あっ そうだったのか ---- == Input of long vowel == A long vowel may be entered by using: - $B!X(B-$B!Y(B==>$B!Z!【ー】 ->> $B$(!<$H(B +>> えーと ---- -== $BA41Q(B (zenei) mode == +== 全英 (zenei) mode == -Zenkaku ($BA43Q(B, square shaped) character strings like $B!Z#S#K#K![(B may be -entered in $BA41Q(B (zenei) mode. In $BA41Q(B mode, Latin characters $B!X(Ba$B!Y(B-$B!X(Bz$B!Y(B -and $B!X(BA$B!Y(B-$B!X(BZ$B!Y(B are input as square shaped alphabets (normally occupying -double horizontal space compared to ASCII characters). From either $B$+$J(B -mode or $B%+%J(B mode, you can move to $BA41Q(B mode by typing $B!X(BL$B!Y(B(for Large -sized Latin). From $BA41Q(B mode, you can return to $B$+$J(B/$B%+%J(B mode by $B!X(BC-j$B!Y(B. +Zenkaku (全角, square shaped) character strings like 【SKK】 may be +entered in 全英 (zenei) mode. In 全英 mode, Latin characters 『a』-『z』 +and 『A』-『Z』 are input as square shaped alphabets (normally occupying +double horizontal space compared to ASCII characters). From either かな +mode or カナ mode, you can move to 全英 mode by typing 『L』(for Large +sized Latin). From 全英 mode, you can return to かな/カナ mode by 『C-j』. - L : $B$+$J(B/$B%+%J(B --> $BA41Q(B - C-j : $BA41Q(B --> $B$+$J(B/$B%+%J(B + L : かな/カナ --> 全英 + C-j : 全英 --> かな/カナ ->> $B#S#K#K$,$D$+$($k$N$O#E#m#a#c#s$@$1$G$9(B +>> SKKがつかえるのはEmacsだけです ---- == Summary up to this point == -You can invoke SKK by $B!X(BC-x C-j$B!Y(B. SKK has four modes: +You can invoke SKK by 『C-x C-j』. SKK has four modes: - ASCII mode, $B$+$J(B mode, $B%+%J(B mode and $BA41Q(B mode + ASCII mode, かな mode, カナ mode and 全英 mode You can change modes as follows: - ASCII == C-j ==> $B$+$J(B/$B%+%J(B == l ==> ASCII + ASCII == C-j ==> かな/カナ == l ==> ASCII - $B$+$J(B <== q ==> $B%+%J(B + かな <== q ==> カナ - $BA41Q(B == C-j ==> $B$+$J(B/$B%+%J(B == L ==> $BA41Q(B + 全英 == C-j ==> かな/カナ == L ==> 全英 ->> $B#S#K#K$K$O(B ASCII$B%b!<%I(B $B$H(B $B$+$J%b!<%I(B $B$H(B $B%+%J%b!<%I(B $B$H(B $B$<$s$($$%b!<%I(B $B$,$"$k(B +>> SKKには ASCIIモード と かなモード と カナモード と ぜんえいモード がある ---- -== $B$+$J(B mode == +== かな mode == -In $B$+$J(B mode, the following keys have special meanings. Other keys such -as $B!X(BC-a$B!Y(B, $B!X(B%$B!Y(B are interpreted as ordinary Emacs keys. This is also -the case for $B%+%J(B mode. +In かな mode, the following keys have special meanings. Other keys such +as 『C-a』, 『%』 are interpreted as ordinary Emacs keys. This is also +the case for カナ mode. l, q, x and L Already explained. - Other lowercases Interpreted as Romazi, and entered as $B$+$J(B. + Other lowercases Interpreted as Romazi, and entered as かな. Other uppercases Entering kana-to-kanji conversion mode. / Entering ASCII conversion mode. (To be explained later.) - , Inserting $B!Z!"![(B. - . Inserting $B!Z!#![(B. - [ and ] Inserting $B!Z!V![(B and $B!Z!W![(B respectively. + , Inserting 【、】. + . Inserting 【。】. + [ and ] Inserting 【「】 and 【」】 respectively. -!! Try typing $B!X(B,$B!Y!X(B.$B!Y!X(B[$B!Y(B and $B!X(B]$B!Y(B. +!! Try typing 『,』『.』『[』 and 『]』. ->> $B!V$"!"$=$&$@$C$?$N$+!#!W(B +>> 「あ、そうだったのか。」 ---- == Kana-to-kanji conversion == -Kana-to-kanji conversion is done in $B$+$J(B mode. +Kana-to-kanji conversion is done in かな mode. -!! If you are not in $B$+$J(B mode now, change mode to $B$+$J(B mode, and type -!! $B!X(BKanji$B!Y(B. (Note that the first character is an uppercase character.) +!! If you are not in かな mode now, change mode to かな mode, and type +!! 『Kanji』. (Note that the first character is an uppercase character.) -The buffer should become $B!Z"&$+$s$8![(B. You are in $B"&(B mode now. +The buffer should become 【▽かんじ】. You are in ▽ mode now. !! Now hit key. -You have: $B!Z"'4A;z![(B. You are in $B"'(B mode now. +You have: 【▼漢字】. You are in ▼ mode now. -!! Type $B!X(BC-j$B!Y(B. +!! Type 『C-j』. You have solved the following problem! ->> $B4A;z(B +>> 漢字 ---- Let's try another one. -!! If you are not in $B$+$J(B mode now, change mode to $B$+$J(B mode, type -!! $B!X(BKanji$B!Y(B, and then hit key twice. +!! If you are not in かな mode now, change mode to かな mode, type +!! 『Kanji』, and then hit key twice. The buffer should change as follows: - $B!Z"&$+$s$8![(B ==> $B!Z"'4A;z![(B ==> $B!Z"'44;v![(B + 【▽かんじ】 ==> 【▼漢字】 ==> 【▼幹事】 -!! Type $B!X(BC-j$B!Y(B. +!! Type 『C-j』. You've got the solution! ->> $B44;v(B +>> 幹事 ---- -This one is slightly more complicated, so type carefully. $B!X""!Y(B will -denote a key. If you see $B!X""""!Y(B, for instance, type key +This one is slightly more complicated, so type carefully. 『□』 will +denote a key. If you see 『□□』, for instance, type key twice. -!! Change mode to $B$+$J(B mode if necessary and type -!! $B!X(BKanji$B""""(BnoNyuuryoku$B""(BhaYoui$B""(Bdesu.$B!Y(B. +!! Change mode to かな mode if necessary and type +!! 『Kanji□□noNyuuryoku□haYoui□desu.』. ->> $B4A;z$NF~NO$OMF0W$G$9!#(B +>> 漢字の入力は容易です。 ---- -!! In $B$+$J(B mode, type $B!X(Bkanji$B!Y(B. +!! In かな mode, type 『kanji』. -You get $B!Z$+$s$8![(B. Suppose, however, that you should have typed $B!X(BKanji$B!Y(B. -You can delete three characters backwards and type $B!X(BKanji$B!Y(B in such a case. +You get 【かんじ】. Suppose, however, that you should have typed 『Kanji』. +You can delete three characters backwards and type 『Kanji』 in such a case. But, there is also the following alternative way to achieve the same effect. -!! Type $B!X(BC-b$B!Y(B(backward-char) three times. +!! Type 『C-b』(backward-char) three times. -The point is now on $B!Z$+![(B. +The point is now on 【か】. -!! Type $B!X(BQ$B!Y(B. +!! Type 『Q』. -$B!Z"&![(B is inserted before $B!Z$+![(B, and you are in $B"&(B mode. +【▽】 is inserted before 【か】, and you are in ▽ mode. -!! Type $B!X(BC-e$B!Y(B(end-of-line), $B!X""!Y(B() and $B!X(BC-j$B!Y(B. +!! Type 『C-e』(end-of-line), 『□』() and 『C-j』. ->> $B4A;z(B +>> 漢字 ---- -== Sub modes of $B$+$J(B mode == +== Sub modes of かな mode == -$B$+$J(B mode is divided into two submodes: hirakana no-conversion mode and +かな mode is divided into two submodes: hirakana no-conversion mode and conversion to Kanji mode. Hirakana no-conversion mode will be referred to -as $B"#(B mode. Conversion to kanji mode is further divided into two modes: -$B"&(B mode and $B"'(B mode. Namely, $B$+$J(B mode is divided into three submodes: +as ■ mode. Conversion to kanji mode is further divided into two modes: +▽ mode and ▼ mode. Namely, かな mode is divided into three submodes: - $B"#(B mode, $B"&(B mode, $B"'(B mode + ■ mode, ▽ mode, ▼ mode -In $B"#(B mode, lowercase Romazi characters you type are converted to +In ■ mode, lowercase Romazi characters you type are converted to hirakanas and are inserted into the buffer. These hirakanas are not -converted to Kanji anymore. $B"#(B mode is the basic mode of SKK and you +converted to Kanji anymore. ■ mode is the basic mode of SKK and you should remember this point. ->> $B$R$i$+$J$+$/$F$$$K$e$&$j$g$/$O!"$J$s$I$b!"$l$s$7$e$&$7$F$-$^$7$?!#(B +>> ひらかなかくていにゅうりょくは、なんども、れんしゅうしてきました。 ---- -== $B"&(B mode and $B"'(B mode == +== ▽ mode and ▼ mode == Kana-to-kanji conversion in SKK is done as follows. - 1 Determine the string which is the source of conversion. ($B"&(B mode) - 2 Show candidates of conversion for the source. ($B"'(B mode) - 3 Select the candidate you want and finish the conversion. ($B"'(B mode) -As we have already seen, in the case of entering $B!Z4A;z![(B, the source -string of the conversion is $B!Z$+$s$8![(B. If you type $B!X(BKanji$B!Y(B, $B!Z$+$s$8![(B -will be entered in $B"&(B mode. If you hit in $B"&(B mode, the string -between $B!Z"&![(B and the point becomes the source of the conversion. At -the same time, the mode becomes $B"'(B mode and the first candidate will be -shown. In $B"'(B mode, displays the next candidate. If you type -$B!X(BC-j$B!Y(B in $B"'(B mode, the current candidate becomes the final result of the -conversion, and the mode becomes $B"#(B mode. - -Hint: $B@vBu(B($B$;$s$?$/(B), $BA*Br(B($B$;$s$?$/(B) - ->> $B!V@vBu!W$rA*Br$9$k!#(B + 1 Determine the string which is the source of conversion. (▽ mode) + 2 Show candidates of conversion for the source. (▼ mode) + 3 Select the candidate you want and finish the conversion. (▼ mode) +As we have already seen, in the case of entering 【漢字】, the source +string of the conversion is 【かんじ】. If you type 『Kanji』, 【かんじ】 +will be entered in ▽ mode. If you hit in ▽ mode, the string +between 【▽】 and the point becomes the source of the conversion. At +the same time, the mode becomes ▼ mode and the first candidate will be +shown. In ▼ mode, displays the next candidate. If you type +『C-j』 in ▼ mode, the current candidate becomes the final result of the +conversion, and the mode becomes ■ mode. + +Hint: 洗濯(せんたく), 選択(せんたく) + +>> 「洗濯」を選択する。 ---- Modes related to SKK usually change as follows. - $B"#(B == Uppercase char. ==> $B"&(B == ==> $B"'(B == $B!X(BC-j$B!Y(B ==> $B"#(B + ■ == Uppercase char. ==> ▽ == ==> ▼ == 『C-j』 ==> ■ - $B"&(B == $B!X(BC-j$B!Y(B ==> $B"#(B + ▽ == 『C-j』 ==> ■ -is used to go back to $B"#(B mode when you enter $B"&(B mode by mistake. +is used to go back to ■ mode when you enter ▽ mode by mistake. - $B"'(B == and all the pritable keys ==> $B"#(B + ▼ == and all the pritable keys ==> ■ means that these keys automatically select the current candidate as the -final result of conversion. This action is called $B3NDj(B (Kakutei). Let +final result of conversion. This action is called 確定 (Kakutei). Let us try this. -!! Type $B!X(BKyouto$B""(B,Oosaka$B""(B,Koube$B""(B.$B!Y(B in $B"#(B mode. Recall that -!! $B!X""!Y(B denotes a key. +!! Type 『Kyouto□,Oosaka□,Koube□.』 in ■ mode. Recall that +!! 『□』 denotes a key. ->> $B5~ET!"Bg:e!"?@8M!#(B +>> 京都、大阪、神戸。 ---- -We have learned that, in $B"'(B mode, and all the printable keys -cause $B3NDj(B as side effects. +We have learned that, in ▼ mode, and all the printable keys +cause 確定 as side effects. -Moreover, if you type any uppercase character except $B!X(BL$B!Y(B, the -current candidate becomes the final result and enter $B"&(B mode. +Moreover, if you type any uppercase character except 『L』, the +current candidate becomes the final result and enter ▽ mode. - $B"'(B == uppercase except $B!X(BL$B!Y(B ==> $B"&(B + ▼ == uppercase except 『L』 ==> ▽ -!! Type $B!X(BKana$B""(BKanji$B""(BHenkan$B""(B.$B!Y(B in $B"#(B mode. +!! Type 『Kana□Kanji□Henkan□.』 in ■ mode. ->> $B2>L>4A;zJQ49!#(B +>> 仮名漢字変換。 ---- -!! Type $B!X(BKanakanjihenkan$B""!Y(B in $B"#(B mode. +!! Type 『Kanakanjihenkan□』 in ■ mode. -Your buffer becomes $B!Z"'$+$J$+$s$8$X$s$+$s![(B and you should see the prompt: - $B$+$J$+$s$8$X$s$+$s(B -in the minibuffer. In $B"'(B mode, the source string to be converted is -already fixed. In our case, SKK tried to convert the string $B!Z$+$J$+$s$8(B -$B$X$s$+$s![(B, but could not find it in $B<-=q(B. (i.e., dictionary) +Your buffer becomes 【▼かなかんじへんかん】 and you should see the prompt: + かなかんじへんかん +in the minibuffer. In ▼ mode, the source string to be converted is +already fixed. In our case, SKK tried to convert the string 【かなかんじ +へんかん】, but could not find it in 辞書. (i.e., dictionary) In such a case, SKK automatically enters register-a-word-to-dictionary -mode (this mode will be referred to as $B<-=qEPO?(B mode). - In $B<-=qEPO?(B mode, the string for which the conversion failed becomes the -key word ($B8+=P$78l(B, midashigo) for the new entry to be registered to $B<-=q(B. +mode (this mode will be referred to as 辞書登録 mode). + In 辞書登録 mode, the string for which the conversion failed becomes the +key word (見出し語, midashigo) for the new entry to be registered to 辞書. !! Verify that the cursor is in the minibuffer, and type -!! $B!X(BKana$B""(BKanji$B""(BHenkan$B""!Y(B followed by key. +!! 『Kana□Kanji□Henkan□』 followed by key. ->> $B2>L>4A;zJQ49(B +>> 仮名漢字変換 ---- We have just added the line - $B$+$J$+$s$8$X$s$+$s(B /$B2>L>4A;zJQ49(B/ + かなかんじへんかん /仮名漢字変換/ -to the $B<-=q(B buffer. We can verify this as follows. +to the 辞書 buffer. We can verify this as follows. -!! Type $B!X(BKanakanjihenkan$B""!Y(B in $B"#(B mode, and -!! $B3NDj(B (Kakutei, finalize) it by $B!X(BC-j$B!Y(B. +!! Type 『Kanakanjihenkan□』 in ■ mode, and +!! 確定 (Kakutei, finalize) it by 『C-j』. ->> $B2>L>4A;zJQ49(B +>> 仮名漢字変換 ---- -== empty $BEPO?(B (registration) == +== empty 登録 (registration) == -If you enter $B<-=qEPO?(B mode by mistake, you can abort it by hitting $B!X(BC-g$B!Y(B +If you enter 辞書登録 mode by mistake, you can abort it by hitting 『C-g』 or by registering an empty string. -!! Type $B!X(BKanakanjihenken$B""!Y(B in $B"#(B mode. +!! Type 『Kanakanjihenken□』 in ■ mode. -$B<-=q(B does not contain $B!Z$+$J$+$s$8$X$s$1$s![(B, so you get $B!Z$+$J$+$s$8$X$s(B -$B$1$s![(B in the minibuffer. +辞書 does not contain 【かなかんじへんけん】, so you get 【かなかんじへん +けん】 in the minibuffer. !! Verify that the cursor is in the minibuffer, and hit . -The $B!Z(B*$BEz(B*$B![(B buffer now becomes $B!Z"&$+$J$+$s$8$X$s$1$s![(B. +The 【*答*】 buffer now becomes 【▽かなかんじへんけん】. -!! Verify that $B!Z(B*$BEz(B*$B![(B is the current buffer. Hit key -!! twice, and then type $B!X(Bkan$B""(B.$B!Y(B. +!! Verify that 【*答*】 is the current buffer. Hit key +!! twice, and then type 『kan□.』. ->> $B2>L>4A;zJQ49!#(B +>> 仮名漢字変換。 ---- -We assume that $B<-=q(B contains the line: +We assume that 辞書 contains the line: - $B$4(B /$B8^(B/$B8_(B/$B8`(B/$B8a(B/$B8b(B/$B8c(B/$B8d(B/$B8e(B/$B8f(B/$B8g(B/$B8h(B/$B8i(B/$B8j(B/$B8k(B/$B8l(B/$B8m(B/$B8n(B/$B8o(B/ + ご /五/互/伍/午/呉/吾/娯/後/御/悟/梧/檎/瑚/碁/語/誤/護/醐/ -You can enter $B!Z8k![(B as follows. +You can enter 【碁】 as follows. -!! Type $B!X(BGo$B""""""""""""!Y(B in $B"#(B mode. (You have to hit six times.) +!! Type 『Go□□□□□□』 in ■ mode. (You have to hit six times.) You now see the line: - A:$B8i(B S:$B8j(B D:$B8k(B F:$B8l(B J:$B8m(B K:$B8n(B L:$B8o(B [$B;D$j(B 0] + A:檎 S:瑚 D:碁 F:語 J:誤 K:護 L:醐 [残り 0] in the echo area. As we have just seen, after the fifth candidate, seven of -them are displayed together in the echo area. To select $B!Z8k![(B, type -lowercase $B!X(Bd$B!Y(B. +them are displayed together in the echo area. To select 【碁】, type +lowercase 『d』. ->> $B8k(B +>> 碁 ---- -!! Type $B!Z(BGo$B""![(B in $B"#(B mode. +!! Type 【Go□】 in ■ mode. -This time $B!Z8k![(B is displayed as the first candidate. This is because we -have done $B3NDj(B by that character. But we want $B!Z8a![(B this time. +This time 【碁】 is displayed as the first candidate. This is because we +have done 確定 by that character. But we want 【午】 this time. -!! Type $B!X""""""""""""!Y(B. (six 's.) +!! Type 『□□□□□□』. (six 's.) -We entered $B<-=qEPO?(B mode as we ran out of candidates. Actually $B!Z8a![(B was +We entered 辞書登録 mode as we ran out of candidates. Actually 【午】 was among the candidated but we had overrun. -!! Hit key and type $B!X(Bx$B!Y(B. +!! Hit key and type 『x』. key registers an empty string (which actually makes no real -registration) and we return to the state just before $B<-=qEPO?(B. In $B"'(B mode, -we can return to previous candiate(s) by the $B!X(Bx$B!Y(B key. You should now be -able to select $B!Z8a![(B from the candidates in the echo area. +registration) and we return to the state just before 辞書登録. In ▼ mode, +we can return to previous candiate(s) by the 『x』 key. You should now be +able to select 【午】 from the candidates in the echo area. ->> $B8a(B +>> 午 ---- -We try $B!Z8a8e![(B this time. +We try 【午後】 this time. -!! Type $B!X(BGogo$B""!Y(Bin $B"#(B mode. +!! Type 『Gogo□』in ■ mode. -As there is no $B!Z$4$4![(B in $B<-=q(B, we enter $B<-=qEPO?(B mode. +As there is no 【ごご】 in 辞書, we enter 辞書登録 mode. -!! Verify that the minibuffer prompt is $B!Z$4$4![(B, and type $B!X(BGo$B""!Y(B. +!! Verify that the minibuffer prompt is 【ごご】, and type 『Go□』. -The minibuffer becomes $B!Z$4$4(B $B"'8a![(B. +The minibuffer becomes 【ごご ▼午】. -!! Then, type $B!X(BGo$B""""""""""(Bj$B!Y(B. +!! Then, type 『Go□□□□□j』. -We have $B!Z$4$4(B $B8a8e![(B in the minibuffer. +We have 【ごご 午後】 in the minibuffer. !! Hit key. ->> $B8a8e(B +>> 午後 ---- -We now have the entry $B!Z$4$4(B /$B8a8e(B/$B![(B in the $B<-=q(B buffer. So the +We now have the entry 【ごご /午後/】 in the 辞書 buffer. So the following problem should be easy. ->> $B8a8e$N8k!#(B +>> 午後の碁。 ---- -== Recursive $B<-=qEPO?(B == +== Recursive 辞書登録 == -!! Type $B!X(BSaikiteki$B""!Y(B in $B"#(B mode. -!! Verify the prompt $B!Z$5$$$-$F$-![(B in the minibuffer, and type $B!X(BSaiki$B""!Y(B. +!! Type 『Saikiteki□』 in ■ mode. +!! Verify the prompt 【さいきてき】 in the minibuffer, and type 『Saiki□』. -We don't have $B!Z$5$$$-![(B in $B<-=q(B either, so we recursively -(i.e., $B:F5"E*$K(B) enter $B<-=qEPO?(B mode. +We don't have 【さいき】 in 辞書 either, so we recursively +(i.e., 再帰的に) enter 辞書登録 mode. -!! Construct $B!Z:F5"![(B in the minibuffer. (Hint: $B:F(B($B$5$$(B), $B5"(B($B$-(B)) -!! Hit key after you have $B!Z$5$$$-(B $B:F5"![(B in the minibuffer. +!! Construct 【再帰】 in the minibuffer. (Hint: 再(さい), 帰(き)) +!! Hit key after you have 【さいき 再帰】 in the minibuffer. -Now we can continue the registration of $B!Z$5$$$-$F$-![(B. +Now we can continue the registration of 【さいきてき】. -!! You should have $B!Z$5$$$-$F$-(B $B:F5"![(B in the minibuffer. Construct $B!ZE*![(B. +!! You should have 【さいきてき 再帰】 in the minibuffer. Construct 【的】. -Hint: $B<-=q(B($B$8$7$g(B), $BEPO?(B($B$H$&$m$/(B), $B3X=,(B($B$,$/$7$e$&(B) +Hint: 辞書(じしょ), 登録(とうろく), 学習(がくしゅう) ->> $B:F5"E*<-=qEPO?$r3X=,$7$^$7$?!#(B +>> 再帰的辞書登録を学習しました。 ---- == How to enter words with okurigana == -Words like $B!VF0$/!W(B have okurigana parts, and SKK $B<-=q(B have entries like: +Words like 「動く」 have okurigana parts, and SKK 辞書 have entries like: - $B$&$4(Bk /$BF0(B/ + うごk /動/ for these words. We make use of these entries to enter words with okuriganas. -!! in $B"#(B mode, type $B!X(BUgoKounimoUgoKenakatta.$B!Y(B. +!! in ■ mode, type 『UgoKounimoUgoKenakatta.』. -Some nouns become verbs by affixing them with $B!V$9$k!W(B, but for such verbs +Some nouns become verbs by affixing them with 「する」, but for such verbs it is recommened to enter the original noun and the okurigana part separately. ->> $BF0$3$&$K$bF0$1$J$+$C$?!#(B +>> 動こうにも動けなかった。 ---- -;; (save-excursion (save-match-data (set-buffer " *skk-tut-jisyo*") (goto-char skk-okuri-ari-min) (when (search-forward "\n$B$&$4(Bk /$BF0(B/" skk-okuri-nasi-min t) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point)))))) +;; (save-excursion (save-match-data (set-buffer " *skk-tut-jisyo*") (goto-char skk-okuri-ari-min) (when (search-forward "\nうごk /動/" skk-okuri-nasi-min t) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point)))))) == How to register words with okurigana == -Let's see what happens if $B<-=q(B does not have $B!V$&$4(Bk$B!W(B as $B8+=P$78l(B. +Let's see what happens if 辞書 does not have 「うごk」 as 見出し語. -!! In $B"#(B mode, type$B!X(BUgoKu$B!Y(B. +!! In ■ mode, type『UgoKu』. -We enter $B<-=qEPO?(B mode in the minibuffer, and we have the prompt $B!Z$&$4(B*$B$/(B -$B![(B. As $B<-=q(B has the entry $B!V$I$&(B /$BF0(B/$B!W(B, we can make $B!ZF0![(B in the +We enter 辞書登録 mode in the minibuffer, and we have the prompt 【うご*く +】. As 辞書 has the entry 「どう /動/」, we can make 【動】 in the minibuffer. Remark: You have only to construct the main part without the okurigana, in the minibuffer. -!! Hit key after you have $B!ZF0![(B in the minibuffer. +!! Hit key after you have 【動】 in the minibuffer. ->> $BF0$/(B +>> 動く ---- == How to enter words containing double consonants == We do this like the following: - $B!X(BTukaTta$B""!Y(B $B"*(B $B!Z;H$C$?![(B - $B!X(BHosSuru$B""!Y(B $B"*(B $B!ZM_$9$k![(B + 『TukaTta□』 → 【使った】 + 『HosSuru□』 → 【欲する】 -where our $B<-=q(B is like: +where our 辞書 is like: - $B$D$+(Bt /$B;H(B/ - $B$[$C(Bs /$BM_(B/ + つかt /使/ + ほっs /欲/ -Hint: $B?M8}(B($B$8$s$3$&(B), $B0l2/(B($B$$$A$*$/(B), $BC#$7$?(B($B$?$C$7$?(B), $BCN$C$?(B($B$7$C$?(B) +Hint: 人口(じんこう), 一億(いちおく), 達した(たっした), 知った(しった) ->> $B?M8}$,0l2/$KC#$7$?$3$H$rCN$C$?!#(B +>> 人口が一億に達したことを知った。 ---- == ASCII conversion == -It is possible to enter $B8+=P$78l(B in ASCII characters, and transform them. -This is called $B!V1Q;zJQ49!W(B(ASCII conversion). +It is possible to enter 見出し語 in ASCII characters, and transform them. +This is called 「英字変換」(ASCII conversion). -!! In $B"#(B mode, type $B!X(B/file$B""!Y(B. +!! In ■ mode, type 『/file□』. -Typing $B!X(B/$B!Y(B in $B"#(B mode lets you enter $B"&(B mode. Unlike ordinary $B"&(B mode, +Typing 『/』 in ■ mode lets you enter ▽ mode. Unlike ordinary ▽ mode, however, the ASCII characters you type will be entered without any -transformations. In this case, our $B<-=q(B does not have the $B8+=P$78l(B -$B!V(Bfile$B!W(B, we enter $B<-=qEPO?(B mode. +transformations. In this case, our 辞書 does not have the 見出し語 +「file」, we enter 辞書登録 mode. -!! Verify that the prompt in the minibuffer is $B!Z(Bfile$B![(B, type -!! $B!X(Bqfairu$B!Y(B, and then hit key. +!! Verify that the prompt in the minibuffer is 【file】, type +!! 『qfairu』, and then hit key. ->> $B!V%U%!%$%k!W$,EPO?$5$l$^$7$?!#(B +>> 「ファイル」が登録されました。 ---- == Symbols == -The following symbols are registered in $B<-=q(B under the $B8+=P$78l(B -$B!V$-$4$&!W(B. +The following symbols are registered in 辞書 under the 見出し語 +「きごう」. - $B!!(B $B!"(B $B!#(B $B!$(B $B!%(B $B!&(B $B!'(B $B!((B $B!)(B $B!*(B $B!+(B $B!,(B $B!-(B $B!.(B $B!/(B $B!0(B $B!1(B $B!2(B $B!3(B $B!4(B $B!5(B $B!6(B $B!7(B - $B!8(B $B!9(B $B!:(B $B!;(B $B!<(B $B!=(B $B!>(B $B!?(B $B!@(B $B!A(B $B!B(B $B!C(B $B!D(B $B!E(B $B!F(B $B!G(B $B!H(B $B!I(B $B!J(B $B!K(B $B!L(B $B!M(B $B!N(B $B!O(B - $B!P(B $B!Q(B $B!R(B $B!S(B $B!T(B $B!U(B $B!V(B $B!W(B $B!X(B $B!Y(B $B!Z(B $B![(B $B!\(B $B!](B $B!^(B $B!_(B $B!`(B $B!a(B $B!b(B $B!c(B $B!d(B $B!e(B $B!f(B $B!g(B - $B!h(B $B!i(B $B!j(B $B!k(B $B!l(B $B!m(B $B!n(B $B!o(B $B!p(B $B!q(B $B!r(B $B!s(B $B!t(B $B!u(B $B!v(B $B!w(B $B!x(B $B!y(B $B!z(B $B!{(B $B!|(B $B!}(B $B!~(B - $B"!(B $B""(B $B"#(B $B"$(B $B"%(B $B"&(B $B"'(B $B"((B $B")(B $B"*(B $B"+(B $B",(B $B"-(B $B".(B +   、 。 , . ・ : ; ? ! ゛ ゜ ´ ` ¨ ^  ̄ _ ヽ ヾ ゝ ゞ 〃 + 仝 々 〆 〇 ー ― ‐ / \ ~ ∥ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] + { } 〈 〉 《 》 「 」 『 』 【 】 + - ± × ÷ = ≠ < > ≦ ≧ ∞ + ∴ ♂ ♀ ° ′ ″ ℃ ¥ $ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇ + ◆ □ ■ △ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓ 〓 ->> $B")(B980 +>> 〒980 ---- == Greek and Cyrillic characters == @@ -516,79 +516,79 @@ They are registered in the Jisyoes as follows (in classical Jisyoes, Russia and russia were used instead of Cyrillic and cyrillic). - Greek /$B&!(B/$B&"(B/$B&#(B/$B&$(B/$B&%(B/$B&&(B/$B&'(B/$B&((B/$B&)(B/$B&*(B/ ... + Greek /Α/Β/Γ/Δ/Ε/Ζ/Η/Θ/Ι/Κ/ ... - greek /$B&A(B/$B&B(B/$B&C(B/$B&D(B/$B&E(B/$B&F(B/$B&G(B/$B&H(B/$B&I(B/$B&J(B/ ... + greek /α/β/γ/δ/ε/ζ/η/θ/ι/κ/ ... - Cyrillic /$B'!(B/$B'"(B/$B'#(B/$B'$(B/$B'%(B/$B'&(B/$B''(B/$B'((B/$B')(B/$B'*(B/ ... + Cyrillic /А/Б/В/Г/Д/Е/Ё/Ж/З/И/ ... - cyrillic /$B'Q(B/$B'R(B/$B'S(B/$B'T(B/$B'U(B/$B'V(B/$B'W(B/$B'X(B/$B'Y(B/$B'Z(B/ ... + cyrillic /а/б/в/г/д/е/ё/ж/з/и/ ... -We can use $B1Q;zJQ49(B (ASCII conversion) to enter these characters. +We can use 英字変換 (ASCII conversion) to enter these characters. ->> $B&E&D(B +>> εδ ---- == Input by code == You can enter any Kanji characters by their codes (either JIS or EUC). -For example, the JIS code for $B!VU\!W(B is $B!V(B555C$B!W(B. So you can enter it as +For example, the JIS code for 「學」 is 「555C」. So you can enter it as follows. -!! In $B"#(B mode, type $B!X(B\$B!Y(B. +!! In ■ mode, type 『\』. You get the prompt -$B!Z(B7/8 bits or KUTEN code for japanese-jisx0208 (00nn or CR for Jump Menu):$B![(B. +【7/8 bits or KUTEN code for japanese-jisx0208 (00nn or CR for Jump Menu):】. -!! Type $B!X(B555c$B!Y(B and hit key. +!! Type 『555c』 and hit key. -Hint: $BElKL(B($B$H$&$[$/(B), $BBg(B($B$@$$(B) +Hint: 東北(とうほく), 大(だい) ->> $BElKLBgU\(B +>> 東北大學 ---- -== Completion of $B8+=P$78l(B == +== Completion of 見出し語 == -Hitting key in $B"&(B mode invokes completion of $B8+=P$78l(B. Let $B&R(B be -the string you entered in $B"&(B mode just before you type . Then the -first occurrence (if any) of such a $B&S(B in the $B<-=q(B buffer that has $B&R(B as -its initial segement and distinct from $B&R(B will be displayed. +Hitting key in ▽ mode invokes completion of 見出し語. Let σ be +the string you entered in ▽ mode just before you type . Then the +first occurrence (if any) of such a τ in the 辞書 buffer that has σ as +its initial segement and distinct from σ will be displayed. -!! In $B"#(B mode, type $B!X(BkonoHikouki$B""(ByorianoHi$B!Y(B. +!! In ■ mode, type 『konoHikouki□yorianoHi』. -The buffer becomes $B!Z$3$NHt9T5!$h$j$"$N"&$R![(B. +The buffer becomes 【この飛行機よりあの▽ひ】. !! Now, hit key. Completion is performed and the buffer becomes -$B!Z$3$NHt9T5!$h$j$"$N"&$R$3$&$-![(B. +【この飛行機よりあの▽ひこうき】. ->> $B$3$NHt9T5!$h$j$"$NHt9T5!$K$7$h$&!#(B +>> この飛行機よりあの飛行機にしよう。 ---- -The $B8+=P$78l(B search for the completion is performed starting from the -beginning of the $B<-=q(B buffer. Therefore, if there are several $B8+=P$78l(B -in the $B<-=q(B buffer whose initial segment matches $B&R(B, then the first such +The 見出し語 search for the completion is performed starting from the +beginning of the 辞書 buffer. Therefore, if there are several 見出し語 +in the 辞書 buffer whose initial segment matches σ, then the first such string will be displayed. If that is not what you expected, you can type -$B!X(B.$B!Y(B(period) to get the second candidate, and you can continue to type $B!X(B.$B!Y(B +『.』(period) to get the second candidate, and you can continue to type 『.』 to get more candates. If you have overrun, you can back up by typing -$B!X(B,$B!Y(B(comma) several times. +『,』(comma) several times. -Let us try to enter the sentence $B!V:4F#$H:XF#$G$O:4F#$N$[$&$,$"$j$U$l$?L>(B -$B;z$@!#!W(B. +Let us try to enter the sentence 「佐藤と斎藤では佐藤のほうがありふれた名 +字だ。」. -!! In $B"#(B mode, type $B!X(BSatou$B""(BtoSaitou$B""(BdehaSa$B!Y(B and hit key. +!! In ■ mode, type 『Satou□toSaitou□dehaSa』 and hit key. -The buffer becomes $B!Z:4F#$H:XF#$G$O"&$5$$$H$&![(B. +The buffer becomes 【佐藤と斎藤では▽さいとう】. -!! Type $B!X(B..,$B!Y(B. +!! Type 『..,』. ->> $B:4F#$H:XF#$G$O:4F#$N$[$&$,$"$j$U$l$?L>;z$@!#(B +>> 佐藤と斎藤では佐藤のほうがありふれた名字だ。 ---- When SKK is invoked for the first time in the current Emacs session, it -reads in your personal $B<-=q(B file into the $B<-=q(B buffer. The $B<-=q(B buffer -will be updated each time you make a $B3NDj(B. -When you exit from Emacs, SKK saves the content of the $B<-=q(B buffer into -your personal $B<-=q(B file. So, normally, you don't have to be aware of -saving the $B<-=q(B buffer. When SKK updates your personal $B<-=q(B file +reads in your personal 辞書 file into the 辞書 buffer. The 辞書 buffer +will be updated each time you make a 確定. +When you exit from Emacs, SKK saves the content of the 辞書 buffer into +your personal 辞書 file. So, normally, you don't have to be aware of +saving the 辞書 buffer. When SKK updates your personal 辞書 file (.skk-jisyo) it backups the content of the current .skk-jisyo to .skk-jisyo.BAK. This backup file may be useful if your .skk-jisyo is damaged accidentally. @@ -596,9 +596,9 @@ damaged accidentally. SKK has a lot more features we couldn't explain in this short tutorial. For further information about SKK refer to the SKK manual. -Here is your last problem. Hint: $B=*N;(B($B$7$e$&$j$g$&(B) +Here is your last problem. Hint: 終了(しゅうりょう) ->> $B$3$l$G(B SKK $B%A%e!<%H%j%"%k$r=*N;$7$^$9!#(B +>> これで SKK チュートリアルを終了します。 ---- ;; (skktut-end-tutorial) diff --git a/experimental/skk-correct.el b/experimental/skk-correct.el index 49aeb61b..a2f2674b 100644 --- a/experimental/skk-correct.el +++ b/experimental/skk-correct.el @@ -24,26 +24,26 @@ ;;; Commentary: -;; $B<-=qCf$K$J$$FI$_$N%V%l$?8+=P$78l$GJQ49$7$?:]$K!"FbIt$G(B skk-correct-table -;; $B$r;2>H$7$F@5$7$$8+=P$78l$KCV$-49$(8uJd$r8!:w$9$k%W%m%0%i%`$G$9!#(B -;; skk-correct-search $B$N0z?t$K!"%V%lJd@58e$K8!:w$7$?$$<-=q$r!"(B -;; skk-search-prog-list $B$HF1$8MWNN$G%j%9%H$GI=$7!"8!:w%W%m%0%i%`$H$H$b$K5-:\(B -;; $B$7$F2<$5$$!#Nc$($P$3$s$J46$8$G$9!#(B +;; 辞書中にない読みのブレた見出し語で変換した際に、内部で skk-correct-table +;; を参照して正しい見出し語に置き換え候補を検索するプログラムです。 +;; skk-correct-search の引数に、ブレ補正後に検索したい辞書を、 +;; skk-search-prog-list と同じ要領でリストで表し、検索プログラムとともに記載 +;; して下さい。例えばこんな感じです。 ;; (skk-correct-search ;; '((skk-search-jisyo-file skk-jisyo 0 t) ;; (skk-search-server skk-aux-large-jisyo 10000) ;; (skk-okuri-search))) -;; * $B>e5-$NNc$G$O!"Jd@5$7$?8+=P$78l$KBP$7!"8D?M<-=q!"%5!<%P!e$O8!:w$r9T$J$$$^$;$s!#(B +;; * 上記の例では、補正した見出し語に対し、個人辞書、サーバー、自動送り +;; 処理して個人辞書という検索を行ないますが、どこかで補正後の見出し語 +;; に対する候補が見つかればそれ以上は検索を行ないません。 -;; $B$3$l$r99$K(B skk-search-prog-list $B$NCf$NE,Ev$J8D=j$KF~$l$^$7$g$&!#2<5-$N$h(B -;; $B$&$K8D?M<-=q8!:wD>8e$K!"0lEY8+=P$78l$rJd@5$7$F8D?M<-=q$r8!:w$7D>$7!"%5!<(B -;; $B%P!<8!:w8e$K8+$D$+$i$J$+$C$?$i:FEYJd@5$7$F%5!<%P!<$r8!:w$9$k!"$H$$$&$N$b(B -;; $B0l0F$G$9!#$"$k$$$O!"8D?M$NJJ$r$b$m$KH?1G$7$F$$$k8D?M<-=q$N%V%lJd@5$O;_$a(B -;; $B$F!"%5!<%P!<$N$_Jd@58e8!:w$r$9$k!"$H$$$&$N$bNI$$$G$7$g$&!#(B +;; これを更に skk-search-prog-list の中の適当な個所に入れましょう。下記のよ +;; うに個人辞書検索直後に、一度見出し語を補正して個人辞書を検索し直し、サー +;; バー検索後に見つからなかったら再度補正してサーバーを検索する、というのも +;; 一案です。あるいは、個人の癖をもろに反映している個人辞書のブレ補正は止め +;; て、サーバーのみ補正後検索をする、というのも良いでしょう。 ;; (setq skk-search-prog-list ;; '((skk-search-jisyo-file skk-jisyo 0 t) @@ -54,24 +54,24 @@ ;; '((skk-search-server skk-aux-large-jisyo 10000) ;; (skk-okuri-search))))) -;; $B8=:_$N$H$3$m!"(Bskk-correct-table $B$N3FMWAG$r:G=i$+$i=g$Ke(B skk-correct-table -;; $B$N8eH>ItJ,$O8+$J$$;EMM$K$J$C$F$$$^$9!#(B -;; $B$H$j$"$($:(B Naoki Wakamatsu $B$5$s$,(B Message-Id: -;; <200001260732.QAA00868@ring.etl.go.jp> $B$GNs5s$7$F$/$@$5$C$?FI$_$N%V%l$r(B -;; $BC1=c$K(B sort $B$7$F!"(B2 $BJ8;z$N$b$N(B, 1 $BJ8;z$N$b$N$H$$$&=g$G(B skk-correct-table -;; $B$K<}$a$F$$$^$9$,!">e5-$N$h$&$K2?$+0l$D%V%l$,8+$D$+$C$?$i$=$l0J>e$O%F!<%V%k(B -;; $B$r8+$F$$$J$$$N$G!"$3$N%F!<%V%k$N%V%l$NM%@h=g0L$O8!F$$7$?J}$,NI$$$G$7$g$&!#(B - -;; $B:#8e$N2~NI$N%"%$%G%#%"$N0l$D$H$7$F$O!"JQ49>r7o$K1~$8$F8+$k%V%l$H8+$J$$%V%l(B -;; $B$r:n$k$N$bNI$$$+$b$7$l$^$;$s!#Nc$($P!"$3$N%V%l$OAw$j$"$jJQ49$N$H$-$@$1$7$+(B -;; $B8!:w$7$J$$!"$J$I$H$$$&$b$N$G$9!#$3$NJU$j$O さんが Message-Id: +;; <200001260732.QAA00868@ring.etl.go.jp> で列挙してくださった読みのブレを +;; 単純に sort して、2 文字のもの, 1 文字のものという順で skk-correct-table +;; に収めていますが、上記のように何か一つブレが見つかったらそれ以上はテーブル +;; を見ていないので、このテーブルのブレの優先順位は検討した方が良いでしょう。 + +;; 今後の改良のアイディアの一つとしては、変換条件に応じて見るブレと見ないブレ +;; を作るのも良いかもしれません。例えば、このブレは送りあり変換のときだけしか +;; 検索しない、などというものです。この辺りは実際に使ってみてご意見をお聞かせ +;; 下さい。 + +;; なお、変換時に当初手で入力したブレた見出し語は、そのまま個人辞書に取り込ま +;; れますが、これは仕様です。何故なら、確定時には、確定された候補が、見出し語 +;; のブレを補正して見つけた候補かどうかを確認する術が現在のところ提供されてい +;; ないからです。 ;;; Code: @@ -86,40 +86,40 @@ (defvar skk-correct-table '( ;; 2 chars - ("$B$*!<(B" . "$B$*$&(B") ; $BBg$-$$(B - ("$B$*!<(B" . "$B$*$*(B") - ("$B$*$&(B" . "$B$*$*(B") - ("$B$H$&(B" . "$B$H$*(B") ; $BDL$k(B - ("$B$I$&(B" . "$B$I$*(B") - ("$B$d$&(B" . "$B$h$&(B") ; $B$d$&$d(Bk /$BA2(B/ -> $B$h$&$d(Bk /$BA2(B/ - ("$B$i$&(B" . "$B$m$&(B") ; $B$i$&(Bs /$BO+(B/ -> $B$m$&(Bs /$BO+(B/ + ("おー" . "おう") ; 大きい + ("おー" . "おお") + ("おう" . "おお") + ("とう" . "とお") ; 通る + ("どう" . "どお") + ("やう" . "よう") ; やうやk /漸/ -> ようやk /漸/ + ("らう" . "ろう") ; らうs /労/ -> ろうs /労/ ;; 1 char - ("$B$$(B" . "$B$f(B") ; $B$$$-$I(Bm /$B9T$-;_(B/ -> $B$f$-$I(Bm /$B9T$-;_(B/ - ("$B$$(B" . "$B$h(B") ; $B$$(Bi /$BNI(B/ -> $B$h(Bi /$BNI(B/ - ("$B$*(B" . "$B$&(B") ; $B$[$*(Bt /$BJ|(B/ -> $B$[$&(Bt /$BJ|(B/ - ("$B$*(B" . "$B$[(B") ; $B$h$=$*(Bu /$Bjf(B/ -> $B$h$=$[(Bu /$Bjf(B/ - ("$B$*(B" . "$B$r(B") ; $B$/$A$*(Bs /$B8}@K(B/ -> $B$/$A$r(Bs /$B8}@K(B/ - ("$B$+(B" . "$B$,(B") ; $B$^$L$+(Br /$BLH(B/ -> $B$^$L$,(Br /$BLH(B/ - ("$B$6(B" . "$B$5(B") ; $B$O$@$6$`(Bk /$BH)4((B/ -> $B$O$@$5$`(Bi /$BH)4((B/ - ("$B$8(B" . "$B$B(B") ; $B$_$8$+(Bn /$B?H6a(B/ -> $B$_$B$+(Bn /$B?H6a(B/ - ("$B$=(B" . "$B$>(B") ; $B$_$.$=$m(Be /$B1&B7(B/ -> $B$_$.$>$m(Be /$B1&B7(B/ - ("$B$?(B" . "$B$@(B") ; $B$d$/$?(Bt /$BLrN)(B/ -> $B$d$/$@(Bt /$BLrN)(B/ - ("$B$E(B" . "$B$:(B") ; $B$o$E$i(Bw /$BHQ(B/ -> $B$o$:$i(Bw /$BHQ(B/ ; $B$`$E$+(Bs /$BFq(B/ -> $B$`$:$+(Bs /$BFq(B/ - ("$B$H(B" . "$B$I(B") ; $B$b$H(Br /$BLa(B/ -> $B$b$I(Br /$BLa(B/ - ("$B$O(B" . "$B$o(B") ; $B$a$6$O(Br /$BL\>c(B/ -> $B$a$6$o(Br /$BL\>c(B/ - ("$B$P(B" . "$B$O(B") ; $B$O$i(Bi /$BJ'(B/ -> $B$P$i(Bi /$BJ'(B/ - ("$B$Q(B" . "$B$O(B") ; $B$Q(Bt /$BD%(B/ -> $B$O(Bt /$BD%(B/ - ("$B$R(B" . "$B$$(B") ; $B$U$,$R$J(Bi /$Bg%9CHeL5(B/ -> $B$U$,$$$J(Bi /$Bg%9CHeL5(B/ - ("$B$R(B" . "$B$S(B") ; $B$j$g$&$R$i(Bk /$BN>3+(B/ -> $B$j$g$&$S$i(Bk /$BN>3+(B/ - ("$B$U(B" . "$B$V(B") ; $B$U$+(Bk /$B?<(B/ -> $B$V$+(Bk /$B?<(B/ - ("$B$V(B" . "$B$U(B") ; $B$1$V$+(Bi /$BLS?<(B/ -> $B$1$U$+(Bi /$BLS?<(B/ - ("$B$`(B" . "$B$s(B") ; $B$d$`$4$H$J(Bs /$B;_;vL5(B/ -> $B$d$s$4$H$J(Bs /$B;_;vL5(B/ - ("$B$f(B" . "$B$$(B") ; $B$f$-$I(Bm /$B9T$-;_(B/ -> $B$$$-$I(Bm /$B9T$-;_(B/ - ("$B$h(B" . "$B$$(B") ; $B$h(Bi /$BNI(B/ -> $B$$(Bi /$BNI(B/ - ("$B$p(B" . "$B$$(B") ; $B$p(Br /$B5o(B/ -> $B$$(Br /$B5o(B/ + ("い" . "ゆ") ; いきどm /行き止/ -> ゆきどm /行き止/ + ("い" . "よ") ; いi /良/ -> よi /良/ + ("お" . "う") ; ほおt /放/ -> ほうt /放/ + ("お" . "ほ") ; よそおu /裝/ -> よそほu /裝/ + ("お" . "を") ; くちおs /口惜/ -> くちをs /口惜/ + ("か" . "が") ; まぬかr /免/ -> まぬがr /免/ + ("ざ" . "さ") ; はだざむk /肌寒/ -> はださむi /肌寒/ + ("じ" . "ぢ") ; みじかn /身近/ -> みぢかn /身近/ + ("そ" . "ぞ") ; みぎそろe /右揃/ -> みぎぞろe /右揃/ + ("た" . "だ") ; やくたt /役立/ -> やくだt /役立/ + ("づ" . "ず") ; わづらw /煩/ -> わずらw /煩/ ; むづかs /難/ -> むずかs /難/ + ("と" . "ど") ; もとr /戻/ -> もどr /戻/ + ("は" . "わ") ; めざはr /目障/ -> めざわr /目障/ + ("ば" . "は") ; はらi /払/ -> ばらi /払/ + ("ぱ" . "は") ; ぱt /張/ -> はt /張/ + ("ひ" . "い") ; ふがひなi /腑甲斐無/ -> ふがいなi /腑甲斐無/ + ("ひ" . "び") ; りょうひらk /両開/ -> りょうびらk /両開/ + ("ふ" . "ぶ") ; ふかk /深/ -> ぶかk /深/ + ("ぶ" . "ふ") ; けぶかi /毛深/ -> けふかi /毛深/ + ("む" . "ん") ; やむごとなs /止事無/ -> やんごとなs /止事無/ + ("ゆ" . "い") ; ゆきどm /行き止/ -> いきどm /行き止/ + ("よ" . "い") ; よi /良/ -> いi /良/ + ("ゐ" . "い") ; ゐr /居/ -> いr /居/ ) - "*$B8+=P$78lJQ49$N$?$a$N%F!<%V%k!#(B -$B3FMWAG$N%G!<%?9=B$$O!"(B\(\"$BFI$_$,$V$l$?8+=P$78l(B\" . \"$B@5$7$$8+=P$78l(B\"\)$B!#(B") + "*見出し語変換のためのテーブル。 +各要素のデータ構造は、\(\"読みがぶれた見出し語\" . \"正しい見出し語\"\)。") ;; internal variable (defvar skk-correct-current-table nil) @@ -137,7 +137,7 @@ v)) (defun skk-correct (string) - ;; STRING $BCf$K%V%l$,$"$C$?$i$=$NItJ,$r@5$7$$J8;zNs$KCV$-49$($FJV$9!#(B + ;; STRING 中にブレがあったらその部分を正しい文字列に置き換えて返す。 (let (v) (save-match-data (while (and (not v) skk-correct-current-table) diff --git a/experimental/skk-dinsert.el b/experimental/skk-dinsert.el index 0004c38b..a4d68176 100644 --- a/experimental/skk-dinsert.el +++ b/experimental/skk-dinsert.el @@ -24,12 +24,12 @@ ;;; Commentary: -;; $B%+!<%=%k$NA08e$NJ8;zNs$d!"G$0U$N(B elisp $B$NI>2ACM$K$h$C$F%P%C%U%!$KA^(B -;; $BF~$9$kJ8;z$rF0E*$K7hDj$9$k%W%m%0%i%`$G$9!#(B +;; カーソルの前後の文字列や、任意の elisp の評価値によってバッファに挿 +;; 入する文字を動的に決定するプログラムです。 -;; skk-dinsert-rule-list $B$K!"%-!r7o$N%j%9%H$r=q(B -;; $B$$$F$/$@$5$$!#?t;z$ND>8e$G$N$_(B [-,.]$B$r(B[$B!l9g$K$O8e$N(B -$BF~NO$K8B$jL58z$K$J$k!#(B") +isearch の際には、この変数の値によらず、動的な入力は無効になる。又、 +Q (skk-set-henkan-point-subr) の入力によって▽モードに入ると、直後の +入力に限り無効になる。") (defvar skk-dinsert-ignore-lf t - "*Non-nil $B$G$"$l$P!"%+!<%=%k0JA0$NJ8;zNs$K$h$k>r7oH=Dj$r9TF,$G9T$J$C$?>l9g!"2~9T$rL5;k$9$k!#(B -`skk-dinsert-rule-list' $B$K$FBP1~$9$k%*%W%7%g%s$,;XDj$7$F$"$k$H!"$=$A$i$,M%@h$5$l$k!#(B") + "*Non-nil であれば、カーソル以前の文字列による条件判定を行頭で行なった場合、改行を無視する。 +`skk-dinsert-rule-list' にて対応するオプションが指定してあると、そちらが優先される。") (defvar skk-dinsert-rule-list nil - "*`skk-dinsert' $B$K$h$kF0E*$JF~NO$N>r7o%j%9%H!#(B + "*`skk-dinsert' による動的な入力の条件リスト。 -$B%j%9%H$N3FMWAG$O!"$=$l$>$l$,0l$D$N5,B'$G$"$j!"2<5-$N7A<0$rK~$?$7$F$$$J$1$l$P(B -$B$J$i$J$$!#(B +リストの各要素は、それぞれが一つの規則であり、下記の形式を満たしていなければ +ならない。 (INPUT-STATE NEXT-STATE RULE-ALIST) -INPUT-STATE, NEXT-STATE $B$N0UL#$O(B `skk-rom-kana-base-rule-list' $B$HF1$8$G$"$j!"(B -SKK $B$O(B INPUT-STATE $B$r8!=P$9$k$H!"(BRULE-ALIST $B$K4p$E$$$F%P%C%U%!$KJ8;z$rA^F~$7!"(B -$BB3$$$F(B NEXT-STATE $B$K>uBV$r0\$7$?$&$($G!"F~NOBT$A>uBV$H$J$k!#(B +INPUT-STATE, NEXT-STATE の意味は `skk-rom-kana-base-rule-list' と同じであり、 +SKK は INPUT-STATE を検出すると、RULE-ALIST に基づいてバッファに文字を挿入し、 +続いて NEXT-STATE に状態を移したうえで、入力待ち状態となる。 -RULE-ALIST $B$O>r7o$H!"$=$l$,@.N)$7$?;~$K=PNO$5$l$kCM$NO"A[%j%9%H$G$"$k!#(B -$B$=$l$>$l$N%k!<%k$O(B +RULE-ALIST は条件と、それが成立した時に出力される値の連想リストである。 +それぞれのルールは (REGEXP looking-at b-regexp/ignore-lf limit s-exp . VAL) -$BKt$O(B +又は (S-EXP . VAL) -$B$N7A<0$r$H$k!#(B(REGEXP, S-EXP, VAL $B0J30$O>JN,2DG=(B) - -$B=i$a$K!":G=i$NMWAG$,J8;zNs$G$"$k>l9g$K$D$$$F@bL@$9$k!#(B -$B%j%9%H$N3FMWAG$N0UL#$O2<5-$NDL$j!#(B - - 0th: $BJ8;zNs$r@55,I=8=$H$7$F07$$!"%+!<%=%k<~0O$NJ8;zNs$,$3$l$K%^%C%A$9$k$+H=Dj(B - $B$9$k!#(B - 1th: Non-nil $B$G$"$l$P(B `looking-at' $B$rMQ$$$F%+!<%=%k0J8e$NJ8;zNs$,(B REGEXP $B$K%^%C(B - $B%A$9$k$+H=Dj$9$k!#(Bnil $B$G$"$l$P(B `re-search-backward' $B$K$h$j%+!<%=%kD>A0$N(B - $BJ8;zNs$,(B REGEXP $B$K%^%C%A$9$k$+H=Dj$9$k!#>JN,$9$k$H(B nil $B$H$7$F07$&!#(B - 2th: 1th $B$N(B looking-at $B$NCM$K$h$j0[$J$k0UL#$r;}$D!#(B - looking-at $B$N;XDj$,(B Non-nil $B$N;~(B: - nil $B$G$"$l$P!"%+!<%=%kD>8e$NJ8;zNs$,(B REGEXP $B$K%^%C%A$9$k$+H=Dj$9$k!#(B - Non-nil $B$G$"$l$P!"$3$l$r@55,I=8=$H$7$F07$$!"(B`re-search-backward' $B$K$h$C(B - $B$F%+!<%=%k0\F0$r$9$k!#$=$N8e(B `looking-at' $B$r9T$J$$(B REGEXP $B$,J8;zNs$K(B - $B%^%C%A$9$k$+H=Dj$9$k!#$3$l$O%3%s%F%-%9%H$K1~$8$?F~NO$r$9$k>l9g$KM-8z(B - $B$G$"$k(B($B$H;W$o$l$k(B)$B!#(B - looking-at $B$N;XDj$,(B nil $B$N;~(B(`re-search-backward' $B$K$h$C$FH=Dj$9$k;~(B): - Non-nil $B$G$"$l$P!"9TF,$G$NF~NO$K$*$$$F!"$=$ND>A0$NJ8;z(B($B$9$J$o$A2~9T%3!<(B - $B%I(B)$B$rL5;k$7$F(B REGEXP $B$H%^%C%A$9$k$+H=Dj$9$k!#;XDj$,L5$1$l$P(B - `skk-dinsert-ignore-lf' $B$NCM$rMQ$$$k!#(B - 3th: `re-search-backward' $B$r9T$J$&:]$N8!:wHO0O$r;XDj$9$k!#$3$l$O%^%C%A%s%0$N>r(B - $B7o$r9J$C$?$j!"%Q%U%)!<%^%s%9$NDc2<$rM^$($kL\E*$KMxMQ$5$l$k!#(B - $B?tCM$,;XDj$5$l$k$H!"8=:_$N%+!<%=%k0LCV$h$j(B limit $BJ8;zA0$^$G$rHO0O$H$7$F8!(B - $B:w$9$k!#6qBNE*$K$O(B (- (point) limit) $B$r(B `re-search-backward' $B$KEO$9!#(B - $B$=$l0J30$G$"$k$H!"(BS $B<0$H$7$FI>2A$7$?CM$rMQ$$$k!#(B +の形式をとる。(REGEXP, S-EXP, VAL 以外は省略可能) + +初めに、最初の要素が文字列である場合について説明する。 +リストの各要素の意味は下記の通り。 + + 0th: 文字列を正規表現として扱い、カーソル周囲の文字列がこれにマッチするか判定 + する。 + 1th: Non-nil であれば `looking-at' を用いてカーソル以後の文字列が REGEXP にマッ + チするか判定する。nil であれば `re-search-backward' によりカーソル直前の + 文字列が REGEXP にマッチするか判定する。省略すると nil として扱う。 + 2th: 1th の looking-at の値により異なる意味を持つ。 + looking-at の指定が Non-nil の時: + nil であれば、カーソル直後の文字列が REGEXP にマッチするか判定する。 + Non-nil であれば、これを正規表現として扱い、`re-search-backward' によっ + てカーソル移動をする。その後 `looking-at' を行ない REGEXP が文字列に + マッチするか判定する。これはコンテキストに応じた入力をする場合に有効 + である(と思われる)。 + looking-at の指定が nil の時(`re-search-backward' によって判定する時): + Non-nil であれば、行頭での入力において、その直前の文字(すなわち改行コー + ド)を無視して REGEXP とマッチするか判定する。指定が無ければ + `skk-dinsert-ignore-lf' の値を用いる。 + 3th: `re-search-backward' を行なう際の検索範囲を指定する。これはマッチングの条 + 件を絞ったり、パフォーマンスの低下を抑える目的に利用される。 + 数値が指定されると、現在のカーソル位置より limit 文字前までを範囲として検 + 索する。具体的には (- (point) limit) を `re-search-backward' に渡す。 + それ以外であると、S 式として評価した値を用いる。 note: - * $B?tCM$r$=$N$^$^EO$7$?$$>l9g$K$O(B (quote 1) $BEy$H$9$kI,MW$,$"$k!#(B - * $BI>2A$7$?CM$,%+!<%=%k0LCV$N(B point $B$h$jBg$-$$$H%(%i!<$K$J$k!#(B - 4th: REGEXP $B$K$h$k%^%C%A%s%0$,@.8y$7$?:]!"$3$N(B s-exp $B$rI>2A$9$k!#(B - S $B<0$NCf$G$O(B arg $B$H(B m-d $B$rMxMQ$9$k;v$,$G$-!"(Barg $B$K$O(B `skk-dinsert' $B$N0z?t(B - $B$,!"(Bm-d $B$K$O(B REGEXP $B$K$h$k%^%C%A%s%0$N:]$N(B (match-data) $B$NFbMF$,F~$C$F$$(B - $B$k!#(Bs-exp $B$NI>2ACM$,(B nil $B$G$"$k$H!"$3$N%k!<%k$OE,MQ$5$l$J$$!#(B - 5th: REGEXP $B$K$h$k%^%C%A%s%0$,@.N)$7!"$+$D(B s-exp($B;XDj$5$l$F$$$l$P(B)$B$N(B - $BI>2ACM$,(B Non-nil $B$G$"$C$?;~!"$3$N(B VAL $B$,%P%C%U%!$KA^F~$5$l$k!#(B + * 数値をそのまま渡したい場合には (quote 1) 等とする必要がある。 + * 評価した値がカーソル位置の point より大きいとエラーになる。 + 4th: REGEXP によるマッチングが成功した際、この s-exp を評価する。 + S 式の中では arg と m-d を利用する事ができ、arg には `skk-dinsert' の引数 + が、m-d には REGEXP によるマッチングの際の (match-data) の内容が入ってい + る。s-exp の評価値が nil であると、このルールは適用されない。 + 5th: REGEXP によるマッチングが成立し、かつ s-exp(指定されていれば)の + 評価値が Non-nil であった時、この VAL がバッファに挿入される。 -$Bl9g$G$"$k$,!"$3$l$O(B S $B<0$H$7$FI>2A$5$l$k!#(B -$BI>2ACM$,(B Non-nil $B$G$"$l$P%k!<%k$,E,MQ$5$l!"BP1~$9$k(B VAL $B$,%P%C%U%!$KA^F~$5$l$k!#(B +次に最初の要素が文字列以外の場合であるが、これは S 式として評価される。 +評価値が Non-nil であればルールが適用され、対応する VAL がバッファに挿入される。 -$B%k!<%k$O>e$+$i=g$K;n$5$l!":G=i$K@.N)$7$?$b$N$,E,MQ$5$l$k!#(B +ルールは上から順に試され、最初に成立したものが適用される。 -VAL $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B +VAL には、以下の 3つの形式を指定できる。 -$BJ8;zNs(B -- $B$3$l$,%P%C%U%!$KA^F~$5$l$k!#(B -$B4X?tL>%7%s%\%k(B - -- `skk-rom-kana-rule-list' $B$G;XDj$7$?>l9g$HF1MM!"0z?tIU$-$G8F$P$l$k!#(B - $BJV$jCM$,J8;zNs$G$"$l$P$=$l$,%P%C%U%!$KA^F~$5$l$k!#(B -$BJQ?tL>%7%s%\%k(B - -- (`format' \"%S\" VAL) $B$7$?CM$,%P%C%U%!$KA^F~$5$l$k!#(B +文字列 -- これがバッファに挿入される。 +関数名シンボル + -- `skk-rom-kana-rule-list' で指定した場合と同様、引数付きで呼ばれる。 + 返り値が文字列であればそれがバッファに挿入される。 +変数名シンボル + -- (`format' \"%S\" VAL) した値がバッファに挿入される。 -$BFCJL$J>l9g$H$7$F(B nil $B$r;XDj$9$k;v$,$G$-$k!#$3$N;~$K$O!"(BS-EXP $BKt$O(B s-exp $B$NI>2ACM(B -$B$,MQ$$$i$l!"$3$l$O>e$N(B 3$B$D$N7A<0$N2?$l$+$G$"$kI,MW$,$"$k!#(B +特別な場合として nil を指定する事ができる。この時には、S-EXP 又は s-exp の評価値 +が用いられ、これは上の 3つの形式の何れかである必要がある。 -`skk-rom-kana-rule-list' $B$H$O0[$J$j!"%"%H%`$G$J$$MWAG$O;XDj$G$-$J$$!#$3$N$?$a(B -\(\"$B%+%J(B\" . \"$B$+$J(B\") $B$H$O;XDj$G$-$J$$!#$+$J%b!<%I!"%+%J%b!<%I$K$h$C$F>r7oJ,$1(B -$B$7$?$$>l9g$K$O!"JQ?t(B `skk-hiragana', `skk-katakana' $B$K$h$C$FD4$Y$k;v$,$G$-$k!#(B - note: `skk-hiragana' $B$O(B `skk-dinsert' $B$NCf$K$*$$$F$N$_M-8z$J%m!<%+%kJQ?t$G$"$k!#(B") +`skk-rom-kana-rule-list' とは異なり、アトムでない要素は指定できない。このため +\(\"カナ\" . \"かな\") とは指定できない。かなモード、カナモードによって条件分け +したい場合には、変数 `skk-hiragana', `skk-katakana' によって調べる事ができる。 + note: `skk-hiragana' は `skk-dinsert' の中においてのみ有効なローカル変数である。") (defun skk-toggle-dinsert (&optional arg) - "$BF0E*$JF~NO$NM-8z(B/$BL58z$r@Z$jBX$($k!#(B" + "動的な入力の有効/無効を切り替える。" (interactive "P") (setq skk-dinsert-mode (cond ((null arg) (not skk-dinsert-mode)) @@ -174,8 +174,8 @@ VAL $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B (defun skk-dinsert (arg idx) (let ((rule-alist (nth 2 (nth idx skk-dinsert-rule-list))) - ;; VAL $B$K(B ("$B%+%J(B" . "$B$+$J(B") $B$N7A<0$,=q$1$J$$$N$G(B - ;; $B$;$a$FJQ?t$rDs6!$7$F$_$k(B + ;; VAL に ("カナ" . "かな") の形式が書けないので + ;; せめて変数を提供してみる (skk-hiragana (and (not skk-katakana) skk-j-mode)) val cnd) (if (or (not skk-dinsert-mode) @@ -183,7 +183,7 @@ VAL $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B (= skk-henkan-start-point skk-kana-start-point)) (and skk-isearch-switch (buffer-live-p skk-isearch-current-buffer))) - ;; isearch $BKt$O(B $BF0E*$JF~NO$r$7$J$$$J$i(B t $B$KBP1~$9$kCM$r;H$&(B + ;; isearch 又は 動的な入力をしないなら t に対応する値を使う (setq val (cdr (assq t rule-alist))) (catch 'return (dolist (cur-rule rule-alist) @@ -203,19 +203,19 @@ VAL $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B r (cdr r))) r)) l-a i-lf b-regexp lim pos) - ;; (0 1 2 3 4 . 5) $B$N7A<0$r:NMQ$7$F$$$k$N$G(B - ;; (nth n LIST) $B$r$9$k$K$O(B i > n $B$G$"$k;v$,I,MW(B + ;; (0 1 2 3 4 . 5) の形式を採用しているので + ;; (nth n LIST) をするには i > n である事が必要 (ignore-errors (setq l-a (nth 1 cur-rule) i-lf (nth 2 cur-rule) b-regexp i-lf lim (nth 3 cur-rule) s-exp (nth 4 cur-rule))) - ;; re-search-backward $B$N(B limit $BD4@0(B + ;; re-search-backward の limit 調整 (when lim (setq lim (if (numberp lim) - (- (point) lim) ; $BIi$K$J$C$F$b(B ok + (- (point) lim) ; 負になっても ok (eval lim)))) (cond (l-a ; looking-at @@ -239,9 +239,9 @@ VAL $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B (setq found t m-d (match-data)) v))))))) - ;; match-data $B$rMQ$$$F=PNO$r@8@.(B or $B>r7oH=Dj(B - ;; skk-dinsert $B<+?H$N0z?t$O(B arg - ;; match-data $B$NFbMF$O(B m-d + ;; match-data を用いて出力を生成 or 条件判定 + ;; skk-dinsert 自身の引数は arg + ;; match-data の内容は m-d (when (and found s-exp) (setq val diff --git a/experimental/skk-exsearch.el b/experimental/skk-exsearch.el index c7673524..3ed90cce 100644 --- a/experimental/skk-exsearch.el +++ b/experimental/skk-exsearch.el @@ -1,4 +1,4 @@ -;;; skk-exsearch.el --- $B30It8!:w%W%m%0%i%`6&MQ(B interface -*- coding: iso-2022-jp -*- +;;; skk-exsearch.el --- 外部検索プログラム共用 interface -*- coding: iso-2022-jp -*- ;; Copyright (C) 2000 NAKAJIMA Mikio diff --git a/experimental/skk-exserv.el b/experimental/skk-exserv.el index 05daa21e..6a068c57 100644 --- a/experimental/skk-exserv.el +++ b/experimental/skk-exserv.el @@ -1,4 +1,4 @@ -;;; skk-exserv.el --- SKK $B%5!<%P!<$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-exserv.el --- SKK サーバーのためのプログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, ;; 1997, 1998, 1999, 2000 @@ -139,23 +139,23 @@ candidates that are delimited by slash.") (defmethod server-version ((engine dbskkd-engine)) (or skk-exserv-list (skk-error "Lack of host information of SKK server" - "SKK $B%5!<%P!<$N%[%9%H>pJs$,$"$j$^$;$s(B" )) + "SKK サーバーのホスト情報がありません" )) (or (skk-open-server) (skk-error "Cannot open connection to SKK server" - "SKK $B%5!<%P!<$H%3%M%/%7%g%s$rD%$k$3$H$,$G$-$^$;$s(B")) + "SKK サーバーとコネクションを張ることができません")) (save-excursion (unwind-protect (progn (set-buffer (oref engine buffer)) (let (v) (erase-buffer) - ;; $B%5!<%P!<%P!<%8%g%s$rF@$k!#(B + ;; サーバーバージョンを得る。 (process-send-string (oref engine process-name) "2") (while (and (server-opened-p engine) (eq (buffer-size) 0)) (accept-process-output)) (setq v (buffer-string)) (erase-buffer) - ;; $B%[%9%HL>$rF@$k!#(B + ;; ホスト名を得る。 (process-send-string (oref engine process-name) "3") (while (and (server-opened-p engine) (eq (buffer-size) 0)) (accept-process-output)) @@ -163,7 +163,7 @@ candidates that are delimited by slash.") (format (concat "SKK SERVER version %s" (if skk-japanese-message-and-error - "($B%[%9%HL>(B %s)" + "(ホスト名 %s)" "running on HOST %s")) v (buffer-string) ))) (erase-buffer)))) @@ -192,7 +192,7 @@ candidates that are delimited by slash.") (forward-char 2) (and (setq l (skk-compute-henkan-lists okurigana)) (cond ((and okurigana skk-henkan-okuri-strictly) - ;; $BAw$j2>L>$,F10l$N%(%s%H%j$N$_$rJV$9!#(B + ;; 送り仮名が同一のエントリのみを返す。 (nth 2 l)) ((and okurigana skk-henkan-strict-okuri-precedence) (skk-nunion (nth 2 l) (car l))) @@ -200,17 +200,17 @@ candidates that are delimited by slash.") ;;;###autoload (defun skk-adjust-search-prog-list-for-server-search (&optional non-del) - ;; skk-exserv-list $B$,(B nil $B$G$"$l$P!"(B - ;; skk-search-prog-list $B$+$i(B skk-exserv-search $B$r(B car $B$K;}$D%j%9%H$r>C$9!#(B - ;; non-nil $B$G$"$l$P!"2C$($k!#(B + ;; skk-exserv-list が nil であれば、 + ;; skk-search-prog-list から skk-exserv-search を car に持つリストを消す。 + ;; non-nil であれば、加える。 (if skk-exserv-list (if (null (assq 'skk-exserv-search skk-search-prog-list)) - ;; skk-search-prog-list $B$,(B nil $B$H$$$&$3$H$O$^$:$J$$$@$m$&$,!"G0$N$?(B - ;; $B$a!"(Bsetq $B$7$F$*$/!#(B + ;; skk-search-prog-list が nil ということはまずないだろうが、念のた + ;; め、setq しておく。 (setq skk-search-prog-list - ;; $BKvHx$KIU$1$k!#KvHx$K$O(B (skk-okuri-search) $B$r;}$C$F$-$?$$?M(B - ;; $B$b$$$k$+$b!#%*%W%7%g%s$GIU$1$k>l=j$rJQ99$9$k$h$&$K$7$?J}$,(B - ;; $BNI$$!)(B + ;; 末尾に付ける。末尾には (skk-okuri-search) を持ってきたい人 + ;; もいるかも。オプションで付ける場所を変更するようにした方が + ;; 良い? (nconc skk-search-prog-list (list '(skk-exserv-search))))) (if (not non-del) (remove-alist 'skk-search-prog-list 'skk-exserv-search)))) diff --git a/experimental/skk-ja-names.el b/experimental/skk-ja-names.el index 6349ff36..8b8cc996 100644 --- a/experimental/skk-ja-names.el +++ b/experimental/skk-ja-names.el @@ -1,4 +1,4 @@ -;;; skk-ja-names.el --- localization $B$N2DG=@-$K4X$9$k>.$5$J;n$_(B -*- coding: iso-2022-jp -*- +;;; skk-ja-names.el --- localization の可能性に関する小さな試み -*- coding: iso-2022-jp -*- ;; Copyright (C) 2010 SKK Development Team @@ -23,53 +23,53 @@ ;;; Commentary: -;; 21 $B@$5*$K$J$j!"%"%W%j%1!<%7%g%s$N(B localization $B$O(B $B0lHLE*$J$b$N$K$J$j(B -;; $B$^$7$?$,!"(BGNU Emacs $B$O4pK\E*$K1Q8lCN<1$,A0Ds$H$5$l$F$$$^$9(B ($B%I%-%e%a(B -;; $B%s%H$N0lIt$O?t3X1Q8l$NCN<1$rA0Ds$K$9$i$7$F$$$^$9(B)$B!#(B +;; 21 世紀になり、アプリケーションの localization は 一般的なものになり +;; ましたが、GNU Emacs は基本的に英語知識が前提とされています (ドキュメ +;; ントの一部は数学英語の知識を前提にすらしています)。 -;; $B$3$N%U%!%$%k$O(B SKK $B$N%3%^%s%IL>!&%*%W%7%g%sL>$r(B localize $B$9$k$3$H$G(B -;; $B%f!<%6!<$KMxE@$,$"$k$+$I$&$+$r3N$+$a$k$?$a$K@_CV$5$l$^$7$?!#$h$$L?L>(B -;; $BK!$K;j$k$^$G$O>/$J$/$H$b(B experimental $B$H$7$^$9!#(B +;; このファイルは SKK のコマンド名・オプション名を localize することで +;; ユーザーに利点があるかどうかを確かめるために設置されました。よい命名 +;; 法に至るまでは少なくとも experimental とします。 -;; $B:#$N$H$3$m;W$$$D$/4pK\J}?K(B +;; 今のところ思いつく基本方針 -;; 1. $B=i?4$NF~NO$OEvA3A0$NIU$1J}$,$h$$$HA[A|$5$l$k!#(B +;; 3. Emacs において英語以外のシンボル名の入力は当然手間である。そうすると +;; 補完前提で、補完しやすい名前の付け方がよいと想像される。 ;;; Code: -(defalias 'SKK$B%b!<%I(B 'skk-mode) -(defalias 'SKK$B$N%P!<%8%g%s(B 'skk-version) -(defalias 'SKK$B$N%P%0$rJs9p$9$k(B 'skk-submit-bug-report) -(defalias 'SKK$B$N%A%e!<%H%j%"%k(B 'skk-tutorial) +(defalias 'SKKモード 'skk-mode) +(defalias 'SKKのバージョン 'skk-version) +(defalias 'SKKのバグを報告する 'skk-submit-bug-report) +(defalias 'SKKのチュートリアル 'skk-tutorial) -(defvaralias 'SKK$B4pK\@_Dj(B-$B8D?M%U%!%$%k$rCV$/%G%#%l%/%H%jL>(B 'skk-user-directory) +(defvaralias 'SKK基本設定-個人ファイルを置くディレクトリ名 'skk-user-directory) -(defvaralias 'SKK$B%-!<@_Dj(B-$B%j%?!<%s%-!<$r3NDj$K;H$&(B? 'skk-egg-like-newline) -(defvaralias 'SKK$B%-!<@_Dj(B-$BA08uJdI=<($9$k%-!<72(B 'skk-egg-like-newline) -(defvaralias 'SKK$B%-!<@_Dj(B-$B3NDj$K;H$&%-!<(B 'skk-kakutei-key) +(defvaralias 'SKKキー設定-リターンキーを確定に使う? 'skk-egg-like-newline) +(defvaralias 'SKKキー設定-前候補表示するキー群 'skk-egg-like-newline) +(defvaralias 'SKKキー設定-確定に使うキー 'skk-kakutei-key) -(defvaralias 'SKK$B<-=q@_Dj(B-L$B<-=q$N%U%!%$%kL>(B 'skk-large-jisyo) -(defvaralias 'SKK$B<-=q@_Dj(B-CDB$B<-=q$N%U%!%$%kL>(B 'skk-cdb-large-jisyo) -(defvaralias 'SKK$B<-=q@_Dj(B-$B8D?M<-=q$r6&M-$9$k(B? 'skk-share-private-jisyo) +(defvaralias 'SKK辞書設定-L辞書のファイル名 'skk-large-jisyo) +(defvaralias 'SKK辞書設定-CDB辞書のファイル名 'skk-cdb-large-jisyo) +(defvaralias 'SKK辞書設定-個人辞書を共有する? 'skk-share-private-jisyo) -(defvaralias 'SKK$BJQ49@_Dj(B-$BAw$j2>L>$,@5$7$$8uJd$rM%@h$9$k(B? +(defvaralias 'SKK変換設定-送り仮名が正しい候補を優先する? 'skk-henkan-strict-okuri-precedence) -(defvaralias 'SKK$BJQ49@_Dj(B-$BM>7W$JAw$j2>L>$N=hM}J}K!$rA*$V(B! +(defvaralias 'SKK変換設定-余計な送り仮名の処理方法を選ぶ! 'skk-check-okurigana-on-touroku) -(defvaralias 'SKK$BI=<(@_Dj(B-$B%$%s%i%$%sI=<($9$k(B? 'skk-show-inline) -(defvaralias 'SKK$BI=<(@_Dj(B-$B%D!<%k%F%#%C%WI=<($9$k(B? 'skk-show-inline) -(defvaralias 'SKK$BI=<(@_Dj(B-$BF|K\8l%a%K%e! @@ -47,9 +47,9 @@ (defvar skk-pre-henkan-candidates nil) (defun skk-pre-henkan () - "$B%j%9%H(B `skk-completion-prog-list' $B$NMWAG$H$7$F;HMQ(B." - ;; `skk-pre-henkan-candidates' $B$N(B car $B$rJV$9!#(B`skk-pre-henkan-candidates' $B$O=L$`!#(B - ;; `skk-comp-first' $B$,(B t $B$J$i!"?7$?$J(B `skk-pre-henkan-candidates' $B$r:n$k!#(B + "リスト `skk-completion-prog-list' の要素として使用." + ;; `skk-pre-henkan-candidates' の car を返す。`skk-pre-henkan-candidates' は縮む。 + ;; `skk-comp-first' が t なら、新たな `skk-pre-henkan-candidates' を作る。 (unless (string= skk-comp-key "") (when skk-comp-first (setq skk-pre-henkan-candidates (skk-pre-henkan-make-candidates))) @@ -58,9 +58,9 @@ (setq skk-pre-henkan-candidates (cdr skk-pre-henkan-candidates))))) (defun skk-pre-henkan-make-candidates () - "`skk-comp-key' $B$r%-! -;; Υե SKK-MK ǥ쥯ȥ˥ԡ ( -;; Ȥե륷ƥǤ SKK-MK Τǥ쥯ȥ +;; このファイルを SKK-MK があるディレクトリにコピーし (リンク +;; が使えるファイルシステムでは SKK-MK のあるディレクトリで ;; ln -s ./experimental/skk-w3m.el . -;; ɤ⤷ޤ)̤ make install Ǥ +;; した方が良いかもしれません)、後は普通に make install するだけです。 ;; -;; skk-search-prog-list (skk-w3m-search "goo-daijirin") Τ褦 -;; Ǥɲäޤ̾¾Τɤ skk search engine Ǥ٤ -;; ΤǡǤǸ夬ɤǤ礦ʴˤʤޤ +;; skk-search-prog-list に (skk-w3m-search "goo-daijirin") のような +;; 要素を追加します。通常、他のどの skk search engine よりも最も遅い +;; ので、最も最後が良いでしょう。こんな感じになります。 ;; (setq skk-search-prog-list ;; '((skk-search-jisyo-file skk-jisyo 0 t) @@ -58,22 +58,22 @@ ;; (skk-w3m-search "goo-daijirin") ;; (skk-w3m-search "goo-exceed-eiwa"))) -;; skk-w3m-search ΰϸ󥸥μʸǻꤷޤ -;; âskk-w3m-search-engine-alist б륨ȥ꤬ɬפǤ +;; skk-w3m-search の引数は検索エンジンの種類を文字列で指定します。 +;; 但し、skk-w3m-search-engine-alist に対応するエントリが必要です。 -;; skk-w3m.el Ǥ search-engine ˸̤ cache ޤ -;; (skk-w3m-search "goo-daijirin" t) Τ褦 `skk-w3m-search' -;; non-nil argument ꤹ cache Ԥʤ鷺 w3m -;; ˸򤵤ޤ +;; skk-w3m.el では search-engine 毎に検索結果を cache します。 +;; (skk-w3m-search "goo-daijirin" t) のように `skk-w3m-search' の第 +;; 二引数に non-nil argument を指定すると cache を行なわず、毎回 w3m +;; に検索をさせます。 ;; -;; o Ȥꤢ skk-w3m-get-candidates-from-goo-exceed-waei, +;; o とりあえず skk-w3m-get-candidates-from-goo-exceed-waei, ;; skk-w3m-get-candidates-from-goo-exceed-eiwa, -;; skk-w3m-get-candidates-from-goo-daily-shingo 롣 -;; o 󥸥á -;; o lookup w3m-search.el Ȥä Web search 礷ʤΤ -;; ...礹 skk-lookup.el ǰ층Ǥ롩 -;; o w3m backend βɤɽ +;; skk-w3m-get-candidates-from-goo-daily-shingo を完成させる。 +;; o 検索エンジンの増加。 +;; o lookup は w3m-search.el を使った Web search を統合しないのだろう +;; か...。統合すれば skk-lookup.el で一元管理できる? +;; o w3m backend の改良に追従。 ;;; Code @@ -121,41 +121,41 @@ nil ;(not skk-abbrev-mode) nil skk-w3m-make-query-quote-yahoo)) - "*󥸥θץꤹ륨ꥹȡ -car ϸ󥸥ɽ魯ʸ -1th URL \(ʸ %s ɽ魯\), -2th Web page coding-system, -3th ϸڤФ˻Ѥؿɽ魯ܥ롣 -4th \(optional\) S ꤷɾ non-nil ˤʤ֤ΤȤ w3m - ˸򤵤ʤ -5th \(optional\) `skk-henkan-key' ùؿ -6th \(optional\) 1th Υƥץ졼Ȥ˹碌ʸϤؿ̾ - ꤵ줿ؿϡФ\(string\) Ȥ `funcall' 롣 - ꤬ʤϡ`w3m-search-escape-query-string' `funcall' 롣") + "*検索エンジン毎の検索オプションを指定するエーリスト。 +car は検索エンジンを表わす文字列、 +1th は URL \(検索文字列を %s で表わす\), +2th は Web page の coding-system, +3th は候補切り出しに使用する関数を表わすシンボル。 +4th \(optional\) は S 式を指定し、評価して non-nil になる状態のときは w3m + に検索処理をさせない。 +5th \(optional\) は `skk-henkan-key' を加工する関数。 +6th \(optional\) は 1th のテンプレートに合わせた文字列を出力する関数名。 + 指定された関数は、見出し語\(string\) を引数として `funcall' される。 + 指定がない場合は、`w3m-search-escape-query-string' が `funcall' される。") (defvar skk-w3m-use-w3m-backend t - "*Non-nil ǤСw3m backend ץդǵưƸԤʤ -`start-process' Ȥʤ Emacs ǤԲġ -nil ǤСemacs-w3m ͳ w3m Ѥ (ߤ emacs-w3m Ǥ -w3m backend ưƤʤ)") + "*Non-nil であれば、w3m を backend オプション付きで起動して検索を行なう。 +`start-process' が使えない Emacs では利用不可。 +nil であれば、emacs-w3m を経由して w3m を利用する (現在の emacs-w3m では +w3m を backend で動かしていない)。") (defvar skk-w3m-command (or (and (boundp 'w3m-command) w3m-command) "w3m") - "*w3m ޥ̾") + "*w3m コマンド名。") (defvar skk-w3m-command-args "-backend" - "*w3m backend ץ") + "*w3m の backend オプション。") (defvar skk-w3m-backend-command-prompt "w3m>" - "*w3m backend Υޥɥץץȡ") + "*w3m backend のコマンドプロンプト。") (defvar skk-w3m-default-process-coding-system 'euc-japan - "*w3m backend ץΥǥեȤ coding-system") + "*w3m backend プロセスのディフォルトの coding-system。") (defvar skk-w3m-kill-command "quit" - "*w3m backend νλޥɡ") + "*w3m backend の終了コマンド。") (defvar skk-w3m-no-wait nil - "*Non-nil ǤСw3m backend ץϤޤԤʤ") + "*Non-nil であれば、w3m backend プロセスが何か出力するまで待たない。") (defvar skk-w3m-quote-yahoo-currency-symbol-alist ;;http://quote.yahoo.com/m5?a=1&s=USD&t=JPY&c=0 ; U.S. Dollar, Japanese Yen @@ -321,7 +321,7 @@ w3m (let ((process-connection-type t)) (buffer-disable-undo) ;;(insert "\nStarting w3m backend...\n\n") - (skk-message "skk Τ w3m backend ưƤޤ..." + (skk-message "skk のために w3m backend を起動しています..." "Starting w3m backend for skk...") (condition-case nil (progn @@ -336,14 +336,14 @@ w3m (process-kill-without-query skk-w3m-process))) (skk-w3m-set-process-coding-system skk-w3m-default-process-coding-system)) - (file-error (skk-error "ƥ \"%s\" Ĥޤ" + (file-error (skk-error "システム上に \"%s\" が見つかりません" "Sorry, can't find \"%s\" on your system" skk-w3m-command)) (error (skk-w3m-kill 'nomsg))) (if (eq (process-status skk-w3m-process) 'exit) (progn (skk-w3m-kill 'nomsg) - (skk-error "%s ץ۾ェλޤ" + (skk-error "%s プロセスが異常終了しました。" "Process %s exited abnormally with code 1" skk-w3m-process))) (while (and (memq (process-status skk-w3m-process) '(run stop)) @@ -351,19 +351,19 @@ w3m (not (re-search-forward skk-w3m-backend-command-prompt nil t))) (accept-process-output skk-w3m-process)) ;;(or (memq (process-status skk-w3m-process) '(run stop)) - ;; (skk-error "w3m backend ץ򥹥Ȥ뤳ȤǤޤ" + ;; (skk-error "w3m backend プロセスをスタートすることができません" ;; "Unable to start w3m backend process")) (goto-char (process-mark skk-w3m-process)) - (skk-message "skk Τ w3m backend ưƤޤ...λ!" + (skk-message "skk のために w3m backend を起動しています...完了!" "Starting w3m backend for skk...done"))) (defun skk-w3m-kill (&optional nomsg) - "w3m backend ץ򻦤" + "w3m backend プロセスを殺す。" (interactive "P") (if (not (skk-w3m-process-alive)) - ;; ͿǤ... + ;; 北斗神拳の世界ですな...。 (or nomsg - (skk-message "w3m backend ץϴ˻Ǥޤ" + (skk-message "w3m backend プロセスは既に死んでます" "w3m backend process has already died")) (with-current-buffer (get-buffer skk-w3m-working-buffer) (unwind-protect @@ -374,7 +374,7 @@ w3m (delete-process skk-w3m-process)) ;;(setq skk-w3m-process nil) (or nomsg - (skk-message "w3m backend ץˤޤ" + (skk-message "w3m backend プロセスが死にました" "w3m backend process died"))) (kill-buffer (current-buffer)))))) @@ -385,7 +385,7 @@ w3m (let ((pmark (process-mark skk-w3m-process)) origpoint) (accept-process-output) - ;; ưݥȤ¸뤿 save-excursion ϻȤʤ + ;; 動いたポイントを保存するため save-excursion は使わない。 (goto-char pmark) (setq origpoint (point)) (insert command) @@ -395,7 +395,7 @@ w3m (goto-char origpoint) (while (and (not (re-search-forward skk-w3m-backend-command-prompt pmark t)) - ;; quit ޥɤäץץȤϵäƤʤ + ;; quit コマンドを送ったらプロンプトは帰ってこない。 (not (eq (process-status skk-w3m-process) 'exit))) (accept-process-output)) ;;(skk-w3m-check-errors) @@ -430,13 +430,13 @@ w3m (if skk-w3m-use-w3m-backend nil ;;(format - ;;"%sϤ缭Ǥθ̡ [0-9]+" key) + ;;"■[%s]の大辞林第二版からの検索結果  [0-9]+件" key) "")) (endregexp (if skk-w3m-use-w3m-backend nil ;;(format - ;;"%sϤ缭Ǥθ̡ [0-9]+" key) + ;;"■[%s]の大辞林第二版からの検索結果  [0-9]+件" key) "")) (start (if skk-w3m-use-w3m-backend (point-min))) (end (if skk-w3m-use-w3m-backend (process-mark skk-w3m-process))) @@ -454,23 +454,23 @@ w3m (goto-char start) (setq key (mapconcat 'char-to-string key "-*")) (setq key (format "\\(%s\\|%s\\)" - ;; 8 dz 󤭤礦ڴ϶ - (format "%s *\\([^<>ڡ]+\\)" key) - ;; -ڻԺ - ;; Ϥܤ襤Ϥ󡽡ڳȿ - ;; ʤ ȡ̣ - ;; - ڻԺ - ;; 񤬤ۡڡԾдա - (format "\\(\\)*%s[^]*\\([^<>ڡ]+\\) *" key))) + ;; 8 新規で開く かんきょう【艦橋】 + (format "%s *【\\([^<>【】]+\\)】" key) + ;; しこう-さくご―かう―【試行錯誤】 + ;; がいはんぼしぐわいはん―【外反拇趾】 + ;; なかみ 【中身・中味】 + ;; しこう-さくご ―かう― 【試行錯誤】 + ;; えがおゑがほ【《笑顔》】 + (format "\\(\\)*%s[^【]*【\\([^<>【】]+\\)】 *" key))) (while (re-search-forward key end t nil) - ;; KEY = "\\(-*-*-*-*-* *\\([^<>ڡ]+\\)\\|\\(\\)*-*-*-*-*-*[^<]*\\([^<>ڡ]+\\) *\\)" + ;; KEY = "\\(し-*こ-*う-*さ-*く-*ご *【\\([^<>【】]+\\)】\\|\\(\\)*し-*こ-*う-*さ-*く-*ご[^<【]*【\\([^<>【】]+\\)】 *\\)" (setq temp (skk-w3m-filter-string - ;; Ҳ - ;; Ծд + ;; 〈何時〉 + ;; 《笑顔》 (or (match-string-no-properties 2) (match-string-no-properties 4)) - '("" "" "" ""))) - (dolist (elm (split-string temp "")) + '("〈" "〉" "《" "》"))) + (dolist (elm (split-string temp "・")) ;; do not add a redundant candidate. (unless (member elm v) (setq v (cons elm v))))) @@ -478,39 +478,39 @@ w3m (defun skk-w3m-get-candidates-from-goo-exceed-waei (key) ;; SORRY, NOT YET. - ;; ;; 15:ΤͤäϤEXCEED±Ѽŵθ + ;; ;; 15:■[ねっしん]のEXCEED和英辞典からの検索結果 ;; ;; 16:* ;; ;; 17: - ;; ;; 18:ͤä - ;; ;; 19:[clear] Ǯ - ;; ;; 20:[clear] zealardoreagernessenthusiasm - ;; ;; 21: eagerardentkeenˡeagerly - ;; ;; 22: earnestlyintently + ;; ;; 18:ねっしん + ;; ;; 19:[clear] 熱心 + ;; ;; 20:[clear] zeal; ardor; eagerness; enthusiasm. ~な + ;; ;; 21: eager; ardent; keen. ~に eagerly; + ;; ;; 22: earnestly; intently. ;; ;; 23: ;; ;; 24:* - ;; ;; 25:ΤͤäϤEXCEED±Ѽŵθ + ;; ;; 25:■[ねっしん]のEXCEED和英辞典からの検索結果 ;; (let (temp v) ;; (save-match-data ;; (if (not (re-search-forward - ;; (concat "\\" (regexp-quote key) "\\ϤEXCEED±Ѽŵθ") + ;; (concat "■\\[" (regexp-quote key) "\\]のEXCEED和英辞典からの検索結果") ;; nil t nil)) ;; nil - ;; (while (re-search-forward "\\[clear\\] [a-z]+\\.\\([^ a-zA-Z][^]+\\)" nil t nil) + ;; (while (re-search-forward "\\[clear\\] [a-z]+\\. \\([^ a-zA-Z][^.]+\\)." nil t nil) ;; (setq temp (match-string-no-properties 1)) ;; (setq temp (skk-w3m-filter-string - ;; ;; [[]] - ;; temp '("\n" "[0-9]+: +" "[ ]+" "[-]+" "([, a-z]+)" + ;; ;; [[米話]] + ;; temp '("\n" "[0-9]+: +" "[  ]+" "([ぁ-ん]+)" "([, a-z]+)" ;; "\\[\\[[^a-zA-Z]+\\]\\]"))) - ;; (while (string-match "\\([^]+\\)\\([^]+\\)\\([^]+\\)*" temp) + ;; (while (string-match "\\([^,;]+\\)[\\([^,;]+\\)]\\([^,;]+\\)*" temp) ;; (setq temp (concat (substring temp 0 (match-beginning 0)) ;; (match-string-no-properties 1 temp) ;; (match-string-no-properties 3 temp) - ;; "" + ;; "," ;; (match-string-no-properties 2 temp) ;; (match-string-no-properties 3 temp) ;; (substring temp (match-end 0))))) ;; - ;; (setq v (nconc v (split-string temp "[]")))) + ;; (setq v (nconc v (split-string temp "[,;]")))) ;; v)))) ) @@ -523,7 +523,7 @@ w3m ;; ;; ;; ;; ;; @@ -536,7 +536,7 @@ w3m ;; ;; ;; @@ -556,7 +556,7 @@ w3m ;; ;; ;; @@ -566,7 +566,7 @@ w3m ;; ;; ;; @@ -576,7 +576,7 @@ w3m ;; ;; ;; @@ -606,7 +606,7 @@ w3m ;; ;; ;; @@ -616,7 +616,7 @@ w3m ;; ;; ;; @@ -639,7 +639,7 @@ w3m ;; ;; ;; ;; ;;
- ;; collaborateϤEXCEED¼ŵθ + ;; ■[collaborate]のEXCEED英和辞典からの検索結果 ;;
;; - ;; collaborate + ;; col・lab・o・rate  ;; ;;
;; - ;; vi.ƯƱ椹롡(with, on, in)Ũ¦ηϤ˶Ϥ롥 + ;; vi. 共に働く; 共同研究する (with, on, in); 敵側[占領軍]に協力する. ;; ;;
;; - ;; collaboration + ;; collaboration  ;; ;;
;; - ;; n.collaborationismn.collaborationistn.Ũ¦ؤΡ˶ϼԡ + ;; n. collaborationism n. collaborationist n. (敵側への)協力者. ;; ;;
;; - ;; a.ƱΡ + ;; a. 共同制作の. ;; ;;
;; - ;; collaborator + ;; collaborator  ;; ;;
- ;; collaborateϤEXCEED¼ŵθ + ;; ■[collaborate]のEXCEED英和辞典からの検索結果 ;;
@@ -647,44 +647,44 @@ w3m ;; ;; ;; - ;; contemporary - ;; [clear] - ;; [clear] a., n.ƱΡʿ͡ˡ(with)ƱǯΡ - ;; ͡ˡΡʿ͡ˡ + ;; con・tem・po・ra・ry + ;; [clear] ●●●●●●●●●●●●●● + ;; [clear] a., n. 同時代の(人,雑誌) (with); 同年齢の( + ;; 人); 現代の(人). ;; ;; * - ;; contemporaryϤEXCEED¼ŵθ + ;; ■[contemporary]のEXCEED英和辞典からの検索結果 ;; - ;; 14:collaborateϤEXCEED¼ŵθ + ;; 14:■[collaborate]のEXCEED英和辞典からの検索結果 ;; 15:* ;; 16: - ;; 17:collaborate - ;; 18:[clear] - ;; 19:[clear] vi.ƯƱ椹롡(with, on, in) - ;; 20: Ũ¦ηϤ˶Ϥ롥 + ;; 17:col・lab・o・rate + ;; 18:[clear] ●●●●●●●●●●●● + ;; 19:[clear] vi. 共に働く; 共同研究する (with, on, in); + ;; 20: 敵側[占領軍]に協力する. ;; 21:[clear] collaboration - ;; 22:[clear] n.collaborationismn.collaborationistn. - ;; 23: Ũ¦ؤΡ˶ϼԡ + ;; 22:[clear] n. collaborationism n. collaborationist n. ( + ;; 23: 敵側への)協力者. ;; 24:[clear] collaborative - ;; 25:[clear] - ;; 26:[clear] a.ƱΡ + ;; 25:[clear] ●●●●●●●●●●●●●● + ;; 26:[clear] a. 共同制作の. ;; 27:[clear] collaborator ;; 28:[clear] n. ;; 29: ;; 30:* - ;; 31:collaborateϤEXCEED¼ŵθ + ;; 31:■[collaborate]のEXCEED英和辞典からの検索結果 ;; - ;; veryϤEXCEED¼ŵθ̡ 2 + ;; ■[very]のEXCEED英和辞典からの検索結果  2件 ;; * ;; - ;; 1 dz very + ;; 1 新規で開く very ;; - ;; 2 dz Very light + ;; 2 新規で開く Very light ;; ;; * - ;; veryϤEXCEED¼ŵθ̡ 2 + ;; ■[very]のEXCEED英和辞典からの検索結果  2件 ;; - ;; contemporaryϤEXCEED¼ŵθ + ;; ■[contemporary]のEXCEED英和辞典からの検索結果 ;; * ;; (save-match-data ;; (let (temp v start end) @@ -694,27 +694,27 @@ w3m ;; (if (search-forward "" nil t nil) ;; (setq end (point))) ;; (goto-char start) - ;; (setq key (concat "" (regexp-quote key) " +\\([^ڡ]+\\)")) + ;; (setq key (concat "" (regexp-quote key) " +【\\([^【】]+\\)】")) ;; (while (re-search-forward key end t nil) ;; (setq temp (skk-w3m-filter-string - ;; ;; Ҳ - ;; (match-string-no-properties 1) '("" ""))) - ;; (setq v (nconc (split-string temp "") v))) + ;; ;; 〈何時〉 + ;; (match-string-no-properties 1) '("〈" "〉"))) + ;; (setq v (nconc (split-string temp "・") v))) ;; (nreverse v))))) ;; (save-match-data ;; (let (v) - ;; (if (not (re-search-forward "[0-9]+ dz" nil t nil)) + ;; (if (not (re-search-forward "[0-9]+ 新規で開く" nil t nil)) ;; (if (re-search-forward - ;; (concat "\\" (regexp-quote key) "\\ϤEXCEED¼ŵθ") + ;; (concat "■\\[" (regexp-quote key) "\\]のEXCEED英和辞典からの検索結果") ;; nil t nil) ;; (setq v (skk-w3m-get-candidates-from-goo-exceed-eiwa-1))) ;; (beginning-of-line) - ;; (while (re-search-forward "[0-9]+ dz" nil t nil) + ;; (while (re-search-forward "[0-9]+ 新規で開く" nil t nil) ;; (backward-char) ;; (w3m-view-this-url) ;; (goto-char (point-min)) ;; (if (re-search-forward - ;; (concat "\\" (regexp-quote key) "\\ϤEXCEED¼ŵθ") + ;; (concat "■\\[" (regexp-quote key) "\\]のEXCEED英和辞典からの検索結果") ;; nil t nil) ;; (setq v (nconc v (skk-w3m-get-candidates-from-goo-exceed-eiwa-1)))) ;; (w3m-view-previous-page))) @@ -725,78 +725,78 @@ w3m ;; (save-match-data ;; (let (temp temp1 temp2 temp3 tail v) ;; (while (re-search-forward -;; "\\[clear\\] [a-z]+\\.\\(, [a-z]+\\.\\)*\\([^ a-zA-Z][^]+\\)" +;; "\\[clear\\] [a-z]+\\.\\(, [a-z]+\\.\\)* \\([^ a-zA-Z][^.]+\\)." ;; nil t nil) ;; (setq temp (match-string-no-properties 2)) ;; (setq temp (skk-w3m-filter-string -;; ;; e.x. `ʤʤĤ˹', `(on, in)', `ڷбġ' -;; temp '("\n" "[0-9]+: +" "[ ]+" "[-]+" "([, a-z]+)" -;; "Ĥ" "[^ڡ]+" "()"))) +;; ;; e.x. `捺染(なつせん)工', `(on, in)', `【経営】' +;; temp '("\n" "[0-9]+: +" "[  ]+" "([ぁ-ん]+)" "([, a-z]+)" +;; "…の" "【[^【】]+】" "(強意)"))) ;; (while (string-match -;; ;; ((...)) ϰ̣ɽ魯褦 -;; ;; e.x. 󥸥((κư֤ɽ뵡ǽ)) -;; ;; 򤢤ƥե륿󥰤ʤǽϤ롣 -;; "\\([^]+\\)\\(\\|((\\)\\([^]+\\)\\(\\|))\\)\\([^]+\\)*" +;; ;; ((...)) は意味を表わすようだ。 +;; ;; e.x. インジケータ ((機器の作動状態を表示する機能)) +;; ;; 括弧内をあえてフィルタリングしないで出力する。 +;; "\\([^,;]+\\)\\([\\|((\\)\\([^,;]+\\)\\(]\\|))\\)\\([^,;]+\\)*" ;; temp) ;; (setq temp (concat (substring temp 0 (match-beginning 0)) ;; (match-string-no-properties 1 temp) ;; (match-string-no-properties 5 temp) -;; "" +;; "," ;; (match-string-no-properties 3 temp) ;; (match-string-no-properties 5 temp) ;; (substring temp (match-end 0))))) -;; ;; ǡʤθ ǡǤθ -;; ;; ƱΡʿ͡ˢ ƱΡƱο͡Ʊλ -;; (while (string-match "\\([^]+\\)\\([^]+\\)\\([^]+\\)*" temp) +;; ;; 当惑(の原因) → 当惑,当惑の原因 +;; ;; 同時代の(人,雑誌)→ 同時代の,同時代の人,同時代の雑誌 +;; (while (string-match "\\([^,;]+\\)(\\([^;]+\\))\\([^,;]+\\)*" temp) ;; (setq temp1 (match-string-no-properties 1 temp) ;; temp2 (match-string-no-properties 2 temp) ;; temp3 (match-string-no-properties 3 temp) ;; tail (substring temp (match-end 0))) ;; (setq temp (concat (substring temp 0 (match-beginning 0)) -;; temp1 "" +;; temp1 "," ;; (mapconcat 'identity ;; (mapcar ;; (function (lambda (e) (concat temp1 e temp3))) -;; (split-string temp2 "")) -;; "") +;; (split-string temp2 ",")) +;; ",") ;; tail))) -;; ;; ʶꤵ ʶꤵ롤ʶꤵ -;; (while (string-match "\\([^]+\\)\\([^]+\\)" temp) +;; ;; (問題を)紛糾させる → 紛糾させる,問題を紛糾させる +;; (while (string-match "(\\([^;]+\\))\\([^,;]+\\)" temp) ;; (setq temp1 (match-string-no-properties 1 temp) ;; temp2 (match-string-no-properties 2 temp) ;; tail (substring temp (match-end 0))) ;; (setq temp (concat (substring temp 0 (match-beginning 0)) -;; temp2 "" +;; temp2 "," ;; (mapconcat 'identity ;; (mapcar ;; (function (lambda (e) (concat e temp2))) -;; (split-string temp1 "")) -;; "") +;; (split-string temp1 ",")) +;; ",") ;; tail))) -;; (setq v (nconc v (split-string temp "[]"))) +;; (setq v (nconc v (split-string temp "[,;]"))) ;; ;; skip to next candidate. -;; (or (re-search-forward "\\[clear\\] +" nil t nil) +;; (or (re-search-forward "\\[clear\\] ●+" nil t nil) ;; (goto-char (point-max)))) ;; v))) (defun skk-w3m-get-candidates-from-goo-daily-shingo (key) ;; not yet. - ;; 15:SPAϤΥǥ꡼켭ŵθ + ;; 15:■[SPA]のデイリー新語辞典からの検索結果 ;; 16:* ;; 17: ;; 18:SPA ;; 19: - ;; 20: speciality store retailer of private label apparel - ;; 21: ҥ֥ɤΰʤľŹΤȡޤΤ褦ʻȷ֡ʤδ - ;; 22: 衦ȯ¤ή̡˻ޤǤ礷Ƽ갷ܵҤΥˡ˸Ψ - ;; 23: Ūб롣 - ;; 24: ץ饤١-֥ - ;; 25: ȼ֥ɰŹȼԤάꥫΰŹˤ¤줬 - ;; 26: + ;; 20: [speciality store retailer of private label apparel] + ;; 21: 自社ブランドの衣料品を売る直営店のこと。また,そのような事業形態。衣料品の企 + ;; 22: 画・開発から製造・流通・販売に至るまでを一括して取り扱い,顧客のニーズに効率 + ;; 23: 的に対応する。 + ;; 24: →プライベート-ブランド + ;; 25: 〔独自ブランド衣料の専門店販売業者の略。アメリカの衣料小売店による造語が起源 + ;; 26: 〕 ;; 27: ;; 28: ;; 29:* - ;; 30:SPAϤΥǥ꡼켭ŵθ + ;; 30:■[SPA]のデイリー新語辞典からの検索結果 ) (defun skk-w3m-get-candidates-from-quote-yahoo (key) @@ -823,9 +823,9 @@ w3m ;;;###autoload (defun skk-w3m-query-quote-yahoo - ;; $# /(skk-w3m-query-quote-yahoo "USD" "JPY" 'postfix "")/(skk-w3m-query-quote-yahoo "USD" "DEM" 'prefix "DM")/ - ;; sfr# /(skk-w3m-query-quote-yahoo "CHF" "JPY" 'postfix "")/ - ;; dm# /(skk-w3m-query-quote-yahoo "DEM" "JPY" 'postfix "")/ + ;; $# /(skk-w3m-query-quote-yahoo "USD" "JPY" 'postfix "円")/(skk-w3m-query-quote-yahoo "USD" "DEM" 'prefix "DM")/ + ;; sfr# /(skk-w3m-query-quote-yahoo "CHF" "JPY" 'postfix "円")/ + ;; dm# /(skk-w3m-query-quote-yahoo "DEM" "JPY" 'postfix "円")/ (currency-from currency-to &optional position convert-currency-to) (let (v) (setq skk-w3m-currency-from currency-from diff --git a/maint/ptexinfmt.el b/maint/ptexinfmt.el index 54722fdb..b19b396f 100644 --- a/maint/ptexinfmt.el +++ b/maint/ptexinfmt.el @@ -163,7 +163,7 @@ DOCSTRING will be printed if ASSERTION is nil and "`texinfo-multitable-widths' unsupport wide-char." (if (fboundp 'texinfo-multitable-widths) (with-temp-buffer - (let ((str "$BI}9-J8;z(B")) + (let ((str "幅広文字")) (texinfo-mode) (insert (format " {%s}\n" str)) (goto-char (point-min)) @@ -228,7 +228,7 @@ DOCSTRING will be printed if ASSERTION is nil and (texinfo-parse-arg-discard) (insert " ")) - + ;;; Directory File ;; @direcategory (put 'dircategory 'texinfo-format 'texinfo-format-dircategory) @@ -331,7 +331,7 @@ DOCSTRING will be printed if ASSERTION is nil and (progn (re-search-forward "@end ifdocbook[ \t]*\n") (point)))) - + ;;; Marking ;; @indicateurl, @url, @env, @command, (put 'env 'texinfo-format 'texinfo-format-code) @@ -400,7 +400,7 @@ For example, @verb\{|@|\} results in @ and (error "Not found: @verb end brace")) (delete-char 1)) - + ;;; @LaTeX, @registeredsymbol{} (put 'LaTeX 'texinfo-format 'texinfo-format-LaTeX) (ptexinfmt-defun-if-void texinfo-format-LaTeX () @@ -597,7 +597,7 @@ For example, @verb\{|@|\} results in @ and (ptexinfmt-defun-if-void texinfo-format-\/ () (texinfo-discard-command)) - + ;;; Cross References ;; @ref, @xref (put 'ref 'texinfo-format 'texinfo-format-xref) @@ -647,7 +647,7 @@ otherwise, insert URL-TITLE followed by URL in parentheses." (put 'anchor 'texinfo-format 'texinfo-discard-command-and-arg)) - + ;;; New command definition ;; @alias NEW=EXISTING (put 'alias 'texinfo-format 'texinfo-alias) @@ -666,7 +666,7 @@ otherwise, insert URL-TITLE followed by URL in parentheses." texinfo-alias-list)) (texinfo-discard-command)))) - + ;;; Indent ;; @exampleindent INDENT (makeinfo 4.0 or later) @@ -677,7 +677,7 @@ otherwise, insert URL-TITLE followed by URL in parentheses." ;; WORD: none, insert - + ;;; Special ;; @image{FILENAME [, WIDTH] [, HEIGHT]} (put 'image 'texinfo-format 'texinfo-format-image) @@ -704,7 +704,7 @@ otherwise, insert URL-TITLE followed by URL in parentheses." (setq texinfo-command-end (point)) (delete-region texinfo-command-start texinfo-command-end)) - + ;;; @multitable ... @end multitable (ptexinfmt-defvar-if-void texinfo-extra-inter-column-width 0 "*Number of extra spaces between entries (columns) in @multitable.") @@ -942,7 +942,7 @@ This command is executed when texinfmt sees @item inside @multitable." (kill-buffer texinfo-multitable-buffer-name) (setq fill-column existing-fill-column))) - + (ptexinfmt-defun-if-broken texinfo-format-printindex () (let ((indexelts (symbol-value (cdr (assoc (texinfo-parse-arg-discard) diff --git a/nicola/ChangeLog.1 b/nicola/ChangeLog.1 index 3e5f9044..dd6c780f 100644 --- a/nicola/ChangeLog.1 +++ b/nicola/ChangeLog.1 @@ -5,45 +5,45 @@ Beta version based on SKK 8.6 version 0.39 (Dec., 1999) - Makefile $B$N4V0c$$$rD{@5!#G[Ns$N4V0c$$$rD{@5!#(B($B!X!Y$J$I(B) + Makefile の間違いを訂正。配列の間違いを訂正。(『』など) version 0.38 (Dec., 1999) - $B8E$/$J$C$F!"ITMW$K$J$C$?%U%!%$%k$r>C$7$?!#%I%-%e%a%s%H$N2~D{!#(B + 古くなって、不要になったファイルを消した。ドキュメントの改訂。 version 0.37 (Dec., 1999) - Mule for Windows $B%f!<%6!<$N$?$a$K%I%-%e%a%s%H$r0lIt2~D{!#(B + Mule for Windows ユーザーのためにドキュメントを一部改訂。 version 0.36 (Nov. 28, 1999) - $B?F;X%7%U%H%-!<$N@_Dj$K$h$C$F$O$&$^$/;H$($J$$LdBj$r=$@5!#(B + 親指シフトキーの設定によってはうまく使えない問題を修正。 - omelet $B$,(B nicola.el $B$r;H$o$J$$$h$&$K$7$?$3$H$r/$7JQ$($?!#(B - $B$9$Y$F(B skk-nic-insert $B$K%P%$%s%I$9$l$P$$$$!#(B + NICOLA のシフトキーのキーバインドを少し変えた。 + すべて skk-nic-insert にバインドすればいい。 - $B:8%7%U%H$rG$0U$N%-!<$K3d$j$"$F$k$3$H$,$G$-$k$h$&$K$7$?!#(B - $B$+$J%b!<%I$N$_!"(B :" $B$J$I$K%P%C%/%9%Z!<%9$r3d$jEv$F$k$3$H$,$G$-$k$h$&(B - $B$K$7$?!#(B + 左シフトを任意のキーに割りあてることができるようにした。 + かなモードのみ、 :" などにバックスペースを割り当てることができるよう + にした。 Alpha version (0.1-0.2) based on SKK 8.6 - 9.2 -$B4pK\E*$J%3!<%I$N:n@.(B - ($BJQ49!"3NDj!"%+%?%+%JJQ49!"%b!<%I@Z$j49$(!"FI$_$NJd40!"%3!<%IF~NO(B) -$BF1;~BG80$N%"%k%4%j%:%`$N8&5f(B -$B:GE,$J%-!<%P%$%s%I$N8&5f(B -SKK-ML $B$G$N;n838x3+(B +基本的なコードの作成 + (変換、確定、カタカナ変換、モード切り換え、読みの補完、コード入力) +同時打鍵のアルゴリズムの研究 +最適なキーバインドの研究 +SKK-ML での試験公開 Aug 31, 1996 Version 0.25 Mar 13, 1996 Version 0.24 diff --git a/nicola/ChangeLog.2 b/nicola/ChangeLog.2 index 3f875e61..9762a0fa 100644 --- a/nicola/ChangeLog.2 +++ b/nicola/ChangeLog.2 @@ -4,98 +4,98 @@ 2000-08-26 Tetsuo Tsukamoto - * skk-nicola.el: $B%$%s%8%1!<%?$NJQ99!#(B - (skk-nicola-insert-kana): Prefix Argument $B$KBP1~!#(B + * skk-nicola.el: インジケータの変更。 + (skk-nicola-insert-kana): Prefix Argument に対応。 2000-08-24 Tetsuo Tsukamoto - * skk-*.el: $B%3!<%I$N@0M}!#(B + * skk-*.el: コードの整理。 2000-08-21 Tetsuo Tsukamoto - * NICOLA-DDSKK-MK: autoloads $B$r@8@.$9$k$h$&$K$7$?!#(B + * NICOLA-DDSKK-MK: autoloads を生成するようにした。 - * skk-kanagaki-menu.el, skk-kanagaki-menu-oe.el: $B%a%K%e!<%5%]!<%H(B - $BDI2C!#(B + * skk-kanagaki-menu.el, skk-kanagaki-menu-oe.el: メニューサポート + 追加。 2000-08-20 Tetsuo Tsukamoto * skk-nicola.el (skk-nicola-set-henkan-point-chars, skk-nicola-toggle-kana-chars, - skk-nicola-prefix-suffix-abbrev-chars): $B$3$l$^$G(B f+j, d+k, g+h $B$K(B - $B7h$aBG$A$5$l$F$$$?5!G=$K$D$$$F!"%-!<3dEv$F$r%+%9%?%^%$%:$G$-$k$h$&(B - $B$K$7$?!#$3$l$G(B ANSI Dvorak $BG[Ns$N%-!<%\!<%I$J$I$K$bG[N8$G$-$k$H;W(B - $B$&!#(B + skk-nicola-prefix-suffix-abbrev-chars): これまで f+j, d+k, g+h に + 決め打ちされていた機能について、キー割当てをカスタマイズできるよう + にした。これで ANSI Dvorak 配列のキーボードなどにも配慮できると思 + う。 - * skk-kanagaki.el (skk-kanagaki-start-henkan-okuriari): $B%*%j%8%J%k(B - $B$r;29M$K$7$F!"%*%j%8%J%k$HF1$87A<0$NJQ49$,$G$-$k$h$&$K$7$?!#$3$l$K(B - $BH<$C$F!"(Bskk-nicola.el $B$G$O(B NICOLA-SKK $B<0$NAw$j2>L>$+(B SKK $B<0$NAw$j(B - $B2>L>$+$r%f!<%6%*%W%7%g%s$GA*$Y$k$h$&$K$7$?!#(B + * skk-kanagaki.el (skk-kanagaki-start-henkan-okuriari): オリジナル + を参考にして、オリジナルと同じ形式の変換ができるようにした。これに + 伴って、skk-nicola.el では NICOLA-SKK 式の送り仮名か SKK 式の送り + 仮名かをユーザオプションで選べるようにした。 2000-08-19 Tetsuo Tsukamoto * (nicola-ddskk-0_1): New branch. - $B$3$l$^$G$N@.2L$O==J,$H$^$G$O8@$($J$$$+$bCN$l$J$$$,!"$R$H$D$NL\I8$K(B - $B$OC#$7$?$H;W$&$N$G!"?7$7$$$7$?!#(B - (skk-insert): $B8=:_$N(B point $B$,(B marker $B$HF1$8$+$h$j>.$5$+$C$?>l9g$O(B - marker $B$r%/%j%"$9$k$h$&$K$7$?!#(B + これまでの成果は十分とまでは言えないかも知れないが、ひとつの目標に + は達したと思うので、新しい実験枝に入ることにした。 + + * skk-nicola.el (skk-nicola-insert): これまでこの関数を 2 度実行し + て shift 入力を実現していたが、`next-command-event' を利用すること + により 1 度で済むように変更した。 + (skk-nicola-dispatch-event): New function. `next-command-event' が + 返した結果を解析する。 + (skk-nicola-insert-kana): 「達s」が変換できないバグを直した。 + (skk-insert): 現在の point が marker と同じかより小さかった場合は + marker をクリアするようにした。 2000-08-18 Tetsuo Tsukamoto - * skk-nicola.el: $BAw$j$"$jJQ49$N$7$?!#(B - $B:8?F;X(B + $B1&?F;X(B $B$G(B latin $B%b!<%I(B $B"N(B $B$+$J%b!<%I(B $B$N%H%0%k$,$G$-$k$h$&(B - $B$K$7$?!#(B + * skk-nicola.el: 送りあり変換の実装を見直した。 + 左親指 + 右親指 で latin モード ⇔ かなモード のトグルができるよう + にした。 - * skk-kanagaki.el (skk-kanagaki-start-henkan-okuriari): $B%H%j%C%-!<(B - $B$J$N$r=q$-D>$7$?!#$3$l$GL5MQ$J(B advice $B$,$R$H$D8:$C$?!#$G$b$^$@(B - skk-nicola.el $B$NCf$K$$$d$J(B advice $B$,$$$/$D$+$"$k!#(B - {$B8e5-(B} $B!D(B $B$*$*$`$M2r7h$9$k$b!"(BNemacs $B$NHs8_49@-$O5[<}$G$-$:!#(B - {$B8e!95-(B} $B!D(B Mule 1.1 $B$b%@%a$@$C$?(B... - {$B8e!9!95-(B} $B!D(B Daredevil $B$N(B `skk-okurigana-prefix' $B$r=$@5$7$?!#$3$l(B - $B$G(B Nemacs $B$G$b(B `skk-kana-rom-vector' $B$,;H$($k$h$&$K$J$C$?!#(B + * skk-kanagaki.el (skk-kanagaki-start-henkan-okuriari): トリッキー + なのを書き直した。これで無用な advice がひとつ減った。でもまだ + skk-nicola.el の中にいやな advice がいくつかある。 + {後記} … おおむね解決するも、Nemacs の非互換性は吸収できず。 + {後々記} … Mule 1.1 もダメだった... + {後々々記} … Daredevil の `skk-okurigana-prefix' を修正した。これ + で Nemacs でも `skk-kana-rom-vector' が使えるようになった。 2000-08-17 Tetsuo Tsukamoto - * skk-nicola.el: NICOLA-SKK $B$HF1$8$h$&$JJQ49$r$9$k$?$a$N%3!<%I$r=q(B - $B$-;O$a$?!#$^$@%P%0$,B?$$$,!"$H$j$"$($:F0$/$h$&$@!#(B + * skk-nicola.el: NICOLA-SKK と同じような変換をするためのコードを書 + き始めた。まだバグが多いが、とりあえず動くようだ。 2000-08-16 Tetsuo Tsukamoto - * skk-nicola.el: $B$h$&$d$C$H(B isearch $B$N5!G=$,?M$K8+$;$i$l$k%l%Y%k$K(B - $B$J$C$?!"$h$&$J5$$,$9$k!#(B + * skk-nicola.el: ようやっと isearch の機能が人に見せられるレベルに + なった、ような気がする。 2000-08-15 Tetsuo Tsukamoto * Makefile, NICOLA-DDSKK-CFG, NICOLA-DDSKK-ELS, NICOLA-DDSKK-MK: - $BC1BN$G$N%$%s%9%H!<%k$KBP1~$7$F$_$?!#(B + 単体でのインストールに対応してみた。 - * skk-nicola.el: f + g $B$G$NAw$j$"$jJQ49$K$H$j$"$($:BP1~!#(B + * skk-nicola.el: f + g での送りあり変換にとりあえず対応。 2000-08-14 Tetsuo Tsukamoto - * skk-*.el: $B%3!<%I$N@0M}!#(B - $B$3$3$K=q$/$3$H$G!"(BNICOLA $B$JF~NO$NN}=,$r$9$k!#(B + * skk-*.el: コードの整理。 + ここに書くことで、NICOLA な入力の練習をする。 - * skk-nicola.el (skk-nicola-self-insert-{r,l}shift): Isearch $B$NET(B - $B9g$r9M$(!"(Bread-only $B;~$N%(%i!<$r$d$a$k!#(B + * skk-nicola.el (skk-nicola-self-insert-{r,l}shift): Isearch の都 + 合を考え、read-only 時のエラーをやめる。 - * skk-oasys.el: $B%-!$r(B - NICOLA-DDSKK $B$H$7$F$_$k!#(B + * skk-*.el: いつのまにか NICOLA 一色になっていた。Product 名を + NICOLA-DDSKK としてみる。 2000-08-13 Tetsuo Tsukamoto - * skk-*.el: $B%U%!%$%k9=@.$rJQ99!#(B1 $B%-!]G[Ns(B 1 $B%U%!%$%kJ}<0$G%b%8%e!<(B - $B%k2=$rB%?J!#(B + * skk-*.el: ファイル構成を変更。1 キ-配列 1 ファイル方式でモジュー + ル化を促進。 2000-08-09 Tetsuo Tsukamoto - * skk-*.el: NICOLA-SKK $B$N5!G=$rF3F~!#(B + * skk-*.el: NICOLA-SKK の機能を導入。 diff --git a/nicola/NICOLA-DDSKK-CFG b/nicola/NICOLA-DDSKK-CFG index c3da1544..87c380dd 100644 --- a/nicola/NICOLA-DDSKK-CFG +++ b/nicola/NICOLA-DDSKK-CFG @@ -80,7 +80,7 @@ ;; Please specify prefix for ``NICOLA-DDSKK'' [optional] (setq NICOLA-DDSKK_PREFIX "nicola-ddskk") - + ;;; @ optional settings ;;; diff --git a/nicola/skk-kanagaki-menu.el b/nicola/skk-kanagaki-menu.el index b6885b3f..92459d14 100644 --- a/nicola/skk-kanagaki-menu.el +++ b/nicola/skk-kanagaki-menu.el @@ -1,4 +1,4 @@ -;;; skk-kanagaki-menu.el --- NICOLA-DDSKK $B$N%a%K%e!<%5%]!<%H(B -*- coding: iso-2022-jp -*- +;;; skk-kanagaki-menu.el --- NICOLA-DDSKK のメニューサポート -*- coding: iso-2022-jp -*- ;; Copyright (C) 2000 Tetsuo Tsukamoto @@ -22,7 +22,7 @@ ;;; Commentary: -;; NICOLA-DDSKK $B$N%a%K%e!<$r(B SKK $BI8=`$N%a%K%e!<$KDI2C$7$^$9!#(B +;; NICOLA-DDSKK のメニューを SKK 標準のメニューに追加します。 ;;; Code: @@ -77,29 +77,29 @@ Convert to Hankaku Katakana or Toggle Katakana <=> Hankaku Katakana Mode" (setq skk-emacs-menu-resource-ja (append skk-emacs-menu-resource-ja - '(("Set Henkan point" . "$BJQ493+;OE@$r%;%C%H(B") - ("Input Prefix or Suffix" . "$B@\F,<-!&@\Hx<-$rF~NO(B") - ("Start Conversion with Okuri" . "$BAw$j$"$jJQ49$r3+;O(B") - ("Input a Character by Code" . "$B%3!<%IF~NO(B") - ("Enter SKK Abbrev Mode" . "Abbrev $B%b!<%I$KF~$k(B") + '(("Set Henkan point" . "変換開始点をセット") + ("Input Prefix or Suffix" . "接頭辞・接尾辞を入力") + ("Start Conversion with Okuri" . "送りあり変換を開始") + ("Input a Character by Code" . "コード入力") + ("Enter SKK Abbrev Mode" . "Abbrev モードに入る") ("\ Convert Hiragana <=> Katakana or Toggle Hiragana <=> Katakana Mode" - . "$B$+$J(B <=> $B%+%J(B $BJQ49(B $B$^$?$O(B $B$+$J%b!<%I(B <=> $B%+%J%b!<%I(B $B@Z49$((B") - ("Enter SKK JIS X 0208 Latin Mode" . "$BA41Q%b!<%I$KF~$k(B") + . "かな <=> カナ 変換 または かなモード <=> カナモード 切換え") + ("Enter SKK JIS X 0208 Latin Mode" . "全英モードに入る") ("\ Convert to Hankaku Katakana or Toggle Katakana <=> Hankaku Katakana Mode" . "\ -$BH>3Q%+%J$KJQ49(B $B$^$?$O(B $BA43Q%+%J%b!<%I(B <=> $BH>3Q%+%J%b!<%I(B $B@Z49$((B") - ("Enter SKK Latin Mode" . "$B%"%9%-!<%b!<%I$KF~$k(B") - ("Enter SKK Japanese Mode" . "$B$+$J%b!<%I$KF~$k(B") - ("Toggle Roma <=> Kana" . "$B$+$JF~NOJ}<0(B $B%m!<%^(B <=> $B$+$J(B $B@Z49$((B") - ("Show Key Bindings" . "$B$+$JF~NOFH<+$N%-! 半角カナモード 切換え") + ("Enter SKK Latin Mode" . "アスキーモードに入る") + ("Enter SKK Japanese Mode" . "かなモードに入る") + ("Toggle Roma <=> Kana" . "かな入力方式 ローマ <=> かな 切換え") + ("Show Key Bindings" . "かな入力独自のキー定義を表示") ("Show the Current Keymap based on NICOLA" - . "NICOLA $B%-!L>F~NO%5%]!<%H$N$?$a$NF;6qH"(B -*- coding: iso-2022-jp -*- +;;; skk-kanagaki-util.el --- SKK の仮名入力サポートのための道具箱 -*- coding: iso-2022-jp -*- ;; Copyright (C) 2000, 2001, 2002, 2003, 2004 ;; Tetsuo Tsukamoto @@ -23,8 +23,8 @@ ;;; Commentary: -;; macro$B!"(Binline function $B$O$3$3$KCV$-$^$9!#I,MW$J>l9g$O3F%b%8%e!<%k$NCf$+$i(B -;; $B$3$N%W%m%0%i%`$r%m!<%I$7$^$9!#(B +;; macro、inline function はここに置きます。必要な場合は各モジュールの中から +;; このプログラムをロードします。 ;;; Code: @@ -46,18 +46,18 @@ ;; Variables. (defconst skk-kanagaki-dakuten-alist - '(("$B$+(B" "$B$,(B") ("$B$-(B" "$B$.(B") ("$B$/(B" "$B$0(B") ("$B$1(B" "$B$2(B") ("$B$3(B" "$B$4(B") - ("$B$5(B" "$B$6(B") ("$B$7(B" "$B$8(B") ("$B$9(B" "$B$:(B") ("$B$;(B" "$B$<(B") ("$B$=(B" "$B$>(B") - ("$B$?(B" "$B$@(B") ("$B$A(B" "$B$B(B") ("$B$D(B" "$B$E(B") ("$B$F(B" "$B$G(B") ("$B$H(B" "$B$I(B") - ("$B$O(B" "$B$P(B" "$B$Q(B") ("$B$R(B" "$B$S(B" "$B$T(B") ("$B$U(B" "$B$V(B" "$B$W(B") ("$B$X(B" "$B$Y(B" "$B$Z(B") - ("$B$[(B" "$B$\(B" "$B$](B") - ("$B%&(B" "$B%t(B") - ("$B%+(B" "$B%,(B") ("$B%-(B" "$B%.(B") ("$B%/(B" "$B%0(B") ("$B%1(B" "$B%2(B") ("$B%3(B" "$B%4(B") - ("$B%5(B" "$B%6(B") ("$B%7(B" "$B%8(B") ("$B%9(B" "$B%:(B") ("$B%;(B" "$B%<(B") ("$B%=(B" "$B%>(B") - ("$B%?(B" "$B%@(B") ("$B%A(B" "$B%B(B") ("$B%D(B" "$B%E(B") ("$B%F(B" "$B%G(B") ("$B%H(B" "$B%I(B") - ("$B%O(B" "$B%P(B" "$B%Q(B") ("$B%R(B" "$B%S(B" "$B%T(B") ("$B%U(B" "$B%V(B" "$B%W(B") ("$B%X(B" "$B%Y(B" "$B%Z(B") - ("$B%[(B" "$B%\(B" "$B%](B")) - "$BByE@$HH>ByE@$rF~NO$9$k$?$a$N%k!<%k!#(B") + '(("か" "が") ("き" "ぎ") ("く" "ぐ") ("け" "げ") ("こ" "ご") + ("さ" "ざ") ("し" "じ") ("す" "ず") ("せ" "ぜ") ("そ" "ぞ") + ("た" "だ") ("ち" "ぢ") ("つ" "づ") ("て" "で") ("と" "ど") + ("は" "ば" "ぱ") ("ひ" "び" "ぴ") ("ふ" "ぶ" "ぷ") ("へ" "べ" "ぺ") + ("ほ" "ぼ" "ぽ") + ("ウ" "ヴ") + ("カ" "ガ") ("キ" "ギ") ("ク" "グ") ("ケ" "ゲ") ("コ" "ゴ") + ("サ" "ザ") ("シ" "ジ") ("ス" "ズ") ("セ" "ゼ") ("ソ" "ゾ") + ("タ" "ダ") ("チ" "ヂ") ("ツ" "ヅ") ("テ" "デ") ("ト" "ド") + ("ハ" "バ" "パ") ("ヒ" "ビ" "ピ") ("フ" "ブ" "プ") ("ヘ" "ベ" "ペ") + ("ホ" "ボ" "ポ")) + "濁点と半濁点を入力するためのルール。") ;;;###autoload (defmacro skk-kanagaki-help-1 (bufname title list) @@ -73,11 +73,11 @@ (cond ((and (symbolp (car cons)) (symbol-value (car cons))) - (format "%s $B!D(B %s\n" + (format "%s … %s\n" (key-description (symbol-value (car cons))) (cdr cons))) (t - (format "%s $B!D(B %s\n" (car cons) (cdr cons))))) + (format "%s … %s\n" (car cons) (cdr cons))))) ;; (delq nil ,list) ""))) ;; @@ -101,7 +101,7 @@ ;;;###autoload (defun skk-kanagaki-toggle-rom-kana (&optional arg) - "$B%m!<%^;zF~NO(B $B"N(B $B2>L>F~NO(B $B$r@Z$jBX$($k!#(B" + "ローマ字入力 ⇔ 仮名入力 を切り替える。" (interactive) ;; (when (featurep 'skk-nicola) @@ -113,12 +113,12 @@ (cl-case skk-kanagaki-state (kana 'rom) (rom 'kana) - ;; $B$H$j$"$($:!#(B + ;; とりあえず。 (t 'kana)))) (skk-kanagaki-adjust-rule-tree) ;; (when (featurep 'skk-nicola) - ;; $B%b!<%I9T$NI=<($ND4@a!#(B + ;; モード行の表示の調節。 (cl-case skk-kanagaki-state (kana (setq skk-hiragana-mode-string skk-nicola-hiragana-mode-string @@ -139,7 +139,7 @@ ;;;###autoload (defun skk-kanagaki-dakuten (&optional arg handakuten) - "$BD>A0$NJ8;z$r8+$F2DG=$J$iByE@$rIU2C$7!"$5$b$J$1$l$P(B \"$B!+(B\" $B$rF~NO$9$k!#(B" + "直前の文字を見て可能なら濁点を付加し、さもなければ \"゛\" を入力する。" (interactive "*p") (let ((list skk-kanagaki-dakuten-alist) (pt1 (point)) @@ -201,8 +201,8 @@ (skk-insert-str char2)))) (t (skk-insert-str (if handakuten - "$B!,(B" - "$B!+(B")))))) + "゜" + "゛")))))) (defadvice isearch-repeat (around skk-kanagaki-workaround activate) (cond ((get 'isearch-barrier 'skk-kanagaki) @@ -214,20 +214,20 @@ ;;;###autoload (defun skk-kanagaki-handakuten (&optional arg) - "$BD>A0$NJ8;z$r8+$F2DG=$J$iH>ByE@$rIU2C$7!"$5$b$J$1$l$P(B \"$B!,(B\" $B$rF~NO$9$k!#(B" + "直前の文字を見て可能なら半濁点を付加し、さもなければ \"゜\" を入力する。" (interactive "*p") (skk-kanagaki-dakuten arg t)) ;;;###autoload (defun skk-kanagaki-bs (arg) - ;; OASYS $B$K$*$1$k(B BS $B%-!<$N5!G=$NBe$o$j!#$I$N$h$&$J5sF0$r$5$;$k$Y$-$+$^$@7h$^(B - ;; $B$C$F$$$J$$!#8=:_$N$H$3$m(B + ;; OASYS における BS キーの機能の代わり。どのような挙動をさせるべきかまだ決ま + ;; っていない。現在のところ ;; - ;; o $B"'%b!<%I$G$O(B `skk-kanagaki-esc' $B$HF1$85sF0(B - ;; o $B"&%b!<%I$G$O(B `skk-delete-backward-char' $B$HF1$85sF0(B - ;; o $B"#%b!<%I$G$O(B `delete-backward-char' $B$HF1$85sF0(B + ;; o ▼モードでは `skk-kanagaki-esc' と同じ挙動 + ;; o ▽モードでは `skk-delete-backward-char' と同じ挙動 + ;; o ■モードでは `delete-backward-char' と同じ挙動 ;; - ;; $B$H$$$&$U$&$K9M$($F$$$k!#(B + ;; というふうに考えている。 (interactive "*p") ;; (cond @@ -255,15 +255,15 @@ ;;;###autoload (defun skk-kanagaki-esc (&optional arg) - ;; OASYS $B$K$*$1$kC$75!G=$NBe$o$j!#(B $B$H$j$"$($:(B keyboard-quit $B$N>l9g$HF1MM(B - ;; $B$NF0:n$r$9$k$h$&$K$K$7$F$*$/!#(BOAK $B&BHG$@$H(B + ;; OASYS における取り消し機能の代わり。 とりあえず keyboard-quit の場合と同様 + ;; の動作をするようににしておく。OAK β版だと ;; - ;; o 1 $B2sL\$NC$7$G!"JQ49A0$N>uBV$KLa$7$?>e$GJQ493+;OE@$K%]%$%s%H$r0\F0(B - ;; o 2 $B2sL\$NC$7$GJQ49BP>]$NJ8;zNsA4BN$r>C5n(B + ;; o 1 回目の取り消しで、変換前の状態に戻した上で変換開始点にポイントを移動 + ;; o 2 回目の取り消しで変換対象の文字列全体を消去 ;; - ;; $B$9$k$h$&$K$J$C$F$$$k$,!"(BSKK $B$K$*$1$kJQ49BP>]$NJ8;zNs$O(B $B"&(B $B$H%]%$%s%H$N4V$N(B - ;; $BJ8;zNs$G$"$j!"%]%$%s%H$r0\F0$9$k$HJQ49BP>]$,JQ$o$C$F$7$^$&!#$=$N$?$a!"%]%$(B - ;; $B%s%H$O0\F0$7$J$$$3$H$H$9$k!#(B + ;; するようになっているが、SKK における変換対象の文字列は ▽ とポイントの間の + ;; 文字列であり、ポイントを移動すると変換対象が変わってしまう。そのため、ポイ + ;; ントは移動しないこととする。 (interactive "*P") (cond ((skk-in-minibuffer-p) diff --git a/nicola/skk-kanagaki.el b/nicola/skk-kanagaki.el index a4b7cbcc..ced4ded6 100644 --- a/nicola/skk-kanagaki.el +++ b/nicola/skk-kanagaki.el @@ -1,4 +1,4 @@ -;;; skk-kanagaki.el --- SKK $B$N2>L>F~NO%5%]!<%H(B -*- coding: iso-2022-jp -*- +;;; skk-kanagaki.el --- SKK の仮名入力サポート -*- coding: iso-2022-jp -*- ;; Copyright (C) 2000 Tetsuo Tsukamoto @@ -22,116 +22,116 @@ ;;; Commentary: -;; {$B$F$C$H$jAa$$;H$$$+$?(B ($B;CDj%P!<%8%g%s(B)} +;; {てっとり早い使いかた (暫定バージョン)} -;; ~/.skk $B$K(B +;; ~/.skk に ;; (setq skk-use-kana-keyboard t) ;; (setq skk-kanagaki-keyboard-type '106-jis) -;; $B$H=q$/!#(B +;; と書く。 -;; {$B@bL@(B} +;; {説明} -;; $B$3$N%W%m%0%i%`$O(B SKK $B$K$*$$$F%m!<%^;zF~NO$J$i$L2>L>F~NO$r%5%]!<%H$9$k$3$H(B -;; $B$rL\E*$H$7$^$9!#(B NICOLA $B$d5l(B JIS $BG[Ns$KBP1~$7$^$9!#(B +;; このプログラムは SKK においてローマ字入力ならぬ仮名入力をサポートすること +;; を目的とします。 NICOLA や旧 JIS 配列に対応します。 -;; $B$J$*!"0J2<$O!V?F;X%7%U%HF~NO!W0J30$NNc$G$9!#?F;X%7%U%HF~NO$NNc$K$D$$$F$O!"(B -;; README.NICOLA.md $B$H(B skk-nicola.el $B$r8fMw$/$@$5$$!#(B +;; なお、以下は「親指シフト入力」以外の例です。親指シフト入力の例については、 +;; README.NICOLA.md と skk-nicola.el を御覧ください。 -;; -*- $BLdBjE@(B -*- +;; -*- 問題点 -*- -;; 1. Emacs Lisp $B$N%l%Y%k$G$NLdBj(B +;; 1. Emacs Lisp のレベルでの問題 -;; $B2>L>F~NO$K$*$$$F$O(B SHIFT $B%-!<$rMxMQ$7$FF~NO$5$l$k2>L>$b$"$k$?$a!"(B SKK $BK\Mh(B -;; $B$N(BSHIFT $B$N;H$$J}$,$G$-$^$;$s!#$=$NB>$$$m$$$m(B SKK $B$i$7$/$J$$$N$G$9$,!"(B $B$H$j(B -;; $B$"$($:!"(B +;; 仮名入力においては SHIFT キーを利用して入力される仮名もあるため、 SKK 本来 +;; のSHIFT の使い方ができません。その他いろいろ SKK らしくないのですが、 とり +;; あえず、 -;; o $BJQ493+;OE@$N;XDj$O2>L>F~NO$H$OJL$K9T$&!#(B -;; o $BJQ49$N3+;O$ODL>oDL$j!"(B [SPC] $B$G;X<($9$k!#(B $B$?$@$7!"Aw$j$"$j$NJQ49$N$H$-(B -;; $B$O(B $BAw$j3+;OE@$r;XDj$9$k$?$a$NFCl9g$,$"(B -;; $B$j$^$9!#Nc$($PF|K\8l(B 106 $B%-!<%\!<%I;HMQ;~!"(BXFree86 $B>e$G$O(B +;; 第 2 の問題点として、 キー配列の設定により刻印通りの入力ができない場合があ +;; ります。例えば日本語 106 キーボード使用時、XFree86 上では -;; o $B!V!o!W%-!<(B ($B2>A[%-!<%3!<%I(B 133) -;; o $B!V!@!W%-!<(B ($B2>A[%-!<%3!<%I(B 123) +;; o 「¥」キー (仮想キーコード 133) +;; o 「\」キー (仮想キーコード 123) -;; $B$O$$$:$l$b(B backslash $B$H$7$F07$o$l$^$9!#$7$+$72>L>F~NO$K$*$$$FA0$^$l$^$9!#$3$N>l9g$NBP1~:v$H$7$F!"Nc$($P(B +;; はいずれも backslash として扱われます。しかし仮名入力において前者は 「ー」、 +;; 後者は「ろ」 となることが望まれます。この場合の対応策として、例えば ;; % cat >> ~/.Xmodmap ;; keycode 123 = underscore underscore ;; % xmodmap ~/.Xmodmap -;; $B$J$I$H$7$F$*$$$F$+$i!"(B~/.skk $B$K(B +;; などとしておいてから、~/.skk に ;; (setq skk-kanagaki-rule-list -;; '(("\\" nil "$B!<(B"))) +;; '(("\\" nil "ー"))) -;; $B$H=q$/$3$H$J$I$,9M$($i$l$^$9!#(B -;; ($BF1MM$N%"%$%G%"$O(B Canna $B$G2>L>F~NO$9$k:]$K$bM-8z$G$"$k$h$&$G$9!#(B) +;; と書くことなどが考えられます。 +;; (同様のアイデアは Canna で仮名入力する際にも有効であるようです。) -;; -*- $B;H$$J}(B -*- +;; -*- 使い方 -*- -;; 1. $BJQ493+;OE@$N;XDj(B +;; 1. 変換開始点の指定 -;; $BDL>o$N(B SKK $B$K$*$$$F$O!"(B SHIFT $B$r2!$7$J$,$iF~NO$9$k$3$H$GJQ493+;O0LCV$rL@<((B -;; $B$7$F$$$^$7$?$,!"2>L>F~NO$G$O$3$l$,$G$-$^$;$s!#$=$3$G!"JL$NJ}K!$GJQ493+;OE@(B -;; $B$r;XDj$7$J$1$l$P$J$j$^$;$s!#$=$3$G!"!V(Bf $B$H(B j $B$rF1;~$K2!$9!W$H$$$&o$N(B SKK $B$K$*$$$F$O!"(B SHIFT $B$r2!$7$J$,$iF~NO$9$k$3$H$GAw$j2>L>$N0LCV$rL@(B -;; $B<($7$F$$$^$7$?!#2>L>F~NO(B SKK $B$K$*$$$F$O$=$l$O$G$-$^$;$s!#$=$3$G(B +;; 通常の SKK においては、 SHIFT を押しながら入力することで送り仮名の位置を明 +;; 示していました。仮名入力 SKK においてはそれはできません。そこで -;; o [fj] $B$,2!$5$l$?$H$-$K!"(B $BD>A0$N(B 1 $BJ8;z$rAw$j2>L>$H8+Jo$7$FJQ49$r3+;O$9$k!#(B +;; o [fj] が押されたときに、 直前の 1 文字を送り仮名と見倣して変換を開始する。 -;; $B$H$$$&l9g$O(B +;; という手法を使います。 例えば、「達す」と入力したい場合は -;; $B"&$?$C$9(B [fj] $B"M(B $B"'C#$9(B +;; ▽たっす [fj] ⇒ ▼達す -;; $B$N$h$&$K$J$j$^$9!#!VBT$C$F!W$HF~NO$7$?$$>l9g$O(B +;; のようになります。「待って」と入力したい場合は -;; $B"&$^$C(B [fj] $B"M(B $B"'BT$C(B +;; ▽まっ [fj] ⇒ ▼待っ -;; $B$H$7$F$+$i!V$F!W$rF~NO$7$^$9!#(B +;; としてから「て」を入力します。 -;; 3. $B$$$/$D$+$N=EMW$J%-!L>F~NO$G$O$3$l$b;H$($^$;$s!#$=$N$?$a!"$3$l$i$N$&$A=EMW$H;W$o$l$k$b(B -;; $B$N$rJL$N%-!3Q%+%J%b!<%I$^$?$OH>3Q%+%JJQ49(B -;; [f10] $B!D(B latin $B%b!<%I(B -;; [f12] $B!D(B $B%m!<%^;zF~NO(B $B"N(B $B2>L>F~NO(B $B$N@Z$jBX$((B +;; [f2] … 変換開始点の指定 +;; [f3] … 接頭辞または接尾辞変換 +;; [f5] … コード入力 +;; [f6] … abbrev モード +;; [f7] … カナモードまたはカナ変換 +;; [f8] … 全英モード +;; [f9] … 半角カナモードまたは半角カナ変換 +;; [f10] … latin モード +;; [f12] … ローマ字入力 ⇔ 仮名入力 の切り替え ;;; Code: @@ -150,10 +150,10 @@ ;; Variables. (defcustom skk-kanagaki-keyboard-type '106-jis "\ -*$B2>L>F~NO$K;HMQ$9$k%-!<%\!<%I$N(B}-base-rule-list' $B$H$$$&(B -$BJQ?t$rMQ0U$7$J$1$l$P$J$i$J$$!#2?$b@_Dj$7$J$1$l$PF|K\8l(B 106 $B%-!<%\!<%IMQ$N@_Dj(B -$B$rMQ0U$7!"$3$l$r;HMQ$9$k!#(B" +*仮名入力に使用するキーボードの種別。 +値は任意のシンボル。 ただし `skk-kanagaki-{シンボル名}-base-rule-list' という +変数を用意しなければならない。何も設定しなければ日本語 106 キーボード用の設定 +を用意し、これを使用する。" :type '(radio (const 106-jis) (const nicola-jis) (const nicola-us) @@ -168,90 +168,90 @@ :group 'skk-kanagaki) (defcustom skk-kanagaki-set-henkan-point-key [f2] "\ -*$B$3$N%-!<$r2!$9$3$H$GJQ493+;O0LCV$r@_Dj$9$k!#(B -$BJQ493+;O0LCV$N@_Dj$O2>L>$rF~NO$9$kA0$K$*$3$J$C$F$b!"(B $BF~NO$7=*$o$C$?8e$G$*$3$J$C(B -$B$F$b9=$o$J$$!#(B" +*このキーを押すことで変換開始位置を設定する。 +変換開始位置の設定は仮名を入力する前におこなっても、 入力し終わった後でおこなっ +ても構わない。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-abbrev-mode-key [f6] "\ -*$B$3$N%-!<$r2!$9$3$H$G(B abbrev $B%b!<%I$KF~$k!#(B" +*このキーを押すことで abbrev モードに入る。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-katakana-mode-key [f7] "\ -*$B$3$N%-!<$r2!$9$3$H$G%+%J%b!<%I$H$+$J%b!<%I$r@Z$j$+$($k!#(B -$BJQ493+;O0LCV$N@_Dj8e$K2!$9$3$H$GBP>]J8;zNs$r%+%J$KJQ49$9$k$3$H$b$G$-$k!#(B" +*このキーを押すことでカナモードとかなモードを切りかえる。 +変換開始位置の設定後に押すことで対象文字列をカナに変換することもできる。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-latin-jisx0208-mode-key [f8] "\ -*$B$3$N%-!<$r2!$9$3$H$GA43Q1Q?t%b!<%I$KF~$k!#(B" +*このキーを押すことで全角英数モードに入る。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-hankaku-mode-key [f9] "\ -*$B$3$N%-!<$r2!$9$3$H$GH>3Q%+%J%b!<%I$K@Z$j$+$($k!#(B -$BJQ493+;O0LCV$N@_Dj8e$K2!$9$3$H$GBP>]J8;zNs$rH>3Q%+%J$KJQ49$9$k$3$H$b$G$-$k!#(B" +*このキーを押すことで半角カナモードに切りかえる。 +変換開始位置の設定後に押すことで対象文字列を半角カナに変換することもできる。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-latin-mode-key [f10] "\ -*$B$3$N%-!<$r2!$9$3$H$G(B latin $B%b!<%I$KF~$k!#(B" +*このキーを押すことで latin モードに入る。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-toggle-rom-kana-key [f12] "\ -*$B$3$N%-!<$r2!$9$3$H$G(B $B%m!<%^;zF~NO(B $B"N(B $B2>L>F~NO$N@Z$jBX$($,$G$-$k!#(B" +*このキーを押すことで ローマ字入力 ⇔ 仮名入力の切り替えができる。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-code-input-key [f5] "\ -*$B$3$N%-!<$r2!$9$3$H$G%3!<%IF~NO$,$G$-$k!#(B" +*このキーを押すことでコード入力ができる。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-midashi-henkan-key [f3] "\ -*$B$3$N%-!<$r2!$9$3$H$G@\F,<-$^$?$O@\Hx<-JQ49$r$9$k!#(B" +*このキーを押すことで接頭辞または接尾辞変換をする。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-help-key "1" "\ -*\\[help] $B$K$*$$$F%X%k%W$rI=<($9$k%-!e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] -$B$K$9$l$P!"F|K\8l%-!<%\!<%I$N(B [$BA08uJd(B] $B%-!<$K3d$jEv$F$k$3$H$,$G$-$k!#(B" + "*前候補を表示するためのキー。 +XFree86 上で使用する場合、 例えばこの値を [henkan] +にすれば、日本語キーボードの [前候補] キーに割り当てることができる。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-kanagaki) (defcustom skk-kanagaki-start-henkan-key " " "\ -*$BJQ49$r3+;O$9$k$?$a$N%-!e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] (defcustom skk-kanagaki-rule-list '((skk-kakutei-key nil skk-kakutei)) "\ -*$B%-!l9g$J$I$O!"$3$NJQ?t$rMQ$$$F$=$l$KBP1~$7(B -$B$?@_Dj$r$9$k$3$H$,$G$-$k!#(B" +*キー入力に対する変換文字の規則で、使用者の追加の設定を行なうもの。 +例えば、 キー配列を独自に設定している場合などは、この変数を用いてそれに対応し +た設定をすることができる。" :type '(repeat - (list :tag "$B%k!<%k%j%9%H(B" - (radio :tag "1 ($B%-!(B")) - (radio :tag "2 ($BB%2;$N>l9g!VJ8;zNs!W$rA*$S$^$9(B)" - (string :tag "$BJ8;zNs(B") + (list :tag "ルールリスト" + (radio :tag "1 (キー入力)" + (string :tag "文字列") + (symbol :tag "変数名")) + (radio :tag "2 (促音の場合「文字列」を選びます)" + (string :tag "文字列") (const nil)) - (radio :tag "3 ($B$$$:$l$+$rA*$V(B)" - (symbol :tag "$B4X?t(B") - (string :tag "$BJ8;zNs(B ($B%+%J(B/$B$+$J6&DL(B)") - (cons :tag "$BJ8;zNs$NAH(B ($B%+%J(B . $B$+$J(B)" - (string :tag "3-1 ($B%+%J(B)") - (string :tag "3-2 ($B$+$J(B)"))))) + (radio :tag "3 (いずれかを選ぶ)" + (symbol :tag "関数") + (string :tag "文字列 (カナ/かな共通)") + (cons :tag "文字列の組 (カナ . かな)" + (string :tag "3-1 (カナ)") + (string :tag "3-2 (かな)"))))) :group 'skk-kanagaki) ;; Internal constants and variables. @@ -295,7 +295,7 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] ;;;###autoload (defun skk-kanagaki-midashi-henkan (&optional arg) - "$B@\F,<-$^$?$O@\Hx<-JQ49$r$9$k!#(B" + "接頭辞または接尾辞変換をする。" (interactive "*p") (cond ((eq skk-henkan-mode 'active) (skk-kakutei) @@ -303,7 +303,7 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] (skk-set-henkan-point-subr)) (insert-and-inherit ?>)) ((eq skk-henkan-mode 'on) - ;; $B@\F,8l$N=hM}(B + ;; 接頭語の処理 (skk-kana-cleanup 'force) (insert-and-inherit ?>) (skk-set-marker skk-henkan-end-point (point)) @@ -318,23 +318,23 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] (defun skk-kanagaki-help () (interactive) (skk-kanagaki-help-1 - "* SKK $B2>L>F~NO(B $B%X%k%W(B*" - "$B8=:_$N2>L>F~NO%b!<%I$N3Q%+%J%b!<%I(B or $BH>3Q%+%JJQ49(B") - (skk-kanagaki-latin-mode-key . "latin $B%b!<%I(B") - (skk-kanagaki-toggle-rom-kana-key . "$B%m!<%^;zF~NO(B $B"N(B $B2>L>F~NO(B") - (skk-kanagaki-previous-candidate-key . "$BA08uJdI=<((B") - (skk-kanagaki-start-henkan-key . "$BJQ49!&e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] (nth 1 list)))) ((or str (null spec)) (when (stringp str) - (cons str "$BAw$j$"$jJQ493+;O(B")))))))) + (cons str "送りあり変換開始")))))))) (defun skk-kanagaki-adjust-rule-tree () (unless skk-kanagaki-rule-tree @@ -373,16 +373,16 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] ;;;###autoload (defun skk-kanagaki-insert (&optional arg parg) - "SPC $B%-!<$@$1$3$l$r(B `skk-insert' $B$NBe$o$j$K;H$&!#(B" + "SPC キーだけこれを `skk-insert' の代わりに使う。" (interactive "*p") (cond ((or (integerp parg) - ;; C-u $B$G$O$J$$>l9g(B + ;; C-u ではない場合 (not (and parg (listp parg)))) (skk-bind-last-command-char ?\s (skk-insert arg parg))) (t - ;; C-u [SPC] $B$GAw$j$"$jJQ49$r$9$k!#(B + ;; C-u [SPC] で送りあり変換をする。 (when (featurep 'skk-dcomp) (skk-dcomp-cleanup-buffer)) (skk-kanagaki-set-okurigana-no-sokuon t)))) @@ -392,18 +392,18 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] ;;;###autoload (defun skk-kanagaki-set-okurigana-no-sokuon (&optional arg) - "$B%]%$%s%H$ND>A0$NJ8;z$rAw$j2>L>$H8+Jo$7$F!"JQ49$r3+;O$9$k!#(B" + "ポイントの直前の文字を送り仮名と見倣して、変換を開始する。" (interactive "*p") (skk-kanagaki-set-okurigana (not (eq 4 (prefix-numeric-value arg))))) ;;;###autoload (defun skk-kanagaki-initialize () - "SKK $B5/F0;~$NE,Ev$J%?%$%_%s%0$G2>L>F~NOMQ$N@_Dj$r9T$&!#(B" - ;; $Be$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] (add-hook 'skk-mode-hook (function skk-kanagaki-adjust-rule-tree) t) - ;; $B6gFIE@F~NO;~$NLdBj$r2sHr!#(B $BF|K\8l(B 106 $B%-!<%\!<%I$G$O(B "<" $B$H(B ">" $B$K$h$k@\(B - ;; $BHx<-$NF~NO$O$G$-$J$/$J$k!#(B "?" $B$K$h$k@\Hx<-$NF~NO$O$G$-$k!#(B + ;; 句読点入力時の問題を回避。 日本語 106 キーボードでは "<" と ">" による接 + ;; 尾辞の入力はできなくなる。 "?" による接尾辞の入力はできる。 (dolist (char skk-special-midashi-char-list) (when (and skk-use-kana-keyboard (memq (nth 2 (assoc @@ -436,10 +436,10 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] ;; Pieces of advice. (defadvice skk-setup-keymap (after skk-kanagaki-keys activate preactivate) - ;; $B%-!<%P%$%s%I!#$?$@$7$3$l$O!"$h$jE,@Z$J%-!e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] (define-key help-map skk-kanagaki-help-key 'skk-kanagaki-help)) (defadvice skk-insert (around skk-kanagaki-workaround activate compile) - "$B2>L>F~NOMQ$N(B work around $B!#(B" + "仮名入力用の work around 。" ;; (when (and skk-process-okuri-early (eq skk-kanagaki-state 'kana)) - ;; `skk-process-okuri-early' $B$,I{:nMQ$r;}$D$+$bCN$l$J$$!#2>L>F~NO$G$O$=$b(B - ;; $B$=$b0UL#$N$J$$%*%W%7%g%s$J$N$G6/@)E*$K(B off $B$K$9$k!#(B + ;; `skk-process-okuri-early' が副作用を持つかも知れない。仮名入力ではそも + ;; そも意味のないオプションなので強制的に off にする。 (setq skk-process-okuri-early nil)) ;; (let ((skk-set-henkan-point-key @@ -492,17 +492,17 @@ XFree86 $B>e$G;HMQ$9$k>l9g!"(B $BNc$($P$3$NCM$r(B [henkan] activate compile) (cond (skk-use-kana-keyboard - ;; $B2>L>F~NOMQ$NFCl9g!#(B + ;; okuri-key が "っ" で item が "って" などだった場合。 (string-match (concat "^" (regexp-quote okuri-key)) item)) (and (eq skk-kanagaki-state 'rom) - ;; okuri-key $B$,(B "$B$C$F(B" $B$G(B item $B$,(B "$B$C(B" $B$J$I$@$C$?>l9g!#(B + ;; okuri-key が "って" で item が "っ" などだった場合。 (string-match (concat "^" (regexp-quote item)) okuri-key))) okuri-key) diff --git a/nicola/skk-nicola-colemak.el b/nicola/skk-nicola-colemak.el index ecc20ba8..6fa74503 100644 --- a/nicola/skk-nicola-colemak.el +++ b/nicola/skk-nicola-colemak.el @@ -1,4 +1,4 @@ -;;; skk-nicola-colemak.el --- SKK $B$K(B NICOLA (Colemak) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-nicola-colemak.el --- SKK に NICOLA (Colemak) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,12 +24,12 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA Colemak $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BK $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B +以下は、US colemak キーボードで NICOLA 入力するためのキー配列図です。 + +┌──┐ +│ヵ ̄│ +│` `│ +├──┼──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┐ +│?!│/@│~#│「$│」%│ │[^│]&│“*│”(│『)│』_│<+│ +│1  │2  │3  │4  │5  │ │6  │7  │8  │9  │0  │- -│= =│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┼──┐ +│ゐぁ│がえ│だり│ごゃ│ざれ│ │ぱよ│ぢに│ぐる│づま│ぴぇ│{〃│}゜│>|│ +│Q 。│W か│F た│P こ│G さ│ │J ら│L ち│U く│Y つ│; ,│[ 、│] ゛│\\ ¥│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┴──┘ +│ヴを│じあ│でな│げゅ│ぜも│ │ばみ│どお│ぎの│ぽょ│;っ│:…│ +│A う│R し│S て│T け│D せ│ │H は│N と│E き│I い│O ん│' ’│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┘ +│ゑぅ│びー│ずろ│ぶや│べぃ│ │ぷぬ│ぞゆ│ぺむ│ぼわ│ゎぉ│ +│Z .│X ひ│C す│V ふ│B へ│ │K め│M そ│, ね│. ほ│/ ・│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-nicola-colemak-plain-rule-list' `skk-nicola-colemak-lshift-rule-list' @@ -114,88 +114,88 @@ ") (defvar skk-nicola-colemak-plain-rule-list - '((?\` "$B!.(B") + '((?\` "`") ;; (?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "$B!](B") (?= "$B!a(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") (?= "=") ;; - (?q "$B!#(B") (?w ("$B%+(B" . "$B$+(B")) (?f ("$B%?(B" . "$B$?(B")) (?p ("$B%3(B" . "$B$3(B")) - (?g ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("カ" . "か")) (?f ("タ" . "た")) (?p ("コ" . "こ")) + (?g ("サ" . "さ")) ;; - (?j ("$B%i(B" . "$B$i(B")) (?l ("$B%A(B" . "$B$A(B")) (?u ("$B%/(B" . "$B$/(B")) (?y ("$B%D(B" . "$B$D(B")) - (?\; "$B!"(B") (?\[ "$B!"(B") (?\] skk-kanagaki-dakuten) (?\\ "$B!o(B") + (?j ("ラ" . "ら")) (?l ("チ" . "ち")) (?u ("ク" . "く")) (?y ("ツ" . "つ")) + (?\; "、") (?\[ "、") (?\] skk-kanagaki-dakuten) (?\\ "¥") ;; - (?a ("$B%&(B" . "$B$&(B")) (?r ("$B%7(B" . "$B$7(B")) (?s ("$B%F(B" . "$B$F(B")) (?t ("$B%1(B" . "$B$1(B")) - (?d ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?r ("シ" . "し")) (?s ("テ" . "て")) (?t ("ケ" . "け")) + (?d ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?n ("$B%H(B" . "$B$H(B")) (?e ("$B%-(B" . "$B$-(B")) (?i ("$B%$(B" . "$B$$(B")) - (?o ("$B%s(B" . "$B$s(B")) (?\' "$B!G(B") + (?h ("ハ" . "は")) (?n ("ト" . "と")) (?e ("キ" . "き")) (?i ("イ" . "い")) + (?o ("ン" . "ん")) (?\' "’") ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?k ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B") + (?k ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-nicola-colemak-rshift-rule-list - '((?` "$B%u(B") + '((?` "ヵ") ;; - (?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + (?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!0(B") (?7 "$B!u(B") (?8 "$B!v(B") (?9 "$B!J(B") (?0 "$B!K(B") (?- "$B!2(B") (?= "$B!\(B") + (?6 "^") (?7 "&") (?8 "*") (?9 "(") (?0 ")") (?- "_") (?= "+") ;; - (?q ("$B%p(B" . "$B$p(B")) (?w ("$B%,(B" . "$B$,(B")) (?f ("$B%@(B" . "$B$@(B")) (?p ("$B%4(B" . "$B$4(B")) - (?g ("$B%6(B" . "$B$6(B")) + (?q ("ヰ" . "ゐ")) (?w ("ガ" . "が")) (?f ("ダ" . "だ")) (?p ("ゴ" . "ご")) + (?g ("ザ" . "ざ")) ;; - (?j ("$B%h(B" . "$B$h(B")) (?l ("$B%K(B" . "$B$K(B")) (?u ("$B%k(B" . "$B$k(B")) (?y ("$B%^(B" . "$B$^(B")) - (?\; ("$B%'(B" . "$B$'(B")) (?\[ "$B!7(B") (?\] skk-kanagaki-handakuten) (?\\ "$B!C(B") + (?j ("ヨ" . "よ")) (?l ("ニ" . "に")) (?u ("ル" . "る")) (?y ("マ" . "ま")) + (?\; ("ェ" . "ぇ")) (?\[ "〃") (?\] skk-kanagaki-handakuten) (?\\ "|") ;; - (?a "$B%t(B") (?r ("$B%8(B" . "$B$8(B")) (?s ("$B%G(B" . "$B$G(B")) (?t ("$B%2(B" . "$B$2(B")) - (?d ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?r ("ジ" . "じ")) (?s ("デ" . "で")) (?t ("ゲ" . "げ")) + (?d ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?n ("$B%*(B" . "$B$*(B")) (?e ("$B%N(B" . "$B$N(B")) (?i ("$B%g(B" . "$B$g(B")) - (?o ("$B%C(B" . "$B$C(B")) (?' "$B!D(B") + (?h ("ミ" . "み")) (?n ("オ" . "お")) (?e ("ノ" . "の")) (?i ("ョ" . "ょ")) + (?o ("ッ" . "っ")) (?' "…") ;; - (?z ("$B%q(B" . "$B$q(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ヱ" . "ゑ")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?k ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B%)(B" . "$B$)(B")) + (?k ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-nicola-colemak-lshift-rule-list - '((?\` "$B!1(B") + '((?\` " ̄") ;; - (?1 "$B!*(B") (?2 "$B!w(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + (?1 "!") (?2 "@") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!H(B") (?9 "$B!I(B") (?0 "$B!X(B") (?- "$B!Y(B") (?= "$B!c(B") + (?6 "[") (?7 "]") (?8 "“") (?9 "”") (?0 "『") (?- "』") (?= "<") ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?f ("$B%j(B" . "$B$j(B")) (?p ("$B%c(B" . "$B$c(B")) - (?g ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?f ("リ" . "り")) (?p ("ャ" . "ゃ")) + (?g ("レ" . "れ")) ;; - (?j ("$B%Q(B" . "$B$Q(B")) (?l ("$B%B(B" . "$B$B(B")) (?u ("$B%0(B" . "$B$0(B")) (?y ("$B%E(B" . "$B$E(B")) - (?\; ("$B%T(B" . "$B$T(B")) (?\[ "$B!P(B") (?\] "$B!Q(B") (?\\ "$B!d(B") + (?j ("パ" . "ぱ")) (?l ("ヂ" . "ぢ")) (?u ("グ" . "ぐ")) (?y ("ヅ" . "づ")) + (?\; ("ピ" . "ぴ")) (?\[ "{") (?\] "}") (?\\ ">") ;; - (?a ("$B%r(B" . "$B$r(B")) (?r ("$B%"(B" . "$B$"(B")) (?s ("$B%J(B" . "$B$J(B")) (?t ("$B%e(B" . "$B$e(B")) - (?d ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?r ("ア" . "あ")) (?s ("ナ" . "な")) (?t ("ュ" . "ゅ")) + (?d ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?n ("$B%I(B" . "$B$I(B")) (?e ("$B%.(B" . "$B$.(B")) (?i ("$B%](B" . "$B$](B")) - (?o "$B!((B") (?' "$B!'(B") + (?h ("バ" . "ば")) (?n ("ド" . "ど")) (?e ("ギ" . "ぎ")) (?i ("ポ" . "ぽ")) + (?o ";") (?' ":") ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?k ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B%n(B" . "$B$n(B")) + (?k ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-nicola-dvorak.el b/nicola/skk-nicola-dvorak.el index 559f31c8..2e353955 100644 --- a/nicola/skk-nicola-dvorak.el +++ b/nicola/skk-nicola-dvorak.el @@ -1,4 +1,4 @@ -;;; skk-nicola-dvorak.el --- SKK $B$K(B NICOLA (Dvorak) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-nicola-dvorak.el --- SKK に NICOLA (Dvorak) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,12 +24,12 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA Dvorak $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("(B -$B("(B; $B!%("(BQ $B$R("(BJ $B$9("(BK $B$U("(BX $B$X("(B $B("(BB $B$a("(BM $B$=("(BW $B$M("(BV $B$[("(BZ $B!&("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B + "以下は、ANSI Dvorak 配列キーボードで NICOLA 入力するためのキー配列図です。 + +┌──┐ +│ヵ ̄│ +│` `│ +├──┼──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ +│?!│/@│~#│「$│」%│ │’^│+&│“*│”(│『)│』{│<}│>|│ +│1  │2  │3  │4  │5  │ │6  │7  │8  │9  │0  │[ [│] ]│\\ ¥│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┼──┘ +│ゐぁ│がえ│だり│ごゃ│ざれ│ │ぱよ│ぢに│ぐる│づま│ぴぇ│:〃│=゜│ +│' 。│, か│. た│P こ│Y さ│ │F ら│G ち│C く│R つ│L ,│/ 、│= ゛│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┘ +│ヴを│じあ│でな│げゅ│ぜも│ │ばみ│どお│ぎの│ぽょ│;っ│_…│ +│A う│O し│E て│U け│I せ│ │D は│H と│T き│N い│S ん│- -│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┘ +│ゑぅ│びー│ずろ│ぶや│べぃ│ │ぷぬ│ぞゆ│ぺむ│ぼわ│ゎぉ│ +│; .│Q ひ│J す│K ふ│X へ│ │B め│M そ│W ね│V ほ│Z ・│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-nicola-dvorak-plain-rule-list' `skk-nicola-dvorak-lshift-rule-list' @@ -114,91 +114,91 @@ ") (defvar skk-nicola-dvorak-plain-rule-list - '((?` "$B!.(B") + '((?` "`") ;; (?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?\[ "$B!N(B") (?\] "$B!O(B") - (?\\ "$B!o(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?\[ "[") (?\] "]") + (?\\ "¥") ;; - (?' "$B!#(B") (?, ("$B%+(B" . "$B$+(B")) (?. ("$B%?(B" . "$B$?(B")) (?p ("$B%3(B" . "$B$3(B")) - (?y ("$B%5(B" . "$B$5(B")) + (?' "。") (?, ("カ" . "か")) (?. ("タ" . "た")) (?p ("コ" . "こ")) + (?y ("サ" . "さ")) ;; - (?f ("$B%i(B" . "$B$i(B")) (?g ("$B%A(B" . "$B$A(B")) (?c ("$B%/(B" . "$B$/(B")) (?r ("$B%D(B" . "$B$D(B")) - (?l "$B!$(B") (?/ "$B!"(B") (?= skk-kanagaki-dakuten) + (?f ("ラ" . "ら")) (?g ("チ" . "ち")) (?c ("ク" . "く")) (?r ("ツ" . "つ")) + (?l ",") (?/ "、") (?= skk-kanagaki-dakuten) ;; - (?a ("$B%&(B" . "$B$&(B")) (?o ("$B%7(B" . "$B$7(B")) (?e ("$B%F(B" . "$B$F(B")) (?u ("$B%1(B" . "$B$1(B")) - (?i ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?o ("シ" . "し")) (?e ("テ" . "て")) (?u ("ケ" . "け")) + (?i ("セ" . "せ")) ;; - (?d ("$B%O(B" . "$B$O(B")) (?h ("$B%H(B" . "$B$H(B")) (?t ("$B%-(B" . "$B$-(B")) (?n ("$B%$(B" . "$B$$(B")) - (?s ("$B%s(B" . "$B$s(B")) (?- "$B!](B") + (?d ("ハ" . "は")) (?h ("ト" . "と")) (?t ("キ" . "き")) (?n ("イ" . "い")) + (?s ("ン" . "ん")) (?- "-") ;; - (?\; "$B!%(B") (?q ("$B%R(B" . "$B$R(B")) (?j ("$B%9(B" . "$B$9(B")) (?k ("$B%U(B" . "$B$U(B")) - (?x ("$B%X(B" . "$B$X(B")) + (?\; ".") (?q ("ヒ" . "ひ")) (?j ("ス" . "す")) (?k ("フ" . "ふ")) + (?x ("ヘ" . "へ")) ;; - (?b ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?w ("$B%M(B" . "$B$M(B")) (?v ("$B%[(B" . "$B$[(B")) - (?z "$B!&(B") + (?b ("メ" . "め")) (?m ("ソ" . "そ")) (?w ("ネ" . "ね")) (?v ("ホ" . "ほ")) + (?z "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-nicola-dvorak-lshift-rule-list - '((?` "$B!1(B") + '((?` " ̄") ;; - (?1 "$B!*(B") (?2 "$B!w(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + (?1 "!") (?2 "@") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!G(B") (?7 "$B!\(B") (?8 "$B!H(B") (?9 "$B!I(B") (?0 "$B!X(B") (?\[ "$B!Y(B") (?\] "$B!c(B") - (?\\ "$B!d(B") + (?6 "’") (?7 "+") (?8 "“") (?9 "”") (?0 "『") (?\[ "』") (?\] "<") + (?\\ ">") ;; - (?' ("$B%!(B" . "$B$!(B")) (?, ("$B%((B" . "$B$((B")) (?. ("$B%j(B" . "$B$j(B")) (?p ("$B%c(B" . "$B$c(B")) - (?y ("$B%l(B" . "$B$l(B")) + (?' ("ァ" . "ぁ")) (?, ("エ" . "え")) (?. ("リ" . "り")) (?p ("ャ" . "ゃ")) + (?y ("レ" . "れ")) ;; - (?f ("$B%Q(B" . "$B$Q(B")) (?g ("$B%B(B" . "$B$B(B")) (?c ("$B%0(B" . "$B$0(B")) (?r ("$B%E(B" . "$B$E(B")) - (?l ("$B%T(B" . "$B$T(B")) (?/ "$B!'(B") (?= "$B!a(B") + (?f ("パ" . "ぱ")) (?g ("ヂ" . "ぢ")) (?c ("グ" . "ぐ")) (?r ("ヅ" . "づ")) + (?l ("ピ" . "ぴ")) (?/ ":") (?= "=") ;; - (?a ("$B%r(B" . "$B$r(B")) (?o ("$B%"(B" . "$B$"(B")) (?e ("$B%J(B" . "$B$J(B")) (?u ("$B%e(B" . "$B$e(B")) - (?i ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?o ("ア" . "あ")) (?e ("ナ" . "な")) (?u ("ュ" . "ゅ")) + (?i ("モ" . "も")) ;; - (?d ("$B%P(B" . "$B$P(B")) (?h ("$B%I(B" . "$B$I(B")) (?t ("$B%.(B" . "$B$.(B")) (?n ("$B%](B" . "$B$](B")) - (?s "$B!((B") (?- "$B!2(B") + (?d ("バ" . "ば")) (?h ("ド" . "ど")) (?t ("ギ" . "ぎ")) (?n ("ポ" . "ぽ")) + (?s ";") (?- "_") ;; - (?\; ("$B%%(B" . "$B$%(B")) (?q "$B!<(B") (?j ("$B%m(B" . "$B$m(B")) (?k ("$B%d(B" . "$B$d(B")) - (?x ("$B%#(B" . "$B$#(B")) + (?\; ("ゥ" . "ぅ")) (?q "ー") (?j ("ロ" . "ろ")) (?k ("ヤ" . "や")) + (?x ("ィ" . "ぃ")) ;; - (?b ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?w ("$B%Z(B" . "$B$Z(B")) (?v ("$B%\(B" . "$B$\(B")) - (?z ("$B%n(B" . "$B$n(B")) + (?b ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?w ("ペ" . "ぺ")) (?v ("ボ" . "ぼ")) + (?z ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (defvar skk-nicola-dvorak-rshift-rule-list - '((?` "$B%u(B") + '((?` "ヵ") ;; - (?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + (?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!0(B") (?7 "$B!u(B") (?8 "$B!v(B") (?9 "$B!J(B") (?0 "$B!K(B") (?\[ "$B!P(B") (?\] "$B!Q(B") - (?\\ "$B!C(B") + (?6 "^") (?7 "&") (?8 "*") (?9 "(") (?0 ")") (?\[ "{") (?\] "}") + (?\\ "|") ;; - (?' ("$B%p(B" . "$B$p(B")) (?, ("$B%,(B" . "$B$,(B")) (?. ("$B%@(B" . "$B$@(B")) (?p ("$B%4(B" . "$B$4(B")) - (?y ("$B%6(B" . "$B$6(B")) + (?' ("ヰ" . "ゐ")) (?, ("ガ" . "が")) (?. ("ダ" . "だ")) (?p ("ゴ" . "ご")) + (?y ("ザ" . "ざ")) ;; - (?f ("$B%h(B" . "$B$h(B")) (?g ("$B%K(B" . "$B$K(B")) (?c ("$B%k(B" . "$B$k(B")) (?r ("$B%^(B" . "$B$^(B")) - (?l ("$B%'(B" . "$B$'(B")) (?/ "$B!7(B") (?= skk-kanagaki-handakuten) + (?f ("ヨ" . "よ")) (?g ("ニ" . "に")) (?c ("ル" . "る")) (?r ("マ" . "ま")) + (?l ("ェ" . "ぇ")) (?/ "〃") (?= skk-kanagaki-handakuten) ;; - (?a "$B%t(B") (?o ("$B%8(B" . "$B$8(B")) (?e ("$B%G(B" . "$B$G(B")) (?u ("$B%2(B" . "$B$2(B")) - (?i ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?o ("ジ" . "じ")) (?e ("デ" . "で")) (?u ("ゲ" . "げ")) + (?i ("ゼ" . "ぜ")) ;; - (?d ("$B%_(B" . "$B$_(B")) (?h ("$B%*(B" . "$B$*(B")) (?t ("$B%N(B" . "$B$N(B")) (?n ("$B%g(B" . "$B$g(B")) - (?s ("$B%C(B" . "$B$C(B")) (?- "$B!D(B") + (?d ("ミ" . "み")) (?h ("オ" . "お")) (?t ("ノ" . "の")) (?n ("ョ" . "ょ")) + (?s ("ッ" . "っ")) (?- "…") ;; - (?\; ("$B%q(B" . "$B$q(B")) (?q ("$B%S(B" . "$B$S(B")) (?j ("$B%:(B" . "$B$:(B")) - (?k ("$B%V(B" . "$B$V(B")) (?x ("$B%Y(B" . "$B$Y(B")) + (?\; ("ヱ" . "ゑ")) (?q ("ビ" . "び")) (?j ("ズ" . "ず")) + (?k ("ブ" . "ぶ")) (?x ("ベ" . "べ")) ;; - (?b ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?w ("$B%`(B" . "$B$`(B")) (?v ("$B%o(B" . "$B$o(B")) - (?z ("$B%)(B" . "$B$)(B")) + (?b ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?w ("ム" . "む")) (?v ("ワ" . "わ")) + (?z ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-nicola-jis.el b/nicola/skk-nicola-jis.el index 268f8fd6..ac9fd3df 100644 --- a/nicola/skk-nicola-jis.el +++ b/nicola/skk-nicola-jis.el @@ -1,4 +1,4 @@ -;;; skk-nicola-jis.el --- SKK $B$K(B NICOLA (JIS) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-nicola-jis.el --- SKK に NICOLA (JIS) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,13 +24,13 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA $B5,3J=`5r$N%-!$f("$Z$`("$\$o("$n$)("!2!C("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BN $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B\\ $B!o("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B + "以下は、日本語 106 キーボードで NICOLA 入力するためのキー配列図です。 + +┌──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ +│?!│/”│~#│「$│」%│ │[&│]’│({│)}│『‘│』=│“ ̄│_|│ +│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 そ│, ね│. ほ│/ ・│\\ ¥│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-nicola-jis-plain-rule-list' `skk-nicola-jis-lshift-rule-list' @@ -118,80 +118,80 @@ (defvar skk-nicola-jis-plain-rule-list '((?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "$B!](B") (?^ "$B!0(B") (?\\ "$B!o(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") (?^ "^") (?\\ "¥") ;; - (?q "$B!#(B") (?w ("$B%+(B" . "$B$+(B")) (?e ("$B%?(B" . "$B$?(B")) (?r ("$B%3(B" . "$B$3(B")) - (?t ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("カ" . "か")) (?e ("タ" . "た")) (?r ("コ" . "こ")) + (?t ("サ" . "さ")) ;; - (?y ("$B%i(B" . "$B$i(B")) (?u ("$B%A(B" . "$B$A(B")) (?i ("$B%/(B" . "$B$/(B")) (?o ("$B%D(B" . "$B$D(B")) - (?p "$B!$(B") (?@ "$B!"(B") (?\[ skk-kanagaki-dakuten) + (?y ("ラ" . "ら")) (?u ("チ" . "ち")) (?i ("ク" . "く")) (?o ("ツ" . "つ")) + (?p ",") (?@ "、") (?\[ skk-kanagaki-dakuten) ;; - (?a ("$B%&(B" . "$B$&(B")) (?s ("$B%7(B" . "$B$7(B")) (?d ("$B%F(B" . "$B$F(B")) (?f ("$B%1(B" . "$B$1(B")) - (?g ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?s ("シ" . "し")) (?d ("テ" . "て")) (?f ("ケ" . "け")) + (?g ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?j ("$B%H(B" . "$B$H(B")) (?k ("$B%-(B" . "$B$-(B")) (?l ("$B%$(B" . "$B$$(B")) - (?\; ("$B%s(B" . "$B$s(B")) (?: ("$B!((B" . "$B!'(B")) (?\] "$B!D(B") + (?h ("ハ" . "は")) (?j ("ト" . "と")) (?k ("キ" . "き")) (?l ("イ" . "い")) + (?\; ("ン" . "ん")) (?: (";" . ":")) (?\] "…") ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?n ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + (?n ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・")) + "単独打鍵時の入力ルール。") (defvar skk-nicola-jis-rshift-rule-list - '((?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + '((?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!u(B") (?7 "$B!G(B") (?8 "$B!P(B") (?9 "$B!Q(B") (?0 "$B!F(B") (?- "$B!a(B") (?^ "$B!1(B") - (?\\ "$B!C(B") + (?6 "&") (?7 "’") (?8 "{") (?9 "}") (?0 "‘") (?- "=") (?^ " ̄") + (?\\ "|") ;; - (?q ("$B%p(B" . "$B$p(B")) (?w ("$B%,(B" . "$B$,(B")) (?e ("$B%@(B" . "$B$@(B")) (?r ("$B%4(B" . "$B$4(B")) - (?t ("$B%6(B" . "$B$6(B")) + (?q ("ヰ" . "ゐ")) (?w ("ガ" . "が")) (?e ("ダ" . "だ")) (?r ("ゴ" . "ご")) + (?t ("ザ" . "ざ")) ;; - (?y ("$B%h(B" . "$B$h(B")) (?u ("$B%K(B" . "$B$K(B")) (?i ("$B%k(B" . "$B$k(B")) (?o ("$B%^(B" . "$B$^(B")) - (?p ("$B%'(B" . "$B$'(B")) (?@ "$B!w(B") (?\[ skk-kanagaki-handakuten) + (?y ("ヨ" . "よ")) (?u ("ニ" . "に")) (?i ("ル" . "る")) (?o ("マ" . "ま")) + (?p ("ェ" . "ぇ")) (?@ "@") (?\[ skk-kanagaki-handakuten) ;; - (?a "$B%t(B") (?s ("$B%8(B" . "$B$8(B")) (?d ("$B%G(B" . "$B$G(B")) (?f ("$B%2(B" . "$B$2(B")) - (?g ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?s ("ジ" . "じ")) (?d ("デ" . "で")) (?f ("ゲ" . "げ")) + (?g ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?j ("$B%*(B" . "$B$*(B")) (?k ("$B%N(B" . "$B$N(B")) (?l ("$B%g(B" . "$B$g(B")) - (?\; ("$B%C(B" . "$B$C(B")) (?: ("$B%v(B" . "$B!((B")) (?\] ("$B!d(B" . "$B!c(B")) + (?h ("ミ" . "み")) (?j ("オ" . "お")) (?k ("ノ" . "の")) (?l ("ョ" . "ょ")) + (?\; ("ッ" . "っ")) (?: ("ヶ" . ";")) (?\] (">" . "<")) ;; - (?z ("$B%q(B" . "$B$q(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ヱ" . "ゑ")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?n ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B%)(B" . "$B$)(B")) + (?n ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-nicola-jis-lshift-rule-list - '((?1 "$B!*(B") (?2 "$B!I(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + '((?1 "!") (?2 "”") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!J(B") (?9 "$B!K(B") (?0 "$B!X(B") (?- "$B!Y(B") (?^ "$B!H(B") - (?\\ "$B!2(B") + (?6 "[") (?7 "]") (?8 "(") (?9 ")") (?0 "『") (?- "』") (?^ "“") + (?\\ "_") ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?e ("$B%j(B" . "$B$j(B")) (?r ("$B%c(B" . "$B$c(B")) - (?t ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?e ("リ" . "り")) (?r ("ャ" . "ゃ")) + (?t ("レ" . "れ")) ;; - (?y ("$B%Q(B" . "$B$Q(B")) (?u ("$B%B(B" . "$B$B(B")) (?i ("$B%0(B" . "$B$0(B")) (?o ("$B%E(B" . "$B$E(B")) - (?p ("$B%T(B" . "$B$T(B")) (?@ "$B!.(B") (?\[ "$B!7(B") + (?y ("パ" . "ぱ")) (?u ("ヂ" . "ぢ")) (?i ("グ" . "ぐ")) (?o ("ヅ" . "づ")) + (?p ("ピ" . "ぴ")) (?@ "`") (?\[ "〃") ;; - (?a ("$B%r(B" . "$B$r(B")) (?s ("$B%"(B" . "$B$"(B")) (?d ("$B%J(B" . "$B$J(B")) (?f ("$B%e(B" . "$B$e(B")) - (?g ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?s ("ア" . "あ")) (?d ("ナ" . "な")) (?f ("ュ" . "ゅ")) + (?g ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?j ("$B%I(B" . "$B$I(B")) (?k ("$B%.(B" . "$B$.(B")) (?l ("$B%](B" . "$B$](B")) - (?\; ("$B!((B" . "$B!\(B")) (?: "$B!v(B") (?\] ("$B!c(B" ."$B!d(B")) + (?h ("バ" . "ば")) (?j ("ド" . "ど")) (?k ("ギ" . "ぎ")) (?l ("ポ" . "ぽ")) + (?\; (";" . "+")) (?: "*") (?\] ("<" .">")) ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?n ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B%n(B" . "$B$n(B")) + (?n ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-nicola-us.el b/nicola/skk-nicola-us.el index 8f9ec2e4..b37f4274 100644 --- a/nicola/skk-nicola-us.el +++ b/nicola/skk-nicola-us.el @@ -1,4 +1,4 @@ -;;; skk-nicola-us.el --- SKK $B$K(B NICOLA (US) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-nicola-us.el --- SKK に NICOLA (US) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,13 +24,13 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA $B5,3J=`5r(B US $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BN $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B +以下は、US 101 キーボードで NICOLA 入力するためのキー配列図です。 + +┌──┐ +│ヵ ̄│ +│` `│ +├──┼──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┐ +│?!│/@│~#│「$│」%│ │[^│]&│“*│”(│『)│』_│<+│ +│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 そ│, ね│. ほ│/ ・│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-nicola-us-plain-rule-list' `skk-nicola-us-lshift-rule-list' @@ -115,88 +115,88 @@ ") (defvar skk-nicola-us-plain-rule-list - '((?\` "$B!.(B") + '((?\` "`") ;; (?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "$B!](B") (?= "$B!a(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") (?= "=") ;; - (?q "$B!#(B") (?w ("$B%+(B" . "$B$+(B")) (?e ("$B%?(B" . "$B$?(B")) (?r ("$B%3(B" . "$B$3(B")) - (?t ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("カ" . "か")) (?e ("タ" . "た")) (?r ("コ" . "こ")) + (?t ("サ" . "さ")) ;; - (?y ("$B%i(B" . "$B$i(B")) (?u ("$B%A(B" . "$B$A(B")) (?i ("$B%/(B" . "$B$/(B")) (?o ("$B%D(B" . "$B$D(B")) - (?p "$B!$(B") (?\[ "$B!"(B") (?\] skk-kanagaki-dakuten) (?\\ "$B!o(B") + (?y ("ラ" . "ら")) (?u ("チ" . "ち")) (?i ("ク" . "く")) (?o ("ツ" . "つ")) + (?p ",") (?\[ "、") (?\] skk-kanagaki-dakuten) (?\\ "¥") ;; - (?a ("$B%&(B" . "$B$&(B")) (?s ("$B%7(B" . "$B$7(B")) (?d ("$B%F(B" . "$B$F(B")) (?f ("$B%1(B" . "$B$1(B")) - (?g ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?s ("シ" . "し")) (?d ("テ" . "て")) (?f ("ケ" . "け")) + (?g ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?j ("$B%H(B" . "$B$H(B")) (?k ("$B%-(B" . "$B$-(B")) (?l ("$B%$(B" . "$B$$(B")) - (?\; ("$B%s(B" . "$B$s(B")) (?\' "$B!G(B") + (?h ("ハ" . "は")) (?j ("ト" . "と")) (?k ("キ" . "き")) (?l ("イ" . "い")) + (?\; ("ン" . "ん")) (?\' "’") ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?n ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B") + (?n ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-nicola-us-rshift-rule-list - '((?` "$B%u(B") + '((?` "ヵ") ;; - (?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + (?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!0(B") (?7 "$B!u(B") (?8 "$B!v(B") (?9 "$B!J(B") (?0 "$B!K(B") (?- "$B!2(B") (?= "$B!\(B") + (?6 "^") (?7 "&") (?8 "*") (?9 "(") (?0 ")") (?- "_") (?= "+") ;; - (?q ("$B%p(B" . "$B$p(B")) (?w ("$B%,(B" . "$B$,(B")) (?e ("$B%@(B" . "$B$@(B")) (?r ("$B%4(B" . "$B$4(B")) - (?t ("$B%6(B" . "$B$6(B")) + (?q ("ヰ" . "ゐ")) (?w ("ガ" . "が")) (?e ("ダ" . "だ")) (?r ("ゴ" . "ご")) + (?t ("ザ" . "ざ")) ;; - (?y ("$B%h(B" . "$B$h(B")) (?u ("$B%K(B" . "$B$K(B")) (?i ("$B%k(B" . "$B$k(B")) (?o ("$B%^(B" . "$B$^(B")) - (?p ("$B%'(B" . "$B$'(B")) (?\[ "$B!7(B") (?\] skk-kanagaki-handakuten) (?\\ "$B!C(B") + (?y ("ヨ" . "よ")) (?u ("ニ" . "に")) (?i ("ル" . "る")) (?o ("マ" . "ま")) + (?p ("ェ" . "ぇ")) (?\[ "〃") (?\] skk-kanagaki-handakuten) (?\\ "|") ;; - (?a "$B%t(B") (?s ("$B%8(B" . "$B$8(B")) (?d ("$B%G(B" . "$B$G(B")) (?f ("$B%2(B" . "$B$2(B")) - (?g ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?s ("ジ" . "じ")) (?d ("デ" . "で")) (?f ("ゲ" . "げ")) + (?g ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?j ("$B%*(B" . "$B$*(B")) (?k ("$B%N(B" . "$B$N(B")) (?l ("$B%g(B" . "$B$g(B")) - (?\; ("$B%C(B" . "$B$C(B")) (?' "$B!D(B") + (?h ("ミ" . "み")) (?j ("オ" . "お")) (?k ("ノ" . "の")) (?l ("ョ" . "ょ")) + (?\; ("ッ" . "っ")) (?' "…") ;; - (?z ("$B%q(B" . "$B$q(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ヱ" . "ゑ")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?n ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B%)(B" . "$B$)(B")) + (?n ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-nicola-us-lshift-rule-list - '((?\` "$B!1(B") + '((?\` " ̄") ;; - (?1 "$B!*(B") (?2 "$B!w(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + (?1 "!") (?2 "@") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!H(B") (?9 "$B!I(B") (?0 "$B!X(B") (?- "$B!Y(B") (?= "$B!c(B") + (?6 "[") (?7 "]") (?8 "“") (?9 "”") (?0 "『") (?- "』") (?= "<") ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?e ("$B%j(B" . "$B$j(B")) (?r ("$B%c(B" . "$B$c(B")) - (?t ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?e ("リ" . "り")) (?r ("ャ" . "ゃ")) + (?t ("レ" . "れ")) ;; - (?y ("$B%Q(B" . "$B$Q(B")) (?u ("$B%B(B" . "$B$B(B")) (?i ("$B%0(B" . "$B$0(B")) (?o ("$B%E(B" . "$B$E(B")) - (?p ("$B%T(B" . "$B$T(B")) (?\[ "$B!P(B") (?\] "$B!Q(B") (?\\ "$B!d(B") + (?y ("パ" . "ぱ")) (?u ("ヂ" . "ぢ")) (?i ("グ" . "ぐ")) (?o ("ヅ" . "づ")) + (?p ("ピ" . "ぴ")) (?\[ "{") (?\] "}") (?\\ ">") ;; - (?a ("$B%r(B" . "$B$r(B")) (?s ("$B%"(B" . "$B$"(B")) (?d ("$B%J(B" . "$B$J(B")) (?f ("$B%e(B" . "$B$e(B")) - (?g ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?s ("ア" . "あ")) (?d ("ナ" . "な")) (?f ("ュ" . "ゅ")) + (?g ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?j ("$B%I(B" . "$B$I(B")) (?k ("$B%.(B" . "$B$.(B")) (?l ("$B%](B" . "$B$](B")) - (?\; "$B!((B") (?' "$B!'(B") + (?h ("バ" . "ば")) (?j ("ド" . "ど")) (?k ("ギ" . "ぎ")) (?l ("ポ" . "ぽ")) + (?\; ";") (?' ":") ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?n ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B%n(B" . "$B$n(B")) + (?n ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-nicola.el b/nicola/skk-nicola.el index 3c768ae0..034a25f6 100644 --- a/nicola/skk-nicola.el +++ b/nicola/skk-nicola.el @@ -1,4 +1,4 @@ -;;; skk-nicola.el --- SKK $B$K?F;X%7%U%HF~NO%$%s%?%U%'%$%9$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-nicola.el --- SKK に親指シフト入力インタフェイスを提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,17 +24,17 @@ ;;; Commentary: -;; $B$3$N%W%m%0%i%`$OL'1:0o;K$5$s:n$N(B NICOLA-SKK 0.39 $B$r4p$K!"(B Daredevil SKK $B$K(B -;; $BBP1~$5$;$?$b$N$G$9!#86:n$N%"%$%G%"$K4p$$$FO$r4p$K$D$/$j$^$7$?!#(B +;; キー配列のルールは別ファイルに細分化しています。これらは、同じく箕浦さん作 +;; の omelet (たまご用の親指シフト入力インターフェイス) および同氏の web site +;; の文章を基につくりました。 -;; $BF1;a$N%"%$%G%"$H?F;X%7%U%HF~NO$K4X$9$k$4?TNO$K7I0U$rI=$7!"$^$?46\:Y$K$D$$$F$O!"F1:-$N(B README.NICOLA.md $B$r$4Mw2<$5$$!#(B +;; 詳細については、同梱の README.NICOLA.md をご覧下さい。 ;;; Code: @@ -56,14 +56,14 @@ ;; Variables. (defcustom skk-nicola-interval 0.1 - "*$B$3$N;~4V0JFb$KBG80$5$l$?$b$N$rF1;~BG80$HH=Dj$9$k!#(B -$BC10L$OIC!#%G%U%)%k%H$O(B 0.1 $BIC!#(B" + "*この時間以内に打鍵されたものを同時打鍵と判定する。 +単位は秒。デフォルトは 0.1 秒。" :type 'number :group 'skk-nicola) (defcustom skk-nicola-latin-interval 0.1 - "*$B$3$N;~4V0JFb$KBG80$5$l$?$b$N$rF1;~BG80$HH=Dj$9$k!#(B -$BC10L$OIC!#%G%U%)%k%H$O(B 0.1 $BIC!#(B" + "*この時間以内に打鍵されたものを同時打鍵と判定する。 +単位は秒。デフォルトは 0.1 秒。" :type 'number :group 'skk-nicola) @@ -73,7 +73,7 @@ [noconvert]) (t [muhenkan]))) - "*$B:8?F;X%-!<$H$7$F;H$&%-!C$7%-!<$rMQ0U$9$k!#(B -$B$3$l$O!"(BJIS $B%-!<%\!<%I$G$O(B \":\" $B$H(B \"]\" $B$N0LCV$KAjEv$9$k!#(B" + "*Non-nil なら OASYS 風の BS キーと取り消しキーを用意する。 +これは、JIS キーボードでは \":\" と \"]\" の位置に相当する。" :type 'boolean :group 'skk-nicola) @@ -143,8 +143,8 @@ '(?d ?h)) (t '(?g ?h))) - "*$B@\F,!&@\Hx8lF~NO$r$7$?$j!"(B abbrev $B%b!<%I$KF~$kJ8;z!#(B -$B$3$l$i$NJ8;z$KEv$?$k%-!<$NF1;~BG80$r8!=P$9$k$H!"(B $Bl9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r;H$&!#(B" + "*接頭・接尾語入力をする。 +これらの文字に当たるキーの同時打鍵を検出すると、 実行される。 +abbrev と同じキーにする場合は skk-nicola-prefix-suffix-abbrev-chars を使う。" :type '(repeat character) :group 'skk-nicola) @@ -168,45 +168,45 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; '(?d ?h)) (t '(?g ?h))) - "abbrev $B%b!<%I$KF~$kJ8;z!#(B -$B$3$l$i$NJ8;z$KEv$?$k%-!<$NF1;~BG80$r8!=P$9$k$H!"(B $Bl9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r;H$&!#(B" + "abbrev モードに入る文字。 +これらの文字に当たるキーの同時打鍵を検出すると、 実行される。 +接頭・接尾語入力と同じキーにする場合は skk-nicola-prefix-suffix-abbrev-chars を使う。" :type '(repeat character) :group 'skk-nicola) (defcustom skk-nicola-okuri-style 'nicola-skk - "*$BAw$j2>L>$N%9%?%$%k!#(B -`nicola-skk' $B$rA*$V$H!"!V"&$7(B*$B$C(B $B"M(B $B"'CN$C!W$N$h$&$KJQ49$9$k!#(B -`skk' $B$rA*$V$H!"!V"&$7(B*$B$C$F(B $B"M(B $B"'CN$C$F!W$N$h$&$KJQ49$9$k!#(B" + "*送り仮名のスタイル。 +`nicola-skk' を選ぶと、「▽し*っ ⇒ ▼知っ」のように変換する。 +`skk' を選ぶと、「▽し*って ⇒ ▼知って」のように変換する。" :type '(choice (const nicola-skk) (const skk)) :group 'skk-nicola) (defcustom skk-nicola-help-key "2" - "* \\[help] $B$K$*$$$F%X%k%W$rI=<($9$k%-!l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;; Functions. (defun skk-nicola-setup () - "NICOLA $B$N=i4|@_Dj$r$9$k!#(B" - ;; SKK $B$N=i2s5/F0;~$N$_l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;;;###autoload (defun skk-nicola-help (&optional arg) - "$B8=:_;H$o$l$F$$$k?F;X%7%U%H%-!l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;;;###autoload (defun skk-nicola-2nd-help () - "skk-nicola.el $BFH<+$N%-!l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; (null spec)) (when (stringp str) (cons str - "$B%3!<%I$^$?$O%a%K%e!<$K$h$kF~NO(B"))))) + "コードまたはメニューによる入力"))))) ;; (list (cl-do ((spec (nth 4 skk-kanagaki-rule-tree) @@ -376,7 +376,7 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ((or str (null spec)) (when (stringp str) - (cons str "$B:#F|$NF|IU$1$rA^F~(B"))))) + (cons str "今日の日付けを挿入"))))) ;; (list (cl-do ((spec (nth 4 skk-kanagaki-rule-tree) @@ -391,47 +391,47 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ((or str (null spec)) (when (stringp str) - (cons str "$BA41Q%b!<%I(B"))))) + (cons str "全英モード"))))) ;; (list (cons (format "%c + %c" (car skk-nicola-set-henkan-point-chars) (cadr skk-nicola-set-henkan-point-chars)) - "$BJQ493+;OE@$r%;%C%H!"Aw$j3+;OE@;XDj(B") + "変換開始点をセット、送り開始点指定") (cons (format "%c + %c" (car skk-nicola-prefix-suffix-abbrev-chars) (cadr skk-nicola-prefix-suffix-abbrev-chars)) - "$B@\F,<-(B or $B@\Hx<-JQ49(B ($B"&%b!<%I(B or $B"'%b!<%I(B)$B!"(Babbrev $B%b!<%I(B") + "接頭辞 or 接尾辞変換 (▽モード or ▼モード)、abbrev モード") (cons (format "%c + %c" (car skk-nicola-prefix-suffix-chars) (cadr skk-nicola-prefix-suffix-chars)) - "$B@\F,<-(B or $B@\Hx<-JQ49(B ($B"&%b!<%I(B or $B"'%b!<%I(B)") + "接頭辞 or 接尾辞変換 (▽モード or ▼モード)") (cons (format "%c + %c" (car skk-nicola-abbrev-chars) (cadr skk-nicola-abbrev-chars)) - "abbrev $B%b!<%I(B") + "abbrev モード") (cons (format "%c + %c" (car skk-nicola-toggle-kana-chars) (cadr skk-nicola-toggle-kana-chars)) - "$B%+%J%b!<%I(B or $B%+%JJQ49(B") - (cons "$B:8?F;X%7%U%H(B + $B1&?F;X%7%U%H(B" - "latin $B%b!<%I(B $B"N(B $B$+$J%b!<%I@Z$jBX$((B") + "カナモード or カナ変換") + (cons "左親指シフト + 右親指シフト" + "latin モード ⇔ かなモード切り替え") (cons (format "M-x help %s" skk-nicola-help-key) - "$B8=:_$NF~NOJ}<0$N%-!l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;;;###autoload (defun skk-nicola-turn-on-j-mode (&optional arg) - "`skk-latin-mode' $B$K$*$$$F!"(B`skk-j-mode' $B$KF~$k$?$a$N%3%^%s%I!#(B -$B:81&?F;X%-!<$NF1;~BG80$r8!=P$7$?>l9g$K(B `skk-j-mode' $B$KF~$k!#(B" + "`skk-latin-mode' において、`skk-j-mode' に入るためのコマンド。 +左右親指キーの同時打鍵を検出した場合に `skk-j-mode' に入る。" (interactive "*p") (if (sit-for skk-nicola-latin-interval t) ;; then @@ -523,7 +523,7 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;;;###autoload (defun skk-nicola-insert (&optional arg parg) - "$BF1;~BG80$rG'<1$7$F!"(BNICOLA $B$+$JF~NO$r$9$k!#(B" + "同時打鍵を認識して、NICOLA かな入力をする。" (interactive "*p") (let (time1 time2 @@ -552,10 +552,10 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; time1 time2 arg)) (t - ;; $B:G=i$NF~NO$OC1FHBG80$G$7$+$"$j$($J$$$H3NDj!#(B + ;; 最初の入力は単独打鍵でしかありえないと確定。 (skk-nicola-insert-single this-command arg) (skk-unread-event next-event))))) - ;; $BE}7WE*2ACM$,$"$k$+$J(B...$B!)(B + ;; 統計的価値があるかな...? ; (setq skk-nicola-temp-data ; (cons ; (list (or (skk-last-command-char) this-command) @@ -565,11 +565,11 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ; third) ; skk-nicola-temp-data)) ) - ;; `skk-kana-input' $B$,2?$bF~NO$7$J$$$h$&$K!"(Bnil $B$rJV$7$F$*$/!#(B + ;; `skk-kana-input' が何も入力しないように、nil を返しておく。 nil) (defun skk-nicola-format-time (time) - "`current-time' $B$NJV$97k2L$rJQ49$7$FI>2A$G$-$k$h$&$K$9$k!#(B" + "`current-time' の返す結果を変換して評価できるようにする。" (let ((time1 (* (float 65536) ;; 2^16 (car time))) (time2 (cadr time)) @@ -578,39 +578,39 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; (+ time1 time2 time3))) (defun skk-nicola-event-to-key (event) - "EVENT $B$rH/@8$9$k%-!<$rl9g$O!"Cf1{$K64$^$l$??F;X%-!<(Bs$B$,J8(B -;; $B;z%-!<(Ba$B$r=$>~$9$k$b$N$+!"J8;z%-!<(B b$B$r=$>~$9$k$b$N$+$r7hDj$7(B -;; $B$J$1$l$P$J$i$J$$!#!J?^#6!K(B +;; 文字キーa、親指キーs、文字キーbの3つのキーが、判定時間以内 +;; の間隔で重複して押された場合は、中央に挟まれた親指キーsが文 +;; 字キーaを修飾するものか、文字キー bを修飾するものかを決定し +;; なければならない。(図6) ;; -;; $B4pK\E*$K$O!"2!2<;~9o$,!"(B $B$h$j?F;X%-!<$K6a$$J8;z%-!<$H$N4V$K(B -;; $BF1;~BG80$,@.N)$9$k$HH=CG$9$k!#(B +;; 基本的には、押下時刻が、 より親指キーに近い文字キーとの間に +;; 同時打鍵が成立すると判断する。 ;; -;; $B?^(B6$B!!!!!!!VJ8;z%-!<(BON$B"*?F;X%-!<(BON$B"*J8;z%-!<(BON$B!W$NNc(B +;; 図6   「文字キーON→親指キーON→文字キーON」の例 ;; -;; $B!!!!J8;z%-!<(Ba $B!!!!!!!!!!!!!!(B|$B!1!1!1(B| -;; $B!!!!!!!!!!!!!!!!!!!!!D!D!D!D!!!!!!!!!D!D!D!D!D!D!D!D(B +;;   文字キーa        | ̄ ̄ ̄| +;;           …………    …………………… ;; -;; $B!!!!?F;X%-!<(Bs $B!!!!!!!!!!!!!!!!!!(B|$B!1!1!1(B| -;; $B!!!!!!!!!!!!!!!!!!!!!D!D!D!D!D!D!!!!!!!!!D!D!D!D!D!D(B +;;   親指キーs          | ̄ ̄ ̄| +;;           ………………    ……………… ;; -;; $B!!!!J8;z%-!<(Bb $B!!!!!!!!!!!!!!!!!!!!!!!!(B|$B!1!1!1(B| -;; $B!!!!!!!!!!!!!!!!!!!!!D!D!D!D!D!D!D!D!D!!!!!!!!!D!D!D(B +;;   文字キーb             | ̄ ̄ ̄| +;;           ………………………    ……… ;; -;; $B!!!!!!!!!!!!!!!!!!!!!!!!!!!!(B|-t1-|-t2-| -;; (t1$B!"(Bt2$B$O6&$KH=Dj;~4V0JFb(B) +;;               |-t1-|-t2-| +;; (t1、t2は共に判定時間以内) ;; -;; t1=t2$B$J$i$P!"J8;z%-!<(Ba$B$H?F;X%-!<(Bs$B$,F1;~BG80!"J8;z%-!<(Bb$B$OC1FHBG80!#(B +;; t1=t2ならば、文字キーaと親指キーsが同時打鍵、文字キーbは単独打鍵。 (defun skk-nicola-treat-triple (first next time1 time2 arg) - "3 $B$D$NBG80$N$&$A!"$I$N(B 2 $BBG80$,F1;~BG80$+H=Dj$7$F%P%C%U%!$KA^F~$9$k!#(B" + "3 つの打鍵のうち、どの 2 打鍵が同時打鍵か判定してバッファに挿入する。" (let ((period1 (- time2 time1)) time3 period2 @@ -619,10 +619,10 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; third) (cond ((sit-for period1 t) - ;; 3 $B$D$a$NBG80$O@)8B;~4VFb$K$J$+$C$?!#F1;~BG80$H3NDj!#(B(< t1 t2) + ;; 3 つめの打鍵は制限時間内になかった。同時打鍵と確定。(< t1 t2) (skk-nicola-insert-double first next arg)) (t - ;; 3 $B$D$a$NBG80$,@)8B;~4VFb$K$"$C$?!#$=$N(B event $B$rD4$Y$k!#(B + ;; 3 つめの打鍵が制限時間内にあった。その event を調べる。 (setq period2 (- (setq time3 (skk-nicola-format-time (current-time))) time2) @@ -633,13 +633,13 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; (cond ((and (skk-nicola-maybe-double-p next third) - ;; ($BMW$i$J$$$+$bCN$i$J$$$,!"B?>/(B `sit-for' $B$NJV$C$F$/$k;~(B - ;; $B4V$H(B `current-time' $B$,JV$9;~4V$H$N4V$K%:%l$,@8$8$k$3$H(B - ;; $B$b$"$k$N$G!"0l1~Hf3S$7$F$*$/(B) + ;; (要らないかも知らないが、多少 `sit-for' の返ってくる時 + ;; 間と `current-time' が返す時間との間にズレが生じること + ;; もあるので、一応比較しておく) (> period1 period2)) - ;; $BA0$N(B 2 $BBG80$OF1;~BG80$G$O$J$$$H3NDj!#(B - ;; $B8e$N(B 2 $BBG80$,F1;~BG80$+$I$&$+$O!"99$Kl9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; time3 arg)) (t - ;; $BA0$N(B 2 $BBG80$,F1;~BG80$H3NDj!#(B(< t1 t2) + ;; 前の 2 打鍵が同時打鍵と確定。(< t1 t2) (skk-nicola-insert-double this-command next arg) (skk-unread-event third-event))))))) (defun skk-nicola-insert-single (command arg &optional parg) - "$BC1FHBG80$r=hM}$9$k!#(B" + "単独打鍵を処理する。" (let ((char last-command-event)) (cl-case command (skk-nicola-self-insert-rshift - ;; ($BJQ49!&%9%Z!<%9(B) + ;; (変換・スペース) (skk-nicola-space-function arg parg)) (skk-nicola-self-insert-lshift - ;; $B:8%7%U%H(B + ;; 左シフト (skk-nicola-lshift-function arg)) (t - ;; $BJ8;z(B + ;; 文字 (skk-nicola-insert-kana char skk-nicola-plain-rule arg))))) (defun skk-nicola-insert-double (first next arg) - "$BF1;~BG80$r=hM}$9$k!#(B" + "同時打鍵を処理する。" (let ((command (cond ((commandp first) first) @@ -686,62 +686,62 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;; (cl-case (lookup-key skk-j-mode-map (or str next)) (skk-nicola-self-insert-rshift - ;; $B1&%7%U%H(B + ;; 右シフト (cl-case command (skk-nicola-self-insert-rshift - ;; [$B1&(B $B1&(B] + ;; [右 右] (skk-bind-last-command-char ?\s (cond (skk-henkan-mode ;; (skk-kanagaki-insert arg) (unless (>= skk-nicola-interval 1) - ;; $BC1FHBG80$rF10l%-!l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; skk-nicola-prefix-suffix-abbrev-chars) (memq next skk-nicola-prefix-suffix-abbrev-chars)) - ;; [gh] suffix $B$N(B $BF~NO(B + ;; [gh] suffix の 入力 (cond ((eq skk-henkan-mode 'active) - ;; $B@\Hx8l$N=hM}(B + ;; 接尾語の処理 (skk-kakutei) (let (skk-kakutei-history) (skk-set-henkan-point-subr)) (insert-and-inherit ?>)) ((eq skk-henkan-mode 'on) - ;; $B@\F,8l$N=hM}(B + ;; 接頭語の処理 (skk-kana-cleanup 'force) (insert-and-inherit ?>) (skk-set-marker skk-henkan-end-point @@ -791,16 +791,16 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; skk-nicola-prefix-suffix-chars) (memq next skk-nicola-prefix-suffix-chars)) - ;; [sl] suffix $B$N(B $BF~NO(B + ;; [sl] suffix の 入力 (cond ((eq skk-henkan-mode 'active) - ;; $B@\Hx8l$N=hM}(B + ;; 接尾語の処理 (skk-kakutei) (let (skk-kakutei-history) (skk-set-henkan-point-subr)) (insert-and-inherit ?>)) ((eq skk-henkan-mode 'on) - ;; $B@\F,8l$N=hM}(B + ;; 接頭語の処理 (skk-kana-cleanup 'force) (insert-and-inherit ?>) (skk-set-marker skk-henkan-end-point @@ -827,7 +827,7 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; ;; [dk] (skk-toggle-characters 1)) (t - ;; [$BJ8;z(B $BJ8;z(B] + ;; [文字 文字] (let ((str (skk-nicola-insert-kana char skk-nicola-plain-rule @@ -854,13 +854,13 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; isearch-cmds)))) (unless (and (< 1 skk-nicola-interval) (eq next char)) - ;; $BC1FHBG80$rF10l%-!l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; nil) (defun skk-nicola-maybe-double-p (first next) - "FIRST $B$H(B NEXT $B$,F1;~BG80$@$C$?$i(B non-nil $B$rJV$9!#(B" + "FIRST と NEXT が同時打鍵だったら non-nil を返す。" (let ((command (cond ((commandp first) first) @@ -887,12 +887,12 @@ abbrev $B$HF1$8%-!<$K$9$k>l9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; (shifts '(skk-nicola-self-insert-lshift skk-nicola-self-insert-rshift))) (or - ;; * $B$I$A$i$+0lJ}$,?F;X(B + ;; * どちらか一方が親指 (or (memq command shifts) (memq (lookup-key skk-j-mode-map (or str next)) shifts)) - ;; * skk-nicola $B$K1w$1$kFCl9g$O(B skk-nicola-prefix-suffix-abbrev-chars $B$r; skk-nicola-toggle-kana-chars))))))) (defun skk-nicola-insert-kana (char rule &optional arg) - "CHAR $B$r(B RULE $B$NCf$+$iC5$7$FF~NO$9$Y$-J8;zNs$r7hDj$9$k!#(B -ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" + "CHAR を RULE の中から探して入力すべき文字列を決定する。 +ARG を与えられた場合はその数だけ文字列を連結して入力する。" (let* ((el (cadr (assq char rule))) (str (when el (cond ((stringp el) @@ -954,19 +954,19 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (skk-nicola-process-okuri)) ((eq skk-henkan-mode 'active) (skk-kakutei))) - ;; $B2?$+$K;H$&$3$H$,$"$k$+$b$7$l$J$$$N$G!"(B - ;; STR $B$rJV$7$F$*$/!#(B + ;; 何かに使うことがあるかもしれないので、 + ;; STR を返しておく。 str)) (defun skk-nicola-process-okuri () - "$BAw$j3+;O$NI8<1$K$h$jAw$j3+;OE@$rG'<1$7!"Aw$j$"$jJQ49$r3+;O$9$k!#(B" + "送り開始の標識により送り開始点を認識し、送りあり変換を開始する。" (let ((okuri (buffer-substring-no-properties (1+ skk-nicola-okuri-flag) (point))) tag) (unless (and (not (eq skk-nicola-okuri-style 'nicola-skk)) - (member okuri '("$B$C(B" "$B%C(B"))) + (member okuri '("っ" "ッ"))) (skk-save-point (goto-char skk-nicola-okuri-flag) (when (eq (following-char) @@ -976,28 +976,28 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (when (member (buffer-substring-no-properties (point) (marker-position skk-nicola-okuri-flag)) - '("$B$C(B" "$B%C(B")) + '("っ" "ッ")) (setq tag 'no-sokuon))) (skk-kanagaki-set-okurigana tag)))) (defun skk-nicola-set-okuri-flag () - "$BAw$j3+;OE@$r(B marker $B$GI8<1$7!"Aw$j$"$jJQ49$NBT$A>uBV$KF~$k!#(B -`*' $B$rA^F~$9$k$3$H$GI8<1$9$k!#(B" + "送り開始点を marker で標識し、送りあり変換の待ち状態に入る。 +`*' を挿入することで標識する。" (interactive) (when (eq skk-henkan-mode 'on) - ;; $B"&%b!<%I$N$H$-$@$15!G=$9$k!#(B + ;; ▽モードのときだけ機能する。 (let ((pt (point))) (unless (and (string= "*" (buffer-substring-no-properties (1- pt) pt)) (markerp skk-nicola-okuri-flag)) - ;; $B4{$KI8<1:Q$_$J$i2?$b$7$J$$!#(B + ;; 既に標識済みなら何もしない。 (skk-set-marker skk-nicola-okuri-flag pt) (insert-and-inherit "*"))))) (defun skk-nicola-space-function (&optional arg parg) - "$B?F;X1&%-!l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (self-insert-command arg))))) (defun skk-nicola-lshift-function (&optional arg) - "$B?F;X:8%-!l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (call-interactively skk-nicola-lshift-function) (funcall skk-nicola-lshift-function arg))) (t - ;; $B2~9T$K;H$&!#(B + ;; 改行に使う。 (if (skk-in-minibuffer-p) (exit-minibuffer) (newline arg))))) @@ -1028,12 +1028,12 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" ;; Pieces of Advice. (defadvice skk-kanagaki-initialize (after skk-nicols-setup activate) - ;; M-x skk-restart $BBP:v$H$7$F(B + ;; M-x skk-restart 対策として (add-hook 'skk-mode-hook 'skk-nicola-setup) (add-hook 'skk-mode-hook 'skk-nicola-setup-modeline)) (defadvice skk-insert (before skk-nicola-update-flag activate) - "$BAw$jBT$A>uBV$r4IM}$9$k!#(B" + "送り待ち状態を管理する。" (when (or (and (markerp skk-nicola-okuri-flag) (<= (point) (marker-position @@ -1042,11 +1042,11 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (setq skk-nicola-okuri-flag nil))) (defadvice skk-kakutei (before skk-nicola-update-flag activate) - "$BAw$jBT$A>uBV$r4IM}$9$k!#(B" + "送り待ち状態を管理する。" (when (and skk-j-mode (eq skk-henkan-mode 'on) (markerp skk-nicola-okuri-flag)) - ;; $B3NDj$9$k$H$-$OAw$j3+;O$NI8<1$r>C$9!#(B + ;; 確定するときは送り開始の標識を消す。 (skk-save-point (goto-char skk-nicola-okuri-flag) (when (eq ?* (following-char)) @@ -1055,7 +1055,7 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (setq skk-nicola-okuri-flag nil)) (defadvice skk-previous-candidate (before skk-nicola-update-flag activate) - "$BAw$jBT$A>uBV$r4IM}$9$k!#(B" + "送り待ち状態を管理する。" (when (or (and (markerp skk-nicola-okuri-flag) (<= (point) (marker-position @@ -1068,8 +1068,8 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (let* ((list (symbol-value (intern (format "skk-%s-plain-rule-list" skk-kanagaki-keyboard-type)))) - (cell1 (rassoc '("$B!"(B") list)) - (cell2 (rassoc '("$B!#(B") list)) + (cell1 (rassoc '("、") list)) + (cell2 (rassoc '("。") list)) marker) (cond ((and (eq skk-kanagaki-state 'kana) @@ -1079,7 +1079,7 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (eq last-command-event (car cell2))) skk-henkan-mode) - ;; $B$J$<$+$3$1$k!#860x2rL@Cf!#(B + ;; なぜかこける。原因解明中。 (cond ((not (eq skk-henkan-mode 'active)) (setq marker skk-henkan-start-point) @@ -1099,7 +1099,7 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" ad-do-it)))) (defadvice skk-isearch-setup-keymap (before skk-nicola-workaround activate) - "$B?F;X%-!<$G%5!<%A$,=*N;$7$F$7$^$o$J$$$h$&$K$9$k!#(B" + "親指キーでサーチが終了してしまわないようにする。" (let ((keys (append skk-nicola-lshift-keys skk-nicola-rshift-keys))) (while keys @@ -1109,7 +1109,7 @@ ARG $B$rM?$($i$l$?>l9g$O$=$N?t$@$1J8;zNs$rO"7k$7$FF~NO$9$k!#(B" (setq keys (cdr keys))))) (defadvice isearch-char-to-string (around skk-nicola-workaround activate) - "$B%(%i!<$,=P$k$H8!:w$,CfCG$7$F;H$$?I$$$N$G!"L[$i$;$k!#(B" + "エラーが出ると検索が中断して使い辛いので、黙らせる。" (cond ((and skk-use-kana-keyboard (featurep 'skk-isearch) (with-current-buffer diff --git a/nicola/skk-oasys.el b/nicola/skk-oasys.el index 4aeb74a7..abe95399 100644 --- a/nicola/skk-oasys.el +++ b/nicola/skk-oasys.el @@ -1,4 +1,4 @@ -;;; skk-oasys.el --- SKK $B$K(B OASYS $BIwF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-oasys.el --- SKK に OASYS 風入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,8 +24,8 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B $BIY;NDL$N%o!<%I%W%m%;%C%5(B OASYS $BIw$N%-!" nil ("$B%](B" . "$B$](B")) ("?" nil "$B!&(B")) - "$BF|K\8l(B 106 $B%-!<%\!<%I$G(B OASYS $BIwF~NO$r$9$k$?$a$N4pK\%k!<%k!#(B") + ("N" nil ("メ" . "め")) ("M" nil ("ソ" . "そ")) ("<" nil ("ネ" . "ね")) + (">" nil ("ポ" . "ぽ")) ("?" nil "・")) + "日本語 106 キーボードで OASYS 風入力をするための基本ルール。") (defconst skk-oasys-keymap-display 'dummy - "$B0J2<$O!"F|K\8l(B 106 $B%-!<%\!<%I$G(B OASYS $BIwF~NO$r$9$k$?$a$N%-!C("(B -$B('(!(!(+(!(!(+(!(!(+(!(!(+(!(!()(B $B('(!(!(+(!(!(+(!(!(+(!(!(+(!(!(+(!(!(+(!(!(%(B -$B("!%$%("$S!<("$:$m("$V$d("$Y$#("(B $B("$W$L("$>$f("$Z$`("$\$o("!+$)("!@!!("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BN $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B\\ $B!o("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -\($BC"$72<$+$i(B 2 $BNs$a$N1&$N(B 2 $B$D$N%-!<$O$=$l$>$l8eB`%-!C%-!<$G$"$k$3$H$r(B -$B0UL#$7$^$9!#(B) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B + "以下は、日本語 106 キーボードで OASYS 風入力をするためのキー配列図です。 + +┌──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┐ +│ ?│ /│ ~│ 「│ 」│ │ [│ ]│ (│ )│ 『│ 』│´ │ +│1 1│2 2│3 3│4 4│5 5│ │6 6│7 7│8 8│9 9│0 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 そ│, ね│. ほ│/ ・│\\ ¥│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +\(但し下から 2 列めの右の 2 つのキーはそれぞれ後退キー、取消キーであることを +意味します。) + +これに基いて以下の 3 つのルールが決定されます。 `skk-oasys-plain-rule-list' `skk-oasys-lshift-rule-list' @@ -134,84 +134,84 @@ ") (defvar skk-oasys-plain-rule-list - '((?1 "$B#1(B") (?2 "$B#2(B") (?3 "$B#3(B") (?4 "$B#4(B") (?5 "$B#5(B") + '((?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "$B#6(B") (?7 "$B#7(B") (?8 "$B#8(B") (?9 "$B#9(B") (?0 "$B#0(B") (?- "$B!](B") - (?^ ("$B!v(B" ."$B!'(B")) (?\\ "$B!o(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") + (?^ ("*" .":")) (?\\ "¥") ;; - (?q "$B!#(B") (?w ("$B%q(B" . "$B$+(B")) (?e ("$B%u(B" . "$B$?(B")) (?r ("$B%3(B" . "$B$3(B")) - (?t ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("ヱ" . "か")) (?e ("ヵ" . "た")) (?r ("コ" . "こ")) + (?t ("サ" . "さ")) ;; - (?y ("$B%i(B" . "$B$i(B")) (?u ("$B%A(B" . "$B$A(B")) (?i ("$B%/(B" . "$B$/(B")) (?o ("$B%D(B" . "$B$D(B")) - (?p "$B!$(B") (?@ "$B!"(B") + (?y ("ラ" . "ら")) (?u ("チ" . "ち")) (?i ("ク" . "く")) (?o ("ツ" . "つ")) + (?p ",") (?@ "、") ;; - (?a ("$B%&(B" . "$B$&(B")) (?s ("$B%7(B" . "$B$7(B")) (?d ("$B%F(B" . "$B$F(B")) (?f ("$B%v(B" . "$B$1(B")) - (?g ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?s ("シ" . "し")) (?d ("テ" . "て")) (?f ("ヶ" . "け")) + (?g ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?j ("$B%H(B" . "$B$H(B")) (?k ("$B%-(B" . "$B$-(B")) (?l ("$B%p(B" . "$B$$(B")) - (?\; ("$B%s(B" . "$B$s(B")) + (?h ("ハ" . "は")) (?j ("ト" . "と")) (?k ("キ" . "き")) (?l ("ヰ" . "い")) + (?\; ("ン" . "ん")) ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?n ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + (?n ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・")) + "単独打鍵時の入力ルール。") (defvar skk-oasys-rshift-rule-list - '((?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + '((?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!J(B") (?9 "$B!K(B") (?0 "$B!X(B") (?- "$B!Y(B") (?^ "$B!!(B") - (?\\ "$B!!(B") + (?6 "[") (?7 "]") (?8 "(") (?9 ")") (?0 "『") (?- "』") (?^ " ") + (?\\ " ") ;; - (?q ("$B%!(B" . skk-kanagaki-handakuten)) - (?w ("$B%,(B" . "$B$,(B")) (?e ("$B%@(B" . "$B$@(B")) (?r ("$B%4(B" . "$B$4(B")) - (?t ("$B%6(B" . "$B$6(B")) + (?q ("ァ" . skk-kanagaki-handakuten)) + (?w ("ガ" . "が")) (?e ("ダ" . "だ")) (?r ("ゴ" . "ご")) + (?t ("ザ" . "ざ")) ;; - (?y ("$B%h(B" . "$B$h(B")) (?u ("$B%K(B" . "$B$K(B")) (?i ("$B%k(B" . "$B$k(B")) (?o ("$B%^(B" . "$B$^(B")) - (?p ("$B%'(B" . "$B$'(B")) (?@ ("$B!"(B" . "$B!!(B")) + (?y ("ヨ" . "よ")) (?u ("ニ" . "に")) (?i ("ル" . "る")) (?o ("マ" . "ま")) + (?p ("ェ" . "ぇ")) (?@ ("、" . " ")) ;; - (?a "$B%t(B") (?s ("$B%8(B" . "$B$8(B")) (?d ("$B%G(B" . "$B$G(B")) (?f ("$B%2(B" . "$B$2(B")) - (?g ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?s ("ジ" . "じ")) (?d ("デ" . "で")) (?f ("ゲ" . "げ")) + (?g ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?j ("$B%*(B" . "$B$*(B")) (?k ("$B%N(B" . "$B$N(B")) (?l ("$B%g(B" . "$B$g(B")) - (?\; ("$B%C(B" . "$B$C(B")) + (?h ("ミ" . "み")) (?j ("オ" . "お")) (?k ("ノ" . "の")) (?l ("ョ" . "ょ")) + (?\; ("ッ" . "っ")) ;; - (?z ("$B%%(B" . "$B!%(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ゥ" . ".")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?n ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B!&(B" . "$B$)(B")) + (?n ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("・" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-oasys-lshift-rule-list - '((?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + '((?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!J(B") (?9 "$B!K(B") (?0 "$B!X(B") (?- "$B!Y(B") - (?^ ("$B!!(B" . "$B!-(B")) (?\\ ("$B!!(B" . "$B!@(B")) + (?6 "[") (?7 "]") (?8 "(") (?9 ")") (?0 "『") (?- "』") + (?^ (" " . "´")) (?\\ (" " . "\")) ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?e ("$B%j(B" . "$B$j(B")) (?r ("$B%c(B" . "$B$c(B")) - (?t ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?e ("リ" . "り")) (?r ("ャ" . "ゃ")) + (?t ("レ" . "れ")) ;; - (?y ("$B%Q(B" . "$B$Q(B")) (?u ("$B%B(B" . "$B$B(B")) (?i ("$B%0(B" . "$B$0(B")) (?o ("$B%D(B" . "$B$E(B")) - (?p ("$B%T(B" . "$B$T(B")) (?@ "$B!!(B") + (?y ("パ" . "ぱ")) (?u ("ヂ" . "ぢ")) (?i ("グ" . "ぐ")) (?o ("ツ" . "づ")) + (?p ("ピ" . "ぴ")) (?@ " ") ;; - (?a ("$B%r(B" . "$B$r(B")) (?s ("$B%"(B" . "$B$"(B")) (?d ("$B%J(B" . "$B$J(B")) (?f ("$B%e(B" . "$B$e(B")) - (?g ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?s ("ア" . "あ")) (?d ("ナ" . "な")) (?f ("ュ" . "ゅ")) + (?g ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?j ("$B%I(B" . "$B$I(B")) (?k ("$B%.(B" . "$B$.(B")) (?l ("$B%](B" . "$B$](B")) - (?\; ("$B%C(B" . "$B$C(B")) + (?h ("バ" . "ば")) (?j ("ド" . "ど")) (?k ("ギ" . "ぎ")) (?l ("ポ" . "ぽ")) + (?\; ("ッ" . "っ")) ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?n ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B!!(B" . skk-kanagaki-dakuten)) + (?n ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ (" " . skk-kanagaki-dakuten)) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-omelet-colemak.el b/nicola/skk-omelet-colemak.el index 664efa28..fba61194 100644 --- a/nicola/skk-omelet-colemak.el +++ b/nicola/skk-omelet-colemak.el @@ -1,4 +1,4 @@ -;;; skk-omelet-colemak.el --- SKK $B$K(B omelet (Colemak) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-omelet-colemak.el --- SKK に omelet (Colemak) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,13 +24,13 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA $B5,3J$K=`5r$7$?(B omelet $BFH<+(B Colemak $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BK $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B +以下は、US Colemak 配列キーボードで omelet 入力するためのキー配列図です。 + +┌──┐ +│ヵ ̄│ +│` `│ +├──┼──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┐ +│!?│@/│#~│$「│%」│ │ [│&]│”“│【(│】)│…『│+』│ +│1  │2  │3  │4  │5  │ │6  │7  │8  │9  │0  │- -│= =│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┼──┐ +│ゐぁ│がえ│だり│ごゃ│ざれ│ │ぱよ│ぢに│ぐる│づま│ぴぇ│{〃│}゜│|\│ +│Q 。│W か│F た│P こ│G さ│ │J ら│L ち│U く│Y つ│; ,│[ 、│] ゛│\\ ¥│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┴──┘ +│ヴを│じあ│でな│げゅ│ぜも│ │ばみ│どお│ぎの│ぽょ│ヶっ│:‘│ +│A う│R し│S て│T け│D せ│ │H は│N と│E き│I い│O ん│' ’│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┘ +│ゑぅ│びー│ずろ│ぶや│べぃ│ │ぷぬ│ぞゆ│ぺむ│ぼわ│ゎぉ│ +│Z .│X ひ│C す│V ふ│B へ│ │K め│M そ│, ね│. ほ│/ ・│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-omelet-colemak-plain-rule-list' `skk-omelet-colemak-lshift-rule-list' @@ -115,88 +115,88 @@ ") (defvar skk-omelet-colemak-plain-rule-list - '((?\` "$B!.(B") + '((?\` "`") ;; (?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "$B!](B") (?= "$B!a(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") (?= "=") ;; - (?q "$B!#(B") (?w ("$B%+(B" . "$B$+(B")) (?f ("$B%?(B" . "$B$?(B")) (?p ("$B%3(B" . "$B$3(B")) - (?g ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("カ" . "か")) (?f ("タ" . "た")) (?p ("コ" . "こ")) + (?g ("サ" . "さ")) ;; - (?j ("$B%i(B" . "$B$i(B")) (?l ("$B%A(B" . "$B$A(B")) (?u ("$B%/(B" . "$B$/(B")) (?y ("$B%D(B" . "$B$D(B")) - (?\; "$B!"(B") (?\[ "$B!"(B") (?\] skk-kanagaki-dakuten) (?\\ "$B!o(B") + (?j ("ラ" . "ら")) (?l ("チ" . "ち")) (?u ("ク" . "く")) (?y ("ツ" . "つ")) + (?\; "、") (?\[ "、") (?\] skk-kanagaki-dakuten) (?\\ "¥") ;; - (?a ("$B%&(B" . "$B$&(B")) (?r ("$B%7(B" . "$B$7(B")) (?s ("$B%F(B" . "$B$F(B")) (?t ("$B%1(B" . "$B$1(B")) - (?d ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?r ("シ" . "し")) (?s ("テ" . "て")) (?t ("ケ" . "け")) + (?d ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?n ("$B%H(B" . "$B$H(B")) (?e ("$B%-(B" . "$B$-(B")) (?i ("$B%$(B" . "$B$$(B")) - (?o ("$B%s(B" . "$B$s(B")) (?\' "$B!G(B") + (?h ("ハ" . "は")) (?n ("ト" . "と")) (?e ("キ" . "き")) (?i ("イ" . "い")) + (?o ("ン" . "ん")) (?\' "’") ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?k ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B") + (?k ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-omelet-colemak-rshift-rule-list - '((?` "$B%u(B") + '((?` "ヵ") ;; - (?1 "$B!*(B") (?2 "$B!w(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + (?1 "!") (?2 "@") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!H(B") (?9 "$B!J(B") (?0 "$B!K(B") (?- "$B!X(B") (?= "$B!Y(B") + (?6 "[") (?7 "]") (?8 "“") (?9 "(") (?0 ")") (?- "『") (?= "』") ;; - (?q ("$B%p(B" . "$B$p(B")) (?w ("$B%,(B" . "$B$,(B")) (?f ("$B%@(B" . "$B$@(B")) (?p ("$B%4(B" . "$B$4(B")) - (?g ("$B%6(B" . "$B$6(B")) + (?q ("ヰ" . "ゐ")) (?w ("ガ" . "が")) (?f ("ダ" . "だ")) (?p ("ゴ" . "ご")) + (?g ("ザ" . "ざ")) ;; - (?j ("$B%h(B" . "$B$h(B")) (?l ("$B%K(B" . "$B$K(B")) (?u ("$B%k(B" . "$B$k(B")) (?y ("$B%^(B" . "$B$^(B")) - (?\; ("$B%'(B" . "$B$'(B")) (?\[ "$B!7(B") (?\] skk-kanagaki-handakuten) (?\\ "$B!C(B") + (?j ("ヨ" . "よ")) (?l ("ニ" . "に")) (?u ("ル" . "る")) (?y ("マ" . "ま")) + (?\; ("ェ" . "ぇ")) (?\[ "〃") (?\] skk-kanagaki-handakuten) (?\\ "|") ;; - (?a "$B%t(B") (?r ("$B%8(B" . "$B$8(B")) (?s ("$B%G(B" . "$B$G(B")) (?t ("$B%2(B" . "$B$2(B")) - (?d ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?r ("ジ" . "じ")) (?s ("デ" . "で")) (?t ("ゲ" . "げ")) + (?d ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?n ("$B%*(B" . "$B$*(B")) (?e ("$B%N(B" . "$B$N(B")) (?i ("$B%g(B" . "$B$g(B")) - (?o ("$B%C(B" . "$B$C(B")) (?' "$B!F(B") + (?h ("ミ" . "み")) (?n ("オ" . "お")) (?e ("ノ" . "の")) (?i ("ョ" . "ょ")) + (?o ("ッ" . "っ")) (?' "‘") ;; - (?z ("$B%q(B" . "$B$q(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ヱ" . "ゑ")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?k ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B%)(B" . "$B$)(B")) + (?k ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-omelet-colemak-lshift-rule-list - '((?\` "$B!1(B") + '((?\` " ̄") ;; - (?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + (?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!N(B") (?7 "$B!u(B") (?8 "$B!I(B") (?9 "$B!Z(B") (?0 "$B![(B") (?- "$B!D(B") (?= "$B!\(B") + (?6 "[") (?7 "&") (?8 "”") (?9 "【") (?0 "】") (?- "…") (?= "+") ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?f ("$B%j(B" . "$B$j(B")) (?p ("$B%c(B" . "$B$c(B")) - (?g ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?f ("リ" . "り")) (?p ("ャ" . "ゃ")) + (?g ("レ" . "れ")) ;; - (?j ("$B%Q(B" . "$B$Q(B")) (?l ("$B%B(B" . "$B$B(B")) (?u ("$B%0(B" . "$B$0(B")) (?y ("$B%E(B" . "$B$E(B")) - (?\; ("$B%T(B" . "$B$T(B")) (?\[ "$B!P(B") (?\] "$B!Q(B") (?\\ "$B!d(B") + (?j ("パ" . "ぱ")) (?l ("ヂ" . "ぢ")) (?u ("グ" . "ぐ")) (?y ("ヅ" . "づ")) + (?\; ("ピ" . "ぴ")) (?\[ "{") (?\] "}") (?\\ ">") ;; - (?a ("$B%r(B" . "$B$r(B")) (?r ("$B%"(B" . "$B$"(B")) (?s ("$B%J(B" . "$B$J(B")) (?t ("$B%e(B" . "$B$e(B")) - (?d ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?r ("ア" . "あ")) (?s ("ナ" . "な")) (?t ("ュ" . "ゅ")) + (?d ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?n ("$B%I(B" . "$B$I(B")) (?e ("$B%.(B" . "$B$.(B")) (?i ("$B%](B" . "$B$](B")) - (?o "$B!((B") (?' "$B!'(B") + (?h ("バ" . "ば")) (?n ("ド" . "ど")) (?e ("ギ" . "ぎ")) (?i ("ポ" . "ぽ")) + (?o ";") (?' ":") ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?k ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B%n(B" . "$B$n(B")) + (?k ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-omelet-dvorak.el b/nicola/skk-omelet-dvorak.el index 2f8eaedd..36f44d04 100644 --- a/nicola/skk-omelet-dvorak.el +++ b/nicola/skk-omelet-dvorak.el @@ -1,4 +1,4 @@ -;;; skk-omelet-dvorak.el --- SKK $B$K(B omelet (Dvorak) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-omelet-dvorak.el --- SKK に omelet (Dvorak) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,13 +24,13 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA $B5,3J$K=`5r$7$?(B omelet $BFH<+(B Dvorak $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("(B -$B("(B; $B!%("(BQ $B$R("(BJ $B$9("(BK $B$U("(BX $B$X("(B $B("(BB $B$a("(BM $B$=("(BW $B$M("(BV $B$[("(BZ $B!&("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B +以下は、ANSI Dvorak 配列キーボードで omelet 入力するためのキー配列図です。 + +┌──┐ +│  ̄│ +│` `│ +├──┼──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ +│!?│@/│#~│$「│%」│ │ “│&”│+*│【(│】)│{『│}』│|\│ +│1  │2  │3  │4  │5  │ │6  │7  │8  │9  │0  │[ [│] ]│\\ ¥│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┼──┘ +│ゐぁ│がえ│だり│ごゃ│ざれ│ │ぱよ│ぢに│ぐる│づま│ぴぇ│/〃│=゜│ +│' 。│, か│. た│P こ│Y さ│ │F ら│G ち│C く│R つ│L ,│/ 、│= ゛│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┼──┘ +│ヴを│じあ│でな│げゅ│ぜも│ │ばみ│どお│ぎの│ぽょ│ヶっ│:…│ +│A う│O し│E て│U け│I せ│ │D は│H と│T き│N い│S ん│- -│ +├──┼──┼──┼──┼──┤ ├──┼──┼──┼──┼──┼──┘ +│ゑぅ│びー│ずろ│ぶや│べぃ│ │ぷぬ│ぞゆ│ぺむ│ぼわ│ゎぉ│ +│; .│Q ひ│J す│K ふ│X へ│ │B め│M そ│W ね│V ほ│Z ・│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-omelet-dvorak-plain-rule-list' `skk-omelet-dvorak-lshift-rule-list' @@ -115,91 +115,91 @@ ") (defvar skk-omelet-dvorak-plain-rule-list - '((?` "$B!.(B") + '((?` "`") ;; (?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?\[ "$B!N(B") (?\] "$B!O(B") - (?\\ "$B!o(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?\[ "[") (?\] "]") + (?\\ "¥") ;; - (?' "$B!#(B") (?, ("$B%+(B" . "$B$+(B")) (?. ("$B%?(B" . "$B$?(B")) (?p ("$B%3(B" . "$B$3(B")) - (?y ("$B%5(B" . "$B$5(B")) + (?' "。") (?, ("カ" . "か")) (?. ("タ" . "た")) (?p ("コ" . "こ")) + (?y ("サ" . "さ")) ;; - (?f ("$B%i(B" . "$B$i(B")) (?g ("$B%A(B" . "$B$A(B")) (?c ("$B%/(B" . "$B$/(B")) (?r ("$B%D(B" . "$B$D(B")) - (?l "$B!$(B") (?/ "$B!"(B") (?= skk-kanagaki-dakuten) + (?f ("ラ" . "ら")) (?g ("チ" . "ち")) (?c ("ク" . "く")) (?r ("ツ" . "つ")) + (?l ",") (?/ "、") (?= skk-kanagaki-dakuten) ;; - (?a ("$B%&(B" . "$B$&(B")) (?o ("$B%7(B" . "$B$7(B")) (?e ("$B%F(B" . "$B$F(B")) (?u ("$B%1(B" . "$B$1(B")) - (?i ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?o ("シ" . "し")) (?e ("テ" . "て")) (?u ("ケ" . "け")) + (?i ("セ" . "せ")) ;; - (?d ("$B%O(B" . "$B$O(B")) (?h ("$B%H(B" . "$B$H(B")) (?t ("$B%-(B" . "$B$-(B")) (?n ("$B%$(B" . "$B$$(B")) - (?s ("$B%s(B" . "$B$s(B")) (?- "$B!](B") + (?d ("ハ" . "は")) (?h ("ト" . "と")) (?t ("キ" . "き")) (?n ("イ" . "い")) + (?s ("ン" . "ん")) (?- "-") ;; - (?\; "$B!%(B") (?q ("$B%R(B" . "$B$R(B")) (?j ("$B%9(B" . "$B$9(B")) (?k ("$B%U(B" . "$B$U(B")) - (?x ("$B%X(B" . "$B$X(B")) + (?\; ".") (?q ("ヒ" . "ひ")) (?j ("ス" . "す")) (?k ("フ" . "ふ")) + (?x ("ヘ" . "へ")) ;; - (?b ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?w ("$B%M(B" . "$B$M(B")) (?v ("$B%[(B" . "$B$[(B")) - (?z "$B!&(B") + (?b ("メ" . "め")) (?m ("ソ" . "そ")) (?w ("ネ" . "ね")) (?v ("ホ" . "ほ")) + (?z "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-omelet-dvorak-rshift-rule-list - '((?` ("$B%u(B" . "$B!1(B")) + '((?` ("ヵ" . " ̄")) ;; - (?1 "$B!*(B") (?2 "$B!w(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + (?1 "!") (?2 "@") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!H(B") (?7 "$B!I(B") (?8 "$B!v(B") (?9 "$B!J(B") (?0 "$B!K(B") (?\[ "$B!X(B") (?\] "$B!Y(B") - (?\\ "$B!@(B") + (?6 "“") (?7 "”") (?8 "*") (?9 "(") (?0 ")") (?\[ "『") (?\] "』") + (?\\ "\") ;; - (?' ("$B%p(B" . "$B$p(B")) (?, ("$B%,(B" . "$B$,(B")) (?. ("$B%@(B" . "$B$@(B")) (?p ("$B%4(B" . "$B$4(B")) - (?y ("$B%6(B" . "$B$6(B")) + (?' ("ヰ" . "ゐ")) (?, ("ガ" . "が")) (?. ("ダ" . "だ")) (?p ("ゴ" . "ご")) + (?y ("ザ" . "ざ")) ;; - (?f ("$B%h(B" . "$B$h(B")) (?g ("$B%K(B" . "$B$K(B")) (?c ("$B%k(B" . "$B$k(B")) (?r ("$B%^(B" . "$B$^(B")) - (?l ("$B%'(B" . "$B$'(B")) (?/ "$B!7(B") (?= skk-kanagaki-handakuten) + (?f ("ヨ" . "よ")) (?g ("ニ" . "に")) (?c ("ル" . "る")) (?r ("マ" . "ま")) + (?l ("ェ" . "ぇ")) (?/ "〃") (?= skk-kanagaki-handakuten) ;; - (?a "$B%t(B") (?o ("$B%8(B" . "$B$8(B")) (?e ("$B%G(B" . "$B$G(B")) (?u ("$B%2(B" . "$B$2(B")) - (?i ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?o ("ジ" . "じ")) (?e ("デ" . "で")) (?u ("ゲ" . "げ")) + (?i ("ゼ" . "ぜ")) ;; - (?d ("$B%_(B" . "$B$_(B")) (?h ("$B%*(B" . "$B$*(B")) (?t ("$B%N(B" . "$B$N(B")) (?n ("$B%g(B" . "$B$g(B")) - (?s ("$B%C(B" . "$B$C(B")) (?- "$B!D(B") + (?d ("ミ" . "み")) (?h ("オ" . "お")) (?t ("ノ" . "の")) (?n ("ョ" . "ょ")) + (?s ("ッ" . "っ")) (?- "…") ;; - (?\; ("$B%q(B" . "$B$q(B")) (?q ("$B%S(B" . "$B$S(B")) (?j ("$B%:(B" . "$B$:(B")) - (?k ("$B%V(B" . "$B$V(B")) (?x ("$B%Y(B" . "$B$Y(B")) + (?\; ("ヱ" . "ゑ")) (?q ("ビ" . "び")) (?j ("ズ" . "ず")) + (?k ("ブ" . "ぶ")) (?x ("ベ" . "べ")) ;; - (?b ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?w ("$B%`(B" . "$B$`(B")) (?v ("$B%o(B" . "$B$o(B")) - (?z ("$B%)(B" . "$B$)(B")) + (?b ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?w ("ム" . "む")) (?v ("ワ" . "わ")) + (?z ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-omelet-dvorak-lshift-rule-list - '((?` "$B!1(B") + '((?` " ̄") ;; - (?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + (?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!H(B") (?7 ("$B!I(B" . "$B!u(B")) (?8 "$B!\(B") (?9 "$B!Z(B") (?0 "$B![(B") (?\[ "$B!D(B") - (?\] "$B!\(B") (?\\ "$B!C(B") + (?6 "“") (?7 ("”" . "&")) (?8 "+") (?9 "【") (?0 "】") (?\[ "…") + (?\] "+") (?\\ "|") ;; - (?' ("$B%!(B" . "$B$!(B")) (?, ("$B%((B" . "$B$((B")) (?. ("$B%j(B" . "$B$j(B")) (?p ("$B%c(B" . "$B$c(B")) - (?y ("$B%l(B" . "$B$l(B")) + (?' ("ァ" . "ぁ")) (?, ("エ" . "え")) (?. ("リ" . "り")) (?p ("ャ" . "ゃ")) + (?y ("レ" . "れ")) ;; - (?f ("$B%Q(B" . "$B$Q(B")) (?g ("$B%B(B" . "$B$B(B")) (?c ("$B%0(B" . "$B$0(B")) (?r ("$B%E(B" . "$B$E(B")) - (?l ("$B%T(B" . "$B$T(B")) (?/ "$B!?(B") (?= "$B!a(B") + (?f ("パ" . "ぱ")) (?g ("ヂ" . "ぢ")) (?c ("グ" . "ぐ")) (?r ("ヅ" . "づ")) + (?l ("ピ" . "ぴ")) (?/ "/") (?= "=") ;; - (?a ("$B%r(B" . "$B$r(B")) (?o ("$B%"(B" . "$B$"(B")) (?e ("$B%J(B" . "$B$J(B")) (?u ("$B%e(B" . "$B$e(B")) - (?i ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?o ("ア" . "あ")) (?e ("ナ" . "な")) (?u ("ュ" . "ゅ")) + (?i ("モ" . "も")) ;; - (?d ("$B%P(B" . "$B$P(B")) (?h ("$B%I(B" . "$B$I(B")) (?t ("$B%.(B" . "$B$.(B")) (?n ("$B%](B" . "$B$](B")) - (?s "$B%v(B") (?- "$B!'(B") + (?d ("バ" . "ば")) (?h ("ド" . "ど")) (?t ("ギ" . "ぎ")) (?n ("ポ" . "ぽ")) + (?s "ヶ") (?- ":") ;; - (?\; ("$B%%(B" . "$B$%(B")) (?q "$B!<(B") (?j ("$B%m(B" . "$B$m(B")) (?k ("$B%d(B" . "$B$d(B")) - (?x ("$B%#(B" . "$B$#(B")) + (?\; ("ゥ" . "ぅ")) (?q "ー") (?j ("ロ" . "ろ")) (?k ("ヤ" . "や")) + (?x ("ィ" . "ぃ")) ;; - (?b ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?w ("$B%Z(B" . "$B$Z(B")) (?v ("$B%\(B" . "$B$\(B")) - (?z ("$B%n(B" . "$B$n(B")) + (?b ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?w ("ペ" . "ぺ")) (?v ("ボ" . "ぼ")) + (?z ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-omelet-jis.el b/nicola/skk-omelet-jis.el index d20b8fb0..81601450 100644 --- a/nicola/skk-omelet-jis.el +++ b/nicola/skk-omelet-jis.el @@ -1,4 +1,4 @@ -;;; skk-omelet-jis.el --- SKK $B$K(B omelet (JIS) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-omelet-jis.el --- SKK に omelet (JIS) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,13 +24,13 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA $B5,3J$K=`5r$7$?(B omelet $BFH<+(B JIS $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("!2!G("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BN $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B\\ $B!o("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B +以下は、日本語 106 キーボードで omelet 入力するためのキー配列図です。 + +┌──┬──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ +│!?│“/│”~│#「│%」│ │ [│ ]│【(│】)│{『│}』│=‘│_’│ +│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 そ│, ね│. ほ│/ ・│\\ ¥│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-omelet-jis-plain-rule-list' `skk-omelet-jis-lshift-rule-list' @@ -118,82 +118,82 @@ (defvar skk-omelet-jis-plain-rule-list '((?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "$B!](B") (?^ "$B!9(B") (?\\ "$B!o(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") (?^ "々") (?\\ "¥") ;; - (?q "$B!#(B") (?w ("$B%+(B" . "$B$+(B")) (?e ("$B%?(B" . "$B$?(B")) (?r ("$B%3(B" . "$B$3(B")) - (?t ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("カ" . "か")) (?e ("タ" . "た")) (?r ("コ" . "こ")) + (?t ("サ" . "さ")) ;; - (?y ("$B%i(B" . "$B$i(B")) (?u ("$B%A(B" . "$B$A(B")) (?i ("$B%/(B" . "$B$/(B")) (?o ("$B%D(B" . "$B$D(B")) - (?p "$B!$(B") (?@ "$B!"(B") (?\[ skk-kanagaki-dakuten) + (?y ("ラ" . "ら")) (?u ("チ" . "ち")) (?i ("ク" . "く")) (?o ("ツ" . "つ")) + (?p ",") (?@ "、") (?\[ skk-kanagaki-dakuten) ;; - (?a ("$B%&(B" . "$B$&(B")) (?s ("$B%7(B" . "$B$7(B")) (?d ("$B%F(B" . "$B$F(B")) (?f ("$B%1(B" . "$B$1(B")) - (?g ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?s ("シ" . "し")) (?d ("テ" . "て")) (?f ("ケ" . "け")) + (?g ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?j ("$B%H(B" . "$B$H(B")) (?k ("$B%-(B" . "$B$-(B")) (?l ("$B%$(B" . "$B$$(B")) - (?\; ("$B%s(B" . "$B$s(B")) (?: "$B!'(B") (?\] "$B!D(B") + (?h ("ハ" . "は")) (?j ("ト" . "と")) (?k ("キ" . "き")) (?l ("イ" . "い")) + (?\; ("ン" . "ん")) (?: ":") (?\] "…") ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?n ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B") + (?n ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-omelet-jis-rshift-rule-list - '((?1 "$B!*(B") (?2 "$B!H(B") (?3 "$B!I(B") (?4 "$B!t(B") (?5 "$B!s(B") + '((?1 "!") (?2 "“") (?3 "”") (?4 "#") (?5 "%") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!J(B") (?9 "$B!K(B") (?0 "$B!X(B") (?- "$B!Y(B") - (?^ ("$B!0(B" . "$B!F(B")) (?\\ ("$B!C(B" . "$B!G(B")) + (?6 "[") (?7 "]") (?8 "(") (?9 ")") (?0 "『") (?- "』") + (?^ ("^" . "‘")) (?\\ ("|" . "’")) ;; - (?q ("$B%p(B" . "$B$p(B")) (?w ("$B%,(B" . "$B$,(B")) (?e ("$B%@(B" . "$B$@(B")) (?r ("$B%4(B" . "$B$4(B")) - (?t ("$B%6(B" . "$B$6(B")) + (?q ("ヰ" . "ゐ")) (?w ("ガ" . "が")) (?e ("ダ" . "だ")) (?r ("ゴ" . "ご")) + (?t ("ザ" . "ざ")) ;; - (?y ("$B%h(B" . "$B$h(B")) (?u ("$B%K(B" . "$B$K(B")) (?i ("$B%k(B" . "$B$k(B")) (?o ("$B%^(B" . "$B$^(B")) - (?p ("$B%'(B" . "$B$'(B")) (?@ "$B!w(B") (?\[ skk-kanagaki-handakuten) + (?y ("ヨ" . "よ")) (?u ("ニ" . "に")) (?i ("ル" . "る")) (?o ("マ" . "ま")) + (?p ("ェ" . "ぇ")) (?@ "@") (?\[ skk-kanagaki-handakuten) ;; - (?a "$B%t(B") (?s ("$B%8(B" . "$B$8(B")) (?d ("$B%G(B" . "$B$G(B")) (?f ("$B%2(B" . "$B$2(B")) - (?g ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?s ("ジ" . "じ")) (?d ("デ" . "で")) (?f ("ゲ" . "げ")) + (?g ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?j ("$B%*(B" . "$B$*(B")) (?k ("$B%N(B" . "$B$N(B")) (?l ("$B%g(B" . "$B$g(B")) - (?\; ("$B%C(B" . "$B$C(B")) (?: "$B!((B") (?\] "$B!=(B") + (?h ("ミ" . "み")) (?j ("オ" . "お")) (?k ("ノ" . "の")) (?l ("ョ" . "ょ")) + (?\; ("ッ" . "っ")) (?: ";") (?\] "―") ;; - (?z ("$B%q(B" . "$B$q(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ヱ" . "ゑ")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?n ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B%)(B" . "$B$)(B")) + (?n ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-omelet-jis-lshift-rule-list - '((?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + '((?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!Z(B") (?9 "$B![(B") (?0 "$B!P(B") (?- "$B!Q(B") (?^ "$B!a(B") - (?\\ "$B!2(B") + (?6 "[") (?7 "]") (?8 "【") (?9 "】") (?0 "{") (?- "}") (?^ "=") + (?\\ "_") ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?e ("$B%j(B" . "$B$j(B")) (?r ("$B%c(B" . "$B$c(B")) - (?t ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?e ("リ" . "り")) (?r ("ャ" . "ゃ")) + (?t ("レ" . "れ")) ;; - (?y ("$B%Q(B" . "$B$Q(B")) (?u ("$B%B(B" . "$B$B(B")) (?i ("$B%0(B" . "$B$0(B")) (?o ("$B%E(B" . "$B$E(B")) - (?p ("$B%T(B" . "$B$T(B")) (?@ "$B!_(B") (?\[ "$B!7(B") + (?y ("パ" . "ぱ")) (?u ("ヂ" . "ぢ")) (?i ("グ" . "ぐ")) (?o ("ヅ" . "づ")) + (?p ("ピ" . "ぴ")) (?@ "×") (?\[ "〃") ;; - (?a ("$B%r(B" . "$B$r(B")) (?s ("$B%"(B" . "$B$"(B")) (?d ("$B%J(B" . "$B$J(B")) (?f ("$B%e(B" . "$B$e(B")) - (?g ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?s ("ア" . "あ")) (?d ("ナ" . "な")) (?f ("ュ" . "ゅ")) + (?g ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?j ("$B%I(B" . "$B$I(B")) (?k ("$B%.(B" . "$B$.(B")) (?l ("$B%](B" . "$B$](B")) - (?\; "$B%v(B") (?: ("$B%u(B" . "$B!v(B")) (?\] "$B!\(B") + (?h ("バ" . "ば")) (?j ("ド" . "ど")) (?k ("ギ" . "ぎ")) (?l ("ポ" . "ぽ")) + (?\; "ヶ") (?: ("ヵ" . "*")) (?\] "+") ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?n ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B%n(B" . "$B$n(B")) + (?n ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/nicola/skk-omelet-us.el b/nicola/skk-omelet-us.el index 86b281dc..aaad0720 100644 --- a/nicola/skk-omelet-us.el +++ b/nicola/skk-omelet-us.el @@ -1,4 +1,4 @@ -;;; skk-omelet-us.el --- SKK $B$K(B omelet (US) $BF~NO4D6-$rDs6!(B -*- coding: iso-2022-jp -*- +;;; skk-omelet-us.el --- SKK に omelet (US) 入力環境を提供 -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Itsushi Minoura @@ -24,13 +24,13 @@ ;;; Commentary: -;; $B$3$N%U%!%$%k$O(B NICOLA $B5,3J$K=`5r$7$?(B omelet $BFH<+(B US $BG[Ns$H$=$l$r$f("$Z$`("$\$o("$n$)("(B -$B("(BZ $B!%("(BX $B$R("(BC $B$9("(BV $B$U("(BB $B$X("(B $B("(BN $B$a("(BM $B$=("(B, $B$M("(B. $B$[("(B/ $B!&("(B -$B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B $B(&(!(!(*(!(!(*(!(!(*(!(!(*(!(!(%(B - -$B3FOH$NJ8;z$O0J2<$N$h$&$K=q$+$l$F$$$^$9!#(B - - $B:82<(B $B!D(B ASCII $BJ8;z(B - $B1&2<(B $B!D(B $B?F;X%7%U%H$7$J$$$GF~NO$5$l$k$Y$-J8;z(B ($BC1FHBG80(B) - $B1&>e(B $B!D(B $BF1B&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (straight shift) - $B:8>e(B $B!D(B $BH?BPB&?F;X%7%U%H$K$h$jF~NO$5$l$k$Y$-J8;z(B (cross shift) - -$B$3$l$K4p$$$F0J2<$N(B 3 $B$D$N%k!<%k$,7hDj$5$l$^$9!#(B +以下は、US 101 キーボードで omelet 入力するためのキー配列図です。 + +┌──┐ +│ヵ ̄│ +│` `│ +├──┼──┬──┬──┬──┐ ┌──┬──┬──┬──┬──┬──┬──┐ +│!?│@/│#~│$「│%」│ │ [│&]│”“│【(│】)│…『│+』│ +│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 そ│, ね│. ほ│/ ・│ +└──┴──┴──┴──┴──┘ └──┴──┴──┴──┴──┘ + +各枠の文字は以下のように書かれています。 + + 左下 … ASCII 文字 + 右下 … 親指シフトしないで入力されるべき文字 (単独打鍵) + 右上 … 同側親指シフトにより入力されるべき文字 (straight shift) + 左上 … 反対側親指シフトにより入力されるべき文字 (cross shift) + +これに基いて以下の 3 つのルールが決定されます。 `skk-omelet-us-plain-rule-list' `skk-omelet-us-lshift-rule-list' @@ -115,88 +115,88 @@ ") (defvar skk-omelet-us-plain-rule-list - '((?\` ("$B!'(B" . "$B!.(B")) + '((?\` (":" . "`")) ;; (?1 "1") (?2 "2") (?3 "3") (?4 "4") (?5 "5") ;; - (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "$B!](B") (?= "$B!a(B") + (?6 "6") (?7 "7") (?8 "8") (?9 "9") (?0 "0") (?- "-") (?= "=") ;; - (?q "$B!#(B") (?w ("$B%+(B" . "$B$+(B")) (?e ("$B%?(B" . "$B$?(B")) (?r ("$B%3(B" . "$B$3(B")) - (?t ("$B%5(B" . "$B$5(B")) + (?q "。") (?w ("カ" . "か")) (?e ("タ" . "た")) (?r ("コ" . "こ")) + (?t ("サ" . "さ")) ;; - (?y ("$B%i(B" . "$B$i(B")) (?u ("$B%A(B" . "$B$A(B")) (?i ("$B%/(B" . "$B$/(B")) (?o ("$B%D(B" . "$B$D(B")) - (?p "$B!$(B") (?\[ "$B!"(B") (?\] skk-kanagaki-dakuten) (?\\ "$B!o(B") + (?y ("ラ" . "ら")) (?u ("チ" . "ち")) (?i ("ク" . "く")) (?o ("ツ" . "つ")) + (?p ",") (?\[ "、") (?\] skk-kanagaki-dakuten) (?\\ "¥") ;; - (?a ("$B%&(B" . "$B$&(B")) (?s ("$B%7(B" . "$B$7(B")) (?d ("$B%F(B" . "$B$F(B")) (?f ("$B%1(B" . "$B$1(B")) - (?g ("$B%;(B" . "$B$;(B")) + (?a ("ウ" . "う")) (?s ("シ" . "し")) (?d ("テ" . "て")) (?f ("ケ" . "け")) + (?g ("セ" . "せ")) ;; - (?h ("$B%O(B" . "$B$O(B")) (?j ("$B%H(B" . "$B$H(B")) (?k ("$B%-(B" . "$B$-(B")) (?l ("$B%$(B" . "$B$$(B")) - (?\; ("$B%s(B" . "$B$s(B")) (?' "$B!G(B") + (?h ("ハ" . "は")) (?j ("ト" . "と")) (?k ("キ" . "き")) (?l ("イ" . "い")) + (?\; ("ン" . "ん")) (?' "’") ;; - (?z "$B!%(B") (?x ("$B%R(B" . "$B$R(B")) (?c ("$B%9(B" . "$B$9(B")) (?v ("$B%U(B" . "$B$U(B")) - (?b ("$B%X(B" . "$B$X(B")) + (?z ".") (?x ("ヒ" . "ひ")) (?c ("ス" . "す")) (?v ("フ" . "ふ")) + (?b ("ヘ" . "へ")) ;; - (?n ("$B%a(B" . "$B$a(B")) (?m ("$B%=(B" . "$B$=(B")) (?, ("$B%M(B" . "$B$M(B")) (?. ("$B%[(B" . "$B$[(B")) - (?/ "$B!&(B") + (?n ("メ" . "め")) (?m ("ソ" . "そ")) (?, ("ネ" . "ね")) (?. ("ホ" . "ほ")) + (?/ "・") ;; (?\ " ")) - "$BC1FHBG80;~$NF~NO%k!<%k!#(B") + "単独打鍵時の入力ルール。") (defvar skk-omelet-us-rshift-rule-list - '((?` "$B%u(B") + '((?` "ヵ") ;; - (?1 "$B!*(B") (?2 "$B!w(B") (?3 "$B!t(B") (?4 "$B!p(B") (?5 "$B!s(B") + (?1 "!") (?2 "@") (?3 "#") (?4 "$") (?5 "%") ;; - (?6 "$B!N(B") (?7 "$B!O(B") (?8 "$B!H(B") (?9 "$B!J(B") (?0 "$B!K(B") (?- "$B!X(B") (?= "$B!Y(B") + (?6 "[") (?7 "]") (?8 "“") (?9 "(") (?0 ")") (?- "『") (?= "』") ;; - (?q ("$B%p(B" . "$B$p(B")) (?w ("$B%,(B" . "$B$,(B")) (?e ("$B%@(B" . "$B$@(B")) (?r ("$B%4(B" . "$B$4(B")) - (?t ("$B%6(B" . "$B$6(B")) + (?q ("ヰ" . "ゐ")) (?w ("ガ" . "が")) (?e ("ダ" . "だ")) (?r ("ゴ" . "ご")) + (?t ("ザ" . "ざ")) ;; - (?y ("$B%h(B" . "$B$h(B")) (?u ("$B%K(B" . "$B$K(B")) (?i ("$B%k(B" . "$B$k(B")) (?o ("$B%^(B" . "$B$^(B")) - (?p ("$B%'(B" . "$B$'(B")) (?\[ "$B!7(B") (?\] skk-kanagaki-handakuten) (?\\ "$B!@(B") + (?y ("ヨ" . "よ")) (?u ("ニ" . "に")) (?i ("ル" . "る")) (?o ("マ" . "ま")) + (?p ("ェ" . "ぇ")) (?\[ "〃") (?\] skk-kanagaki-handakuten) (?\\ "\") ;; - (?a "$B%t(B") (?s ("$B%8(B" . "$B$8(B")) (?d ("$B%G(B" . "$B$G(B")) (?f ("$B%2(B" . "$B$2(B")) - (?g ("$B%<(B" . "$B$<(B")) + (?a "ヴ") (?s ("ジ" . "じ")) (?d ("デ" . "で")) (?f ("ゲ" . "げ")) + (?g ("ゼ" . "ぜ")) ;; - (?h ("$B%_(B" . "$B$_(B")) (?j ("$B%*(B" . "$B$*(B")) (?k ("$B%N(B" . "$B$N(B")) (?l ("$B%g(B" . "$B$g(B")) - (?\; ("$B%C(B" . "$B$C(B")) (?' "$B!F(B") + (?h ("ミ" . "み")) (?j ("オ" . "お")) (?k ("ノ" . "の")) (?l ("ョ" . "ょ")) + (?\; ("ッ" . "っ")) (?' "‘") ;; - (?z ("$B%q(B" . "$B$q(B")) (?x ("$B%S(B" . "$B$S(B")) (?c ("$B%:(B" . "$B$:(B")) (?v ("$B%V(B" . "$B$V(B")) - (?b ("$B%Y(B" . "$B$Y(B")) + (?z ("ヱ" . "ゑ")) (?x ("ビ" . "び")) (?c ("ズ" . "ず")) (?v ("ブ" . "ぶ")) + (?b ("ベ" . "べ")) ;; - (?n ("$B%L(B" . "$B$L(B")) (?m ("$B%f(B" . "$B$f(B")) (?, ("$B%`(B" . "$B$`(B")) (?. ("$B%o(B" . "$B$o(B")) - (?/ ("$B%)(B" . "$B$)(B")) + (?n ("ヌ" . "ぬ")) (?m ("ユ" . "ゆ")) (?, ("ム" . "む")) (?. ("ワ" . "わ")) + (?/ ("ォ" . "ぉ")) ;; (?\ " ")) - "$B1&?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "右親指キーが押されたときの入力ルール。") (defvar skk-omelet-us-lshift-rule-list - '((?\` "$B!1(B") + '((?\` " ̄") ;; - (?1 "$B!)(B") (?2 "$B!?(B") (?3 "$B!A(B") (?4 "$B!V(B") (?5 "$B!W(B") + (?1 "?") (?2 "/") (?3 "~") (?4 "「") (?5 "」") ;; - (?6 "$B!N(B") (?7 "$B!u(B") (?8 "$B!I(B") (?9 "$B!Z(B") (?0 "$B![(B") (?- "$B!D(B") (?= "$B!\(B") + (?6 "[") (?7 "&") (?8 "”") (?9 "【") (?0 "】") (?- "…") (?= "+") ;; - (?q ("$B%!(B" . "$B$!(B")) (?w ("$B%((B" . "$B$((B")) (?e ("$B%j(B" . "$B$j(B")) (?r ("$B%c(B" . "$B$c(B")) - (?t ("$B%l(B" . "$B$l(B")) + (?q ("ァ" . "ぁ")) (?w ("エ" . "え")) (?e ("リ" . "り")) (?r ("ャ" . "ゃ")) + (?t ("レ" . "れ")) ;; - (?y ("$B%Q(B" . "$B$Q(B")) (?u ("$B%B(B" . "$B$B(B")) (?i ("$B%0(B" . "$B$0(B")) (?o ("$B%E(B" . "$B$E(B")) - (?p ("$B%T(B" . "$B$T(B")) (?\[ "$B!P(B") (?\] "$B!Q(B") (?\\ "$B!C(B") + (?y ("パ" . "ぱ")) (?u ("ヂ" . "ぢ")) (?i ("グ" . "ぐ")) (?o ("ヅ" . "づ")) + (?p ("ピ" . "ぴ")) (?\[ "{") (?\] "}") (?\\ "|") ;; - (?a ("$B%r(B" . "$B$r(B")) (?s ("$B%"(B" . "$B$"(B")) (?d ("$B%J(B" . "$B$J(B")) (?f ("$B%e(B" . "$B$e(B")) - (?g ("$B%b(B" . "$B$b(B")) + (?a ("ヲ" . "を")) (?s ("ア" . "あ")) (?d ("ナ" . "な")) (?f ("ュ" . "ゅ")) + (?g ("モ" . "も")) ;; - (?h ("$B%P(B" . "$B$P(B")) (?j ("$B%I(B" . "$B$I(B")) (?k ("$B%.(B" . "$B$.(B")) (?l ("$B%](B" . "$B$](B")) - (?\; "$B%v(B") (?' "$B!'(B") + (?h ("バ" . "ば")) (?j ("ド" . "ど")) (?k ("ギ" . "ぎ")) (?l ("ポ" . "ぽ")) + (?\; "ヶ") (?' ":") ;; - (?z ("$B%%(B" . "$B$%(B")) (?x "$B!<(B") (?c ("$B%m(B" . "$B$m(B")) (?v ("$B%d(B" . "$B$d(B")) - (?b ("$B%#(B" . "$B$#(B")) + (?z ("ゥ" . "ぅ")) (?x "ー") (?c ("ロ" . "ろ")) (?v ("ヤ" . "や")) + (?b ("ィ" . "ぃ")) ;; - (?n ("$B%W(B" . "$B$W(B")) (?m ("$B%>(B" . "$B$>(B")) (?, ("$B%Z(B" . "$B$Z(B")) (?. ("$B%\(B" . "$B$\(B")) - (?/ ("$B%n(B" . "$B$n(B")) + (?n ("プ" . "ぷ")) (?m ("ゾ" . "ぞ")) (?, ("ペ" . "ぺ")) (?. ("ボ" . "ぼ")) + (?/ ("ヮ" . "ゎ")) ;; (?\ " ")) - "$B:8?F;X%-!<$,2!$5$l$?$H$-$NF~NO%k!<%k!#(B") + "左親指キーが押されたときの入力ルール。") (require 'skk-nicola) diff --git a/skk-abbrev.el b/skk-abbrev.el index 56f53c5d..b6a01f85 100644 --- a/skk-abbrev.el +++ b/skk-abbrev.el @@ -26,9 +26,9 @@ ;;; Commentary: ;; -;; $B2<5-$N%U%)!<%`$r(B ~/.emacs.d/init.el $B$+(B ~/.skk $B$K=q$$$F2<$5$$!#(B -;; skk-search-prog-list $B$K$D$$$F$O!"A4It$r -;; skk-abbrev-mode $B$GJQ49$7$?$H$-!"Jd40$7$?$H$-$K(B Emacs original $B$N(B -;; abbrev mode $B$r;H$C$FJQ49$7$^$9!#(B +;; skk-abbrev-mode で変換したとき、補完したときに Emacs original の +;; abbrev mode を使って変換します。 ;; -;; skk-look $B$H$NM%@h=g0L$O!"(B -;; a.$BJQ49$K$D$$$F$O!"(Bskk-search-prog-list $B$NCf$G(B (skk-abbrev-search) $B$r(B -;; $B@h=g0L$K=q$-;XDj$7$F2<$5$$!#(Bskk-abbrev-search $B$NJ}$,(B skk-look $B$h$j7Z$$(B -;; $B$G$9!#(B -;; b.$BJd40$K$D$$$F$O!"(Bskk-use-look $B$r;XDj$7$F$$$F$b!">o$K(B skk-abbrev-search -;; $B$NJ}$,@h$K8!:w$5$l$^$9!#(B +;; skk-look との優先順位は、 +;; a.変換については、skk-search-prog-list の中で (skk-abbrev-search) を +;; 先順位に書き指定して下さい。skk-abbrev-search の方が skk-look より軽い +;; です。 +;; b.補完については、skk-use-look を指定していても、常に skk-abbrev-search +;; の方が先に検索されます。 ;;; Code: @@ -86,9 +86,9 @@ (setq c-word (skk-look-completion))))) (unless c-word (if skk-japanese-message-and-error - (error "\"%s\" $B$GJd40$9$Y$-8+=P$78l$O(B%s$B$"$j$^$;$s(B" + (error "\"%s\" で補完すべき見出し語は%sありません" skk-completion-word - (if first "" "$BB>$K(B")) + (if first "" "他に")) (error "No %scompletions for \"%s\"" (if first "" "more ") skk-completion-word))) diff --git a/skk-act.el b/skk-act.el index 5df4e6a2..a8b73de1 100644 --- a/skk-act.el +++ b/skk-act.el @@ -1,4 +1,4 @@ -;;; skk-act.el --- $B3HD%%m!<%^;zF~NO(B "ACT" $B$r(B SKK $B$G;H$&$?$a$N@_Dj(B -*- coding: iso-2022-jp -*- +;;; skk-act.el --- 拡張ローマ字入力 "ACT" を SKK で使うための設定 -*- coding: iso-2022-jp -*- ;; Copyright (C) 2003, 2007 IRIE Tetsuya @@ -22,43 +22,43 @@ ;;; Commentary: -;; dvorak $BG[Ns$G$N3HD%%m!<%^;zF~NO(B "ACT" $B$r(B SKK $B$G;H$&$?$a$N@_Dj$G$9!%(B -;; "ACT" $B$K$D$$$F$O!$0J2<$N(B URL $B$r;2>H$7$F2<$5$$!%(B +;; dvorak 配列での拡張ローマ字入力 "ACT" を SKK で使うための設定です. +;; "ACT" については,以下の URL を参照して下さい. ;; http://www1.vecceed.ne.jp/~bemu/act/act_index.html -;; $B;H$$J}(B - $B2<5-$N@_Dj$r(B .skk $B$K2C$($F$/$@$5$$!%(B -;; $B$=$N8e(B Emacs(Mule) $B$r:F5/F0$9$l$P(B skk $B$K$h$k(B ACT $B$G$N(B -;; $BF~NO$,2DG=$G$9!%(B +;; 使い方 - 下記の設定を .skk に加えてください. +;; その後 Emacs(Mule) を再起動すれば skk による ACT での +;; 入力が可能です. ;; (setq skk-use-act t) -;; $BCm0U(B 1 - ACT $B$G$O(B "q" $B$r(B "$B$*$s(B" $B$NF~NO$K;H$&$N$G!$(B"q" $B$N$b$H$b$H$N(B -;; $B5!G=$G$"$k(B `skk-toggle-characters' $B$O(B "\" $B$K3dEv$F$F$$$^$9!%(B -;; SKK $BI8=`$G(B "\" $B$N(B `skk-input-by-code-or-menu' $B$O3dEv$F$F(B -;; $B$$$J$$$N$G%^%K%e%"%k$G8F=P$9I,MW$,$"$j$^$9!%(B +;; 注意 1 - ACT では "q" を "おん" の入力に使うので,"q" のもともとの +;; 機能である `skk-toggle-characters' は "\" に割当てています. +;; SKK 標準で "\" の `skk-input-by-code-or-menu' は割当てて +;; いないのでマニュアルで呼出す必要があります. -;; 2 - $BF1MM$K(B "Q" $B$b;HMQ$G$-$^$;$s$N$G(B -;; `skk-set-henkan-point-subr' $B$O(B "|" $B$K3dEv$F$F$$$^$9!%(B +;; 2 - 同様に "Q" も使用できませんので +;; `skk-set-henkan-point-subr' は "|" に割当てています. -;; 3 - $B=c@5$N(B ACT $B$G$O(B "la" $B$G(B "$B$!(B" $B$rF~NO$7$^$9!%$7$+$7(B -;; SKK $B$G$O(B l $B$r(B ASCII/$B$+$J%b!<%I$N@Z$jBX$(%-!<$H$7$F(B -;; $B;HMQ$9$k$N$G!$(B"`a" $B$G(B "$B$!(B" $B$rF~NO$G$-$k$h$&$K$7$F$$$^$9!%(B +;; 3 - 純正の ACT では "la" で "ぁ" を入力します.しかし +;; SKK では l を ASCII/かなモードの切り替えキーとして +;; 使用するので,"`a" で "ぁ" を入力できるようにしています. -;; 4 - SKK $BI8=`$N(B "z*" ($B!V!A!W!V!D!W$J$I(B)$B!$(B"x*" ($B!V$#!W!V$n!W$J(B -;; $B$I(B)$B$O(B "`*" $B$K3dEv$F$F$$$^$9!%(B +;; 4 - SKK 標準の "z*" (「~」「…」など),"x*" (「ぃ」「ゎ」な +;; ど)は "`*" に割当てています. -;; 5 - $B%G%U%)%k%H$G$O;R2;$N8e$N(B "y" $B$K$O(B2$B=EJl2;$N(B "ui" $B$r3dEv$F(B -;; $B$F$$$k$N$G!$(B"y" $B$r;H$C$?Y92;$NF~NO$OL58z$G$9!%(B"y" $B$r;H$C(B -;; $B$FY92;$rF~NO$7$?$$>l9g$O(B `skk-act-use-normal-y' $B$r(B -;; non-nil $B$K@_Dj$7$F(B skk $B$r5/F0$7$F2<$5$$!%(B(skk-act $B$r%m!<(B -;; $B%I$7$?$H$-$NCM$,M-8z$K$J$j$^$9(B) +;; 5 - デフォルトでは子音の後の "y" には2重母音の "ui" を割当て +;; ているので,"y" を使った拗音の入力は無効です."y" を使っ +;; て拗音を入力したい場合は `skk-act-use-normal-y' を +;; non-nil に設定して skk を起動して下さい.(skk-act をロー +;; ドしたときの値が有効になります) -;; $B%-!<3dEv$FJQ99E@(B -;; SKK$BI8=`(B ACT +;; キー割当て変更点 +;; SKK標準 ACT ;; `skk-toggle-characters' q \ ;; `skk-set-henkan-point-subr' Q | -;; `skk-input-by-code-or-menu' \ $B3dEv$F$J$7(B -;; `skk-purge-from-jisyo' X $B3dEv$F$J$7(B +;; `skk-input-by-code-or-menu' \ 割当てなし +;; `skk-purge-from-jisyo' X 割当てなし ;;; Code: @@ -85,7 +85,7 @@ "xtsu" "xtu" "xwa" "xwe" "xwi" "xya" "xyo" "xyu"))) - ;; skk-act-use-normal-y $B$,(B nil $B$G$"$l$PY92;$b:o=|(B + ;; skk-act-use-normal-y が nil であれば拗音も削除 (unless skk-act-use-normal-y (setq list (append list @@ -109,709 +109,709 @@ '(("\\" nil skk-toggle-characters) ("|" nil skk-set-henkan-point-subr) ("`|" nil "|") - ("'" nil ("$B%C(B" . "$B$C(B")) + ("'" nil ("ッ" . "っ")) ("`'" nil "'") ("`;" nil ";") ("`:" nil ":") ("`\"" nil "\"") - ;; $BI8=`$N(B x* $B$NCV$-49$((B - ("`a" nil ("$B%!(B" . "$B$!(B")) - ("`i" nil ("$B%#(B" . "$B$#(B")) - ("`u" nil ("$B%%(B" . "$B$%(B")) - ("`e" nil ("$B%'(B" . "$B$'(B")) - ("`o" nil ("$B%)(B" . "$B$)(B")) - ("`ca" nil ("$B%u(B" . "$B$+(B")) - ("`ce" nil ("$B%v(B" . "$B$1(B")) - ;;("`tsu" nil ("$B%C(B" . "$B$C(B")) ; $B!V",!W$H>WFM$9$k$N$G%3%a%s%H%"%&%H(B - ;;("`tu" nil ("$B%C(B" . "$B$C(B")) ; $B!V",!W$H>WFM$9$k$N$G%3%a%s%H%"%&%H(B - ("`wa" nil ("$B%n(B" . "$B$n(B")) - ("`we" nil ("$B%q(B" . "$B$q(B")) - ("`wi" nil ("$B%p(B" . "$B$p(B")) - ("`ya" nil ("$B%c(B" . "$B$c(B")) - ("`yo" nil ("$B%g(B" . "$B$g(B")) - ("`yu" nil ("$B%e(B" . "$B$e(B")) - ;; $B%d9T$N8_49%-!<(B - ("`ys" nil ("$B%c(B" . "$B$c(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ("`yn" nil ("$B%g(B" . "$B$g(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ("`yh" nil ("$B%e(B" . "$B$e(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ;; $BI8=`$N(B z* $B$NCV$-49$((B - ("`," nil "$B!E(B") - ("`-" nil "$B!A(B") - ("`." nil "$B!D(B") - ("`/" nil "$B!&(B") - ("`[" nil "$B!X(B") - ("`]" nil "$B!Y(B") - ("`d" nil "$B"+(B") - ("`h" nil "$B"-(B") - ("`t" nil "$B",(B") - ("`n" nil "$B"*(B") - ;; $B$+9T$O(B c $B$r;H$&(B - ("ca" nil ("$B%+(B" . "$B$+(B")) - ("ci" nil ("$B%-(B" . "$B$-(B")) - ("cu" nil ("$B%/(B" . "$B$/(B")) - ("ce" nil ("$B%1(B" . "$B$1(B")) - ("co" nil ("$B%3(B" . "$B$3(B")) - ;; $B@62;!$By2;!$Y{2;3HD%!$Fs=EJl2;3HD%(B - (";" nil ("$B%"%s(B" . "$B$"$s(B")) - ("x" nil ("$B%$%s(B" . "$B$$$s(B")) - ("k" nil ("$B%&%s(B" . "$B$&$s(B")) - ("j" nil ("$B%(%s(B" . "$B$($s(B")) - ("q" nil ("$B%*%s(B" . "$B$*$s(B")) - ("c;" nil ("$B%+%s(B" . "$B$+$s(B")) - ("cx" nil ("$B%-%s(B" . "$B$-$s(B")) - ("ck" nil ("$B%/%s(B" . "$B$/$s(B")) - ("cj" nil ("$B%1%s(B" . "$B$1$s(B")) - ("cq" nil ("$B%3%s(B" . "$B$3$s(B")) - ("c'" nil ("$B%+%$(B" . "$B$+$$(B")) - ("cp" nil ("$B%/%&(B" . "$B$/$&(B")) - ("c." nil ("$B%1%$(B" . "$B$1$$(B")) - ("c," nil ("$B%3%&(B" . "$B$3$&(B")) - ("s;" nil ("$B%5%s(B" . "$B$5$s(B")) - ("sx" nil ("$B%7%s(B" . "$B$7$s(B")) - ("sk" nil ("$B%9%s(B" . "$B$9$s(B")) - ("sj" nil ("$B%;%s(B" . "$B$;$s(B")) - ("sq" nil ("$B%=%s(B" . "$B$=$s(B")) - ("s'" nil ("$B%5%$(B" . "$B$5$$(B")) - ("sp" nil ("$B%9%&(B" . "$B$9$&(B")) - ("s." nil ("$B%;%$(B" . "$B$;$$(B")) - ("s," nil ("$B%=%&(B" . "$B$=$&(B")) - ("t;" nil ("$B%?%s(B" . "$B$?$s(B")) - ("tx" nil ("$B%A%s(B" . "$B$A$s(B")) - ("tk" nil ("$B%D%s(B" . "$B$D$s(B")) - ("tj" nil ("$B%F%s(B" . "$B$F$s(B")) - ("tq" nil ("$B%H%s(B" . "$B$H$s(B")) - ("t'" nil ("$B%?%$(B" . "$B$?$$(B")) - ("tp" nil ("$B%D%&(B" . "$B$D$&(B")) - ("t." nil ("$B%F%$(B" . "$B$F$$(B")) - ("t," nil ("$B%H%&(B" . "$B$H$&(B")) - ("n;" nil ("$B%J%s(B" . "$B$J$s(B")) - ("nx" nil ("$B%K%s(B" . "$B$K$s(B")) - ("nk" nil ("$B%L%s(B" . "$B$L$s(B")) - ("nj" nil ("$B%M%s(B" . "$B$M$s(B")) - ("nq" nil ("$B%N%s(B" . "$B$N$s(B")) - ("n'" nil ("$B%J%$(B" . "$B$J$$(B")) - ("np" nil ("$B%L%&(B" . "$B$L$&(B")) - ("n." nil ("$B%M%$(B" . "$B$M$$(B")) - ("n," nil ("$B%N%&(B" . "$B$N$&(B")) - ("h;" nil ("$B%O%s(B" . "$B$O$s(B")) - ("hx" nil ("$B%R%s(B" . "$B$R$s(B")) - ("hk" nil ("$B%U%s(B" . "$B$U$s(B")) - ("hj" nil ("$B%X%s(B" . "$B$X$s(B")) - ("hq" nil ("$B%[%s(B" . "$B$[$s(B")) - ("h'" nil ("$B%O%$(B" . "$B$O$$(B")) - ("hp" nil ("$B%U%&(B" . "$B$U$&(B")) - ("h." nil ("$B%X%$(B" . "$B$X$$(B")) - ("h," nil ("$B%[%&(B" . "$B$[$&(B")) - ("m;" nil ("$B%^%s(B" . "$B$^$s(B")) - ("mx" nil ("$B%_%s(B" . "$B$_$s(B")) - ("mk" nil ("$B%`%s(B" . "$B$`$s(B")) - ("mj" nil ("$B%a%s(B" . "$B$a$s(B")) - ("mq" nil ("$B%b%s(B" . "$B$b$s(B")) - ("m'" nil ("$B%^%$(B" . "$B$^$$(B")) - ("mp" nil ("$B%`%&(B" . "$B$`$&(B")) - ("m." nil ("$B%a%$(B" . "$B$a$$(B")) - ("m," nil ("$B%b%&(B" . "$B$b$&(B")) - ("y;" nil ("$B%d%s(B" . "$B$d$s(B")) - ;;("yx" nil ("$B%$%s(B" . "$B$$$s(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ("yk" nil ("$B%f%s(B" . "$B$f$s(B")) - ;;("yj" nil ("$B%$%'%s(B" . "$B$$$'$s(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ("yq" nil ("$B%h%s(B" . "$B$h$s(B")) - ("y'" nil ("$B%d%$(B" . "$B$d$$(B")) - ("yp" nil ("$B%f%&(B" . "$B$f$&(B")) - ("y." nil ("$B%$%&(B" . "$B$$$&(B")) - ("y," nil ("$B%h%&(B" . "$B$h$&(B")) - ("r;" nil ("$B%i%s(B" . "$B$i$s(B")) - ("rx" nil ("$B%j%s(B" . "$B$j$s(B")) - ("rk" nil ("$B%k%s(B" . "$B$k$s(B")) - ("rj" nil ("$B%l%s(B" . "$B$l$s(B")) - ("rq" nil ("$B%m%s(B" . "$B$m$s(B")) - ("r'" nil ("$B%i%$(B" . "$B$i$$(B")) - ("rp" nil ("$B%k%&(B" . "$B$k$&(B")) - ("r." nil ("$B%l%$(B" . "$B$l$$(B")) - ("r," nil ("$B%m%&(B" . "$B$m$&(B")) - ("w;" nil ("$B%o%s(B" . "$B$o$s(B")) - ("wx" nil ("$B%&%#%s(B" . "$B$&$#$s(B")) - ("wk" nil ("$B%&%s(B" . "$B$&$s(B")) - ("wj" nil ("$B%&%'%s(B" . "$B$&$'$s(B")) - ("wq" nil ("$B%&%)%s(B" . "$B$&$)$s(B")) - ("w'" nil ("$B%o%$(B" . "$B$o$$(B")) - ("wp" nil ("$B%&%%(B" . "$B$&$%(B")) - ("w." nil ("$B%&%'%$(B" . "$B$&$'$$(B")) - ("w," nil ("$B%&%)!<(B" . "$B$&$)!<(B")) - ("g;" nil ("$B%,%s(B" . "$B$,$s(B")) - ("gx" nil ("$B%.%s(B" . "$B$.$s(B")) - ("gk" nil ("$B%0%s(B" . "$B$0$s(B")) - ("gj" nil ("$B%2%s(B" . "$B$2$s(B")) - ("gq" nil ("$B%4%s(B" . "$B$4$s(B")) - ("g'" nil ("$B%,%$(B" . "$B$,$$(B")) - ("gp" nil ("$B%0%&(B" . "$B$0$&(B")) - ("g." nil ("$B%2%$(B" . "$B$2$$(B")) - ("g," nil ("$B%4%&(B" . "$B$4$&(B")) - ("z;" nil ("$B%6%s(B" . "$B$6$s(B")) - ("zx" nil ("$B%8%s(B" . "$B$8$s(B")) - ("zk" nil ("$B%:%s(B" . "$B$:$s(B")) - ("zj" nil ("$B%<%s(B" . "$B$<$s(B")) - ("zq" nil ("$B%>%s(B" . "$B$>$s(B")) - ("z'" nil ("$B%6%$(B" . "$B$6$$(B")) - ("zp" nil ("$B%:%&(B" . "$B$:$&(B")) - ("z." nil ("$B%<%$(B" . "$B$<$$(B")) - ("z," nil ("$B%>%&(B" . "$B$>$&(B")) - ("d;" nil ("$B%@%s(B" . "$B$@$s(B")) - ("dx" nil ("$B%B%s(B" . "$B$B$s(B")) - ("dk" nil ("$B%E%s(B" . "$B$E$s(B")) - ("dj" nil ("$B%G%s(B" . "$B$G$s(B")) - ("dq" nil ("$B%I%s(B" . "$B$I$s(B")) - ("d'" nil ("$B%@%$(B" . "$B$@$$(B")) - ("dp" nil ("$B%E%&(B" . "$B$E$&(B")) - ("d." nil ("$B%G%$(B" . "$B$G$$(B")) - ("d," nil ("$B%I%&(B" . "$B$I$&(B")) - ("b;" nil ("$B%P%s(B" . "$B$P$s(B")) - ("bx" nil ("$B%S%s(B" . "$B$S$s(B")) - ("bk" nil ("$B%V%s(B" . "$B$V$s(B")) - ("bj" nil ("$B%Y%s(B" . "$B$Y$s(B")) - ("bq" nil ("$B%\%s(B" . "$B$\$s(B")) - ("b'" nil ("$B%P%$(B" . "$B$P$$(B")) - ("bp" nil ("$B%V%&(B" . "$B$V$&(B")) - ("b." nil ("$B%Y%$(B" . "$B$Y$$(B")) - ("b," nil ("$B%\%&(B" . "$B$\$&(B")) - ("p;" nil ("$B%Q%s(B" . "$B$Q$s(B")) - ("px" nil ("$B%T%s(B" . "$B$T$s(B")) - ("pk" nil ("$B%W%s(B" . "$B$W$s(B")) - ("pj" nil ("$B%Z%s(B" . "$B$Z$s(B")) - ("pq" nil ("$B%]%s(B" . "$B$]$s(B")) - ("p'" nil ("$B%Q%$(B" . "$B$Q$$(B")) - ("pp" nil ("$B%W%&(B" . "$B$W$&(B")) - ("p." nil ("$B%Z%$(B" . "$B$Z$$(B")) - ("p," nil ("$B%]%&(B" . "$B$]$&(B")) - ;; $BY92;!$Y{2;3HD%!$Fs=EJl2;3HD%(B - ("cga" nil ("$B%-%c(B" . "$B$-$c(B")) - ("cgi" nil ("$B%-%#(B" . "$B$-$#(B")) - ("cgu" nil ("$B%-%e(B" . "$B$-$e(B")) - ("cge" nil ("$B%-%'(B" . "$B$-$'(B")) - ("cgo" nil ("$B%-%g(B" . "$B$-$g(B")) - ("cg;" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) - ("cgx" nil ("$B%-%#%s(B" . "$B$-$#$s(B")) - ("cgk" nil ("$B%-%e%s(B" . "$B$-$e$s(B")) - ("cgj" nil ("$B%-%'%s(B" . "$B$-$'$s(B")) - ("cgq" nil ("$B%-%g%s(B" . "$B$-$g$s(B")) - ("cg'" nil ("$B%-%c%$(B" . "$B$-$c$$(B")) - ("cgp" nil ("$B%-%e%&(B" . "$B$-$e$&(B")) - ("cg." nil ("$B%-%'%$(B" . "$B$-$'$$(B")) - ("cg," nil ("$B%-%g%&(B" . "$B$-$g$&(B")) - ;; $BI8=`$G$3$&$J$C$F$$$k$1$I0l1~(B - ("sha" nil ("$B%7%c(B" . "$B$7$c(B")) - ("shi" nil ("$B%7%#(B" . "$B$7$#(B")) ; $B%j%U%!%l%s%9$G$O(B `$B$7(B' $B$@$1$I(B - ("shu" nil ("$B%7%e(B" . "$B$7$e(B")) - ("she" nil ("$B%7%'(B" . "$B$7$'(B")) - ("sho" nil ("$B%7%g(B" . "$B$7$g(B")) - ("sh;" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) - ("shx" nil ("$B%7%#%s(B" . "$B$7$#$s(B")) - ("shk" nil ("$B%7%e%s(B" . "$B$7$e$s(B")) - ("shj" nil ("$B%7%'%s(B" . "$B$7$'$s(B")) - ("shq" nil ("$B%7%g%s(B" . "$B$7$g$s(B")) - ("sh'" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) - ("shp" nil ("$B%7%e%&(B" . "$B$7$e$&(B")) - ("sh." nil ("$B%7%'%$(B" . "$B$7$'$$(B")) - ("sh," nil ("$B%7%g%&(B" . "$B$7$g$&(B")) - ("tha" nil ("$B%A%c(B" . "$B$A$c(B")) - ("thi" nil ("$B%A%#(B" . "$B$A$#(B")) - ("thu" nil ("$B%A%e(B" . "$B$A$e(B")) - ("the" nil ("$B%A%'(B" . "$B$A$'(B")) - ("tho" nil ("$B%A%g(B" . "$B$A$g(B")) - ("th;" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) - ("thx" nil ("$B%A%#%s(B" . "$B$A$#$s(B")) - ("thk" nil ("$B%A%e%s(B" . "$B$A$e$s(B")) - ("thj" nil ("$B%A%'%s(B" . "$B$A$'$s(B")) - ("thq" nil ("$B%A%g%s(B" . "$B$A$g$s(B")) - ("th'" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) - ("thp" nil ("$B%A%e%&(B" . "$B$A$e$&(B")) - ("th." nil ("$B%A%'%$(B" . "$B$A$'$$(B")) - ("th," nil ("$B%A%g%&(B" . "$B$A$g$&(B")) - ("nha" nil ("$B%K%c(B" . "$B$K$c(B")) - ("nhi" nil ("$B%K%#(B" . "$B$K$#(B")) - ("nhu" nil ("$B%K%e(B" . "$B$K$e(B")) - ("nhe" nil ("$B%K%'(B" . "$B$K$'(B")) - ("nho" nil ("$B%K%g(B" . "$B$K$g(B")) - ("nh;" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) - ("nhx" nil ("$B%K%#%s(B" . "$B$K$#$s(B")) - ("nhk" nil ("$B%K%e%s(B" . "$B$K$e$s(B")) - ("nhj" nil ("$B%K%'%s(B" . "$B$K$'$s(B")) - ("nhq" nil ("$B%K%g%s(B" . "$B$K$g$s(B")) - ("nh'" nil ("$B%K%c%$(B" . "$B$K$c$$(B")) - ("nhp" nil ("$B%K%e%&(B" . "$B$K$e$&(B")) - ("nh." nil ("$B%K%'%$(B" . "$B$K$'$$(B")) - ("nh," nil ("$B%K%g%&(B" . "$B$K$g$&(B")) - ("hna" nil ("$B%R%c(B" . "$B$R$c(B")) - ("hni" nil ("$B%R%#(B" . "$B$R$#(B")) - ("hnu" nil ("$B%R%e(B" . "$B$R$e(B")) - ("hne" nil ("$B%R%'(B" . "$B$R$'(B")) - ("hno" nil ("$B%R%g(B" . "$B$R$g(B")) - ("hn;" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) - ("hnx" nil ("$B%R%#%s(B" . "$B$R$#$s(B")) - ("hnk" nil ("$B%R%e%s(B" . "$B$R$e$s(B")) - ("hnj" nil ("$B%R%'%s(B" . "$B$R$'$s(B")) - ("hnq" nil ("$B%R%g%s(B" . "$B$R$g$s(B")) - ("hn'" nil ("$B%R%c%$(B" . "$B$R$c$$(B")) - ("hnp" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) - ("hn." nil ("$B%R%'%$(B" . "$B$R$'$$(B")) - ("hn," nil ("$B%R%g%&(B" . "$B$R$g$&(B")) - ("mva" nil ("$B%_%c(B" . "$B$_$c(B")) - ("mvi" nil ("$B%_%#(B" . "$B$_$#(B")) - ("mvu" nil ("$B%_%e(B" . "$B$_$e(B")) - ("mve" nil ("$B%_%'(B" . "$B$_$'(B")) - ("mvo" nil ("$B%_%g(B" . "$B$_$g(B")) - ("mv;" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) - ("mvx" nil ("$B%_%#%s(B" . "$B$_$#$s(B")) - ("mvk" nil ("$B%_%e%s(B" . "$B$_$e$s(B")) - ("mvj" nil ("$B%_%'%s(B" . "$B$_$'$s(B")) - ("mvq" nil ("$B%_%g%s(B" . "$B$_$g$s(B")) - ("mv'" nil ("$B%_%c%$(B" . "$B$_$c$$(B")) - ("mvp" nil ("$B%_%e%&(B" . "$B$_$e$&(B")) - ("mv." nil ("$B%_%'%$(B" . "$B$_$'$$(B")) - ("mv," nil ("$B%_%g%&(B" . "$B$_$g$&(B")) - ("rga" nil ("$B%j%c(B" . "$B$j$c(B")) - ("rgi" nil ("$B%j%#(B" . "$B$j$#(B")) - ("rgu" nil ("$B%j%e(B" . "$B$j$e(B")) - ("rge" nil ("$B%j%'(B" . "$B$j$'(B")) - ("rgo" nil ("$B%j%g(B" . "$B$j$g(B")) - ("rg;" nil ("$B%j%c%s(B" . "$B$j$c$s(B")) - ("rgx" nil ("$B%j%#%s(B" . "$B$j$#$s(B")) - ("rgk" nil ("$B%j%e%s(B" . "$B$j$e$s(B")) - ("rgj" nil ("$B%j%'%s(B" . "$B$j$'$s(B")) - ("rgq" nil ("$B%j%g%s(B" . "$B$j$g$s(B")) - ("rg'" nil ("$B%j%c%$(B" . "$B$j$c$$(B")) - ("rgp" nil ("$B%j%e%&(B" . "$B$j$e$&(B")) - ("rg." nil ("$B%j%'%$(B" . "$B$j$'$$(B")) - ("rg," nil ("$B%j%g%&(B" . "$B$j$g$&(B")) - ("gra" nil ("$B%.%c(B" . "$B$.$c(B")) - ("gri" nil ("$B%.%#(B" . "$B$.$#(B")) - ("gru" nil ("$B%.%e(B" . "$B$.$e(B")) - ("gre" nil ("$B%.%'(B" . "$B$.$'(B")) - ("gro" nil ("$B%.%g(B" . "$B$.$g(B")) - ("gr;" nil ("$B%.%c%s(B" . "$B$.$c$s(B")) - ("grx" nil ("$B%.%#%s(B" . "$B$.$#$s(B")) - ("grk" nil ("$B%.%e%s(B" . "$B$.$e$s(B")) - ("grj" nil ("$B%.%'%s(B" . "$B$.$'$s(B")) - ("grq" nil ("$B%.%g%s(B" . "$B$.$g$s(B")) - ("gr'" nil ("$B%.%c%$(B" . "$B$.$c$$(B")) - ("grp" nil ("$B%.%e%&(B" . "$B$.$e$&(B")) - ("gr." nil ("$B%.%'%$(B" . "$B$.$'$$(B")) - ("gr," nil ("$B%.%g%&(B" . "$B$.$g$&(B")) - ("zma" nil ("$B%8%c(B" . "$B$8$c(B")) - ("zmi" nil ("$B%8%#(B" . "$B$8$#(B")) - ("zmu" nil ("$B%8%e(B" . "$B$8$e(B")) - ("zme" nil ("$B%8%'(B" . "$B$8$'(B")) - ("zmo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("zm;" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) - ("zmx" nil ("$B%8%#%s(B" . "$B$8$#$s(B")) - ("zmk" nil ("$B%8%e%s(B" . "$B$8$e$s(B")) - ("zmj" nil ("$B%8%'%s(B" . "$B$8$'$s(B")) - ("zmq" nil ("$B%8%g%s(B" . "$B$8$g$s(B")) - ("zm'" nil ("$B%8%c%$(B" . "$B$8$c$$(B")) - ("zmp" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) - ("zm." nil ("$B%8%'%$(B" . "$B$8$'$$(B")) - ("zm," nil ("$B%8%g%&(B" . "$B$8$g$&(B")) - ("dna" nil ("$B%B%c(B" . "$B$B$c(B")) - ("dni" nil ("$B%B%#(B" . "$B$B$#(B")) - ("dnu" nil ("$B%B%e(B" . "$B$B$e(B")) - ("dne" nil ("$B%B%'(B" . "$B$B$'(B")) - ("dno" nil ("$B%B%g(B" . "$B$B$g(B")) - ("dn;" nil ("$B%B%c%s(B" . "$B$B$c$s(B")) - ("dnx" nil ("$B%B%#%s(B" . "$B$B$#$s(B")) - ("dnk" nil ("$B%B%e%s(B" . "$B$B$e$s(B")) - ("dnj" nil ("$B%B%'%s(B" . "$B$B$'$s(B")) - ("dnq" nil ("$B%B%g%s(B" . "$B$B$g$s(B")) - ("dn'" nil ("$B%B%c%$(B" . "$B$B$c$$(B")) - ("dnp" nil ("$B%B%e%&(B" . "$B$B$e$&(B")) - ("dn." nil ("$B%B%'%$(B" . "$B$B$'$$(B")) - ("dn," nil ("$B%B%g%&(B" . "$B$B$g$&(B")) - ("bva" nil ("$B%S%c(B" . "$B$S$c(B")) - ("bvi" nil ("$B%S%#(B" . "$B$S$#(B")) - ("bvu" nil ("$B%S%e(B" . "$B$S$e(B")) - ("bve" nil ("$B%S%'(B" . "$B$S$'(B")) - ("bvo" nil ("$B%S%g(B" . "$B$S$g(B")) - ("bv;" nil ("$B%S%c%s(B" . "$B$S$c$s(B")) - ("bvx" nil ("$B%S%#%s(B" . "$B$S$#$s(B")) - ("bvk" nil ("$B%S%e%s(B" . "$B$S$e$s(B")) - ("bvj" nil ("$B%S%'%s(B" . "$B$S$'$s(B")) - ("bvq" nil ("$B%S%g%s(B" . "$B$S$g$s(B")) - ("bv'" nil ("$B%S%c%$(B" . "$B$S$c$$(B")) - ("bvp" nil ("$B%S%e%&(B" . "$B$S$e$&(B")) - ("bv." nil ("$B%S%'%$(B" . "$B$S$'$$(B")) - ("bv," nil ("$B%S%g%&(B" . "$B$S$g$&(B")) - ("pna" nil ("$B%T%c(B" . "$B$T$c(B")) - ("pni" nil ("$B%T%#(B" . "$B$T$#(B")) - ("pnu" nil ("$B%T%e(B" . "$B$T$e(B")) - ("pne" nil ("$B%T%'(B" . "$B$T$'(B")) - ("pno" nil ("$B%T%g(B" . "$B$T$g(B")) - ("pn;" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) - ("pnx" nil ("$B%T%#%s(B" . "$B$T$#$s(B")) - ("pnk" nil ("$B%T%e%s(B" . "$B$T$e$s(B")) - ("pnj" nil ("$B%T%'%s(B" . "$B$T$'$s(B")) - ("pnq" nil ("$B%T%g%s(B" . "$B$T$g$s(B")) - ("pn'" nil ("$B%T%c%$(B" . "$B$T$c$$(B")) - ("pnp" nil ("$B%T%e%&(B" . "$B$T$e$&(B")) - ("pn." nil ("$B%T%'%$(B" . "$B$T$'$$(B")) - ("pn," nil ("$B%T%g%&(B" . "$B$T$g$&(B")) - ;; $BY92;(B(2$B%9%H%m!<%/7O(B)$B!$Y{2;3HD%!$Fs=EJl2;3HD%(B - ("f;" nil ("$B%U%!%s(B" . "$B$U$!$s(B")) - ("fx" nil ("$B%U%#%s(B" . "$B$U$#$s(B")) - ("fk" nil ("$B%U%s(B" . "$B$U$s(B")) - ("fj" nil ("$B%U%'%s(B" . "$B$U$'$s(B")) - ("fq" nil ("$B%U%)%s(B" . "$B$U$)$s(B")) - ("f'" nil ("$B%U%!%$(B" . "$B$U$!$$(B")) - ("fp" nil ("$B%U%&(B" . "$B$U$&(B")) - ("f." nil ("$B%U%'%$(B" . "$B$U$'$$(B")) - ("f," nil ("$B%U%)!<(B" . "$B$U$)!<(B")) - ("v;" nil ("$B%t%!%s(B" . "$B$&!+$!$s(B")) - ("vx" nil ("$B%t%#%s(B" . "$B$&!+$#$s(B")) - ("vk" nil ("$B%t%s(B" . "$B$&!+$s(B")) - ("vj" nil ("$B%t%'%s(B" . "$B$&!+$'$s(B")) - ("vq" nil ("$B%t%)%s(B" . "$B$&!+$)$s(B")) - ("v'" nil ("$B%t%!%$(B" . "$B$&!+$!$$(B")) - ("vp" nil ("$B%t!<(B" . "$B$&!+!<(B")) - ("v." nil ("$B%t%'%$(B" . "$B$&!+$'$$(B")) - ("v," nil ("$B%t%)!<(B" . "$B$&!+$)!<(B")) - ;; $BIQ=PY92;$N>JN,BG$A(B - ("pc" nil ("$B%T%e%&(B" . "$B$T$e$&(B")) - ("pl" nil ("$B%T%g%&(B" . "$B$T$g$&(B")) - ("fc" nil ("$B%U%e!<(B" . "$B$U$e!<(B")) - ("fl" nil ("$B%U%)!<(B" . "$B$U$)!<(B")) - ("gc" nil ("$B%.%e%&(B" . "$B$.$e$&(B")) - ("gl" nil ("$B%.%g%&(B" . "$B$.$g$&(B")) - ("cc" nil ("$B%-%e%&(B" . "$B$-$e$&(B")) - ("cl" nil ("$B%-%g%&(B" . "$B$-$g$&(B")) - ("rc" nil ("$B%j%e%&(B" . "$B$j$e$&(B")) - ("rl" nil ("$B%j%g%&(B" . "$B$j$g$&(B")) - ("ht" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) - ("hs" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) - ("tt" nil ("$B%A%e%&(B" . "$B$A$e$&(B")) - ("ts" nil ("$B%A%g%&(B" . "$B$A$g$&(B")) - ("nt" nil ("$B%K%e%&(B" . "$B$K$e$&(B")) - ("ns" nil ("$B%K%g%&(B" . "$B$K$g$&(B")) - ("st" nil ("$B%7%e%&(B" . "$B$7$e$&(B")) - ("ss" nil ("$B%7%g%&(B" . "$B$7$g$&(B")) - ("bw" nil ("$B%S%e%&(B" . "$B$S$e$&(B")) - ("bz" nil ("$B%S%g%&(B" . "$B$S$g$&(B")) - ("mw" nil ("$B%_%e!<(B" . "$B$_$e!<(B")) - ("mz" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) - ("wz" nil ("$B%&%)!<(B" . "$B$&$)!<(B")) - ("vw" nil ("$B%t%e!<(B" . "$B$&!+$e!<(B")) - ("vz" nil ("$B%t%)!<(B" . "$B$&!+$)!<(B")) - ("zw" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) - ("zz" nil ("$B%8%g%&(B" . "$B$8$g$&(B")) - ;; $BY92;!\%/!&%D$N>JN,BG$A(B - ("grr" nil ("$B%.%g%/(B" . "$B$.$g$/(B")) - ("grl" nil ("$B%.%c%/(B" . "$B$.$c$/(B")) - ("cgr" nil ("$B%-%g%/(B" . "$B$-$g$/(B")) - ("cgl" nil ("$B%-%c%/(B" . "$B$-$c$/(B")) - ("rgr" nil ("$B%j%g%/(B" . "$B$j$g$/(B")) - ("rgl" nil ("$B%j%c%/(B" . "$B$j$c$/(B")) - ("hns" nil ("$B%R%c%/(B" . "$B$R$c$/(B")) - ("thn" nil ("$B%A%g%/(B" . "$B$A$g$/(B")) - ("ths" nil ("$B%A%c%/(B" . "$B$A$c$/(B")) - ("nhn" nil ("$B%K%g%/(B" . "$B$K$g$/(B")) - ("nhs" nil ("$B%K%c%/(B" . "$B$K$c$/(B")) - ("shn" nil ("$B%7%g%/(B" . "$B$7$g$/(B")) - ("shs" nil ("$B%7%c%/(B" . "$B$7$c$/(B")) - ("sht" nil ("$B%7%e%D(B" . "$B$7$e$D(B")) - ("pns" nil ("$B%T%c%/(B" . "$B$T$c$/(B")) - ("bvv" nil ("$B%S%g%/(B" . "$B$S$g$/(B")) - ("bvz" nil ("$B%S%c%/(B" . "$B$S$c$/(B")) - ("mvv" nil ("$B%_%g%/(B" . "$B$_$g$/(B")) - ("mvz" nil ("$B%_%c%/(B" . "$B$_$c$/(B")) - ("zmv" nil ("$B%8%g%/(B" . "$B$8$g$/(B")) - ("zmz" nil ("$B%8%c%/(B" . "$B$8$c$/(B")) - ("zmw" nil ("$B%8%e%D(B" . "$B$8$e$D(B")) - ("shh" nil ("$B%7%e%/(B" . "$B$7$e$/(B")) - ("zmm" nil ("$B%8%e%/(B" . "$B$8$e$/(B")) - ;; $B%d9T$N8_49%-!<(B - ("yh" nil ("$B%f(B" . "$B$f(B")) - ("yg" nil ("$B%f%&(B" . "$B$f$&(B")) - ("yz" nil ("$B%d%s(B" . "$B$d$s(B")) - ("ym" nil ("$B%f%s(B" . "$B$f$s(B")) - ("yv" nil ("$B%h%s(B" . "$B$h$s(B")) - ;; $B%Q9T$N8_49%-!<(B - ("ps" nil ("$B%Q(B" . "$B$Q(B")) - ("pd" nil ("$B%T(B" . "$B$T(B")) - ("ph" nil ("$B%W(B" . "$B$W(B")) - ("pt" nil ("$B%Z(B" . "$B$Z(B")) - ("pz" nil ("$B%Q%s(B" . "$B$Q$s(B")) - ("pb" nil ("$B%T%s(B" . "$B$T$s(B")) - ("pm" nil ("$B%W%s(B" . "$B$W$s(B")) - ("pw" nil ("$B%Z%s(B" . "$B$Z$s(B")) - ("pv" nil ("$B%]%s(B" . "$B$]$s(B")) - ;; $B%d9TIQ=PJ8;zNs$N>JN,BG$A(B - ("yy" nil ("$B%$%&(B" . "$B$$$&(B")) - ("yf" nil ("$B%h%j(B" . "$B$h$j(B")) - ("yc" nil ("$B%$%&(B" . "$B$$$&(B")) - ("yr" nil ("$B%h%k(B" . "$B$h$k(B")) - ("yl" nil ("$B%d%k(B" . "$B$d$k(B")) - ("yd" nil ("$B%h%$(B" . "$B$h$$(B")) - ("yt" nil ("$B%h%C%F(B" . "$B$h$C$F(B")) - ("yn" nil ("$B%h%/(B" . "$B$h$/(B")) - ("ys" nil ("$B%d%/(B" . "$B$d$/(B")) - ("yb" nil ("$B%f%S(B" . "$B$f$S(B")) - ("yw" nil ("$B%$%o%l(B" . "$B$$$o$l(B")) - ;; $B$=$NB>$NIQ=PJ8;zNs$N>JN,BG$A(B - ("ff" nil ("$B%U%j(B" . "$B$U$j(B")) - ("fg" nil ("$B%U%k(B" . "$B$U$k(B")) - ("fr" nil ("$B%U%k(B" . "$B$U$k(B")) - ("fn" nil ("$B%U%!%s(B" . "$B$U$!$s(B")) - ("fm" nil ("$B%U%`(B" . "$B$U$`(B")) - ("gt" nil ("$B%4%H(B" . "$B$4$H(B")) - ("gn" nil ("$B%4%/(B" . "$B$4$/(B")) - ("gs" nil ("$B%,%/(B" . "$B$,$/(B")) - ("cr" nil ("$B%+%i(B" . "$B$+$i(B")) - ("cd" nil ("$B%+%?(B" . "$B$+$?(B")) - ("ct" nil ("$B%3%H(B" . "$B$3$H(B")) - ("cb" nil ("$B%+%s%,%((B" . "$B$+$s$,$((B")) - ("cn" nil ("$B%3%/(B" . "$B$3$/(B")) - ("cs" nil ("$B%+%/(B" . "$B$+$/(B")) - ("rr" nil ("$B%i%l(B" . "$B$i$l(B")) - ("rn" nil ("$B%i%s(B" . "$B$i$s(B")) - ("dg" nil ("$B%@%,(B" . "$B$@$,(B")) - ("dc" nil ("$B%G%-(B" . "$B$G$-(B")) - ("dr" nil ("$B%G%"%k(B" . "$B$G$"$k(B")) - ("dl" nil ("$B%G%7%g%&(B" . "$B$G$7$g$&(B")) - ("dd" nil ("$B%N%G(B" . "$B$N$G(B")) - ("dt" nil ("$B%@%A(B" . "$B$@$A(B")) - ("ds" nil ("$B%G%9(B" . "$B$G$9(B")) - ("dm" nil ("$B%G%b(B" . "$B$G$b(B")) - ("hg" nil ("$B%U%k(B" . "$B$U$k(B")) - ("hc" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) - ("hr" nil ("$B%R%H%j(B" . "$B$R$H$j(B")) - ("hl" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) - ("hd" nil ("$B%[%I(B" . "$B$[$I(B")) - ("hh" nil ("$B%R%H(B" . "$B$R$H(B")) - ("hz" nil ("$B%R%8%g%&(B" . "$B$R$8$g$&(B")) - ("tf" nil ("$B%H%j(B" . "$B$H$j(B")) - ("tg" nil ("$B%H%7%F(B" . "$B$H$7$F(B")) - ("tc" nil ("$B%D%$%F(B" . "$B$D$$$F(B")) - ("tr" nil ("$B%H%3%m(B" . "$B$H$3$m(B")) - ("tl" nil ("$B%H%/(B" . "$B$H$/(B")) - ("td" nil ("$B%H%$%&(B" . "$B$H$$$&(B")) - ("tn" nil ("$B%H%N(B" . "$B$H$N(B")) - ("tb" nil ("$B%?%S(B" . "$B$?$S(B")) - ("tm" nil ("$B%?%a(B" . "$B$?$a(B")) - ("tv" nil ("$B%H%-(B" . "$B$H$-(B")) - ("tz" nil ("$B%F%-(B" . "$B$F$-(B")) - ("nf" nil ("$B%J%j(B" . "$B$J$j(B")) - ("nc" nil ("$B%K%D%$%F(B" . "$B$K$D$$$F(B")) - ("nr" nil ("$B%J%k(B" . "$B$J$k(B")) - ("nl" nil ("$B%J%C%?(B" . "$B$J$C$?(B")) - ("nd" nil ("$B%J%I(B" . "$B$J$I(B")) - ("nb" nil ("$B%J%1%l%P(B" . "$B$J$1$l$P(B")) - ("nm" nil ("$B%J%/%F%b(B" . "$B$J$/$F$b(B")) - ("nw" nil ("$B%J%/%F%O(B" . "$B$J$/$F$O(B")) - ("nz" nil ("$B%J%/(B" . "$B$J$/(B")) - ("sf" nil ("$B%5%j(B" . "$B$5$j(B")) - ("sg" nil ("$B%5%l(B" . "$B$5$l(B")) - ("sc" nil ("$B%7%?(B" . "$B$7$?(B")) - ("sr" nil ("$B%9%k(B" . "$B$9$k(B")) - ("sd" nil ("$B%5%l(B" . "$B$5$l(B")) - ("sm" nil ("$B%7%b(B" . "$B$7$b(B")) - ("snb" nil ("$B%7%J%1%l%P(B" . "$B$7$J$1$l$P(B")) - ("snm" nil ("$B%7%J%/%F%b(B" . "$B$7$J$/$F$b(B")) - ("snt" nil ("$B%7%J%/%F(B" . "$B$7$J$/$F(B")) - ("snw" nil ("$B%7%J%/%F%O(B" . "$B$7$J$/$F$O(B")) - ("sz" nil ("$B%=%l%>%l(B" . "$B$=$l$>$l(B")) - ("bc" nil ("$B%S%e%&(B" . "$B$S$e$&(B")) - ("br" nil ("$B%P%i(B" . "$B$P$i(B")) - ("bl" nil ("$B%S%g%&(B" . "$B$S$g$&(B")) - ("bh" nil ("$B%V%D(B" . "$B$V$D(B")) - ("bt" nil ("$B%Y%D(B" . "$B$Y$D(B")) - ("mc" nil ("$B%_%e!<(B" . "$B$_$e!<(B")) - ("mr" nil ("$B%^%k(B" . "$B$^$k(B")) - ("ml" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) - ("md" nil ("$B%^%G(B" . "$B$^$G(B")) - ("mt" nil ("$B%^%?(B" . "$B$^$?(B")) - ("mn" nil ("$B%b%N(B" . "$B$b$N(B")) - ("ms" nil ("$B%^%9(B" . "$B$^$9(B")) - ("mm" nil ("$B%*%b(B" . "$B$*$b(B")) - ("wr" nil ("$B%o%l(B" . "$B$o$l(B")) - ("wt" nil ("$B%o%?%7(B" . "$B$o$?$7(B")) - ("wn" nil ("$B%o%l%o%l(B" . "$B$o$l$o$l(B")) - ("vm" nil ("$B%3%H%J(B" . "$B$3$H$J(B")) - ("vv" nil ("$B%*%J%8(B" . "$B$*$J$8(B")) - ("zc" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) - ("zr" nil ("$B%6%k(B" . "$B$6$k(B")) - ("zt" nil ("$B%:%D(B" . "$B$:$D(B")) - ("zn" nil ("$B%>%/(B" . "$B$>$/(B")) - ("zs" nil ("$B%6%/(B" . "$B$6$/(B")) - ("pf" nil ("$B%W%j(B" . "$B$W$j(B")) - ("pg" nil ("$B%W%k(B" . "$B$W$k(B")) - ("pr" nil ("$B%W%m(B" . "$B$W$m(B")) - ;; $BY92;$NBG$AJ}(B($B30Mh8l(B) - ("twa" nil ("$B%F%c(B" . "$B$F$c(B")) - ("twi" nil ("$B%F%#(B" . "$B$F$#(B")) - ("twu" nil ("$B%F%e(B" . "$B$F$e(B")) - ("twe" nil ("$B%F%'(B" . "$B$F$'(B")) - ("two" nil ("$B%F%g(B" . "$B$F$g(B")) - ("tw;" nil ("$B%F%c%s(B" . "$B$F$c$s(B")) - ("twx" nil ("$B%F%#%s(B" . "$B$F$#$s(B")) - ("twk" nil ("$B%F%e%s(B" . "$B$F$e$s(B")) - ("twj" nil ("$B%F%'%s(B" . "$B$F$'$s(B")) - ("twq" nil ("$B%F%g%s(B" . "$B$F$g$s(B")) - ("tw'" nil ("$B%F%c%&(B" . "$B$F$c$&(B")) - ("twp" nil ("$B%F%e%&(B" . "$B$F$e$&(B")) - ("tw." nil ("$B%F%'%$(B" . "$B$F$'$$(B")) - ("tw," nil ("$B%F%g%&(B" . "$B$F$g$&(B")) - ("dba" nil ("$B%G%c(B" . "$B$G$c(B")) - ("dbi" nil ("$B%G%#(B" . "$B$G$#(B")) - ("dbu" nil ("$B%G%e(B" . "$B$G$e(B")) - ("dbe" nil ("$B%G%'(B" . "$B$G$'(B")) - ("dbo" nil ("$B%G%g(B" . "$B$G$g(B")) - ("db;" nil ("$B%G%c%s(B" . "$B$G$c$s(B")) - ("dbx" nil ("$B%G%#%s(B" . "$B$G$#$s(B")) - ("dbk" nil ("$B%G%e%s(B" . "$B$G$e$s(B")) - ("dbj" nil ("$B%G%'%s(B" . "$B$G$'$s(B")) - ("dbq" nil ("$B%G%g%s(B" . "$B$G$g$s(B")) - ("db'" nil ("$B%G%c%&(B" . "$B$G$c$&(B")) - ("dbp" nil ("$B%G%e%&(B" . "$B$G$e$&(B")) - ("db." nil ("$B%G%'%$(B" . "$B$G$'$$(B")) - ("db," nil ("$B%G%g%&(B" . "$B$G$g$&(B")) - ("wma" nil ("$B%&%!(B" . "$B$&$!(B")) - ("wmi" nil ("$B%&%#(B" . "$B$&$#(B")) - ("wmu" nil ("$B%&%%(B" . "$B$&$%(B")) - ("wme" nil ("$B%&%'(B" . "$B$&$'(B")) - ("wmo" nil ("$B%&%)(B" . "$B$&$)(B")) - ("wm;" nil ("$B%&%!%s(B" . "$B$&$!$s(B")) - ("wmx" nil ("$B%&%#%s(B" . "$B$&$#$s(B")) - ("wmk" nil ("$B%&%%%s(B" . "$B$&$%$s(B")) - ("wmj" nil ("$B%&%'%s(B" . "$B$&$'$s(B")) - ("wmq" nil ("$B%&%)%s(B" . "$B$&$)$s(B")) - ("wm'" nil ("$B%&%!%&(B" . "$B$&$!$&(B")) - ("wmp" nil ("$B%&%%%&(B" . "$B$&$%$&(B")) - ("wm." nil ("$B%&%'%$(B" . "$B$&$'$$(B")) - ("wm," nil ("$B%&%)%&(B" . "$B$&$)$&(B"))))) + ;; 標準の x* の置き換え + ("`a" nil ("ァ" . "ぁ")) + ("`i" nil ("ィ" . "ぃ")) + ("`u" nil ("ゥ" . "ぅ")) + ("`e" nil ("ェ" . "ぇ")) + ("`o" nil ("ォ" . "ぉ")) + ("`ca" nil ("ヵ" . "か")) + ("`ce" nil ("ヶ" . "け")) + ;;("`tsu" nil ("ッ" . "っ")) ; 「↑」と衝突するのでコメントアウト + ;;("`tu" nil ("ッ" . "っ")) ; 「↑」と衝突するのでコメントアウト + ("`wa" nil ("ヮ" . "ゎ")) + ("`we" nil ("ヱ" . "ゑ")) + ("`wi" nil ("ヰ" . "ゐ")) + ("`ya" nil ("ャ" . "ゃ")) + ("`yo" nil ("ョ" . "ょ")) + ("`yu" nil ("ュ" . "ゅ")) + ;; ヤ行の互換キー + ("`ys" nil ("ャ" . "ゃ")) ; リファレンスにはなし + ("`yn" nil ("ョ" . "ょ")) ; リファレンスにはなし + ("`yh" nil ("ュ" . "ゅ")) ; リファレンスにはなし + ;; 標準の z* の置き換え + ("`," nil "‥") + ("`-" nil "~") + ("`." nil "…") + ("`/" nil "・") + ("`[" nil "『") + ("`]" nil "』") + ("`d" nil "←") + ("`h" nil "↓") + ("`t" nil "↑") + ("`n" nil "→") + ;; か行は c を使う + ("ca" nil ("カ" . "か")) + ("ci" nil ("キ" . "き")) + ("cu" nil ("ク" . "く")) + ("ce" nil ("ケ" . "け")) + ("co" nil ("コ" . "こ")) + ;; 清音,濁音,撥音拡張,二重母音拡張 + (";" nil ("アン" . "あん")) + ("x" nil ("イン" . "いん")) + ("k" nil ("ウン" . "うん")) + ("j" nil ("エン" . "えん")) + ("q" nil ("オン" . "おん")) + ("c;" nil ("カン" . "かん")) + ("cx" nil ("キン" . "きん")) + ("ck" nil ("クン" . "くん")) + ("cj" nil ("ケン" . "けん")) + ("cq" nil ("コン" . "こん")) + ("c'" nil ("カイ" . "かい")) + ("cp" nil ("クウ" . "くう")) + ("c." nil ("ケイ" . "けい")) + ("c," nil ("コウ" . "こう")) + ("s;" nil ("サン" . "さん")) + ("sx" nil ("シン" . "しん")) + ("sk" nil ("スン" . "すん")) + ("sj" nil ("セン" . "せん")) + ("sq" nil ("ソン" . "そん")) + ("s'" nil ("サイ" . "さい")) + ("sp" nil ("スウ" . "すう")) + ("s." nil ("セイ" . "せい")) + ("s," nil ("ソウ" . "そう")) + ("t;" nil ("タン" . "たん")) + ("tx" nil ("チン" . "ちん")) + ("tk" nil ("ツン" . "つん")) + ("tj" nil ("テン" . "てん")) + ("tq" nil ("トン" . "とん")) + ("t'" nil ("タイ" . "たい")) + ("tp" nil ("ツウ" . "つう")) + ("t." nil ("テイ" . "てい")) + ("t," nil ("トウ" . "とう")) + ("n;" nil ("ナン" . "なん")) + ("nx" nil ("ニン" . "にん")) + ("nk" nil ("ヌン" . "ぬん")) + ("nj" nil ("ネン" . "ねん")) + ("nq" nil ("ノン" . "のん")) + ("n'" nil ("ナイ" . "ない")) + ("np" nil ("ヌウ" . "ぬう")) + ("n." nil ("ネイ" . "ねい")) + ("n," nil ("ノウ" . "のう")) + ("h;" nil ("ハン" . "はん")) + ("hx" nil ("ヒン" . "ひん")) + ("hk" nil ("フン" . "ふん")) + ("hj" nil ("ヘン" . "へん")) + ("hq" nil ("ホン" . "ほん")) + ("h'" nil ("ハイ" . "はい")) + ("hp" nil ("フウ" . "ふう")) + ("h." nil ("ヘイ" . "へい")) + ("h," nil ("ホウ" . "ほう")) + ("m;" nil ("マン" . "まん")) + ("mx" nil ("ミン" . "みん")) + ("mk" nil ("ムン" . "むん")) + ("mj" nil ("メン" . "めん")) + ("mq" nil ("モン" . "もん")) + ("m'" nil ("マイ" . "まい")) + ("mp" nil ("ムウ" . "むう")) + ("m." nil ("メイ" . "めい")) + ("m," nil ("モウ" . "もう")) + ("y;" nil ("ヤン" . "やん")) + ;;("yx" nil ("イン" . "いん")) ; リファレンスにはなし + ("yk" nil ("ユン" . "ゆん")) + ;;("yj" nil ("イェン" . "いぇん")) ; リファレンスにはなし + ("yq" nil ("ヨン" . "よん")) + ("y'" nil ("ヤイ" . "やい")) + ("yp" nil ("ユウ" . "ゆう")) + ("y." nil ("イウ" . "いう")) + ("y," nil ("ヨウ" . "よう")) + ("r;" nil ("ラン" . "らん")) + ("rx" nil ("リン" . "りん")) + ("rk" nil ("ルン" . "るん")) + ("rj" nil ("レン" . "れん")) + ("rq" nil ("ロン" . "ろん")) + ("r'" nil ("ライ" . "らい")) + ("rp" nil ("ルウ" . "るう")) + ("r." nil ("レイ" . "れい")) + ("r," nil ("ロウ" . "ろう")) + ("w;" nil ("ワン" . "わん")) + ("wx" nil ("ウィン" . "うぃん")) + ("wk" nil ("ウン" . "うん")) + ("wj" nil ("ウェン" . "うぇん")) + ("wq" nil ("ウォン" . "うぉん")) + ("w'" nil ("ワイ" . "わい")) + ("wp" nil ("ウゥ" . "うぅ")) + ("w." nil ("ウェイ" . "うぇい")) + ("w," nil ("ウォー" . "うぉー")) + ("g;" nil ("ガン" . "がん")) + ("gx" nil ("ギン" . "ぎん")) + ("gk" nil ("グン" . "ぐん")) + ("gj" nil ("ゲン" . "げん")) + ("gq" nil ("ゴン" . "ごん")) + ("g'" nil ("ガイ" . "がい")) + ("gp" nil ("グウ" . "ぐう")) + ("g." nil ("ゲイ" . "げい")) + ("g," nil ("ゴウ" . "ごう")) + ("z;" nil ("ザン" . "ざん")) + ("zx" nil ("ジン" . "じん")) + ("zk" nil ("ズン" . "ずん")) + ("zj" nil ("ゼン" . "ぜん")) + ("zq" nil ("ゾン" . "ぞん")) + ("z'" nil ("ザイ" . "ざい")) + ("zp" nil ("ズウ" . "ずう")) + ("z." nil ("ゼイ" . "ぜい")) + ("z," nil ("ゾウ" . "ぞう")) + ("d;" nil ("ダン" . "だん")) + ("dx" nil ("ヂン" . "ぢん")) + ("dk" nil ("ヅン" . "づん")) + ("dj" nil ("デン" . "でん")) + ("dq" nil ("ドン" . "どん")) + ("d'" nil ("ダイ" . "だい")) + ("dp" nil ("ヅウ" . "づう")) + ("d." nil ("デイ" . "でい")) + ("d," nil ("ドウ" . "どう")) + ("b;" nil ("バン" . "ばん")) + ("bx" nil ("ビン" . "びん")) + ("bk" nil ("ブン" . "ぶん")) + ("bj" nil ("ベン" . "べん")) + ("bq" nil ("ボン" . "ぼん")) + ("b'" nil ("バイ" . "ばい")) + ("bp" nil ("ブウ" . "ぶう")) + ("b." nil ("ベイ" . "べい")) + ("b," nil ("ボウ" . "ぼう")) + ("p;" nil ("パン" . "ぱん")) + ("px" nil ("ピン" . "ぴん")) + ("pk" nil ("プン" . "ぷん")) + ("pj" nil ("ペン" . "ぺん")) + ("pq" nil ("ポン" . "ぽん")) + ("p'" nil ("パイ" . "ぱい")) + ("pp" nil ("プウ" . "ぷう")) + ("p." nil ("ペイ" . "ぺい")) + ("p," nil ("ポウ" . "ぽう")) + ;; 拗音,撥音拡張,二重母音拡張 + ("cga" nil ("キャ" . "きゃ")) + ("cgi" nil ("キィ" . "きぃ")) + ("cgu" nil ("キュ" . "きゅ")) + ("cge" nil ("キェ" . "きぇ")) + ("cgo" nil ("キョ" . "きょ")) + ("cg;" nil ("キャン" . "きゃん")) + ("cgx" nil ("キィン" . "きぃん")) + ("cgk" nil ("キュン" . "きゅん")) + ("cgj" nil ("キェン" . "きぇん")) + ("cgq" nil ("キョン" . "きょん")) + ("cg'" nil ("キャイ" . "きゃい")) + ("cgp" nil ("キュウ" . "きゅう")) + ("cg." nil ("キェイ" . "きぇい")) + ("cg," nil ("キョウ" . "きょう")) + ;; 標準でこうなっているけど一応 + ("sha" nil ("シャ" . "しゃ")) + ("shi" nil ("シィ" . "しぃ")) ; リファレンスでは `し' だけど + ("shu" nil ("シュ" . "しゅ")) + ("she" nil ("シェ" . "しぇ")) + ("sho" nil ("ショ" . "しょ")) + ("sh;" nil ("シャン" . "しゃん")) + ("shx" nil ("シィン" . "しぃん")) + ("shk" nil ("シュン" . "しゅん")) + ("shj" nil ("シェン" . "しぇん")) + ("shq" nil ("ション" . "しょん")) + ("sh'" nil ("シャイ" . "しゃい")) + ("shp" nil ("シュウ" . "しゅう")) + ("sh." nil ("シェイ" . "しぇい")) + ("sh," nil ("ショウ" . "しょう")) + ("tha" nil ("チャ" . "ちゃ")) + ("thi" nil ("チィ" . "ちぃ")) + ("thu" nil ("チュ" . "ちゅ")) + ("the" nil ("チェ" . "ちぇ")) + ("tho" nil ("チョ" . "ちょ")) + ("th;" nil ("チャン" . "ちゃん")) + ("thx" nil ("チィン" . "ちぃん")) + ("thk" nil ("チュン" . "ちゅん")) + ("thj" nil ("チェン" . "ちぇん")) + ("thq" nil ("チョン" . "ちょん")) + ("th'" nil ("チャイ" . "ちゃい")) + ("thp" nil ("チュウ" . "ちゅう")) + ("th." nil ("チェイ" . "ちぇい")) + ("th," nil ("チョウ" . "ちょう")) + ("nha" nil ("ニャ" . "にゃ")) + ("nhi" nil ("ニィ" . "にぃ")) + ("nhu" nil ("ニュ" . "にゅ")) + ("nhe" nil ("ニェ" . "にぇ")) + ("nho" nil ("ニョ" . "にょ")) + ("nh;" nil ("ニャン" . "にゃん")) + ("nhx" nil ("ニィン" . "にぃん")) + ("nhk" nil ("ニュン" . "にゅん")) + ("nhj" nil ("ニェン" . "にぇん")) + ("nhq" nil ("ニョン" . "にょん")) + ("nh'" nil ("ニャイ" . "にゃい")) + ("nhp" nil ("ニュウ" . "にゅう")) + ("nh." nil ("ニェイ" . "にぇい")) + ("nh," nil ("ニョウ" . "にょう")) + ("hna" nil ("ヒャ" . "ひゃ")) + ("hni" nil ("ヒィ" . "ひぃ")) + ("hnu" nil ("ヒュ" . "ひゅ")) + ("hne" nil ("ヒェ" . "ひぇ")) + ("hno" nil ("ヒョ" . "ひょ")) + ("hn;" nil ("ヒャン" . "ひゃん")) + ("hnx" nil ("ヒィン" . "ひぃん")) + ("hnk" nil ("ヒュン" . "ひゅん")) + ("hnj" nil ("ヒェン" . "ひぇん")) + ("hnq" nil ("ヒョン" . "ひょん")) + ("hn'" nil ("ヒャイ" . "ひゃい")) + ("hnp" nil ("ヒュウ" . "ひゅう")) + ("hn." nil ("ヒェイ" . "ひぇい")) + ("hn," nil ("ヒョウ" . "ひょう")) + ("mva" nil ("ミャ" . "みゃ")) + ("mvi" nil ("ミィ" . "みぃ")) + ("mvu" nil ("ミュ" . "みゅ")) + ("mve" nil ("ミェ" . "みぇ")) + ("mvo" nil ("ミョ" . "みょ")) + ("mv;" nil ("ミャン" . "みゃん")) + ("mvx" nil ("ミィン" . "みぃん")) + ("mvk" nil ("ミュン" . "みゅん")) + ("mvj" nil ("ミェン" . "みぇん")) + ("mvq" nil ("ミョン" . "みょん")) + ("mv'" nil ("ミャイ" . "みゃい")) + ("mvp" nil ("ミュウ" . "みゅう")) + ("mv." nil ("ミェイ" . "みぇい")) + ("mv," nil ("ミョウ" . "みょう")) + ("rga" nil ("リャ" . "りゃ")) + ("rgi" nil ("リィ" . "りぃ")) + ("rgu" nil ("リュ" . "りゅ")) + ("rge" nil ("リェ" . "りぇ")) + ("rgo" nil ("リョ" . "りょ")) + ("rg;" nil ("リャン" . "りゃん")) + ("rgx" nil ("リィン" . "りぃん")) + ("rgk" nil ("リュン" . "りゅん")) + ("rgj" nil ("リェン" . "りぇん")) + ("rgq" nil ("リョン" . "りょん")) + ("rg'" nil ("リャイ" . "りゃい")) + ("rgp" nil ("リュウ" . "りゅう")) + ("rg." nil ("リェイ" . "りぇい")) + ("rg," nil ("リョウ" . "りょう")) + ("gra" nil ("ギャ" . "ぎゃ")) + ("gri" nil ("ギィ" . "ぎぃ")) + ("gru" nil ("ギュ" . "ぎゅ")) + ("gre" nil ("ギェ" . "ぎぇ")) + ("gro" nil ("ギョ" . "ぎょ")) + ("gr;" nil ("ギャン" . "ぎゃん")) + ("grx" nil ("ギィン" . "ぎぃん")) + ("grk" nil ("ギュン" . "ぎゅん")) + ("grj" nil ("ギェン" . "ぎぇん")) + ("grq" nil ("ギョン" . "ぎょん")) + ("gr'" nil ("ギャイ" . "ぎゃい")) + ("grp" nil ("ギュウ" . "ぎゅう")) + ("gr." nil ("ギェイ" . "ぎぇい")) + ("gr," nil ("ギョウ" . "ぎょう")) + ("zma" nil ("ジャ" . "じゃ")) + ("zmi" nil ("ジィ" . "じぃ")) + ("zmu" nil ("ジュ" . "じゅ")) + ("zme" nil ("ジェ" . "じぇ")) + ("zmo" nil ("ジョ" . "じょ")) + ("zm;" nil ("ジャン" . "じゃん")) + ("zmx" nil ("ジィン" . "じぃん")) + ("zmk" nil ("ジュン" . "じゅん")) + ("zmj" nil ("ジェン" . "じぇん")) + ("zmq" nil ("ジョン" . "じょん")) + ("zm'" nil ("ジャイ" . "じゃい")) + ("zmp" nil ("ジュウ" . "じゅう")) + ("zm." nil ("ジェイ" . "じぇい")) + ("zm," nil ("ジョウ" . "じょう")) + ("dna" nil ("ヂャ" . "ぢゃ")) + ("dni" nil ("ヂィ" . "ぢぃ")) + ("dnu" nil ("ヂュ" . "ぢゅ")) + ("dne" nil ("ヂェ" . "ぢぇ")) + ("dno" nil ("ヂョ" . "ぢょ")) + ("dn;" nil ("ヂャン" . "ぢゃん")) + ("dnx" nil ("ヂィン" . "ぢぃん")) + ("dnk" nil ("ヂュン" . "ぢゅん")) + ("dnj" nil ("ヂェン" . "ぢぇん")) + ("dnq" nil ("ヂョン" . "ぢょん")) + ("dn'" nil ("ヂャイ" . "ぢゃい")) + ("dnp" nil ("ヂュウ" . "ぢゅう")) + ("dn." nil ("ヂェイ" . "ぢぇい")) + ("dn," nil ("ヂョウ" . "ぢょう")) + ("bva" nil ("ビャ" . "びゃ")) + ("bvi" nil ("ビィ" . "びぃ")) + ("bvu" nil ("ビュ" . "びゅ")) + ("bve" nil ("ビェ" . "びぇ")) + ("bvo" nil ("ビョ" . "びょ")) + ("bv;" nil ("ビャン" . "びゃん")) + ("bvx" nil ("ビィン" . "びぃん")) + ("bvk" nil ("ビュン" . "びゅん")) + ("bvj" nil ("ビェン" . "びぇん")) + ("bvq" nil ("ビョン" . "びょん")) + ("bv'" nil ("ビャイ" . "びゃい")) + ("bvp" nil ("ビュウ" . "びゅう")) + ("bv." nil ("ビェイ" . "びぇい")) + ("bv," nil ("ビョウ" . "びょう")) + ("pna" nil ("ピャ" . "ぴゃ")) + ("pni" nil ("ピィ" . "ぴぃ")) + ("pnu" nil ("ピュ" . "ぴゅ")) + ("pne" nil ("ピェ" . "ぴぇ")) + ("pno" nil ("ピョ" . "ぴょ")) + ("pn;" nil ("ピャン" . "ぴゃん")) + ("pnx" nil ("ピィン" . "ぴぃん")) + ("pnk" nil ("ピュン" . "ぴゅん")) + ("pnj" nil ("ピェン" . "ぴぇん")) + ("pnq" nil ("ピョン" . "ぴょん")) + ("pn'" nil ("ピャイ" . "ぴゃい")) + ("pnp" nil ("ピュウ" . "ぴゅう")) + ("pn." nil ("ピェイ" . "ぴぇい")) + ("pn," nil ("ピョウ" . "ぴょう")) + ;; 拗音(2ストローク系),撥音拡張,二重母音拡張 + ("f;" nil ("ファン" . "ふぁん")) + ("fx" nil ("フィン" . "ふぃん")) + ("fk" nil ("フン" . "ふん")) + ("fj" nil ("フェン" . "ふぇん")) + ("fq" nil ("フォン" . "ふぉん")) + ("f'" nil ("ファイ" . "ふぁい")) + ("fp" nil ("フウ" . "ふう")) + ("f." nil ("フェイ" . "ふぇい")) + ("f," nil ("フォー" . "ふぉー")) + ("v;" nil ("ヴァン" . "う゛ぁん")) + ("vx" nil ("ヴィン" . "う゛ぃん")) + ("vk" nil ("ヴン" . "う゛ん")) + ("vj" nil ("ヴェン" . "う゛ぇん")) + ("vq" nil ("ヴォン" . "う゛ぉん")) + ("v'" nil ("ヴァイ" . "う゛ぁい")) + ("vp" nil ("ヴー" . "う゛ー")) + ("v." nil ("ヴェイ" . "う゛ぇい")) + ("v," nil ("ヴォー" . "う゛ぉー")) + ;; 頻出拗音の省略打ち + ("pc" nil ("ピュウ" . "ぴゅう")) + ("pl" nil ("ピョウ" . "ぴょう")) + ("fc" nil ("フュー" . "ふゅー")) + ("fl" nil ("フォー" . "ふぉー")) + ("gc" nil ("ギュウ" . "ぎゅう")) + ("gl" nil ("ギョウ" . "ぎょう")) + ("cc" nil ("キュウ" . "きゅう")) + ("cl" nil ("キョウ" . "きょう")) + ("rc" nil ("リュウ" . "りゅう")) + ("rl" nil ("リョウ" . "りょう")) + ("ht" nil ("ヒュウ" . "ひゅう")) + ("hs" nil ("ヒョウ" . "ひょう")) + ("tt" nil ("チュウ" . "ちゅう")) + ("ts" nil ("チョウ" . "ちょう")) + ("nt" nil ("ニュウ" . "にゅう")) + ("ns" nil ("ニョウ" . "にょう")) + ("st" nil ("シュウ" . "しゅう")) + ("ss" nil ("ショウ" . "しょう")) + ("bw" nil ("ビュウ" . "びゅう")) + ("bz" nil ("ビョウ" . "びょう")) + ("mw" nil ("ミュー" . "みゅー")) + ("mz" nil ("ミョウ" . "みょう")) + ("wz" nil ("ウォー" . "うぉー")) + ("vw" nil ("ヴュー" . "う゛ゅー")) + ("vz" nil ("ヴォー" . "う゛ぉー")) + ("zw" nil ("ジュウ" . "じゅう")) + ("zz" nil ("ジョウ" . "じょう")) + ;; 拗音+ク・ツの省略打ち + ("grr" nil ("ギョク" . "ぎょく")) + ("grl" nil ("ギャク" . "ぎゃく")) + ("cgr" nil ("キョク" . "きょく")) + ("cgl" nil ("キャク" . "きゃく")) + ("rgr" nil ("リョク" . "りょく")) + ("rgl" nil ("リャク" . "りゃく")) + ("hns" nil ("ヒャク" . "ひゃく")) + ("thn" nil ("チョク" . "ちょく")) + ("ths" nil ("チャク" . "ちゃく")) + ("nhn" nil ("ニョク" . "にょく")) + ("nhs" nil ("ニャク" . "にゃく")) + ("shn" nil ("ショク" . "しょく")) + ("shs" nil ("シャク" . "しゃく")) + ("sht" nil ("シュツ" . "しゅつ")) + ("pns" nil ("ピャク" . "ぴゃく")) + ("bvv" nil ("ビョク" . "びょく")) + ("bvz" nil ("ビャク" . "びゃく")) + ("mvv" nil ("ミョク" . "みょく")) + ("mvz" nil ("ミャク" . "みゃく")) + ("zmv" nil ("ジョク" . "じょく")) + ("zmz" nil ("ジャク" . "じゃく")) + ("zmw" nil ("ジュツ" . "じゅつ")) + ("shh" nil ("シュク" . "しゅく")) + ("zmm" nil ("ジュク" . "じゅく")) + ;; ヤ行の互換キー + ("yh" nil ("ユ" . "ゆ")) + ("yg" nil ("ユウ" . "ゆう")) + ("yz" nil ("ヤン" . "やん")) + ("ym" nil ("ユン" . "ゆん")) + ("yv" nil ("ヨン" . "よん")) + ;; パ行の互換キー + ("ps" nil ("パ" . "ぱ")) + ("pd" nil ("ピ" . "ぴ")) + ("ph" nil ("プ" . "ぷ")) + ("pt" nil ("ペ" . "ぺ")) + ("pz" nil ("パン" . "ぱん")) + ("pb" nil ("ピン" . "ぴん")) + ("pm" nil ("プン" . "ぷん")) + ("pw" nil ("ペン" . "ぺん")) + ("pv" nil ("ポン" . "ぽん")) + ;; ヤ行頻出文字列の省略打ち + ("yy" nil ("イウ" . "いう")) + ("yf" nil ("ヨリ" . "より")) + ("yc" nil ("イウ" . "いう")) + ("yr" nil ("ヨル" . "よる")) + ("yl" nil ("ヤル" . "やる")) + ("yd" nil ("ヨイ" . "よい")) + ("yt" nil ("ヨッテ" . "よって")) + ("yn" nil ("ヨク" . "よく")) + ("ys" nil ("ヤク" . "やく")) + ("yb" nil ("ユビ" . "ゆび")) + ("yw" nil ("イワレ" . "いわれ")) + ;; その他の頻出文字列の省略打ち + ("ff" nil ("フリ" . "ふり")) + ("fg" nil ("フル" . "ふる")) + ("fr" nil ("フル" . "ふる")) + ("fn" nil ("ファン" . "ふぁん")) + ("fm" nil ("フム" . "ふむ")) + ("gt" nil ("ゴト" . "ごと")) + ("gn" nil ("ゴク" . "ごく")) + ("gs" nil ("ガク" . "がく")) + ("cr" nil ("カラ" . "から")) + ("cd" nil ("カタ" . "かた")) + ("ct" nil ("コト" . "こと")) + ("cb" nil ("カンガエ" . "かんがえ")) + ("cn" nil ("コク" . "こく")) + ("cs" nil ("カク" . "かく")) + ("rr" nil ("ラレ" . "られ")) + ("rn" nil ("ラン" . "らん")) + ("dg" nil ("ダガ" . "だが")) + ("dc" nil ("デキ" . "でき")) + ("dr" nil ("デアル" . "である")) + ("dl" nil ("デショウ" . "でしょう")) + ("dd" nil ("ノデ" . "ので")) + ("dt" nil ("ダチ" . "だち")) + ("ds" nil ("デス" . "です")) + ("dm" nil ("デモ" . "でも")) + ("hg" nil ("フル" . "ふる")) + ("hc" nil ("ヒュウ" . "ひゅう")) + ("hr" nil ("ヒトリ" . "ひとり")) + ("hl" nil ("ヒョウ" . "ひょう")) + ("hd" nil ("ホド" . "ほど")) + ("hh" nil ("ヒト" . "ひと")) + ("hz" nil ("ヒジョウ" . "ひじょう")) + ("tf" nil ("トリ" . "とり")) + ("tg" nil ("トシテ" . "として")) + ("tc" nil ("ツイテ" . "ついて")) + ("tr" nil ("トコロ" . "ところ")) + ("tl" nil ("トク" . "とく")) + ("td" nil ("トイウ" . "という")) + ("tn" nil ("トノ" . "との")) + ("tb" nil ("タビ" . "たび")) + ("tm" nil ("タメ" . "ため")) + ("tv" nil ("トキ" . "とき")) + ("tz" nil ("テキ" . "てき")) + ("nf" nil ("ナリ" . "なり")) + ("nc" nil ("ニツイテ" . "について")) + ("nr" nil ("ナル" . "なる")) + ("nl" nil ("ナッタ" . "なった")) + ("nd" nil ("ナド" . "など")) + ("nb" nil ("ナケレバ" . "なければ")) + ("nm" nil ("ナクテモ" . "なくても")) + ("nw" nil ("ナクテハ" . "なくては")) + ("nz" nil ("ナク" . "なく")) + ("sf" nil ("サリ" . "さり")) + ("sg" nil ("サレ" . "され")) + ("sc" nil ("シタ" . "した")) + ("sr" nil ("スル" . "する")) + ("sd" nil ("サレ" . "され")) + ("sm" nil ("シモ" . "しも")) + ("snb" nil ("シナケレバ" . "しなければ")) + ("snm" nil ("シナクテモ" . "しなくても")) + ("snt" nil ("シナクテ" . "しなくて")) + ("snw" nil ("シナクテハ" . "しなくては")) + ("sz" nil ("ソレゾレ" . "それぞれ")) + ("bc" nil ("ビュウ" . "びゅう")) + ("br" nil ("バラ" . "ばら")) + ("bl" nil ("ビョウ" . "びょう")) + ("bh" nil ("ブツ" . "ぶつ")) + ("bt" nil ("ベツ" . "べつ")) + ("mc" nil ("ミュー" . "みゅー")) + ("mr" nil ("マル" . "まる")) + ("ml" nil ("ミョウ" . "みょう")) + ("md" nil ("マデ" . "まで")) + ("mt" nil ("マタ" . "また")) + ("mn" nil ("モノ" . "もの")) + ("ms" nil ("マス" . "ます")) + ("mm" nil ("オモ" . "おも")) + ("wr" nil ("ワレ" . "われ")) + ("wt" nil ("ワタシ" . "わたし")) + ("wn" nil ("ワレワレ" . "われわれ")) + ("vm" nil ("コトナ" . "ことな")) + ("vv" nil ("オナジ" . "おなじ")) + ("zc" nil ("ジュウ" . "じゅう")) + ("zr" nil ("ザル" . "ざる")) + ("zt" nil ("ズツ" . "ずつ")) + ("zn" nil ("ゾク" . "ぞく")) + ("zs" nil ("ザク" . "ざく")) + ("pf" nil ("プリ" . "ぷり")) + ("pg" nil ("プル" . "ぷる")) + ("pr" nil ("プロ" . "ぷろ")) + ;; 拗音の打ち方(外来語) + ("twa" nil ("テャ" . "てゃ")) + ("twi" nil ("ティ" . "てぃ")) + ("twu" nil ("テュ" . "てゅ")) + ("twe" nil ("テェ" . "てぇ")) + ("two" nil ("テョ" . "てょ")) + ("tw;" nil ("テャン" . "てゃん")) + ("twx" nil ("ティン" . "てぃん")) + ("twk" nil ("テュン" . "てゅん")) + ("twj" nil ("テェン" . "てぇん")) + ("twq" nil ("テョン" . "てょん")) + ("tw'" nil ("テャウ" . "てゃう")) + ("twp" nil ("テュウ" . "てゅう")) + ("tw." nil ("テェイ" . "てぇい")) + ("tw," nil ("テョウ" . "てょう")) + ("dba" nil ("デャ" . "でゃ")) + ("dbi" nil ("ディ" . "でぃ")) + ("dbu" nil ("デュ" . "でゅ")) + ("dbe" nil ("デェ" . "でぇ")) + ("dbo" nil ("デョ" . "でょ")) + ("db;" nil ("デャン" . "でゃん")) + ("dbx" nil ("ディン" . "でぃん")) + ("dbk" nil ("デュン" . "でゅん")) + ("dbj" nil ("デェン" . "でぇん")) + ("dbq" nil ("デョン" . "でょん")) + ("db'" nil ("デャウ" . "でゃう")) + ("dbp" nil ("デュウ" . "でゅう")) + ("db." nil ("デェイ" . "でぇい")) + ("db," nil ("デョウ" . "でょう")) + ("wma" nil ("ウァ" . "うぁ")) + ("wmi" nil ("ウィ" . "うぃ")) + ("wmu" nil ("ウゥ" . "うぅ")) + ("wme" nil ("ウェ" . "うぇ")) + ("wmo" nil ("ウォ" . "うぉ")) + ("wm;" nil ("ウァン" . "うぁん")) + ("wmx" nil ("ウィン" . "うぃん")) + ("wmk" nil ("ウゥン" . "うぅん")) + ("wmj" nil ("ウェン" . "うぇん")) + ("wmq" nil ("ウォン" . "うぉん")) + ("wm'" nil ("ウァウ" . "うぁう")) + ("wmp" nil ("ウゥウ" . "うぅう")) + ("wm." nil ("ウェイ" . "うぇい")) + ("wm," nil ("ウォウ" . "うぉう"))))) (unless skk-act-use-normal-y (setq list (append list - '(("cy" nil ("$B%/%$(B" . "$B$/$$(B")) - ("sy" nil ("$B%9%$(B" . "$B$9$$(B")) - ("ty" nil ("$B%D%$(B" . "$B$D$$(B")) - ("ny" nil ("$B%L%$(B" . "$B$L$$(B")) - ("hy" nil ("$B%U%$(B" . "$B$U$$(B")) - ("my" nil ("$B%`%$(B" . "$B$`$$(B")) - ("yy" nil ("$B%f%$(B" . "$B$f$$(B")) - ("ry" nil ("$B%k%$(B" . "$B$k$$(B")) - ("wy" nil ("$B%&%$(B" . "$B$&$$(B")) - ("gy" nil ("$B%0%$(B" . "$B$0$$(B")) - ("zy" nil ("$B%:%$(B" . "$B$:$$(B")) - ("dy" nil ("$B%E%$(B" . "$B$E$$(B")) - ("by" nil ("$B%V%$(B" . "$B$V$$(B")) - ("py" nil ("$B%W%$(B" . "$B$W$$(B")) - ("cgy" nil ("$B%-%e%$(B" . "$B$-$e$$(B")) - ("shy" nil ("$B%7%e%$(B" . "$B$7$e$$(B")) - ("thy" nil ("$B%A%e%$(B" . "$B$A$e$$(B")) - ("nhy" nil ("$B%K%e%$(B" . "$B$K$e$$(B")) - ("hny" nil ("$B%R%e%$(B" . "$B$R$e$$(B")) - ("mvy" nil ("$B%_%e%$(B" . "$B$_$e$$(B")) - ("rgy" nil ("$B%j%e%$(B" . "$B$j$e$$(B")) - ("gry" nil ("$B%.%e%$(B" . "$B$.$e$$(B")) - ("zmy" nil ("$B%8%e%$(B" . "$B$8$e$$(B")) - ("dny" nil ("$B%B%e%$(B" . "$B$B$e$$(B")) - ("bvy" nil ("$B%S%e%$(B" . "$B$S$e$$(B")) - ("pny" nil ("$B%T%e%$(B" . "$B$T$e$$(B")) - ("fy" nil ("$B%U%$(B" . "$B$U$$(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ("vy" nil ("$B%t%$(B" . "$B$&!+$$(B")) ; $B%j%U%!%l%s%9$K$O$J$7(B - ("twy" nil ("$B%F%e%$(B" . "$B$F$e$$(B")) - ("dby" nil ("$B%G%e%$(B" . "$B$G$e$$(B")) - ("wmy" nil ("$B%&%%%$(B" . "$B$&$%$$(B")))))) - ;; shift $B$r2!$7$?$^$^$NFs=EJl2;3HD%(B - ;; `skk-special-midashi-char-list' $B$K(B - ;; < > $B$,L5$$>l9g$N$_DI2C$9$k(B + '(("cy" nil ("クイ" . "くい")) + ("sy" nil ("スイ" . "すい")) + ("ty" nil ("ツイ" . "つい")) + ("ny" nil ("ヌイ" . "ぬい")) + ("hy" nil ("フイ" . "ふい")) + ("my" nil ("ムイ" . "むい")) + ("yy" nil ("ユイ" . "ゆい")) + ("ry" nil ("ルイ" . "るい")) + ("wy" nil ("ウイ" . "うい")) + ("gy" nil ("グイ" . "ぐい")) + ("zy" nil ("ズイ" . "ずい")) + ("dy" nil ("ヅイ" . "づい")) + ("by" nil ("ブイ" . "ぶい")) + ("py" nil ("プイ" . "ぷい")) + ("cgy" nil ("キュイ" . "きゅい")) + ("shy" nil ("シュイ" . "しゅい")) + ("thy" nil ("チュイ" . "ちゅい")) + ("nhy" nil ("ニュイ" . "にゅい")) + ("hny" nil ("ヒュイ" . "ひゅい")) + ("mvy" nil ("ミュイ" . "みゅい")) + ("rgy" nil ("リュイ" . "りゅい")) + ("gry" nil ("ギュイ" . "ぎゅい")) + ("zmy" nil ("ジュイ" . "じゅい")) + ("dny" nil ("ヂュイ" . "ぢゅい")) + ("bvy" nil ("ビュイ" . "びゅい")) + ("pny" nil ("ピュイ" . "ぴゅい")) + ("fy" nil ("フイ" . "ふい")) ; リファレンスにはなし + ("vy" nil ("ヴイ" . "う゛い")) ; リファレンスにはなし + ("twy" nil ("テュイ" . "てゅい")) + ("dby" nil ("デュイ" . "でゅい")) + ("wmy" nil ("ウゥイ" . "うぅい")))))) + ;; shift を押したままの二重母音拡張 + ;; `skk-special-midashi-char-list' に + ;; < > が無い場合のみ追加する (unless (memq ?< skk-special-midashi-char-list) (setq list (append list - '(("c<" nil ("$B%3%&(B" . "$B$3$&(B")) - ("s<" nil ("$B%=%&(B" . "$B$=$&(B")) - ("t<" nil ("$B%H%&(B" . "$B$H$&(B")) - ("n<" nil ("$B%N%&(B" . "$B$N$&(B")) - ("h<" nil ("$B%[%&(B" . "$B$[$&(B")) - ("m<" nil ("$B%b%&(B" . "$B$b$&(B")) - ("y<" nil ("$B%h%&(B" . "$B$h$&(B")) - ("r<" nil ("$B%m%&(B" . "$B$m$&(B")) - ("w<" nil ("$B%&%)!<(B" . "$B$&$)!<(B")) - ("g<" nil ("$B%4%&(B" . "$B$4$&(B")) - ("z<" nil ("$B%>%&(B" . "$B$>$&(B")) - ("d<" nil ("$B%I%&(B" . "$B$I$&(B")) - ("b<" nil ("$B%\%&(B" . "$B$\$&(B")) - ("p<" nil ("$B%]%&(B" . "$B$]$&(B")) - ("cg<" nil ("$B%-%g%&(B" . "$B$-$g$&(B")) - ("sh<" nil ("$B%7%g%&(B" . "$B$7$g$&(B")) - ("th<" nil ("$B%A%g%&(B" . "$B$A$g$&(B")) - ("nh<" nil ("$B%K%g%&(B" . "$B$K$g$&(B")) - ("hn<" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) - ("mv<" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) - ("rg<" nil ("$B%j%g%&(B" . "$B$j$g$&(B")) - ("gr<" nil ("$B%.%g%&(B" . "$B$.$g$&(B")) - ("zm<" nil ("$B%8%g%&(B" . "$B$8$g$&(B")) - ("dn<" nil ("$B%B%g%&(B" . "$B$B$g$&(B")) - ("bv<" nil ("$B%S%g%&(B" . "$B$S$g$&(B")) - ("pn<" nil ("$B%T%g%&(B" . "$B$T$g$&(B")) - ("f<" nil ("$B%U%)!<(B" . "$B$U$)!<(B")) - ("v<" nil ("$B%t%)!<(B" . "$B$&!+$)!<(B")) - ("tw<" nil ("$B%F%g%&(B" . "$B$F$g$&(B")) - ("db<" nil ("$B%G%g%&(B" . "$B$G$g$&(B")) - ("wm<" nil ("$B%&%)%&(B" . "$B$&$)$&(B")))))) + '(("c<" nil ("コウ" . "こう")) + ("s<" nil ("ソウ" . "そう")) + ("t<" nil ("トウ" . "とう")) + ("n<" nil ("ノウ" . "のう")) + ("h<" nil ("ホウ" . "ほう")) + ("m<" nil ("モウ" . "もう")) + ("y<" nil ("ヨウ" . "よう")) + ("r<" nil ("ロウ" . "ろう")) + ("w<" nil ("ウォー" . "うぉー")) + ("g<" nil ("ゴウ" . "ごう")) + ("z<" nil ("ゾウ" . "ぞう")) + ("d<" nil ("ドウ" . "どう")) + ("b<" nil ("ボウ" . "ぼう")) + ("p<" nil ("ポウ" . "ぽう")) + ("cg<" nil ("キョウ" . "きょう")) + ("sh<" nil ("ショウ" . "しょう")) + ("th<" nil ("チョウ" . "ちょう")) + ("nh<" nil ("ニョウ" . "にょう")) + ("hn<" nil ("ヒョウ" . "ひょう")) + ("mv<" nil ("ミョウ" . "みょう")) + ("rg<" nil ("リョウ" . "りょう")) + ("gr<" nil ("ギョウ" . "ぎょう")) + ("zm<" nil ("ジョウ" . "じょう")) + ("dn<" nil ("ヂョウ" . "ぢょう")) + ("bv<" nil ("ビョウ" . "びょう")) + ("pn<" nil ("ピョウ" . "ぴょう")) + ("f<" nil ("フォー" . "ふぉー")) + ("v<" nil ("ヴォー" . "う゛ぉー")) + ("tw<" nil ("テョウ" . "てょう")) + ("db<" nil ("デョウ" . "でょう")) + ("wm<" nil ("ウォウ" . "うぉう")))))) (unless (memq ?> skk-special-midashi-char-list) (setq list (append list - '(("c>" nil ("$B%1%$(B" . "$B$1$$(B")) - ("s>" nil ("$B%;%$(B" . "$B$;$$(B")) - ("t>" nil ("$B%F%$(B" . "$B$F$$(B")) - ("n>" nil ("$B%M%$(B" . "$B$M$$(B")) - ("h>" nil ("$B%X%$(B" . "$B$X$$(B")) - ("m>" nil ("$B%a%$(B" . "$B$a$$(B")) - ("y>" nil ("$B%$%&(B" . "$B$$$&(B")) - ("r>" nil ("$B%l%$(B" . "$B$l$$(B")) - ("w>" nil ("$B%&%'%$(B" . "$B$&$'$$(B")) - ("g>" nil ("$B%2%$(B" . "$B$2$$(B")) - ("z>" nil ("$B%<%$(B" . "$B$<$$(B")) - ("d>" nil ("$B%G%$(B" . "$B$G$$(B")) - ("b>" nil ("$B%Y%$(B" . "$B$Y$$(B")) - ("p>" nil ("$B%Z%$(B" . "$B$Z$$(B")) - ("cg>" nil ("$B%-%'%$(B" . "$B$-$'$$(B")) - ("sh>" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) - ("th>" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) - ("nh>" nil ("$B%K%'%$(B" . "$B$K$'$$(B")) - ("hn>" nil ("$B%R%'%$(B" . "$B$R$'$$(B")) - ("mv>" nil ("$B%_%'%$(B" . "$B$_$'$$(B")) - ("rg>" nil ("$B%j%'%$(B" . "$B$j$'$$(B")) - ("gr>" nil ("$B%.%'%$(B" . "$B$.$'$$(B")) - ("zm>" nil ("$B%8%'%$(B" . "$B$8$'$$(B")) - ("dn>" nil ("$B%B%'%$(B" . "$B$B$'$$(B")) - ("bv>" nil ("$B%S%'%$(B" . "$B$S$'$$(B")) - ("pn>" nil ("$B%T%'%$(B" . "$B$T$'$$(B")) - ("f>" nil ("$B%U%'%$(B" . "$B$U$'$$(B")) - ("v>" nil ("$B%t%'%$(B" . "$B$&!+$'$$(B")) - ("tw>" nil ("$B%F%'%$(B" . "$B$F$'$$(B")) - ("db>" nil ("$B%G%'%$(B" . "$B$G$'$$(B")) - ("wm>" nil ("$B%&%'%$(B" . "$B$&$'$$(B")))))) + '(("c>" nil ("ケイ" . "けい")) + ("s>" nil ("セイ" . "せい")) + ("t>" nil ("テイ" . "てい")) + ("n>" nil ("ネイ" . "ねい")) + ("h>" nil ("ヘイ" . "へい")) + ("m>" nil ("メイ" . "めい")) + ("y>" nil ("イウ" . "いう")) + ("r>" nil ("レイ" . "れい")) + ("w>" nil ("ウェイ" . "うぇい")) + ("g>" nil ("ゲイ" . "げい")) + ("z>" nil ("ゼイ" . "ぜい")) + ("d>" nil ("デイ" . "でい")) + ("b>" nil ("ベイ" . "べい")) + ("p>" nil ("ペイ" . "ぺい")) + ("cg>" nil ("キェイ" . "きぇい")) + ("sh>" nil ("シェイ" . "しぇい")) + ("th>" nil ("チェイ" . "ちぇい")) + ("nh>" nil ("ニェイ" . "にぇい")) + ("hn>" nil ("ヒェイ" . "ひぇい")) + ("mv>" nil ("ミェイ" . "みぇい")) + ("rg>" nil ("リェイ" . "りぇい")) + ("gr>" nil ("ギェイ" . "ぎぇい")) + ("zm>" nil ("ジェイ" . "じぇい")) + ("dn>" nil ("ヂェイ" . "ぢぇい")) + ("bv>" nil ("ビェイ" . "びぇい")) + ("pn>" nil ("ピェイ" . "ぴぇい")) + ("f>" nil ("フェイ" . "ふぇい")) + ("v>" nil ("ヴェイ" . "う゛ぇい")) + ("tw>" nil ("テェイ" . "てぇい")) + ("db>" nil ("デェイ" . "でぇい")) + ("wm>" nil ("ウェイ" . "うぇい")))))) list)) -;; " : $B$O(B ' ; $B$H$7$FJQ49$5$;$k(B +;; " : は ' ; として変換させる (setq skk-downcase-alist (append skk-downcase-alist '((?\" . ?\') (?: . ?\;)))) -;; '$B!V$C!W(B ;$B!V$"$s!W(B Q$B!V$*$s!W(B X$B!V$$$s!W(B $B$rJQ49%]%$%s%H$K2C$($k(B +;; '「っ」 ;「あん」 Q「おん」 X「いん」 を変換ポイントに加える (setq skk-set-henkan-point-key (append skk-set-henkan-point-key '(?\" ?: ?Q ?X))) -;; skk-rom-kana-base-rule-list $B$+$iJQ495,B'$r:o=|$9$k(B +;; skk-rom-kana-base-rule-list から変換規則を削除する (dolist (str skk-act-unnecessary-base-rule-list) (setq skk-rom-kana-base-rule-list (skk-del-alist str skk-rom-kana-base-rule-list))) -;; skk-rom-kana-rule-list $B$+$iJQ495,B'$r:o=|$9$k(B +;; skk-rom-kana-rule-list から変換規則を削除する (let ((del-list '("hh" "mm"))) (dolist (str del-list) (setq skk-rom-kana-rule-list (skk-del-alist str skk-rom-kana-rule-list)))) -;; ACT $BFCM-$NJQ495,B'$rDI2C$9$k(B +;; ACT 特有の変換規則を追加する (dolist (rule skk-act-additional-rom-kana-rule-list) (add-to-list 'skk-rom-kana-rule-list rule)) diff --git a/skk-annotation.el b/skk-annotation.el index a22b38b2..b1156403 100644 --- a/skk-annotation.el +++ b/skk-annotation.el @@ -1,4 +1,4 @@ -;;; skk-annotation.el --- SKK annotation $B4XO"%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-annotation.el --- SKK annotation 関連プログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 2000, 2001 NAKAJIMA Mikio ;; Copyright (C) 2000-2010 SKK Development Team @@ -26,128 +26,128 @@ ;;; Commentary: -;; $B$3$l$O!"(BSKK $B8D?M<-=q$KIU$1$?%"%N%F!<%7%g%s(B ($BCp ;; (setq skk-show-annotation t) -;; $B$H(B ~/.skk $B$K=q$-$^$7$g$&!#<-=q$N8uJd$K(B `;' $B$+$i;O$^$kJ8;zNs$,$"$l$P!"(B -;; $B$=$N3:Ev$N8uJd$,JQ49$5$l$F%P%C%U%!$K=PNO$5$l$?:]$K(B `;' $B0J9_$r$=$N8u(B -;; $BJd$N%"%N%F!<%7%g%s$H$7$F%(%3!<%(%j%"$KI=<($7$^$9!#(B +;; と ~/.skk に書きましょう。辞書の候補に `;' から始まる文字列があれば、 +;; その該当の候補が変換されてバッファに出力された際に `;' 以降をその候 +;; 補のアノテーションとしてエコーエリアに表示します。 ;; (setq skk-annotation-show-as-message nil) -;; $B$H(B ~/.skk $B$K=q$$$?>l9g$O!"(Bother-window $B$r0l;~E*$K3+$$$F%"%N%F!<%7%g(B -;; $B%s$rI=<($7$^$9!#(Bother-window $B$O$=$N8uJd$K$D$$$F3NDj$9$k$+!"$=$N8uJd(B -;; $B$NA*Br$r;_$a$k(B ($B8e$KF1$8%P%C%U%!(B -;; $B$G(B +;; ある単語にアノテーションを付けたいときは、確定した直後に同じバッファ +;; で ;; M-x skk-annotation-add -;; $B$He=q$-$5$l$^$9!#(B -;; $BJT=8$,=*$o$C$?$i(B C-c C-c $B$7$^$7$g$&!#(B +;; と実行しましょう。アノテーションを編集するバッファが開いて、カレント +;; バッファになりますので、そこへアノテーションを付けましょう。 +;; 1 行である必要はありませんが、複数行のアノテーションを付けるとエコー +;; エリアに表示したときに全体が見えなくなります。 +;; また、`;' の文字自体は入れる必要はありません。 +;; 今までに既に付けていたアノテーションがあれば編集バッファが表示され +;; たときにそのアノテーションが prefix 的に出力されます。既存のアノテー +;; ションも含めて編集して下さい。バッファの先頭行を除いて全ての行が新 +;; しいアノテーションとして上書きされます。 +;; 編集が終わったら C-c C-c しましょう。 -;; $B>e5-$NF0:n$G%f!<%6$,IU$1$?%"%N%F!<%7%g%s$r!V%f!<%6%"%N%F!<%7%g%s!W(B -;; $B$H8F$S$^$9!#%f!<%6%"%N%F!<%7%g%s$O!"(B +;; 上記の動作でユーザが付けたアノテーションを「ユーザアノテーション」 +;; と呼びます。ユーザアノテーションは、 -;; $B!V$-$+$s(B /$B4|4V(B/$B5!4X(B;*$B5!4XEj;q2H(B/$B4p44(B;*$B4p446HL3(B/$B!W(B +;; 「きかん /期間/機関;*機関投資家/基幹;*基幹業務/」 -;; $B$N$h$&$K(B `;' $B$ND>8e$K(B `*' $B$NJ8;z$,<+F0E*$K?6$i$l$^$9!#$3$l$O%f!<%6(B -;; $B$,FH<+$KIU$1$?%"%N%F!<%7%g%s$G$"$k$3$H$r<($7$^$9(B (`*' $B$NJ8;z$OJQ49(B -;; $B;~$K$OI=<($5$l$^$;$s(B)$B!#(B +;; のように `;' の直後に `*' の文字が自動的に振られます。これはユーザ +;; が独自に付けたアノテーションであることを示します (`*' の文字は変換 +;; 時には表示されません)。 -;; $B0lJ}!"6&M-<-=q$K85!9IU$1$i$l$F$$$k%"%N%F!<%7%g%s$r!V%7%9%F%`%"%N%F!<(B -;; $B%7%g%s!W$H8F$S!"$3$l$O(B `;' $B$ND>8e$K(B `*' $B$NJ8;z$rH<$J$$$^$;$s!#(B -;; <$BNc(B> -;; $B!V$$$<$s(B /$B0JA0(B;previous/$B0MA3(B;still/$B!W(B +;; 一方、共有辞書に元々付けられているアノテーションを「システムアノテー +;; ション」と呼び、これは `;' の直後に `*' の文字を伴ないません。 +;; <例> +;; 「いぜん /以前;previous/依然;still/」 -;; $B%f!<%6%"%N%F!<%7%g%s$H%7%9%F%`%"%N%F!<%7%g%s$r6hJL$9$k$3$H$G!"%f!<(B -;; $B%6%"%N%F!<%7%g%s$@$1$rI=<($7$?$j!"$"$k$$$O$=$N5U$r9T$&$3$H$,2DG=(B -;; $B$G$9!#(B`skk-annotation-function' $B$KI=<($7$?$$%"%N%F!<%7%g%s$r(B -;; non-nil $B$HH=Dj$9$k4X?t$r=q$-$^$7$g$&!#$3$s$J46$8$G$9!#(B +;; ユーザアノテーションとシステムアノテーションを区別することで、ユー +;; ザアノテーションだけを表示したり、あるいはその逆を行うことが可能 +;; です。`skk-annotation-function' に表示したいアノテーションを +;; non-nil と判定する関数を書きましょう。こんな感じです。 ;; (setq skk-annotation-function ;; (lambda (annotation) (eq (aref annotation 0) ?*))) -;; $B>e5-$NNc$G$O!"%"%N%F!<%7%g%s$N@hF,$,(B `*' $B$G;O$^$k!V%f!<%6%"%N%F!<%7%g(B -;; $B%s!W$N>l9g$K(B t $B$rJV$7$^$9$N$G!"%f!<%6%"%N%F!<%7%g%s$@$1$rI=<($7$^$9!#(B +;; 上記の例では、アノテーションの先頭が `*' で始まる「ユーザアノテーショ +;; ン」の場合に t を返しますので、ユーザアノテーションだけを表示します。 -;; M-x skk-annotation-add $B$7$?$b$N$N!"7k6I%"%N%F!<%7%g%s$rIU$1$:$KCV$-(B -;; $B$?$$$H$-$O!"(B +;; M-x skk-annotation-add したものの、結局アノテーションを付けずに置き +;; たいときは、 ;; M-x skk-annotation-kill -;; $B$7$F2<$5$$!#(B +;; して下さい。 -;; $B$^$?!":G8e$K3NDj$7$?8uJd$K$D$$$F$N%"%N%F!<%7%g%s$r +;; -;; $B0J2<$N@_Dj$r(B ~/.skk $B$K$9$k$H4X?t(B skk-lookup-get-content $B$+$i%"%N%F!<(B -;; $B%7%g%s$, +;; -;; Mac $B$N<-=q%"%W%j(B (Dictionary.app) $B$G$OI8=`$G9q8l<-E5$J$IMxMQ$G$-$^$9!#(B -;; $B$3$N$&$AM%@h=g0L$N9b$$<-=q$+$i%"%N%F!<%7%g%s$ru$G$O<-=q$N8!:w=g$O(B Dictionary.app $B$N4D6-@_Dj$G@_Dj$9$kI,MW$,$"(B -;; $B$j$^$9!#(B +;; Mac の辞書アプリ (Dictionary.app) では標準で国語辞典など利用できます。 +;; このうち優先順位の高い辞書からアノテーションを取得する機能が利用できま +;; す。現状では辞書の検索順は Dictionary.app の環境設定で設定する必要があ +;; ります。 -;; $B$3$N5!G=$rMxMQ$9$k>l9g$O0J2<$N@_Dj$r(B ~/.skk $B$K5-=R$7$F$/$@$5$$!#(B +;; この機能を利用する場合は以下の設定を ~/.skk に記述してください。 ;; (setq skk-annotation-lookup-DictionaryServices t) -;; $B$3$N5!G=$O(B Carbon Emacs 22 $B$^$?$O(B Cocoa Emacs 23 $B0J9_$G%F%9%H$5$l$F$$$^(B -;; $B$9!#$?$@$7(B Carbon Emacs 22 $B$G$OJQ49A`:n$,B.$9$.$k>l9g$K<-=q%5!<%S%9$+$i +;; -;; $B"'%b!<%I$K$F(B C-i $B$r%?%$%W$9$k$H!"I=<(Cf$N8uJd$r(B Wikipedia/Wiktionary -;; $B$N9`L\$+$iC5$7!$8+$D$+$C$?>l9g$O!"FbMF$NH4?h$r%"%N%F!<%7%g%s$H$7$FI=<((B -;; $B$7$^$9!#$3$N5!G=$O(B Emacs 22 $B0J>e$G%F%9%H$5$l$F$$$^$9!#(B +;; ▼モードにて C-i をタイプすると、表示中の候補を Wikipedia/Wiktionary +;; の項目から探し,見つかった場合は、内容の抜粋をアノテーションとして表示 +;; します。この機能は Emacs 22 以上でテストされています。 -;; <$B5l$$(B SKK $B$+$i$N0\9T(B> +;; <旧い SKK からの移行> -;; $B$3$N9`$O%"%N%F!<%7%g%s5!G=$,$J$$5l$$(B SKK (DDSKK 11.2 $B0JA0$^$?$O(B SKK -;; 10.62 $B0JA0(B) $B$+$i:G?7$N$b$N$K0\9T$9$k>l9g$NCm0U;v9`$G$9!#(B +;; この項はアノテーション機能がない旧い SKK (DDSKK 11.2 以前または SKK +;; 10.62 以前) から最新のものに移行する場合の注意事項です。 -;; $B%"%N%F!<%7%g%s$O%;%Q%l!<%?$H$7$F(B `;' $B$r;HMQ$7$F$$$k$?$a!"(B`;' $B$NJ8;z(B -;; $B$r4^$s$@8uJd$O!"(Beval $B$9$k$H(B `;' $B$K$J$k(B Lisp $B<0$H$7$F(B quote $B$7<-=q8u(B -;; $BJd$K<}$a$kI,MW$,$"$j$^$9!#(B +;; アノテーションはセパレータとして `;' を使用しているため、`;' の文字 +;; を含んだ候補は、eval すると `;' になる Lisp 式として quote し辞書候 +;; 補に収める必要があります。 -;; $B$^$@%"%N%F!<%7%g%s5!G=$r0lEY$b;HMQ$7$F$$$J$$8D?M<-=q$K$D$$$F$O!"0J2<(B -;; $B$N(B S $B<0$rI>2A$7$?8e!"(B +;; まだアノテーション機能を一度も使用していない個人辞書については、以下 +;; の S 式を評価した後、 ;; (defun skk-annotation-update-jisyo-format () ;; (interactive) @@ -177,16 +177,16 @@ ;; (append candidate nil) "") ;; "\")"))))) -;; $B8D?M<-=q$rFI$_$3$_!"<-=q$rFI$_9~$s$@%P%C%U%!$G(B +;; 個人辞書を読みこみ、辞書を読み込んだバッファで ;; M-x skk-annotation-update-jisyo-format -;; $B$9$k$3$H$G$3$N:n6H$r9T$&$3$H$,$G$-$^$9!#(B +;; することでこの作業を行うことができます。 -;; $BC"$7!"4{$K%"%N%F!<%7%g%s$,IU$1$i$l$F$$$k>l9g$O!"$3$N%"%N%F!<%7%g%s(B -;; $B<+BN$b8uJd$H6hJL$G$-$:$K(B quote $B$5$l$F$7$^$$$^$9$N$G!"$4Cm0U2<$5$$(B -;; ($B:#$N$H$3$mM5$,$"$l$P$N%j%=!<%9$+$i$N%-%c%C%7%e$,$"$l$P(B - ;; $B$=$l$rI=<($9$k!#(B + ;; Wikipedia などその他のリソースからのキャッシュがあれば + ;; それを表示する。 (unless skkannot-cached-srcs (while srcs (unless (memq (car srcs) '(lookup.el)) @@ -364,8 +364,8 @@ (setq annotation (skk-eval-string annotation)) (unless (string= annotation "") (setq inhibit-wait (skk-annotation-show-2 annotation))) - ;; $BCm (not list) i.e. turn off (setq skk-show-annotation '(not list))))) -;;; $B%"%N%F!<%7%g%sA`:n5!G=(B +;;; アノテーション操作機能 (defun skk-annotation-setup () (let ((skk-henkan-key (skk-get-last-henkan-datum 'henkan-key)) (skk-okuri-char (skk-get-last-henkan-datum 'okuri-char)) @@ -470,20 +470,20 @@ (setq skk-henkan-key (read-from-minibuffer "Midasi: ")) (when (string= skk-henkan-key "") - (skk-error "$B%"%N%F!<%7%g%s$9$kC18l$,$"$j$^$;$s(B" + (skk-error "アノテーションする単語がありません" "No word to be annotated")) (when (string-match "\\cj\\([a-z]+\\)$" skk-henkan-key) (setq skk-okuri-char (match-string 1 skk-henkan-key) - ;; $BAw$j$"$jJQ49$r;XDj$9$k$H(B - ;; skk-henkan-okurigana $B$N;XDj$K:$$k!#(B + ;; 送りあり変換を指定すると + ;; skk-henkan-okurigana の指定に困る。 skk-henkan-okurigana "")) (setq cand (prog1 (skk-henkan-in-minibuff) (setq skk-kakutei-flag nil)))) - ;; $B$3$N;~E@$G$O(B skk-num-list $B$O4{$K(B nil - ;; $B%_%K%P%C%U%!$+$iBP>]$r;XDj$7$?>l9g$K$O(B consp $B$K$J$i$J$$(B + ;; この時点では skk-num-list は既に nil + ;; ミニバッファから対象を指定した場合には consp にならない (when (consp cand) (setq cand (car cand))) (setq word (car (skk-treat-strip-note-from-word cand))) @@ -496,15 +496,15 @@ (list skk-henkan-key skk-okuri-char cand)) - ;; $B0U?^$rM}2r$7$F$J$$$,!"(Bskk-kakutei-initialize $B$N$[$&$,E,@Z$J5$$b(B + ;; 意図を理解してないが、skk-kakutei-initialize のほうが適切な気も (skk-kakutei))) ;;;###autoload (defun skk-annotation-add (&optional no-previous-annotation) - "$B:G8e$K3NDj$7$?8l$K(B annotation $B$rIU$1$k!#(B -$B4{$K(B annotation $B$,IU$1$i$l$F$$$l$P!"$=$l$rJT=8%P%C%U%!$K=PNO$9$k!#(B -NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-add]) -$B$9$k$H!"4{$KIU$1$i$l$F$$$k(B annotation $B$rJT=8%P%C%U%!$K=PNO$7$J$$!#(B" + "最後に確定した語に annotation を付ける。 +既に annotation が付けられていれば、それを編集バッファに出力する。 +NO-PREVIOUS-ANNOTATION を指定 (\\[Universal-Argument] \\[skk-annotation-add]) +すると、既に付けられている annotation を編集バッファに出力しない。" (interactive "P") (save-match-data (skk-kakutei) @@ -550,21 +550,21 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad ", "))))) (defun skk-annotation-save-and-quit (&optional quiet) - "$B:G8e$K3NDj$7$?8l$K(B annotation $B$rIU$1$F(B annotation $B%P%C%U%!$rJD$8$k!#(B" + "最後に確定した語に annotation を付けて annotation バッファを閉じる。" ;; called in the annotation buffer. (interactive "P") (let (annotation) (save-match-data (with-current-buffer (get-buffer-create skk-annotation-buffer) (goto-char (point-min)) - (when (looking-at ";; Add a note to word") ; $BCfESH>C<(B + (when (looking-at ";; Add a note to word") ; 中途半端 (forward-line 1) (beginning-of-line)) (setq annotation (buffer-substring-no-properties (point) (point-max))) - (when (string-match "^[\t\n $B!!(B]+" annotation) + (when (string-match "^[\t\n  ]+" annotation) (setq annotation (substring annotation (match-end 0)))) - (when (string-match "[\t\n $B!!(B]+$" annotation) + (when (string-match "[\t\n  ]+$" annotation) (setq annotation (substring annotation 0 (match-beginning 0)))) (when (string= annotation "") (setq annotation nil)) @@ -577,14 +577,14 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad (delete-region (match-beginning 0) (match-end 0))) (goto-char end) (insert ";*" annotation))) - ;; $B:o=|$7$?;~(B + ;; 削除した時 (let ((old-annotation (cdr (skk-treat-strip-note-from-word (nth 2 skk-annotation-target-data))))) (when (and old-annotation (yes-or-no-p (format (if skk-japanese-message-and-error - "$B4{B8$N%"%N%F!<%7%g%s(B `%s' $B$r:o=|$7$^$9$+!)(B " + "既存のアノテーション `%s' を削除しますか? " "Delete old annotation `%s' ? ") (skk-annotation-get old-annotation)))) (skk-annotation-last-word-1 @@ -601,7 +601,7 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad (message "%s" "Added annotation"))))) (defun skk-annotation-kill () - "annotation $B$rIU$1$:$K(B annotation $B%P%C%U%!$r(B kill $B$9$k!#(B" + "annotation を付けずに annotation バッファを kill する。" ;; called in the annotation buffer. (interactive) (skk-annotation-erase-buffer) @@ -611,14 +611,14 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad ;;;###autoload (defun skk-annotation-remove () - "$B:G8e$K3NDj$7$?8l$+$i(B annotation $B$rpJs8;(B URL $B$N%V%i%&%:!"$^$?$O(B -$BJL$N>pJs8;$+$i$N0UL#WFM$9$k(B C-o $B$G$"$l$P!"(B - ;; browse-command $B$O(B skk-insert() $B$H$J$k!#(B SPC $B$b(B skk-insert() $B$G$"$k$?$a!"(B - ;; $B7k2L$H$7$F(B SPC $B$NBG80$G(B browse-command $B$H$J$C$F$7$^$&!#(B - ;; * skk-kakutei-key $B$,(B skk-insert() $B$J$N$O(B skk-compile-rule-list() $B;2>H$N$3$H!#(B + ;; * skk-kakutei-key が 標準 C-j であれば、browse-command は C-o の open-line() となる。 + ;; * skk-kakutei-key が skk-annotation-browse-key と衝突する C-o であれば、 + ;; browse-command は skk-insert() となる。 SPC も skk-insert() であるため、 + ;; 結果として SPC の打鍵で browse-command となってしまう。 + ;; * skk-kakutei-key が skk-insert() なのは skk-compile-rule-list() 参照のこと。 (it (key-binding skk-annotation-browse-key)) ; Fix #58 (browse-command (if (eq 'skk-insert it) nil it)) ; Fix #58 (list (list copy-command browse-command)) @@ -735,7 +735,7 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad (setq list (delq copy-command list)) (unless (equal annotation "") (kill-new (substring-no-properties annotation)) - (skk-message "$B8=:_$NCmH(B?}" 'face + (concat (propertize "{どれを参照?}" 'face 'skk-verbose-intention-face) new)))) ;; (unless skk-annotation-message (let ((key-copy (or (key-description skk-annotation-copy-key) - "$BL$Dj5A(B")) + "未定義")) (key-wiki (or (key-description skk-annotation-wikipedia-key) - "$BL$Dj5A(B")) + "未定義")) (key-browse (or (key-description skk-annotation-browse-key) - "$BL$Dj5A(B")) + "未定義")) list new) (when (equal key-wiki "TAB") (setq key-wiki "C-i")) (setq list (split-string - (format "[%s]$B%3%T!<(B [%s]$B%V%i%&%:(B [%s]$B%G%U%)%k%H$N%=!<%9$r;2>H(B" + (format "[%s]コピー [%s]ブラウズ [%s]デフォルトのソースを参照" key-copy key-browse key-wiki) " ")) (dolist (x list) (let* ((y (split-string x "]")) @@ -864,7 +864,7 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad 'skk-verbose-kbd-face) s2 " ")))) (setq skk-annotation-message - (concat (propertize "{$B%"%N%F!<%7%g%s(B}" 'face + (concat (propertize "{アノテーション}" 'face 'skk-verbose-intention-face) new)))) ;; @@ -890,20 +890,20 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad (quit (when (eq skk-henkan-mode 'active) (skk-reset-henkan-count 0))))) - ;; $B>o$K(B t $B$rJV$9(B + ;; 常に t を返す t) ;;;###autoload (defun skk-annotation-lookup-region-or-at-point (&optional prefix-arg start end) - "$BA*BrNN0h$^$?$O%]%$%s%H0LCV$NC18l$r<-=q$GD4$Y$k!#(B -$B<-=q$H$7$F$O(B lookup.el$B!"(BApple OS X $B$N<-=q%5!<%S%9!"(BWikipedia/Wikitionary $B$J$I$,(B -$BMxMQ$5$l$k!#(B + "選択領域またはポイント位置の単語を辞書で調べる。 +辞書としては lookup.el、Apple OS X の辞書サービス、Wikipedia/Wikitionary などが +利用される。 -$BNN0h$,A*Br$5$l$F$$$J$1$l$PC18l$N;O$a$H=*$o$j$r?dB,$7$FD4$Y$k!#(B +領域が選択されていなければ単語の始めと終わりを推測して調べる。 -$BD4$Y$?7k2L$r(B `skk-annotation-show-as-message' $B$,(B Non-nil $B$G$"$l$P%(%3!<%(%j%"(B -$B$K!"(Bnil $B$G$"$l$PJL(B window $B$KI=<($9$k!#(B" +調べた結果を `skk-annotation-show-as-message' が Non-nil であればエコーエリア +に、nil であれば別 window に表示する。" (interactive (cons (prefix-numeric-value current-prefix-arg) (cond ((use-region-p) @@ -918,8 +918,8 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad (skkannot-clear-msg) ;; (let ((word (if (and (= start 1) (= end 1)) - ;; region $B$,(B active $B$G$J$$$H$-$O!$%]%$%s%H$K$"$k(B - ;; $BC18l$r?dB,$9$k(B + ;; region が active でないときは,ポイントにある + ;; 単語を推測する (thing-at-point 'word) (buffer-substring-no-properties start end))) (sources @@ -936,12 +936,12 @@ NO-PREVIOUS-ANNOTATION $B$r;XDj(B (\\[Universal-Argument] \\[skk-annotation-ad (skk-annotation-show (or note "") word sources)))) -;;; Apple OS X $B<-=q%5!<%S%94XO"5!G=(B +;;; Apple OS X 辞書サービス関連機能 (defsubst skkannot-DictServ-command (word) (format skkannot-DictServ-cmd-format-str word "%" "%")) (defsubst skkannot-dict-buffer-format (word) - "dict $B$NFbMF$r3JG<$9$k%P%C%U%!$N%U%)!<%^%C%H!#(B" + "dict の内容を格納するバッファのフォーマット。" (format " *skk dict %s" word)) (defun skkannot-py-send-string (string) @@ -990,13 +990,13 @@ information etc. If PROC is non-nil, check the buffer for that process." ;;;###autoload (defun skk-annotation-start-python (&optional wait) - "OS X $B$N!V<-=q!W$rMxMQ$9$k$?$a$K(B python $B$r5/F0$9$k!#(B" + "OS X の「辞書」を利用するために python を起動する。" (require 'python) (cond ((buffer-live-p skkannot-py-buffer) skkannot-py-buffer) (t - ;; python + readline $B$G(B UTF-8 $B$NF~NO$r$9$k$?$a$K(B LANG $B$N@_Dj$,I,MW!#(B + ;; python + readline で UTF-8 の入力をするために LANG の設定が必要。 (let* ((env (getenv "LANG")) orig-py-buffer) (unless (eval-when-compile (skkannot-emacs-24_3-or-later)) @@ -1033,13 +1033,13 @@ information etc. If PROC is non-nil, check the buffer for that process." (setq skkannot-remaining-delay (- skkannot-remaining-delay 1.0))) (wait - (throw '$B<-=q(B nil)) + (throw '辞書 nil)) (t nil)) skkannot-py-buffer))))) (defun skkannot-DictServ-cache (word truncate) - "OS X $B$N!V<-=q!W$+$i$3$l$^$G$K>> " nil t))) (cond (success @@ -1074,9 +1074,9 @@ information etc. If PROC is non-nil, check the buffer for that process." ;;;###autoload (defun skk-annotation-lookup-DictionaryServices (word &optional truncate force) - "python $B$r2p$7$F(B DictionaryServices $B$rMxMQ$7%"%N%F!<%7%g%s$rl9g$O8uJd0lMwMQ$KC;$$%"%N%F!<%7%g%s(B -$B$K9J$j$3$`!#(B" + "python を介して DictionaryServices を利用しアノテーションを取得する。 +オプション引数 TRUNCATE が non-nil の場合は候補一覧用に短いアノテーション +に絞りこむ。" (when (or skk-annotation-lookup-DictionaryServices force) (skk-annotation-start-python (not truncate)) (let ((command (skkannot-DictServ-command word)) @@ -1093,7 +1093,7 @@ information etc. If PROC is non-nil, check the buffer for that process." (- skkannot-remaining-delay loopint))) (t (unless truncate - (throw '$B<-=q(B nil)))) + (throw '辞書 nil)))) (accept-process-output process loopint) (goto-char (point-max)) (setq output (or (skkannot-DictServ-cache word truncate) @@ -1105,15 +1105,15 @@ information etc. If PROC is non-nil, check the buffer for that process." (set-buffer-multibyte t) (insert output) (goto-char (point-min)) - (when (re-search-forward "[;,.$B!"!#!(!C(B]" nil t) + (when (re-search-forward "[;,.、。;|]" nil t) (beginning-of-line) (buffer-substring (point) (match-beginning 0))))) (t output))))))) -;;; $B30It%W%m%0%i%`$+$i$N%"%N%F!<%7%g%sl9g$K$O7k2L$rJ8;zNs$H$7$FJV$9!#(B" + "dict のプロセスを必要なら起動し、結果を調べる。 +意味が取得できた場合には結果を文字列として返す。" (let ((buffer (get-buffer-create (skkannot-dict-buffer-format word))) (text "") (no-user-input t) @@ -1182,7 +1182,7 @@ information etc. If PROC is non-nil, check the buffer for that process." (truncate (goto-char (point-min)) (cond - ((re-search-forward "[$B!"!#(B]" nil t) + ((re-search-forward "[、。]" nil t) (beginning-of-line) (setq text (buffer-substring (point) (match-beginning 0)))) (t @@ -1199,16 +1199,16 @@ information etc. If PROC is non-nil, check the buffer for that process." (unless (string= text "") text))) -;;; Wiktionary/Wikipedia $B%"%N%F!<%7%g%s(B +;;; Wiktionary/Wikipedia アノテーション ;;;###autoload (defun skk-annotation-wikipedia (word &optional sources) - "Wiktionary/Wikipedia $B$N(B WORD $B$KAjEv$9$k5-;v$+$i%"%N%F!<%7%g%s$rH$9$k(B + ;; sources に指定された順番に参照する (if (catch 'skkannot-wikipedia-suspended (save-match-data (while (and (or (not note) (equal note "")) @@ -1241,7 +1241,7 @@ information etc. If PROC is non-nil, check the buffer for that process." (setq words (append words (list (upcase word))))))) (while (and (not note) words) (setq note (skk-annotation-wikipedia-1 (car words) source t)) - (sleep-for 0.01) ; $B$3$l$,$J$$$H;_$^$k$3$H$"$j(B + (sleep-for 0.01) ; これがないと止まることあり (setq words (cdr words)) (when (equal note "") (setq note nil))) @@ -1252,11 +1252,11 @@ information etc. If PROC is non-nil, check the buffer for that process." string source)) (setq sources (cdr sources))) (unless note - (message "%s $B$K9`L\$,$"$j$^$;$s(B" string))) + (message "%s に項目がありません" string))) nil) - ;; $B%@%&%s%m!<%I$,CfCG$5$l$?$H$-(B + ;; ダウンロードが中断されたとき (progn - (message "%s $B$NE>Aw$,CfCG$5$l$^$7$?(B" source) + (message "%s の転送が中断されました" source) nil) ;; note))) @@ -1276,14 +1276,14 @@ information etc. If PROC is non-nil, check the buffer for that process." (html2text-delete-tags p1 p2 (1+ p3) (1+ p4))) (defun skk-annotation-wikipedia-1 (word source &optional preserve-case) - "Wiktionary/Wikipedia $B$N(B WORD $B$KAjEv$9$k5-;v$rl9g(B + ;; キャッシュがない場合 (setq buffer (funcall url-retrieve-func (skkannot-generate-url "http://%s.org/wiki/%s" @@ -1346,7 +1346,7 @@ information etc. If PROC is non-nil, check the buffer for that process." (goto-char pt)))))) (defun skkannot-wikipedia-format-buffer (source buffer cache-buffer) - "html $B$NM>7W$JMWAG$r=|5n$7!"(Bhtml2text $B$N5!G=$rMQ$$$F@07A$9$k!#(B" + "html の余計な要素を除去し、html2text の機能を用いて整形する。" (let ((html2text-remove-tag-list (append '("a" "span" "table" "tr" "td" "h2" "h3" "h4" "h5" "small" "code") @@ -1363,7 +1363,7 @@ information etc. If PROC is non-nil, check the buffer for that process." (when (get-buffer cache-buffer) (kill-buffer cache-buffer)) (rename-buffer cache-buffer) - ;; $BMW$i$J$$ItJ,$r>C$9(B + ;; 要らない部分を消す (cond ;; ja.wiktionary ((eq source 'ja.wiktionary) @@ -1373,7 +1373,7 @@ information etc. If PROC is non-nil, check the buffer for that process." \\(^HTTP/1\\.0 301 Moved Permanently\\|
\ \\|:Badtitle\\)" nil t)) - ;; $B9`L\$,$J$$>l9g(B + ;; 項目がない場合 (erase-buffer) (search-forward "" nil t) (delete-region (point-min) (point)) @@ -1394,7 +1394,7 @@ information etc. If PROC is non-nil, check the buffer for that process." ;; (setq point top) (goto-char (point-min)) - ;; ja.wiktionary $B$N=q<0$,(B en.wiktionary $B$[$I@0$C$F$$$J$$$N$G(B + ;; ja.wiktionary の書式が en.wiktionary ほど整っていないので ;; workaround (unless (save-excursion @@ -1439,10 +1439,10 @@ information etc. If PROC is non-nil, check the buffer for that process." ;; (when point (delete-region point (point-max))) - ;; ($BMQNc$J$I$r=|$/(B -- $B=|$+$J$$$[$&$,$$$$!)(B) - ;; ja.wiktionary $B$O(B en.wiktionary $B$HA4$/E}0l$5$l$?=q$-J}$K$O(B - ;; $B$J$C$F$$$J$$$N$G!"(Bul $B$r=|$/$H>pJs$,$[$H$s$I;D$i$J$$>l9g$,(B - ;; $B$"$k(B + ;; (用例などを除く -- 除かないほうがいい?) + ;; ja.wiktionary は en.wiktionary と全く統一された書き方には + ;; なっていないので、ul を除くと情報がほとんど残らない場合が + ;; ある (skkannot-wikipedia-remove-nested "
    " "
") (skkannot-wikipedia-remove-nested "
" "
") (skkannot-wikipedia-remove-nested "" @@ -1452,7 +1452,7 @@ information etc. If PROC is non-nil, check the buffer for that process." ;; (goto-char (point-min)) (while (re-search-forward - "\\[$BJT=8(B\\]" + "\\[編集\\]" nil t) (replace-match "")))) ;; en.wiktionary @@ -1463,7 +1463,7 @@ information etc. If PROC is non-nil, check the buffer for that process." \\(^HTTP/1\\.0 301 Moved Permanently\\|
\ \\|:Badtitle\\)" nil t)) - ;; $B9`L\$,$J$$>l9g(B + ;; 項目がない場合 (erase-buffer) (search-forward "" nil t) (delete-region (point-min) (point)) @@ -1521,7 +1521,7 @@ information etc. If PROC is non-nil, check the buffer for that process." ;; (when point (delete-region point (point-max))) - ;; ($BMQNc$J$I$r=|$/(B -- $B=|$+$J$$$[$&$,$$$$!)(B) + ;; (用例などを除く -- 除かないほうがいい?) (skkannot-wikipedia-remove-nested "
    " "
") (skkannot-wikipedia-remove-nested "
" "
") (skkannot-wikipedia-remove-nested "" @@ -1530,7 +1530,7 @@ information etc. If PROC is non-nil, check the buffer for that process."
" "
" "") (skkannot-wikipedia-remove-nested "\ " "") - ;; Wikipedia $B$X$N0FFb$r=|$/(B + ;; Wikipedia への案内を除く (goto-char (point-min)) (while (re-search-forward "\ \\(\\)?\ @@ -1556,13 +1556,13 @@ Wikipedia\\(\\)? has an article on:$" nil t) \\(^HTTP/1\\.0 301 Moved Permanently\\|
\ \\|:Badtitle\\)" nil t)) - ;; $B9`L\$,$J$$>l9g(B + ;; 項目がない場合 (erase-buffer) (setq aimai (save-excursion (re-search-forward "\ -wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) - ;; $B$r=|5n$9$k(B +wgCategories.+\\(曖昧さ回避\\|[Dd]isambiguation\\).+$" nil t))) + ;; を除去する (setq point nil) (goto-char (point-min)) (while (re-search-forward "\ @@ -1572,26 +1572,26 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (search-forward "" nil t) (delete-region point (point)) (goto-char point)) - ;; $B$r=|5n$9$k(B + ;; を除去する (goto-char (point-min)) (while (re-search-forward "

.+

" nil t) (replace-match "")) - ;;   $B$r=hM}(B + ;;   を処理 (goto-char (point-min)) (while (re-search-forward " " nil t) (replace-match " ")) - ;;
$B$r=|5n$9$k(B + ;;
を除去する (goto-char (point-min)) (while (re-search-forward "

.+\\(
\\)$" nil t) (replace-match "" nil nil nil 1)) - ;; xxx > xxx > xxx ... $B$r=|5n$9$k(B + ;; xxx > xxx > xxx ... を除去する (goto-char (point-min)) (while (re-search-forward "

.+ > \\(\\|\\).+

" nil t) (replace-match "")) - ;; ") - ;; $B$r=|5n(B + ;;
を除去 (skkannot-wikipedia-remove-nested "" "
") ;; (goto-char (point-min)) @@ -1604,7 +1604,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (string-match (cond ((eq source 'ja.wikipedia) - "$B!#(B\\|$B!%(B") + "。\\|.") (t "\\.")) (buffer-substring (point) @@ -1651,7 +1651,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (goto-char (point-min)) (cond ((memq source '(ja.wiktionary en.wiktionary)) - ;; wiktionary $B$N@07A7k2L$O6u9T$@$i$1$K$J$k(B... + ;; wiktionary の整形結果は空行だらけになる... (goto-char (point-min)) (while (re-search-forward "\n[\n]+" nil t) (replace-match "\n")) @@ -1675,7 +1675,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) ;; (when aimai (insert (if (eq source 'ja.wikipedia) - "\n($B[#Kf$52sHr$N%Z!<%8(B)" + "\n(曖昧さ回避のページ)" "\n(Disambiguation page)"))) ;; (goto-char (point-max)) @@ -1696,7 +1696,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) nil)))) (defun skkannot-wikipedia-remove-nested (btag etag &optional ibtag) - "
    $B$J$I$NF~$l;R9=B$$r=|5n$9$k!#(B" + "
    などの入れ子構造を除去する。" (unless ibtag (setq ibtag btag)) (let (point pt1 pt2 orig-btag) @@ -1739,8 +1739,8 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (cond ((or (member "deleted\n" (assq 'error (memq :error (car args)))) (< (buffer-size) 7) (not (skkannot-wikipedia-test-html-tag))) - ;; $BIT40A4$J(B retrieval $B$K$*$$$F$b(B STATUS $B$,(B nil $B$H$J$k$3$H$,$"$k$N$G(B - ;; $B$3$3$GD4@0$9$k!#(B + ;; 不完全な retrieval においても STATUS が nil となることがあるので + ;; ここで調整する。 (kill-buffer (current-buffer)) (ignore-errors (throw 'skkannot-wikipedia-suspended (cadr args)))) @@ -1748,15 +1748,15 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (throw 'skkannot-wikipedia-retrieved (current-buffer))))) (defun skkannot-wikipedia-test-html-tag () - ;; html $B%G!<%?$,:G8e$N(B $B%?%0$r;}$D$3$H$r3NG'$9$k(B + ;; html データが最後の タグを持つことを確認する (goto-char (point-min)) (when (re-search-forward "^Content-Encoding: gzip$" nil t) - ;; html $B$,(B gzip $B05=L$GAw$i$l$FMh$?>l9g(B + ;; html が gzip 圧縮で送られて来た場合 (unless (fboundp 'url-handle-content-transfer-encoding) ;; Emacs 24.3 or earlier (let ((gzip (executable-find "gzip"))) (unless gzip - (error "$B$3$NFbMF$rI=<($9$k$K$O(B %s $B$,I,MW$G$9(B" "gzip")) + (error "この内容を表示するには %s が必要です" "gzip")) (while (and (not (looking-at "^\n")) (not (eobp))) (forward-line 1)) @@ -1775,7 +1775,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (condition-case nil (require 'url-util) (error - (error "%s" "$B?7$7$$(B URL $B%Q%C%1!<%8$,I,MW$G$9(B"))) + (error "%s" "新しい URL パッケージが必要です"))) (apply #'format format-string (mapcar (lambda (element) (if (stringp element) @@ -1784,7 +1784,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) args))) (defun skkannot-wikipedia-normalize-word (word &optional method preserve-case) - ;; $B%9%Z!<%9$O(B %20 $B$G$O$J$/!"%"%s%@!<%9%3%"$KJQ49$9$k(B + ;; スペースは %20 ではなく、アンダースコアに変換する (replace-regexp-in-string " " "_" (cond @@ -1793,11 +1793,11 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (> (length word) 1) (skk-ascii-char-p (aref word 0)) (skk-lower-case-p (aref word 1))) - ;; $BFsJ8;z$a$,(B lower case $B$J$i(B downcase + ;; 二文字めが lower case なら downcase (downcase word) - ;; $B0lJ8;z$@$C$?$i85$N(B case - ;; $BFsJ8;z$a$,(B upper case $B$J$i85$N(B case - ;; $B1Q8l0J30$OL$BP1~(B + ;; 一文字だったら元の case + ;; 二文字めが upper case なら元の case + ;; 英語以外は未対応 word)) ((eq method 'upcase-initials) (upcase-initials word)) @@ -1807,7 +1807,7 @@ wgCategories.+\\($B[#Kf$52sHr(B\\|[Dd]isambiguation\\).+$" nil t))) (substring word 1)) word))))) -;;; $B3FL>$N<+F0=hM}$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-auto.el --- 送り仮名の自動処理のためのプログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, ;; 1998, 1999, 2001 @@ -49,13 +49,13 @@ l))))) (defun skk-okuri-search-subr-original () - ;; skk-okuri-search $B$N%5%V%k!<%A%s!#8+$D$1$?%(%s%H%j$N%j%9%H$rJV$9!#(B + ;; skk-okuri-search のサブルーチン。見つけたエントリのリストを返す。 (let* ((henkan-key skk-henkan-key) (key (substring henkan-key 0 1)) (len (length henkan-key)) (key1 (concat "\n" key)) key2 len2 key3 len3 okuri3 - ;; case-fold-search $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B + ;; case-fold-search は、辞書バッファでは常に nil。 ;;case-fold-search (inhibit-quit t) key-cand-alist p q r) @@ -91,17 +91,17 @@ (point) (1- (search-forward "/" skk-okuri-ari-max t))) okuri)) - ;; $B8+=P$78l$,0c$C$F$b8uJd$,F1$8$3$H$,$"$jF@$k!#(B - ;; $B$+$s(Bz /$B46(B/[$B$8(B/$B46(B/]/ - ;; $B$+$s(Bj /$B46(B/[$B$8(B/$B46(B/]/ - ;; $B$J$I!#(B + ;; 見出し語が違っても候補が同じことがあり得る。 + ;; かんz /感/[じ/感/]/ + ;; かんj /感/[じ/感/]/ + ;; など。 (unless (rassoc cand key-cand-alist) (setq key-cand-alist (cons (cons key3 cand) key-cand-alist)))) ;; it is not necessary to seach for "\[" on this line ;; any more (setq cont nil))))))) - ;; key3 $B$ND9$$$b$N=g$K%=!<%H$7$FJV$9!#(B + ;; key3 の長いもの順にソートして返す。 (mapcar 'cdr (sort (nreverse key-cand-alist) (lambda (x y) @@ -109,12 +109,12 @@ ;;;###autoload (defun skk-adjust-search-prog-list-for-auto-okuri () - ;; `skk-auto-okuri-process' $B$,(B non-nil $B$G$"$l$P(B - ;; `skk-search-prog-list' $B$K(B `skk-okuri-search' $B$r2C$($k!#(B + ;; `skk-auto-okuri-process' が non-nil であれば + ;; `skk-search-prog-list' に `skk-okuri-search' を加える。 ;; - ;; `skk-okuri-search' $B$r2C$($k0LCV$K$D$$$F$O!"(Bskk-jisyo $B$N(B - ;; $B8e$,:GNI$+$I$&$+$OJ,$i$J$$$N$G!"%*%W%7%g%s$GJQ99$G$-$k(B - ;; $B$h$&$K$9$Y$-$@$,(B...$B!#(B + ;; `skk-okuri-search' を加える位置については、skk-jisyo の + ;; 後が最良かどうかは分らないので、オプションで変更できる + ;; ようにすべきだが...。 (unless (member '(skk-okuri-search) (default-value 'skk-search-prog-list)) (let ((pl (default-value 'skk-search-prog-list)) diff --git a/skk-azik.el b/skk-azik.el index b706bbdd..b968f109 100644 --- a/skk-azik.el +++ b/skk-azik.el @@ -1,4 +1,4 @@ -;;; skk-azik.el --- $B3HD%%m!<%^;zF~NO(B "AZIK" $B$r(B SKK $B$G;H$&$?$a$N@_Dj(B -*- coding: iso-2022-jp -*- +;;; skk-azik.el --- 拡張ローマ字入力 "AZIK" を SKK で使うための設定 -*- coding: iso-2022-jp -*- ;; Copyright (C) 2002 ONODA Arata @@ -25,32 +25,32 @@ ;;; Commentary: -;; $B3HD%%m!<%^;zF~NO(B "AZIK" $B$r(B SKK $B$G;H$&$?$a$N@_Dj$G$9!#(B -;; "AZIK"$B$K$D$$$F$O!"0J2<$N(B URL $B$r;2>H$7$F2<$5$$!#(B +;; 拡張ローマ字入力 "AZIK" を SKK で使うための設定です。 +;; "AZIK"については、以下の URL を参照して下さい。 ;; http://hp.vector.co.jp/authors/VA002116/azik/azikindx.htm -;; $B;H$$J}(B - $B2<5-$N@_Dj$r(B .skk $B$K2C$($F$/$@$5$$!#(B -;; $B$=$N8e(B Emacs(Mule) $B$r:F5/F0$9$l$P(B skk $B$K$h$k(B AZIK $B$G$N(B -;; $BF~NO$,2DG=$G$9!#(B +;; 使い方 - 下記の設定を .skk に加えてください。 +;; その後 Emacs(Mule) を再起動すれば skk による AZIK での +;; 入力が可能です。 ;; (setq skk-use-azik t) ;; (setq skk-azik-keyboard-type 'jp106) -;; $BJQ?t(B skk-azik-keyboard-type $B$K$*;H$$$N%-!<%\!<%I$N%?%$%W$r(B -;; $B;XDj$7$F2<$5$$!#(Bskk-azik-keyboard-type $B$O%7%s%\%k$G(B -;; 'jp106 $B$b$7$/$O(B 'jp-pc98 $B!"$^$?$O!"(B 'en $B$r;XDj$7$^$9!#(B +;; 変数 skk-azik-keyboard-type にお使いのキーボードのタイプを +;; 指定して下さい。skk-azik-keyboard-type はシンボルで +;; 'jp106 もしくは 'jp-pc98 、または、 'en を指定します。 -;; $BCm0U(B 1 - AZIK $B$G$O(B "q" $B$r(B "$B$s(B" $B$NF~NO$K;H$&$N$G!"(B"q" $B$N$b$H$b$H(B -;; $B$N5!G=$G$"$k(B "skk-toggle-characters" $B$K$O!"F|K\8l%-!<%\!<%I(B -;; $B$G$"$l$P(B "@" $B$r!"1Q8l%-!<%\!<%I$G$"$l$P!"(B"[" $B$GBeMQ$7$^$9!#(B -;; SKK $BI8=`$N(B "@"($BF|K\8l%-!<%\!<%I(B) $B$d(B "["($B1Q8l%-!<%\!<%I(B) $B$O!"(B -;; $B$O!"(B x $B$rIU$1$F!"$=$l$>$l(B "x@" $B$H(B "x[" $B$G;HMQ$G$-$^$9!#(B +;; 注意 1 - AZIK では "q" を "ん" の入力に使うので、"q" のもともと +;; の機能である "skk-toggle-characters" には、日本語キーボード +;; であれば "@" を、英語キーボードであれば、"[" で代用します。 +;; SKK 標準の "@"(日本語キーボード) や "["(英語キーボード) は、 +;; は、 x を付けて、それぞれ "x@" と "x[" で使用できます。 -;; 2 - $B=c@5$N(B AZIK $B$G$O(B "la" $B$G(B "$B$!(B" $B$rF~NO$7$^$9!#$7$+$7(B -;; SKK $B$G$O(B L $B$r(B ASCII/$BA41Q%b!<%I$N@Z$jBX$(%-!<$H$7$F(B -;; $B;HMQ$9$k$N$G!"(B "xxa" $B$G(B "$B$!(B" $B$,F~NO$G$-$k$h$&$K$7$F(B -;; $B$$$^$9!#(B +;; 2 - 純正の AZIK では "la" で "ぁ" を入力します。しかし +;; SKK では L を ASCII/全英モードの切り替えキーとして +;; 使用するので、 "xxa" で "ぁ" が入力できるようにして +;; います。 ;;; Code: @@ -68,473 +68,473 @@ "tha" "the" "thi" "tho" "thu")) (defvar skk-azik-additional-rom-kana-rule-list - '((";" nil ("$B%C(B" . "$B$C(B")) + '((";" nil ("ッ" . "っ")) ("x;" nil ";") - ("bd" nil ("$B%Y%s(B" . "$B$Y$s(B")) - ("bh" nil ("$B%V%&(B" . "$B$V$&(B")) - ("bj" nil ("$B%V%s(B" . "$B$V$s(B")) - ("bk" nil ("$B%S%s(B" . "$B$S$s(B")) - ("bl" nil ("$B%\%s(B" . "$B$\$s(B")) - ("bn" nil ("$B%P%s(B" . "$B$P$s(B")) - ("bp" nil ("$B%\%&(B" . "$B$\$&(B")) - ("bq" nil ("$B%P%$(B" . "$B$P$$(B")) - ("br" nil ("$B%P%i(B" . "$B$P$i(B")) - ("bt" nil ("$B%S%H(B" . "$B$S$H(B")) - ("bw" nil ("$B%Y%$(B" . "$B$Y$$(B")) - ("bx" nil ("$B%Y%$(B" . "$B$Y$$(B")) - ("byd" nil ("$B%S%'%s(B" . "$B$S$'$s(B")) - ("byh" nil ("$B%S%e%&(B" . "$B$S$e$&(B")) - ("byj" nil ("$B%S%e%s(B" . "$B$S$e$s(B")) - ("byl" nil ("$B%S%g%s(B" . "$B$S$g$s(B")) - ("byn" nil ("$B%S%c%s(B" . "$B$S$c$s(B")) - ("byp" nil ("$B%S%g%&(B" . "$B$S$g$&(B")) - ("byq" nil ("$B%S%c%$(B" . "$B$S$c$$(B")) - ("byw" nil ("$B%S%'%$(B" . "$B$S$'$$(B")) - ("byz" nil ("$B%S%c%s(B" . "$B$S$c$s(B")) - ("bz" nil ("$B%P%s(B" . "$B$P$s(B")) - ("ca" nil ("$B%A%c(B" . "$B$A$c(B")) - ("cc" nil ("$B%A%c(B" . "$B$A$c(B")) - ("cd" nil ("$B%A%'%s(B" . "$B$A$'$s(B")) - ("ce" nil ("$B%A%'(B" . "$B$A$'(B")) - ("cf" nil ("$B%A%'(B" . "$B$A$'(B")) - ("ch" nil ("$B%A%e%&(B" . "$B$A$e$&(B")) - ("ci" nil ("$B%A(B" . "$B$A(B")) - ("cj" nil ("$B%A%e%s(B" . "$B$A$e$s(B")) - ("ck" nil ("$B%A%s(B" . "$B$A$s(B")) - ("cl" nil ("$B%A%g%s(B" . "$B$A$g$s(B")) - ("cn" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) - ("co" nil ("$B%A%g(B" . "$B$A$g(B")) - ("cp" nil ("$B%A%g%&(B" . "$B$A$g$&(B")) - ("cq" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) - ("cu" nil ("$B%A%e(B" . "$B$A$e(B")) - ("cv" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) - ("cw" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) - ("cx" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) - ("cz" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) - ("dch" nil ("$B%G%e!<(B" . "$B$G$e!<(B")) - ("dci" nil ("$B%G%#(B" . "$B$G$#(B")) - ("dck" nil ("$B%G%#%s(B" . "$B$G$#$s(B")) - ("dcp" nil ("$B%I%%!<(B" . "$B$I$%!<(B")) - ("dcu" nil ("$B%G%e(B" . "$B$G$e(B")) - ("dd" nil ("$B%G%s(B" . "$B$G$s(B")) - ("df" nil ("$B%G(B" . "$B$G(B")) - ("dg" nil ("$B%@%,(B" . "$B$@$,(B")) - ("dh" nil ("$B%E%&(B" . "$B$E$&(B")) - ("dj" nil ("$B%E%s(B" . "$B$E$s(B")) - ("dk" nil ("$B%B%s(B" . "$B$B$s(B")) - ("dl" nil ("$B%I%s(B" . "$B$I$s(B")) - ("dm" nil ("$B%G%b(B" . "$B$G$b(B")) - ("dn" nil ("$B%@%s(B" . "$B$@$s(B")) - ("dp" nil ("$B%I%&(B" . "$B$I$&(B")) - ("dq" nil ("$B%@%$(B" . "$B$@$$(B")) - ("dr" nil ("$B%G%"%k(B" . "$B$G$"$k(B")) - ("ds" nil ("$B%G%9(B" . "$B$G$9(B")) - ("dt" nil ("$B%@%A(B" . "$B$@$A(B")) - ("dv" nil ("$B%G%s(B" . "$B$G$s(B")) - ("dw" nil ("$B%G%$(B" . "$B$G$$(B")) - ("dy" nil ("$B%G%#(B" . "$B$G$#(B")) - ("dz" nil ("$B%@%s(B" . "$B$@$s(B")) - ("fd" nil ("$B%U%'%s(B" . "$B$U$'$s(B")) - ("fh" nil ("$B%U%&(B" . "$B$U$&(B")) - ("fj" nil ("$B%U%s(B" . "$B$U$s(B")) - ("fk" nil ("$B%U%#%s(B" . "$B$U$#$s(B")) - ("fl" nil ("$B%U%)%s(B" . "$B$U$)$s(B")) - ("fm" nil ("$B%U%`(B" . "$B$U$`(B")) - ("fn" nil ("$B%U%!%s(B" . "$B$U$!$s(B")) - ("fp" nil ("$B%U%)!<(B" . "$B$U$)!<(B")) - ("fq" nil ("$B%U%!%$(B" . "$B$U$!$$(B")) - ("fr" nil ("$B%U%k(B" . "$B$U$k(B")) - ("fs" nil ("$B%U%!%$(B" . "$B$U$!$$(B")) - ("fw" nil ("$B%U%'%$(B" . "$B$U$'$$(B")) - ("fz" nil ("$B%U%!%s(B" . "$B$U$!$s(B")) - ("gd" nil ("$B%2%s(B" . "$B$2$s(B")) - ("gh" nil ("$B%0%&(B" . "$B$0$&(B")) - ("gj" nil ("$B%0%s(B" . "$B$0$s(B")) - ("gk" nil ("$B%.%s(B" . "$B$.$s(B")) - ("gl" nil ("$B%4%s(B" . "$B$4$s(B")) - ("gn" nil ("$B%,%s(B" . "$B$,$s(B")) - ("gp" nil ("$B%4%&(B" . "$B$4$&(B")) - ("gq" nil ("$B%,%$(B" . "$B$,$$(B")) - ("gr" nil ("$B%,%i(B" . "$B$,$i(B")) - ("gt" nil ("$B%4%H(B" . "$B$4$H(B")) - ("gw" nil ("$B%2%$(B" . "$B$2$$(B")) - ("gyd" nil ("$B%.%'%s(B" . "$B$.$'$s(B")) - ("gyh" nil ("$B%.%e%&(B" . "$B$.$e$&(B")) - ("gyj" nil ("$B%.%e%s(B" . "$B$.$e$s(B")) - ("gyl" nil ("$B%.%g%s(B" . "$B$.$g$s(B")) - ("gyn" nil ("$B%.%c%s(B" . "$B$.$c$s(B")) - ("gyp" nil ("$B%.%g%&(B" . "$B$.$g$&(B")) - ("gyq" nil ("$B%.%c%$(B" . "$B$.$c$$(B")) - ("gyw" nil ("$B%.%'%$(B" . "$B$.$'$$(B")) - ("gyz" nil ("$B%.%c%s(B" . "$B$.$c$s(B")) - ("gz" nil ("$B%,%s(B" . "$B$,$s(B")) - ("hd" nil ("$B%X%s(B" . "$B$X$s(B")) - ("hf" nil ("$B%U(B" . "$B$U(B")) - ("hga" nil ("$B%R%c(B" . "$B$R$c(B")) - ("hgd" nil ("$B%R%'%s(B" . "$B$R$'$s(B")) - ("hge" nil ("$B%R%'(B" . "$B$R$'(B")) - ("hgh" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) - ("hgj" nil ("$B%R%e%s(B" . "$B$R$e$s(B")) - ("hgl" nil ("$B%R%g%s(B" . "$B$R$g$s(B")) - ("hgn" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) - ("hgo" nil ("$B%R%g(B" . "$B$R$g(B")) - ("hgp" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) - ("hgq" nil ("$B%R%c%$(B" . "$B$R$c$$(B")) - ("hgu" nil ("$B%R%e(B" . "$B$R$e(B")) - ("hgw" nil ("$B%R%'%$(B" . "$B$R$'$$(B")) - ("hgz" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) - ("hh" nil ("$B%U%&(B" . "$B$U$&(B")) - ("hj" nil ("$B%U%s(B" . "$B$U$s(B")) - ("hk" nil ("$B%R%s(B" . "$B$R$s(B")) - ("hl" nil ("$B%[%s(B" . "$B$[$s(B")) - ("hn" nil ("$B%O%s(B" . "$B$O$s(B")) - ("hp" nil ("$B%[%&(B" . "$B$[$&(B")) - ("hq" nil ("$B%O%$(B" . "$B$O$$(B")) - ("ht" nil ("$B%R%H(B" . "$B$R$H(B")) - ("hw" nil ("$B%X%$(B" . "$B$X$$(B")) - ("hyd" nil ("$B%R%'%s(B" . "$B$R$'$s(B")) - ("hyh" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) - ("hyl" nil ("$B%R%g%s(B" . "$B$R$g$s(B")) - ("hyp" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) - ("hyq" nil ("$B%R%c%$(B" . "$B$R$c$$(B")) - ("hyw" nil ("$B%R%'%$(B" . "$B$R$'$$(B")) - ("hyz" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) - ("hz" nil ("$B%O%s(B" . "$B$O$s(B")) - ("jd" nil ("$B%8%'%s(B" . "$B$8$'$s(B")) - ("jf" nil ("$B%8%e(B" . "$B$8$e(B")) - ("jh" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) - ("jj" nil ("$B%8%e%s(B" . "$B$8$e$s(B")) - ("jk" nil ("$B%8%s(B" . "$B$8$s(B")) - ("jl" nil ("$B%8%g%s(B" . "$B$8$g$s(B")) - ("jn" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) - ("jp" nil ("$B%8%g%&(B" . "$B$8$g$&(B")) - ("jq" nil ("$B%8%c%$(B" . "$B$8$c$$(B")) - ("jv" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) - ("jw" nil ("$B%8%'%$(B" . "$B$8$'$$(B")) - ("jz" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) - ("kA" nil ("$B%u(B" . "$B%u(B")) - ("kE" nil ("$B%v(B" . "$B%v(B")) - ("kd" nil ("$B%1%s(B" . "$B$1$s(B")) - ("kf" nil ("$B%-(B" . "$B$-(B")) - ("kga" nil ("$B%-%c(B" . "$B$-$c(B")) - ("kgd" nil ("$B%-%'%s(B" . "$B$-$'$s(B")) - ("kge" nil ("$B%-%'(B" . "$B$-$'(B")) - ("kgh" nil ("$B%-%e%&(B" . "$B$-$e$&(B")) - ("kgl" nil ("$B%-%g%s(B" . "$B$-$g$s(B")) - ("kgn" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) - ("kgo" nil ("$B%-%g(B" . "$B$-$g(B")) - ("kgp" nil ("$B%-%g%&(B" . "$B$-$g$&(B")) - ("kgq" nil ("$B%-%c%$(B" . "$B$-$c$$(B")) - ("kgu" nil ("$B%-%e(B" . "$B$-$e(B")) - ("kgw" nil ("$B%-%'%$(B" . "$B$-$'$$(B")) - ("kgz" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) - ("kh" nil ("$B%/%&(B" . "$B$/$&(B")) - ("kj" nil ("$B%/%s(B" . "$B$/$s(B")) - ("kk" nil ("$B%-%s(B" . "$B$-$s(B")) - ("kl" nil ("$B%3%s(B" . "$B$3$s(B")) - ("km" nil ("$B%+%b(B" . "$B$+$b(B")) - ("kn" nil ("$B%+%s(B" . "$B$+$s(B")) - ("kp" nil ("$B%3%&(B" . "$B$3$&(B")) - ("kq" nil ("$B%+%$(B" . "$B$+$$(B")) - ("kr" nil ("$B%+%i(B" . "$B$+$i(B")) - ("kt" nil ("$B%3%H(B" . "$B$3$H(B")) - ("kv" nil ("$B%-%s(B" . "$B$-$s(B")) - ("kw" nil ("$B%1%$(B" . "$B$1$$(B")) - ("kyd" nil ("$B%-%'%s(B" . "$B$-$'$s(B")) - ("kyh" nil ("$B%-%e%&(B" . "$B$-$e$&(B")) - ("kyj" nil ("$B%-%e%s(B" . "$B$-$e$s(B")) - ("kyl" nil ("$B%-%g%s(B" . "$B$-$g$s(B")) - ("kyn" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) - ("kyp" nil ("$B%-%g%&(B" . "$B$-$g$&(B")) - ("kyq" nil ("$B%-%c%$(B" . "$B$-$c$$(B")) - ("kyw" nil ("$B%-%'%$(B" . "$B$-$'$$(B")) - ("kyz" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) - ("kz" nil ("$B%+%s(B" . "$B$+$s(B")) - ("md" nil ("$B%a%s(B" . "$B$a$s(B")) - ("mf" nil ("$B%`(B" . "$B$`(B")) - ("mga" nil ("$B%_%c(B" . "$B$_$c(B")) - ("mgd" nil ("$B%_%'%s(B" . "$B$_$'$s(B")) - ("mge" nil ("$B%_%'(B" . "$B$_$'(B")) - ("mgh" nil ("$B%_%e%&(B" . "$B$_$e$&(B")) - ("mgj" nil ("$B%_%e%s(B" . "$B$_$e$s(B")) - ("mgl" nil ("$B%_%g%s(B" . "$B$_$g$s(B")) - ("mgn" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) - ("mgo" nil ("$B%_%g(B" . "$B$_$g(B")) - ("mgp" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) - ("mgq" nil ("$B%_%c%$(B" . "$B$_$c$$(B")) - ("mgu" nil ("$B%_%e(B" . "$B$_$e(B")) - ("mgw" nil ("$B%_%'%$(B" . "$B$_$'$$(B")) - ("mgz" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) - ("mh" nil ("$B%`%&(B" . "$B$`$&(B")) - ("mj" nil ("$B%`%s(B" . "$B$`$s(B")) - ("mk" nil ("$B%_%s(B" . "$B$_$s(B")) - ("ml" nil ("$B%b%s(B" . "$B$b$s(B")) - ("mn" nil ("$B%b%N(B" . "$B$b$N(B")) - ("mp" nil ("$B%b%&(B" . "$B$b$&(B")) - ("mq" nil ("$B%^%$(B" . "$B$^$$(B")) - ("mr" nil ("$B%^%k(B" . "$B$^$k(B")) - ("ms" nil ("$B%^%9(B" . "$B$^$9(B")) - ("mt" nil ("$B%^%?(B" . "$B$^$?(B")) - ("mv" nil ("$B%`%s(B" . "$B$`$s(B")) - ("mw" nil ("$B%a%$(B" . "$B$a$$(B")) - ("myd" nil ("$B%_%'%s(B" . "$B$_$'$s(B")) - ("myh" nil ("$B%_%e%&(B" . "$B$_$e$&(B")) - ("myj" nil ("$B%_%e%s(B" . "$B$_$e$s(B")) - ("myl" nil ("$B%_%g%s(B" . "$B$_$g$s(B")) - ("myn" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) - ("myp" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) - ("myq" nil ("$B%_%c%$(B" . "$B$_$c$$(B")) - ("myw" nil ("$B%_%'%$(B" . "$B$_$'$$(B")) - ("myz" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) - ("mz" nil ("$B%^%s(B" . "$B$^$s(B")) - ("nb" nil ("$B%M%P(B" . "$B$M$P(B")) - ("nd" nil ("$B%M%s(B" . "$B$M$s(B")) - ("nf" nil ("$B%L(B" . "$B$L(B")) - ("nga" nil ("$B%K%c(B" . "$B$K$c(B")) - ("ngd" nil ("$B%K%'%s(B" . "$B$K$'$s(B")) - ("nge" nil ("$B%K%'(B" . "$B$K$'(B")) - ("ngh" nil ("$B%K%e%&(B" . "$B$K$e$&(B")) - ("ngj" nil ("$B%K%e%s(B" . "$B$K$e$s(B")) - ("ngl" nil ("$B%K%g%s(B" . "$B$K$g$s(B")) - ("ngn" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) - ("ngo" nil ("$B%K%g(B" . "$B$K$g(B")) - ("ngp" nil ("$B%K%g%&(B" . "$B$K$g$&(B")) - ("ngq" nil ("$B%K%c%$(B" . "$B$K$c$$(B")) - ("ngu" nil ("$B%K%e(B" . "$B$K$e(B")) - ("ngw" nil ("$B%K%'%$(B" . "$B$K$'$$(B")) - ("ngz" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) - ("nh" nil ("$B%L%&(B" . "$B$L$&(B")) - ("nj" nil ("$B%L%s(B" . "$B$L$s(B")) - ("nk" nil ("$B%K%s(B" . "$B$K$s(B")) - ("nl" nil ("$B%N%s(B" . "$B$N$s(B")) - ("np" nil ("$B%N%&(B" . "$B$N$&(B")) - ("nq" nil ("$B%J%$(B" . "$B$J$$(B")) - ("nr" nil ("$B%J%k(B" . "$B$J$k(B")) - ("nt" nil ("$B%K%A(B" . "$B$K$A(B")) - ("nv" nil ("$B%L%s(B" . "$B$L$s(B")) - ("nw" nil ("$B%M%$(B" . "$B$M$$(B")) - ("nyd" nil ("$B%K%'%s(B" . "$B$K$'$s(B")) - ("nyh" nil ("$B%K%e%&(B" . "$B$K$e$&(B")) - ("nyj" nil ("$B%K%e%s(B" . "$B$K$e$s(B")) - ("nyl" nil ("$B%K%g%s(B" . "$B$K$g$s(B")) - ("nyn" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) - ("nyp" nil ("$B%K%g%&(B" . "$B$K$g$&(B")) - ("nyq" nil ("$B%K%c%$(B" . "$B$K$c$$(B")) - ("nyw" nil ("$B%K%'%$(B" . "$B$K$'$$(B")) - ("nyz" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) - ("nz" nil ("$B%J%s(B" . "$B$J$s(B")) - ("pd" nil ("$B%Z%s(B" . "$B$Z$s(B")) - ("pf" nil ("$B%]%s(B" . "$B$]$s(B")) - ("pga" nil ("$B%T%c(B" . "$B$T$c(B")) - ("pgd" nil ("$B%T%'%s(B" . "$B$T$'$s(B")) - ("pge" nil ("$B%T%'(B" . "$B$T$'(B")) - ("pgh" nil ("$B%T%e%&(B" . "$B$T$e$&(B")) - ("pgj" nil ("$B%T%e%s(B" . "$B$T$e$s(B")) - ("pgl" nil ("$B%T%g%s(B" . "$B$T$g$s(B")) - ("pgn" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) - ("pgo" nil ("$B%T%g(B" . "$B$T$g(B")) - ("pgp" nil ("$B%T%g%&(B" . "$B$T$g$&(B")) - ("pgq" nil ("$B%T%c%$(B" . "$B$T$c$$(B")) - ("pgu" nil ("$B%T%e(B" . "$B$T$e(B")) - ("pgw" nil ("$B%T%'%$(B" . "$B$T$'$$(B")) - ("pgz" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) - ("ph" nil ("$B%W%&(B" . "$B$W$&(B")) - ("pj" nil ("$B%W%s(B" . "$B$W$s(B")) - ("pk" nil ("$B%T%s(B" . "$B$T$s(B")) - ("pl" nil ("$B%]%s(B" . "$B$]$s(B")) - ("pn" nil ("$B%Q%s(B" . "$B$Q$s(B")) - ("pp" nil ("$B%]%&(B" . "$B$]$&(B")) - ("pq" nil ("$B%Q%$(B" . "$B$Q$$(B")) - ("pv" nil ("$B%]%&(B" . "$B$]$&(B")) - ("pw" nil ("$B%Z%$(B" . "$B$Z$$(B")) - ("pyd" nil ("$B%T%'%s(B" . "$B$T$'$s(B")) - ("pyh" nil ("$B%T%e%&(B" . "$B$T$e$&(B")) - ("pyj" nil ("$B%T%e%s(B" . "$B$T$e$s(B")) - ("pyl" nil ("$B%T%g%s(B" . "$B$T$g$s(B")) - ("pyn" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) - ("pyp" nil ("$B%T%g%&(B" . "$B$T$g$&(B")) - ("pyq" nil ("$B%T%c%$(B" . "$B$T$c$$(B")) - ("pyw" nil ("$B%T%'%$(B" . "$B$T$'$$(B")) - ("pyz" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) - ("pz" nil ("$B%Q%s(B" . "$B$Q$s(B")) - ("q" nil ("$B%s(B" . "$B$s(B")) - ("rd" nil ("$B%l%s(B" . "$B$l$s(B")) - ("rh" nil ("$B%k%&(B" . "$B$k$&(B")) - ("rj" nil ("$B%k%s(B" . "$B$k$s(B")) - ("rk" nil ("$B%j%s(B" . "$B$j$s(B")) - ("rl" nil ("$B%m%s(B" . "$B$m$s(B")) - ("rn" nil ("$B%i%s(B" . "$B$i$s(B")) - ("rp" nil ("$B%m%&(B" . "$B$m$&(B")) - ("rq" nil ("$B%i%$(B" . "$B$i$$(B")) - ("rr" nil ("$B%i%l(B" . "$B$i$l(B")) - ("rw" nil ("$B%l%$(B" . "$B$l$$(B")) - ("ryd" nil ("$B%j%'%s(B" . "$B$j$'$s(B")) - ("ryh" nil ("$B%j%e%&(B" . "$B$j$e$&(B")) - ("ryj" nil ("$B%j%e%s(B" . "$B$j$e$s(B")) - ("ryk" nil ("$B%j%g%/(B" . "$B$j$g$/(B")) - ("ryl" nil ("$B%j%g%s(B" . "$B$j$g$s(B")) - ("ryn" nil ("$B%j%c%s(B" . "$B$j$c$s(B")) - ("ryp" nil ("$B%j%g%&(B" . "$B$j$g$&(B")) - ("ryq" nil ("$B%j%c%$(B" . "$B$j$c$$(B")) - ("ryw" nil ("$B%j%'%$(B" . "$B$j$'$$(B")) - ("ryz" nil ("$B%j%c%s(B" . "$B$j$c$s(B")) - ("rz" nil ("$B%i%s(B" . "$B$i$s(B")) - ("sd" nil ("$B%;%s(B" . "$B$;$s(B")) - ("sf" nil ("$B%5%$(B" . "$B$5$$(B")) - ("sh" nil ("$B%9%&(B" . "$B$9$&(B")) - ("sj" nil ("$B%9%s(B" . "$B$9$s(B")) - ("sk" nil ("$B%7%s(B" . "$B$7$s(B")) - ("sl" nil ("$B%=%s(B" . "$B$=$s(B")) - ("sm" nil ("$B%7%b(B" . "$B$7$b(B")) - ("sn" nil ("$B%5%s(B" . "$B$5$s(B")) - ("sp" nil ("$B%=%&(B" . "$B$=$&(B")) - ("sq" nil ("$B%5%$(B" . "$B$5$$(B")) - ("sr" nil ("$B%9%k(B" . "$B$9$k(B")) - ("ss" nil ("$B%;%$(B" . "$B$;$$(B")) - ("st" nil ("$B%7%?(B" . "$B$7$?(B")) - ("sv" nil ("$B%5%$(B" . "$B$5$$(B")) - ("sw" nil ("$B%;%$(B" . "$B$;$$(B")) - ("syd" nil ("$B%7%'%s(B" . "$B$7$'$s(B")) - ("syh" nil ("$B%7%e%&(B" . "$B$7$e$&(B")) - ("syj" nil ("$B%7%e%s(B" . "$B$7$e$s(B")) - ("syl" nil ("$B%7%g%s(B" . "$B$7$g$s(B")) - ("syp" nil ("$B%7%g%&(B" . "$B$7$g$&(B")) - ("syq" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) - ("syw" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) - ("syz" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) - ("sz" nil ("$B%5%s(B" . "$B$5$s(B")) - ("tb" nil ("$B%?%S(B" . "$B$?$S(B")) - ("td" nil ("$B%F%s(B" . "$B$F$s(B")) - ("tgh" nil ("$B%F%e!<(B" . "$B$F$e!<(B")) - ("tgi" nil ("$B%F%#(B" . "$B$F$#(B")) - ("tgk" nil ("$B%F%#%s(B" . "$B$F$#$s(B")) - ("tgp" nil ("$B%H%%!<(B" . "$B$H$%!<(B")) - ("tgu" nil ("$B%F%e(B" . "$B$F$e(B")) - ("th" nil ("$B%D%&(B" . "$B$D$&(B")) - ("tj" nil ("$B%D%s(B" . "$B$D$s(B")) - ("tk" nil ("$B%A%s(B" . "$B$A$s(B")) - ("tl" nil ("$B%H%s(B" . "$B$H$s(B")) - ("tm" nil ("$B%?%a(B" . "$B$?$a(B")) - ("tn" nil ("$B%?%s(B" . "$B$?$s(B")) - ("tp" nil ("$B%H%&(B" . "$B$H$&(B")) - ("tq" nil ("$B%?%$(B" . "$B$?$$(B")) - ("tr" nil ("$B%?%i(B" . "$B$?$i(B")) - ("tsa" nil ("$B%D%!(B" . "$B$D$!(B")) - ("tse" nil ("$B%D%'(B" . "$B$D$'(B")) - ("tsi" nil ("$B%D%#(B" . "$B$D$#(B")) - ("tso" nil ("$B%D%)(B" . "$B$D$)(B")) - ("tt" nil ("$B%?%A(B" . "$B$?$A(B")) - ("tw" nil ("$B%F%$(B" . "$B$F$$(B")) - ("tyd" nil ("$B%A%'%s(B" . "$B$A$'$s(B")) - ("tyh" nil ("$B%A%e%&(B" . "$B$A$e$&(B")) - ("tyj" nil ("$B%A%e%s(B" . "$B$A$e$s(B")) - ("tyl" nil ("$B%A%g%s(B" . "$B$A$g$s(B")) - ("tyn" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) - ("typ" nil ("$B%A%g%&(B" . "$B$A$g$&(B")) - ("tyq" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) - ("tyw" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) - ("tyz" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) - ("tz" nil ("$B%?%s(B" . "$B$?$s(B")) - ("vd" nil ("$B%t%'%s(B" . "$B$&!+$'$s(B")) - ("vk" nil ("$B%t%#%s(B" . "$B$&!+$#$s(B")) - ("vl" nil ("$B%t%)%s(B" . "$B$&!+$)$s(B")) - ("vn" nil ("$B%t%!%s(B" . "$B$&!+$!$s(B")) - ("vp" nil ("$B%t%)!<(B" . "$B$&!+$)!<(B")) - ("vq" nil ("$B%t%!%$(B" . "$B$&!+$!$$(B")) - ("vw" nil ("$B%t%'%$(B" . "$B$&!+$'$$(B")) - ("vya" nil ("$B%t%c(B" . "$B$&!+$c(B")) - ("vye" nil ("$B%t%'(B" . "$B$&!+$'(B")) - ("vyo" nil ("$B%t%g(B" . "$B$&!+$g(B")) - ("vyu" nil ("$B%t%e(B" . "$B$&!+$e(B")) - ("vz" nil ("$B%t%!%s(B" . "$B$&!+$!$s(B")) - ("wA" nil ("$B%n(B" . "$B$n(B")) - ("wd" nil ("$B%&%'%s(B" . "$B$&$'$s(B")) - ("wf" nil ("$B%o%$(B" . "$B$o$$(B")) - ("wha" nil ("$B%&%!(B" . "$B$&$!(B")) - ("whe" nil ("$B%&%'(B" . "$B$&$'(B")) - ("whi" nil ("$B%&%#(B" . "$B$&$#(B")) - ("who" nil ("$B%&%)(B" . "$B$&$)(B")) - ("whu" nil ("$B%&(B" . "$B$&(B")) - ("wk" nil ("$B%&%#%s(B" . "$B$&$#$s(B")) - ("wl" nil ("$B%&%)%s(B" . "$B$&$)$s(B")) - ("wn" nil ("$B%o%s(B" . "$B$o$s(B")) - ("wp" nil ("$B%&%)!<(B" . "$B$&$)!<(B")) - ("wq" nil ("$B%o%$(B" . "$B$o$$(B")) - ("wr" nil ("$B%o%l(B" . "$B$o$l(B")) - ("wso" nil ("$B%&%)(B" . "$B$&$)(B")) - ("wt" nil ("$B%o%?(B" . "$B$o$?(B")) - ("wz" nil ("$B%o%s(B" . "$B$o$s(B")) - ("xa" nil ("$B%7%c(B" . "$B$7$c(B")) - ("xc" nil ("$B%7%c(B" . "$B$7$c(B")) - ("xd" nil ("$B%7%'%s(B" . "$B$7$'$s(B")) - ("xe" nil ("$B%7%'(B" . "$B$7$'(B")) - ("xf" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) - ("xh" nil ("$B%7%e%&(B" . "$B$7$e$&(B")) - ("xi" nil ("$B%7(B" . "$B$7(B")) - ("xj" nil ("$B%7%e%s(B" . "$B$7$e$s(B")) - ("xk" nil ("$B%7%s(B" . "$B$7$s(B")) - ("xl" nil ("$B%7%g%s(B" . "$B$7$g$s(B")) - ("xn" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) - ("xo" nil ("$B%7%g(B" . "$B$7$g(B")) - ("xp" nil ("$B%7%g%&(B" . "$B$7$g$&(B")) - ("xq" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) - ("xt" nil ("$B%7%e%D(B" . "$B$7$e$D(B")) - ("xu" nil ("$B%7%e(B" . "$B$7$e(B")) - ("xv" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) - ("xw" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) - ("xxa" nil ("$B%!(B" . "$B$!(B")) - ("xxe" nil ("$B%'(B" . "$B$'(B")) - ("xxi" nil ("$B%#(B" . "$B$#(B")) - ("xxo" nil ("$B%)(B" . "$B$)(B")) - ("xxu" nil ("$B%%(B" . "$B$%(B")) - ("xxh" nil "$B"+(B") - ("xxj" nil "$B"-(B") - ("xxk" nil "$B",(B") - ("xxl" nil "$B"*(B") - ("xz" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) - ("y<" nil "$B"+(B") - ("y>" nil "$B"*(B") - ("y^" nil "$B",(B") - ("yf" nil ("$B%f(B" . "$B$f(B")) - ("yh" nil ("$B%f%&(B" . "$B$f$&(B")) - ("yi" nil ("$B%p(B" . "$B$p(B")) - ("yj" nil ("$B%f%s(B" . "$B$f$s(B")) - ("yl" nil ("$B%h%s(B" . "$B$h$s(B")) - ("yn" nil ("$B%d%s(B" . "$B$d$s(B")) - ("yp" nil ("$B%h%&(B" . "$B$h$&(B")) - ("yq" nil ("$B%d%$(B" . "$B$d$$(B")) - ("yr" nil ("$B%h%k(B" . "$B$h$k(B")) - ("yv" nil ("$B%f%&(B" . "$B$f$&(B")) - ("yz" nil ("$B%d%s(B" . "$B$d$s(B")) - ("zc" nil ("$B%6(B" . "$B$6(B")) - ("zd" nil ("$B%<%s(B" . "$B$<$s(B")) - ("zf" nil ("$B%<(B" . "$B$<(B")) - ("zh" nil ("$B%:%&(B" . "$B$:$&(B")) - ("zj" nil ("$B%:%s(B" . "$B$:$s(B")) - ("zk" nil ("$B%8%s(B" . "$B$8$s(B")) - ("zl" nil ("$B%>%s(B" . "$B$>$s(B")) - ("zn" nil ("$B%6%s(B" . "$B$6$s(B")) - ("zp" nil ("$B%>%&(B" . "$B$>$&(B")) - ("zq" nil ("$B%6%$(B" . "$B$6$$(B")) - ("zr" nil ("$B%6%k(B" . "$B$6$k(B")) - ("zv" nil ("$B%6%$(B" . "$B$6$$(B")) - ("zw" nil ("$B%<%$(B" . "$B$<$$(B")) - ("zx" nil ("$B%<%$(B" . "$B$<$$(B")) - ("zyd" nil ("$B%8%'%s(B" . "$B$8$'$s(B")) - ("zyh" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) - ("zyj" nil ("$B%8%e%s(B" . "$B$8$e$s(B")) - ("zyl" nil ("$B%8%g%s(B" . "$B$8$g$s(B")) - ("zyn" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) - ("zyp" nil ("$B%8%g%&(B" . "$B$8$g$&(B")) - ("zyq" nil ("$B%8%c%$(B" . "$B$8$c$$(B")) - ("zyw" nil ("$B%8%'%$(B" . "$B$8$'$$(B")) - ("zyz" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) - ("zz" nil ("$B%6%s(B" . "$B$6$s(B")))) + ("bd" nil ("ベン" . "べん")) + ("bh" nil ("ブウ" . "ぶう")) + ("bj" nil ("ブン" . "ぶん")) + ("bk" nil ("ビン" . "びん")) + ("bl" nil ("ボン" . "ぼん")) + ("bn" nil ("バン" . "ばん")) + ("bp" nil ("ボウ" . "ぼう")) + ("bq" nil ("バイ" . "ばい")) + ("br" nil ("バラ" . "ばら")) + ("bt" nil ("ビト" . "びと")) + ("bw" nil ("ベイ" . "べい")) + ("bx" nil ("ベイ" . "べい")) + ("byd" nil ("ビェン" . "びぇん")) + ("byh" nil ("ビュウ" . "びゅう")) + ("byj" nil ("ビュン" . "びゅん")) + ("byl" nil ("ビョン" . "びょん")) + ("byn" nil ("ビャン" . "びゃん")) + ("byp" nil ("ビョウ" . "びょう")) + ("byq" nil ("ビャイ" . "びゃい")) + ("byw" nil ("ビェイ" . "びぇい")) + ("byz" nil ("ビャン" . "びゃん")) + ("bz" nil ("バン" . "ばん")) + ("ca" nil ("チャ" . "ちゃ")) + ("cc" nil ("チャ" . "ちゃ")) + ("cd" nil ("チェン" . "ちぇん")) + ("ce" nil ("チェ" . "ちぇ")) + ("cf" nil ("チェ" . "ちぇ")) + ("ch" nil ("チュウ" . "ちゅう")) + ("ci" nil ("チ" . "ち")) + ("cj" nil ("チュン" . "ちゅん")) + ("ck" nil ("チン" . "ちん")) + ("cl" nil ("チョン" . "ちょん")) + ("cn" nil ("チャン" . "ちゃん")) + ("co" nil ("チョ" . "ちょ")) + ("cp" nil ("チョウ" . "ちょう")) + ("cq" nil ("チャイ" . "ちゃい")) + ("cu" nil ("チュ" . "ちゅ")) + ("cv" nil ("チャイ" . "ちゃい")) + ("cw" nil ("チェイ" . "ちぇい")) + ("cx" nil ("チェイ" . "ちぇい")) + ("cz" nil ("チャン" . "ちゃん")) + ("dch" nil ("デュー" . "でゅー")) + ("dci" nil ("ディ" . "でぃ")) + ("dck" nil ("ディン" . "でぃん")) + ("dcp" nil ("ドゥー" . "どぅー")) + ("dcu" nil ("デュ" . "でゅ")) + ("dd" nil ("デン" . "でん")) + ("df" nil ("デ" . "で")) + ("dg" nil ("ダガ" . "だが")) + ("dh" nil ("ヅウ" . "づう")) + ("dj" nil ("ヅン" . "づん")) + ("dk" nil ("ヂン" . "ぢん")) + ("dl" nil ("ドン" . "どん")) + ("dm" nil ("デモ" . "でも")) + ("dn" nil ("ダン" . "だん")) + ("dp" nil ("ドウ" . "どう")) + ("dq" nil ("ダイ" . "だい")) + ("dr" nil ("デアル" . "である")) + ("ds" nil ("デス" . "です")) + ("dt" nil ("ダチ" . "だち")) + ("dv" nil ("デン" . "でん")) + ("dw" nil ("デイ" . "でい")) + ("dy" nil ("ディ" . "でぃ")) + ("dz" nil ("ダン" . "だん")) + ("fd" nil ("フェン" . "ふぇん")) + ("fh" nil ("フウ" . "ふう")) + ("fj" nil ("フン" . "ふん")) + ("fk" nil ("フィン" . "ふぃん")) + ("fl" nil ("フォン" . "ふぉん")) + ("fm" nil ("フム" . "ふむ")) + ("fn" nil ("ファン" . "ふぁん")) + ("fp" nil ("フォー" . "ふぉー")) + ("fq" nil ("ファイ" . "ふぁい")) + ("fr" nil ("フル" . "ふる")) + ("fs" nil ("ファイ" . "ふぁい")) + ("fw" nil ("フェイ" . "ふぇい")) + ("fz" nil ("ファン" . "ふぁん")) + ("gd" nil ("ゲン" . "げん")) + ("gh" nil ("グウ" . "ぐう")) + ("gj" nil ("グン" . "ぐん")) + ("gk" nil ("ギン" . "ぎん")) + ("gl" nil ("ゴン" . "ごん")) + ("gn" nil ("ガン" . "がん")) + ("gp" nil ("ゴウ" . "ごう")) + ("gq" nil ("ガイ" . "がい")) + ("gr" nil ("ガラ" . "がら")) + ("gt" nil ("ゴト" . "ごと")) + ("gw" nil ("ゲイ" . "げい")) + ("gyd" nil ("ギェン" . "ぎぇん")) + ("gyh" nil ("ギュウ" . "ぎゅう")) + ("gyj" nil ("ギュン" . "ぎゅん")) + ("gyl" nil ("ギョン" . "ぎょん")) + ("gyn" nil ("ギャン" . "ぎゃん")) + ("gyp" nil ("ギョウ" . "ぎょう")) + ("gyq" nil ("ギャイ" . "ぎゃい")) + ("gyw" nil ("ギェイ" . "ぎぇい")) + ("gyz" nil ("ギャン" . "ぎゃん")) + ("gz" nil ("ガン" . "がん")) + ("hd" nil ("ヘン" . "へん")) + ("hf" nil ("フ" . "ふ")) + ("hga" nil ("ヒャ" . "ひゃ")) + ("hgd" nil ("ヒェン" . "ひぇん")) + ("hge" nil ("ヒェ" . "ひぇ")) + ("hgh" nil ("ヒュウ" . "ひゅう")) + ("hgj" nil ("ヒュン" . "ひゅん")) + ("hgl" nil ("ヒョン" . "ひょん")) + ("hgn" nil ("ヒャン" . "ひゃん")) + ("hgo" nil ("ヒョ" . "ひょ")) + ("hgp" nil ("ヒョウ" . "ひょう")) + ("hgq" nil ("ヒャイ" . "ひゃい")) + ("hgu" nil ("ヒュ" . "ひゅ")) + ("hgw" nil ("ヒェイ" . "ひぇい")) + ("hgz" nil ("ヒャン" . "ひゃん")) + ("hh" nil ("フウ" . "ふう")) + ("hj" nil ("フン" . "ふん")) + ("hk" nil ("ヒン" . "ひん")) + ("hl" nil ("ホン" . "ほん")) + ("hn" nil ("ハン" . "はん")) + ("hp" nil ("ホウ" . "ほう")) + ("hq" nil ("ハイ" . "はい")) + ("ht" nil ("ヒト" . "ひと")) + ("hw" nil ("ヘイ" . "へい")) + ("hyd" nil ("ヒェン" . "ひぇん")) + ("hyh" nil ("ヒュウ" . "ひゅう")) + ("hyl" nil ("ヒョン" . "ひょん")) + ("hyp" nil ("ヒョウ" . "ひょう")) + ("hyq" nil ("ヒャイ" . "ひゃい")) + ("hyw" nil ("ヒェイ" . "ひぇい")) + ("hyz" nil ("ヒャン" . "ひゃん")) + ("hz" nil ("ハン" . "はん")) + ("jd" nil ("ジェン" . "じぇん")) + ("jf" nil ("ジュ" . "じゅ")) + ("jh" nil ("ジュウ" . "じゅう")) + ("jj" nil ("ジュン" . "じゅん")) + ("jk" nil ("ジン" . "じん")) + ("jl" nil ("ジョン" . "じょん")) + ("jn" nil ("ジャン" . "じゃん")) + ("jp" nil ("ジョウ" . "じょう")) + ("jq" nil ("ジャイ" . "じゃい")) + ("jv" nil ("ジュウ" . "じゅう")) + ("jw" nil ("ジェイ" . "じぇい")) + ("jz" nil ("ジャン" . "じゃん")) + ("kA" nil ("ヵ" . "ヵ")) + ("kE" nil ("ヶ" . "ヶ")) + ("kd" nil ("ケン" . "けん")) + ("kf" nil ("キ" . "き")) + ("kga" nil ("キャ" . "きゃ")) + ("kgd" nil ("キェン" . "きぇん")) + ("kge" nil ("キェ" . "きぇ")) + ("kgh" nil ("キュウ" . "きゅう")) + ("kgl" nil ("キョン" . "きょん")) + ("kgn" nil ("キャン" . "きゃん")) + ("kgo" nil ("キョ" . "きょ")) + ("kgp" nil ("キョウ" . "きょう")) + ("kgq" nil ("キャイ" . "きゃい")) + ("kgu" nil ("キュ" . "きゅ")) + ("kgw" nil ("キェイ" . "きぇい")) + ("kgz" nil ("キャン" . "きゃん")) + ("kh" nil ("クウ" . "くう")) + ("kj" nil ("クン" . "くん")) + ("kk" nil ("キン" . "きん")) + ("kl" nil ("コン" . "こん")) + ("km" nil ("カモ" . "かも")) + ("kn" nil ("カン" . "かん")) + ("kp" nil ("コウ" . "こう")) + ("kq" nil ("カイ" . "かい")) + ("kr" nil ("カラ" . "から")) + ("kt" nil ("コト" . "こと")) + ("kv" nil ("キン" . "きん")) + ("kw" nil ("ケイ" . "けい")) + ("kyd" nil ("キェン" . "きぇん")) + ("kyh" nil ("キュウ" . "きゅう")) + ("kyj" nil ("キュン" . "きゅん")) + ("kyl" nil ("キョン" . "きょん")) + ("kyn" nil ("キャン" . "きゃん")) + ("kyp" nil ("キョウ" . "きょう")) + ("kyq" nil ("キャイ" . "きゃい")) + ("kyw" nil ("キェイ" . "きぇい")) + ("kyz" nil ("キャン" . "きゃん")) + ("kz" nil ("カン" . "かん")) + ("md" nil ("メン" . "めん")) + ("mf" nil ("ム" . "む")) + ("mga" nil ("ミャ" . "みゃ")) + ("mgd" nil ("ミェン" . "みぇん")) + ("mge" nil ("ミェ" . "みぇ")) + ("mgh" nil ("ミュウ" . "みゅう")) + ("mgj" nil ("ミュン" . "みゅん")) + ("mgl" nil ("ミョン" . "みょん")) + ("mgn" nil ("ミャン" . "みゃん")) + ("mgo" nil ("ミョ" . "みょ")) + ("mgp" nil ("ミョウ" . "みょう")) + ("mgq" nil ("ミャイ" . "みゃい")) + ("mgu" nil ("ミュ" . "みゅ")) + ("mgw" nil ("ミェイ" . "みぇい")) + ("mgz" nil ("ミャン" . "みゃん")) + ("mh" nil ("ムウ" . "むう")) + ("mj" nil ("ムン" . "むん")) + ("mk" nil ("ミン" . "みん")) + ("ml" nil ("モン" . "もん")) + ("mn" nil ("モノ" . "もの")) + ("mp" nil ("モウ" . "もう")) + ("mq" nil ("マイ" . "まい")) + ("mr" nil ("マル" . "まる")) + ("ms" nil ("マス" . "ます")) + ("mt" nil ("マタ" . "また")) + ("mv" nil ("ムン" . "むん")) + ("mw" nil ("メイ" . "めい")) + ("myd" nil ("ミェン" . "みぇん")) + ("myh" nil ("ミュウ" . "みゅう")) + ("myj" nil ("ミュン" . "みゅん")) + ("myl" nil ("ミョン" . "みょん")) + ("myn" nil ("ミャン" . "みゃん")) + ("myp" nil ("ミョウ" . "みょう")) + ("myq" nil ("ミャイ" . "みゃい")) + ("myw" nil ("ミェイ" . "みぇい")) + ("myz" nil ("ミャン" . "みゃん")) + ("mz" nil ("マン" . "まん")) + ("nb" nil ("ネバ" . "ねば")) + ("nd" nil ("ネン" . "ねん")) + ("nf" nil ("ヌ" . "ぬ")) + ("nga" nil ("ニャ" . "にゃ")) + ("ngd" nil ("ニェン" . "にぇん")) + ("nge" nil ("ニェ" . "にぇ")) + ("ngh" nil ("ニュウ" . "にゅう")) + ("ngj" nil ("ニュン" . "にゅん")) + ("ngl" nil ("ニョン" . "にょん")) + ("ngn" nil ("ニャン" . "にゃん")) + ("ngo" nil ("ニョ" . "にょ")) + ("ngp" nil ("ニョウ" . "にょう")) + ("ngq" nil ("ニャイ" . "にゃい")) + ("ngu" nil ("ニュ" . "にゅ")) + ("ngw" nil ("ニェイ" . "にぇい")) + ("ngz" nil ("ニャン" . "にゃん")) + ("nh" nil ("ヌウ" . "ぬう")) + ("nj" nil ("ヌン" . "ぬん")) + ("nk" nil ("ニン" . "にん")) + ("nl" nil ("ノン" . "のん")) + ("np" nil ("ノウ" . "のう")) + ("nq" nil ("ナイ" . "ない")) + ("nr" nil ("ナル" . "なる")) + ("nt" nil ("ニチ" . "にち")) + ("nv" nil ("ヌン" . "ぬん")) + ("nw" nil ("ネイ" . "ねい")) + ("nyd" nil ("ニェン" . "にぇん")) + ("nyh" nil ("ニュウ" . "にゅう")) + ("nyj" nil ("ニュン" . "にゅん")) + ("nyl" nil ("ニョン" . "にょん")) + ("nyn" nil ("ニャン" . "にゃん")) + ("nyp" nil ("ニョウ" . "にょう")) + ("nyq" nil ("ニャイ" . "にゃい")) + ("nyw" nil ("ニェイ" . "にぇい")) + ("nyz" nil ("ニャン" . "にゃん")) + ("nz" nil ("ナン" . "なん")) + ("pd" nil ("ペン" . "ぺん")) + ("pf" nil ("ポン" . "ぽん")) + ("pga" nil ("ピャ" . "ぴゃ")) + ("pgd" nil ("ピェン" . "ぴぇん")) + ("pge" nil ("ピェ" . "ぴぇ")) + ("pgh" nil ("ピュウ" . "ぴゅう")) + ("pgj" nil ("ピュン" . "ぴゅん")) + ("pgl" nil ("ピョン" . "ぴょん")) + ("pgn" nil ("ピャン" . "ぴゃん")) + ("pgo" nil ("ピョ" . "ぴょ")) + ("pgp" nil ("ピョウ" . "ぴょう")) + ("pgq" nil ("ピャイ" . "ぴゃい")) + ("pgu" nil ("ピュ" . "ぴゅ")) + ("pgw" nil ("ピェイ" . "ぴぇい")) + ("pgz" nil ("ピャン" . "ぴゃん")) + ("ph" nil ("プウ" . "ぷう")) + ("pj" nil ("プン" . "ぷん")) + ("pk" nil ("ピン" . "ぴん")) + ("pl" nil ("ポン" . "ぽん")) + ("pn" nil ("パン" . "ぱん")) + ("pp" nil ("ポウ" . "ぽう")) + ("pq" nil ("パイ" . "ぱい")) + ("pv" nil ("ポウ" . "ぽう")) + ("pw" nil ("ペイ" . "ぺい")) + ("pyd" nil ("ピェン" . "ぴぇん")) + ("pyh" nil ("ピュウ" . "ぴゅう")) + ("pyj" nil ("ピュン" . "ぴゅん")) + ("pyl" nil ("ピョン" . "ぴょん")) + ("pyn" nil ("ピャン" . "ぴゃん")) + ("pyp" nil ("ピョウ" . "ぴょう")) + ("pyq" nil ("ピャイ" . "ぴゃい")) + ("pyw" nil ("ピェイ" . "ぴぇい")) + ("pyz" nil ("ピャン" . "ぴゃん")) + ("pz" nil ("パン" . "ぱん")) + ("q" nil ("ン" . "ん")) + ("rd" nil ("レン" . "れん")) + ("rh" nil ("ルウ" . "るう")) + ("rj" nil ("ルン" . "るん")) + ("rk" nil ("リン" . "りん")) + ("rl" nil ("ロン" . "ろん")) + ("rn" nil ("ラン" . "らん")) + ("rp" nil ("ロウ" . "ろう")) + ("rq" nil ("ライ" . "らい")) + ("rr" nil ("ラレ" . "られ")) + ("rw" nil ("レイ" . "れい")) + ("ryd" nil ("リェン" . "りぇん")) + ("ryh" nil ("リュウ" . "りゅう")) + ("ryj" nil ("リュン" . "りゅん")) + ("ryk" nil ("リョク" . "りょく")) + ("ryl" nil ("リョン" . "りょん")) + ("ryn" nil ("リャン" . "りゃん")) + ("ryp" nil ("リョウ" . "りょう")) + ("ryq" nil ("リャイ" . "りゃい")) + ("ryw" nil ("リェイ" . "りぇい")) + ("ryz" nil ("リャン" . "りゃん")) + ("rz" nil ("ラン" . "らん")) + ("sd" nil ("セン" . "せん")) + ("sf" nil ("サイ" . "さい")) + ("sh" nil ("スウ" . "すう")) + ("sj" nil ("スン" . "すん")) + ("sk" nil ("シン" . "しん")) + ("sl" nil ("ソン" . "そん")) + ("sm" nil ("シモ" . "しも")) + ("sn" nil ("サン" . "さん")) + ("sp" nil ("ソウ" . "そう")) + ("sq" nil ("サイ" . "さい")) + ("sr" nil ("スル" . "する")) + ("ss" nil ("セイ" . "せい")) + ("st" nil ("シタ" . "した")) + ("sv" nil ("サイ" . "さい")) + ("sw" nil ("セイ" . "せい")) + ("syd" nil ("シェン" . "しぇん")) + ("syh" nil ("シュウ" . "しゅう")) + ("syj" nil ("シュン" . "しゅん")) + ("syl" nil ("ション" . "しょん")) + ("syp" nil ("ショウ" . "しょう")) + ("syq" nil ("シャイ" . "しゃい")) + ("syw" nil ("シェイ" . "しぇい")) + ("syz" nil ("シャン" . "しゃん")) + ("sz" nil ("サン" . "さん")) + ("tb" nil ("タビ" . "たび")) + ("td" nil ("テン" . "てん")) + ("tgh" nil ("テュー" . "てゅー")) + ("tgi" nil ("ティ" . "てぃ")) + ("tgk" nil ("ティン" . "てぃん")) + ("tgp" nil ("トゥー" . "とぅー")) + ("tgu" nil ("テュ" . "てゅ")) + ("th" nil ("ツウ" . "つう")) + ("tj" nil ("ツン" . "つん")) + ("tk" nil ("チン" . "ちん")) + ("tl" nil ("トン" . "とん")) + ("tm" nil ("タメ" . "ため")) + ("tn" nil ("タン" . "たん")) + ("tp" nil ("トウ" . "とう")) + ("tq" nil ("タイ" . "たい")) + ("tr" nil ("タラ" . "たら")) + ("tsa" nil ("ツァ" . "つぁ")) + ("tse" nil ("ツェ" . "つぇ")) + ("tsi" nil ("ツィ" . "つぃ")) + ("tso" nil ("ツォ" . "つぉ")) + ("tt" nil ("タチ" . "たち")) + ("tw" nil ("テイ" . "てい")) + ("tyd" nil ("チェン" . "ちぇん")) + ("tyh" nil ("チュウ" . "ちゅう")) + ("tyj" nil ("チュン" . "ちゅん")) + ("tyl" nil ("チョン" . "ちょん")) + ("tyn" nil ("チャン" . "ちゃん")) + ("typ" nil ("チョウ" . "ちょう")) + ("tyq" nil ("チャイ" . "ちゃい")) + ("tyw" nil ("チェイ" . "ちぇい")) + ("tyz" nil ("チャン" . "ちゃん")) + ("tz" nil ("タン" . "たん")) + ("vd" nil ("ヴェン" . "う゛ぇん")) + ("vk" nil ("ヴィン" . "う゛ぃん")) + ("vl" nil ("ヴォン" . "う゛ぉん")) + ("vn" nil ("ヴァン" . "う゛ぁん")) + ("vp" nil ("ヴォー" . "う゛ぉー")) + ("vq" nil ("ヴァイ" . "う゛ぁい")) + ("vw" nil ("ヴェイ" . "う゛ぇい")) + ("vya" nil ("ヴャ" . "う゛ゃ")) + ("vye" nil ("ヴェ" . "う゛ぇ")) + ("vyo" nil ("ヴョ" . "う゛ょ")) + ("vyu" nil ("ヴュ" . "う゛ゅ")) + ("vz" nil ("ヴァン" . "う゛ぁん")) + ("wA" nil ("ヮ" . "ゎ")) + ("wd" nil ("ウェン" . "うぇん")) + ("wf" nil ("ワイ" . "わい")) + ("wha" nil ("ウァ" . "うぁ")) + ("whe" nil ("ウェ" . "うぇ")) + ("whi" nil ("ウィ" . "うぃ")) + ("who" nil ("ウォ" . "うぉ")) + ("whu" nil ("ウ" . "う")) + ("wk" nil ("ウィン" . "うぃん")) + ("wl" nil ("ウォン" . "うぉん")) + ("wn" nil ("ワン" . "わん")) + ("wp" nil ("ウォー" . "うぉー")) + ("wq" nil ("ワイ" . "わい")) + ("wr" nil ("ワレ" . "われ")) + ("wso" nil ("ウォ" . "うぉ")) + ("wt" nil ("ワタ" . "わた")) + ("wz" nil ("ワン" . "わん")) + ("xa" nil ("シャ" . "しゃ")) + ("xc" nil ("シャ" . "しゃ")) + ("xd" nil ("シェン" . "しぇん")) + ("xe" nil ("シェ" . "しぇ")) + ("xf" nil ("シェイ" . "しぇい")) + ("xh" nil ("シュウ" . "しゅう")) + ("xi" nil ("シ" . "し")) + ("xj" nil ("シュン" . "しゅん")) + ("xk" nil ("シン" . "しん")) + ("xl" nil ("ション" . "しょん")) + ("xn" nil ("シャン" . "しゃん")) + ("xo" nil ("ショ" . "しょ")) + ("xp" nil ("ショウ" . "しょう")) + ("xq" nil ("シャイ" . "しゃい")) + ("xt" nil ("シュツ" . "しゅつ")) + ("xu" nil ("シュ" . "しゅ")) + ("xv" nil ("シャイ" . "しゃい")) + ("xw" nil ("シェイ" . "しぇい")) + ("xxa" nil ("ァ" . "ぁ")) + ("xxe" nil ("ェ" . "ぇ")) + ("xxi" nil ("ィ" . "ぃ")) + ("xxo" nil ("ォ" . "ぉ")) + ("xxu" nil ("ゥ" . "ぅ")) + ("xxh" nil "←") + ("xxj" nil "↓") + ("xxk" nil "↑") + ("xxl" nil "→") + ("xz" nil ("シャン" . "しゃん")) + ("y<" nil "←") + ("y>" nil "→") + ("y^" nil "↑") + ("yf" nil ("ユ" . "ゆ")) + ("yh" nil ("ユウ" . "ゆう")) + ("yi" nil ("ヰ" . "ゐ")) + ("yj" nil ("ユン" . "ゆん")) + ("yl" nil ("ヨン" . "よん")) + ("yn" nil ("ヤン" . "やん")) + ("yp" nil ("ヨウ" . "よう")) + ("yq" nil ("ヤイ" . "やい")) + ("yr" nil ("ヨル" . "よる")) + ("yv" nil ("ユウ" . "ゆう")) + ("yz" nil ("ヤン" . "やん")) + ("zc" nil ("ザ" . "ざ")) + ("zd" nil ("ゼン" . "ぜん")) + ("zf" nil ("ゼ" . "ぜ")) + ("zh" nil ("ズウ" . "ずう")) + ("zj" nil ("ズン" . "ずん")) + ("zk" nil ("ジン" . "じん")) + ("zl" nil ("ゾン" . "ぞん")) + ("zn" nil ("ザン" . "ざん")) + ("zp" nil ("ゾウ" . "ぞう")) + ("zq" nil ("ザイ" . "ざい")) + ("zr" nil ("ザル" . "ざる")) + ("zv" nil ("ザイ" . "ざい")) + ("zw" nil ("ゼイ" . "ぜい")) + ("zx" nil ("ゼイ" . "ぜい")) + ("zyd" nil ("ジェン" . "じぇん")) + ("zyh" nil ("ジュウ" . "じゅう")) + ("zyj" nil ("ジュン" . "じゅん")) + ("zyl" nil ("ジョン" . "じょん")) + ("zyn" nil ("ジャン" . "じゃん")) + ("zyp" nil ("ジョウ" . "じょう")) + ("zyq" nil ("ジャイ" . "じゃい")) + ("zyw" nil ("ジェイ" . "じぇい")) + ("zyz" nil ("ジャン" . "じゃん")) + ("zz" nil ("ザン" . "ざん")))) (defvar skk-azik-keyboard-specific-additional-rom-kana-rule-list nil) -;; $B%-!<%\!<%I0MB8ItJ,!#(B -;; skk-azik-keyboard-type $B$,@_Dj$5$l$F$$$l$P0J2<$r $B"&$5$H$&(B (.) -> $B"&$5$$$H$&(B (,) -> $B"&$5$H$&(B(.) -> $B"&$5$$$H$&(B +;; ▽さ (TAB) -> ▽さとう (.) -> ▽さいとう (,) -> ▽さとう(.) -> ▽さいとう ;;; Code: @@ -43,9 +43,9 @@ ;;;###autoload (defun skk-comp-start-henkan (arg) - "$B"&%b!<%I$GFI$_$rJd40$7$?8e!"JQ49$9$k!#(B -$B$=$l0J30$N%b!<%I$G$O%*%j%8%J%k$N%-!<%^%C%W$K3d$jIU$1$i$l$?%3%^%s%I$r%(%_%e%l!<(B -$B%H$9$k!#(B" + "▽モードで読みを補完した後、変換する。 +それ以外のモードではオリジナルのキーマップに割り付けられたコマンドをエミュレー +トする。" (interactive "*P") (cond ((eq skk-henkan-mode 'on) @@ -65,8 +65,8 @@ (when set-this-command (setq this-command 'skk-comp-do)) (let ((inhibit-quit t) - ;; skk-num $B$,(B require $B$5$l$F$J$$$H(B - ;; buffer-local $BCM$r2u$962$l$"$j!#(B + ;; skk-num が require されてないと + ;; buffer-local 値を壊す恐れあり。 skk-num-list tmp-key data orig-key @@ -77,23 +77,23 @@ skk-comp-depth 0 skk-comp-prefix skk-prefix) ;; key \ use-prefix nil kakutei-first non-nil # data - ;; "$B$+(Bk" "$B$+(B" , "" "$B$+(B" , "k" "$B$+(B", "k" # t - ;; "$B$+(Bn" "$B$+$s(B", "" "$B$+$s(B", "" "$B$+(B", "n" # non-t + ;; "かk" "か" , "" "か" , "k" "か", "k" # t + ;; "かn" "かん", "" "かん", "" "か", "n" # non-t (setq tmp-key (buffer-substring-no-properties skk-henkan-start-point (point))) - ;; skk-kana-cleanup() $B$r8F$VA0$N(B key $B$re8uJd$,$J$$$N$G(B c-word = nil + ;; circulate ならば c-word = skk-comp-key なので c-word = nil + ;; non-circulate ならば これ以上候補がないので c-word = nil (if skk-comp-circulate (setq skk-comp-depth (length skk-comp-stack))) (setq skk-comp-depth (1- skk-comp-depth)) (setq c-word (nth skk-comp-depth skk-comp-stack)))) - ;; ($BL$C5:w8uJd$,;D$C$F$$$k2DG=@-M-$j(B) + ;; (未探索候補が残っている可能性有り) (t (cond - ;; $B:G8e$KF@$i$l$?8uJd$rI=<($7$F$$$k(B + ;; 最後に得られた候補を表示している ((zerop skk-comp-depth) (setq c-word (let ((word (skk-comp-get-candidate first))) @@ -128,13 +128,13 @@ (setq word (skk-comp-get-candidate))) word)) (if c-word - ;; $B?75,$K8+$D$1$?$H$-$@$1(B push $B$9$k!#(B + ;; 新規に見つけたときだけ push する。 (push c-word skk-comp-stack) (setq skk-comp-search-done t) (if skk-comp-circulate (setq skk-comp-depth (length skk-comp-stack))))) (t - ;; "," $B$J$I$GA08uJd$KLa$C$F$$$k(B + ;; "," などで前候補に戻っている (setq skk-comp-depth (1- skk-comp-depth) c-word (nth skk-comp-depth skk-comp-stack)))))) (cond @@ -153,15 +153,15 @@ (assq 'skk-comp-by-history skk-completion-prog-list) (or (not skk-comp-use-prefix) (string= skk-comp-prefix ""))) - (skk-message "$B$3$l0J>e$NMzNr$O$"$j$^$;$s(B" + (skk-message "これ以上の履歴はありません" "No more words in history")) (t (if skk-japanese-message-and-error - (message "\"%s\" $B$GJd40$9$Y$-8+=P$78l$O(B%s$B$"$j$^$;$s(B" + (message "\"%s\" で補完すべき見出し語は%sありません" (if skk-comp-use-prefix (concat orig-key skk-comp-prefix) orig-key) - (if first "" "$BB>$K(B")) + (if first "" "他に")) (message "No %scompletions for \"%s\"" (if first "" "more ") (if skk-comp-use-prefix @@ -187,7 +187,7 @@ (while (and (null cand) skk-current-completion-prog-list) (setq prog (car skk-current-completion-prog-list)) - (setq cand (eval prog) ; `skk-comp-key' $B$r%-!<$H$7$F!"J8;zNs$R$H$D$,La$k(B + (setq cand (eval prog) ; `skk-comp-key' をキーとして、文字列ひとつが戻る skk-comp-first nil) (unless cand (setq skk-current-completion-prog-list @@ -218,8 +218,8 @@ ;;;###autoload (defun skk-comp-get-regexp (prefix) - ;; $B%W%l%U%#%C%/%9$KBP1~$9$k@55,I=8=$rJV$9!#(B - ;; $B0lEY@8@.$7$?@55,I=8=$O(B skk-comp-prefix-regexp-alist $B$KJ]B8$7$F$*$/!#(B + ;; プレフィックスに対応する正規表現を返す。 + ;; 一度生成した正規表現は skk-comp-prefix-regexp-alist に保存しておく。 (or (cdr (assoc prefix skk-comp-prefix-regexp-alist)) (let ((regexp (if (string= prefix "") @@ -245,7 +245,7 @@ ;;;###autoload (defun skk-comp-collect-kana (tree) - ;; skk-rule-tree $B$NItJ,LZ$KB0$9$k(B "$B$+$J(B" $B$r=8$a$k(B + ;; skk-rule-tree の部分木に属する "かな" を集める (let ((data (skk-get-kana tree)) (branches (skk-get-branch-list tree)) kana kana-list) @@ -261,14 +261,14 @@ ;;;###autoload (defun skk-comp-arrange-kana-list (kana-list prefix) - ;; skk-comp-collect-kana $B$+$iF@$?(B "$B$+$J(B" $B$N%j%9%H$r85$K(B - ;; $B%W%l%U%#%C%/%9$KBP1~$7$?D4@0$r$9$k(B + ;; skk-comp-collect-kana から得た "かな" のリストを元に + ;; プレフィックスに対応した調整をする (let (short-list long-list tmp) (dolist (kana kana-list) (if (= (length kana) 1) (add-to-list 'short-list kana) (add-to-list 'long-list kana))) - ;; "$B$K(B" $B$,$"$k;~$K(B "$B$K$c(B" $B$H$+$O$$$i$J$$(B + ;; "に" がある時に "にゃ" とかはいらない (dolist (s-kana short-list) (dolist (l-kana long-list) (when (string= s-kana @@ -281,8 +281,8 @@ ;;;###autoload (defun skk-comp-from-jisyo (file) - ;; skk-comp-prefix $B$r;H$($k(B - "SKK $B<-=q%U%)!<%^%C%H$N(B FILE $B$+$iJd408uJd$rF@$k!#(B" + ;; skk-comp-prefix を使える + "SKK 辞書フォーマットの FILE から補完候補を得る。" (let ((buffer (skk-get-jisyo-buffer file 'nomsg)) (abbrev skk-abbrev-mode) (key skk-comp-key) @@ -303,7 +303,7 @@ (defun skk-comp-search-current-buffer (key &optional abbrev) (let (c-word) (save-match-data - ;; `case-fold-search' $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B + ;; `case-fold-search' は、辞書バッファでは常に nil。 (while (and (not c-word) (search-forward (concat "\n" @@ -315,20 +315,20 @@ ?\040) ;SPC (setq c-word (concat key (buffer-substring-no-properties - ;; $B8+=P$78l$K6uGr$O4^$^$l$J$$!#(B - ;; " /" $B$r%5!<%A$9$kI,MW$O$J$$!#(B + ;; 見出し語に空白は含まれない。 + ;; " /" をサーチする必要はない。 (point) (1- (search-forward " "))))) (when (and abbrev (string-match "\\Ca" c-word)) - ;; abbrev $B%b!<%I$G!V(B3$B$M$s!W$J$I$NJd40$O$7$J$$(B + ;; abbrev モードで「3ねん」などの補完はしない (setq c-word nil)))) c-word))) ;;;###autoload (defun skk-comp-re-search-current-buffer (key prefix &optional abbrev) - ;; $BLdBj$N$"$k%1!<%9$,$"$k$+$b$7$l$J$$$N$G(B - ;; skk-comp-search-current-buffer $B$H$N0lK\2=$O$H$j$"$($:J]N1(B + ;; 問題のあるケースがあるかもしれないので + ;; skk-comp-search-current-buffer との一本化はとりあえず保留 (let (c-word regexp-key) (setq regexp-key (concat (regexp-quote (if skk-use-numeric-conversion @@ -336,7 +336,7 @@ key)) (skk-comp-get-regexp prefix))) (save-match-data - ;; `case-fold-search' $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B + ;; `case-fold-search' は、辞書バッファでは常に nil。 (while (and (not c-word) (re-search-forward (concat "\n" regexp-key) nil t)) (beginning-of-line) @@ -351,14 +351,14 @@ (1- (search-forward " "))))) (when (and abbrev (string-match "\\Ca" c-word)) - ;; abbrev $B%b!<%I$G!V(B3$B$M$s!W$J$I$NJd40$O$7$J$$(B + ;; abbrev モードで「3ねん」などの補完はしない (setq c-word nil)))) c-word))) ;;;###autoload (defun skk-comp-previous (&optional set-this-command) - ;; skk-abbrev-comma, skk-insert-comma $B$N%5%V%k!<%A%s!#(B - ;; $BD>A0$KJd40$r9T$C$?8+=P$7$rA^F~$9$k!#(B + ;; skk-abbrev-comma, skk-insert-comma のサブルーチン。 + ;; 直前に補完を行った見出しを挿入する。 (when set-this-command (setq this-command 'skk-comp-do)) (let ((inhibit-quit t) @@ -374,13 +374,13 @@ (insert c-word)) (t (if (null skk-comp-circulate) - ;; non-circulate $B$J$i$P(B skk-comp-depth $B$,HO0O30$J$N$G(B 1 $BLa$9(B + ;; non-circulate ならば skk-comp-depth が範囲外なので 1 戻す (setq skk-comp-depth (1- skk-comp-depth)) (delete-region skk-henkan-start-point (point)) (insert skk-comp-key)) ;;(setq skk-comp-depth (1- skk-comp-depth)) (ding) - (skk-message "\"%s\"$B$GJd40$9$Y$-8+=P$78l$OB>$K$"$j$^$;$s(B" + (skk-message "\"%s\"で補完すべき見出し語は他にありません" "No more previous completions for \"%s\"" (if skk-comp-use-prefix (concat skk-comp-key skk-comp-prefix) @@ -396,8 +396,8 @@ ;;;###autoload (defun skk-try-completion (arg) - "$B"&%b!<%I$G8+=P$78l$rJd40$9$k!#(B -$B$=$l0J30$N%b!<%I$G$O!"%*%j%8%J%k$N%-!<3d$jIU$1$N%3%^%s%I$r%(%_%e%l!<%H$9$k!#(B" + "▽モードで見出し語を補完する。 +それ以外のモードでは、オリジナルのキー割り付けのコマンドをエミュレートする。" (interactive "P") (skk-with-point-move (if (eq skk-henkan-mode 'on) @@ -407,26 +407,26 @@ ;;;###autoload (defun skk-comp-wrapper (&optional arg) - "Character $B$G$J$$%-!<$KJd40$r3d$jEv$F$k$?$a$N%3%^%s%I!#(B" + "Character でないキーに補完を割り当てるためのコマンド。" (interactive "p") (skk-bind-last-command-char skk-try-completion-char (call-interactively #'skk-insert))) ;;;###autoload (defun skk-previous-comp-maybe (&optional arg) - "Character $B$G$J$$%-!<$KJd40A08uJd$r3d$jEv$F$k$?$a$N%3%^%s%I!#(B -$B"&%b!<%I$G$OJd40A08uJd!"$5$b$J$1$l$P%*%j%8%J%k$N%-!]$O8=:_$N(B Emacs $B$N%;%C%7%g%s$K$*$$$F9T$C$?Aw$jL5$7JQ49$N$&$A!"(B -`skk-kakutei-history-limit' $B$G;XDj$5$l$k:G6a$N$b$N$G$"$k!#(B" + ;; skk-comp-prefix を考慮 + "入力が空の時に履歴から補完する。 +対象は現在の Emacs のセッションにおいて行った送り無し変換のうち、 +`skk-kakutei-history-limit' で指定される最近のものである。" (when (and (string= skk-comp-key "") (or (not skk-comp-use-prefix) (string= skk-comp-prefix ""))) @@ -437,7 +437,7 @@ ;;;###autoload (defun skk-comp-smart-find (&optional path) - "`smart-find' $B$,8+$D$1$?%U%!%$%kL>$GJd40$9$k(B" + "`smart-find' が見つけたファイル名で補完する" (cond (skk-abbrev-mode (when skk-comp-first (setq skk-comp-smart-find-files @@ -451,11 +451,11 @@ ;;;###autoload (defun skk-search-smart-find (&optional path not-abbrev-only without-char-maybe) - "`smart-find'$B$rMxMQ$7$?JQ49$r9T$&!#(B -SKK abbrev $B%b!<%I$K$F!"1QJ8;z(B + `skk-completion-search-char' (~)$B$G(B -$BL$40%9%Z%k$r;XDj$7$FJQ49$9$k$H!"Jd408uJd$,JQ498uJd$H$7$F=P8=$9$k!#(B -$B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B -NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B" + "`smart-find'を利用した変換を行う。 +SKK abbrev モードにて、英文字 + `skk-completion-search-char' (~)で +未完スペルを指定して変換すると、補完候補が変換候補として出現する。 +デフォルトでは SKK abbrev モードのみで有効な機能だが、 +NOT-ABBREV-ONLY を指定する事で常に有効となる。" (when (and (or not-abbrev-only skk-abbrev-mode)) (skk-completion-search `((skk-comp-smart-find ',path)) @@ -465,7 +465,7 @@ NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B" ;;;###autoload (defun skk-smart-find (key &optional path) - ;; smart-find $B$O(B provide $B$5$l$F$$$J$$(B + ;; smart-find は provide されていない (unless (fboundp 'smart-find-file) (let ((dont-bind-my-keys t)) (load-library "smart-find")) @@ -491,12 +491,12 @@ NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B" ;;;###autoload (defun skk-comp-lisp-symbol (&optional predicate) - "Lisp symbol $BL>$GJd40$9$k!#(B -PREDICATE $B$K0z?t(B 1 $B8D$N4X?t$r;XDj$9$l$P!"(BPREDICATE $B$rK~$?$9%7%s%\%k(B -$B$K8B$C$FJd40$9$k!#(BPREDICATE $B$K$O(B `fboundp', `boundp', `commandp' -$B$J$I$,;XDj$G$-$k!#;XDj$7$J$1$l$P4X?t$^$?$OJQ?t$K8B$C$FJd40$9$k!#(B + "Lisp symbol 名で補完する。 +PREDICATE に引数 1 個の関数を指定すれば、PREDICATE を満たすシンボル +に限って補完する。PREDICATE には `fboundp', `boundp', `commandp' +などが指定できる。指定しなければ関数または変数に限って補完する。 -`skk-completion-prog-list' $B$XDI2C$9$k$HM-8z$H$J$k!#(B +`skk-completion-prog-list' へ追加すると有効となる。 \(add-to-list \\='skk-completion-prog-list \\='\(skk-comp-lisp-symbol\) t\)" (cond (skk-abbrev-mode @@ -511,7 +511,7 @@ PREDICATE $B$K0z?t(B 1 $B8D$N4X?t$r;XDj$9$l$P!"(BPREDICATE $B$rK~$?$9%7%s%\ (all-completions skk-comp-key obarray predicate)) #'string-lessp)) (when temp - ;; read-only $B$J(B object $B$J$I$b$"$k$N$G$=$N$^$^;H$o$J$$(B + ;; read-only な object などもあるのでそのまま使わない (setq skk-comp-lisp-symbols (mapcar #'copy-sequence temp))))) (if skk-comp-lisp-symbols (pop skk-comp-lisp-symbols) @@ -522,17 +522,17 @@ PREDICATE $B$K0z?t(B 1 $B8D$N4X?t$r;XDj$9$l$P!"(BPREDICATE $B$rK~$?$9%7%s%\ ;;;###autoload (defun skk-search-lisp-symbol (&optional predicate not-abbrev-only without-char-maybe) - "Lisp symbol $BL>$GJd40$7$?7k2L$r8!:w7k2L$H$7$FJV$9!#(B -PREDICATE $B$K0z?t(B 1 $B8D$N4X?t$r;XDj$9$l$P!"(BPREDICATE $B$rK~$?$9%7%s%\%k(B -$B$K8B$C$FJd40$9$k!#(BPREDICATE $B$K$O(B `fboundp', `boundp', `commandp' -$B$J$I$,;XDj$G$-$k!#;XDj$7$J$1$l$P4X?t$^$?$OJQ?t$K8B$C$FJd40$9$k!#(B -SKK abbrev $B%b!<%I$K$F!"1QJ8;z(B + `skk-completion-search-char' (~)$B$G(B -$BL$40%9%Z%k$r;XDj$7$FJQ49$9$k$H!"Jd408uJd$,JQ498uJd$H$7$F=P8=$9$k!#(B -$B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B -NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B + "Lisp symbol 名で補完した結果を検索結果として返す。 +PREDICATE に引数 1 個の関数を指定すれば、PREDICATE を満たすシンボル +に限って補完する。PREDICATE には `fboundp', `boundp', `commandp' +などが指定できる。指定しなければ関数または変数に限って補完する。 +SKK abbrev モードにて、英文字 + `skk-completion-search-char' (~)で +未完スペルを指定して変換すると、補完候補が変換候補として出現する。 +デフォルトでは SKK abbrev モードのみで有効な機能だが、 +NOT-ABBREV-ONLY を指定する事で常に有効となる。 -$B@_DjNc(B +設定例 \(add-to-list \\='skk-search-prog-list \\='\(skk-search-lisp-symbol\) t\)" (when (and (or not-abbrev-only @@ -543,11 +543,11 @@ NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B without-char-maybe))) (defun skk-comp-restrict-by-prefix (comp-prog) - "$BJd40%W%m%0%i%`$K$h$jF@$i$l$?8uJd$r(B `skk-comp-prefix' $B$G9J$j9~$`!#(B -`skk-comp-prefix' $B$KBP1~$7$F$$$J$$Jd40%W%m%0%i%`$ro$KM-8z$H$J$k!#(B ;;;###autoload (defun skk-completion-search (comp-prog-list &optional search-prog-list without-midasi without-char-maybe) - "$BJQ49%-!<$GJd40$r9T$$!"F@$i$l$?3F8+=P$7$G$5$i$K8!:w$9$k!#(B -COMP-PROG-LIST $B$O(B `skk-completion-prog-list' $B$HF1$87A<0$G!"(B -$B$3$l$K4^$^$l$kJd404X?t$K$h$C$F!"$^$:JQ49%-!<$+$i8+=P$7$N%j%9%H$rF@$k!#(B -SEARCH-PROG-LIST $B$O(B `skk-search-prog-list' $B$HF1$87A<0$G!"(B -$BJd404X?t$K$h$C$FF@$?8+=P$7$r$3$l$K4^$^$l$k8!:w4X?t$K$h$jJQ498uJd$rF@$k!#(B -$B%G%U%)%k%H$G$O!"Jd40$K$h$C$FF@$i$l$?8+=P$7$HBP1~$9$k8uJd$O%;%C%H$G$"$k$,!"(B -WITHOUT-MIDASI $B$r;XDj$9$k$H8+=P$7$O>J$+$l$k!#(B" + "変換キーで補完を行い、得られた各見出しでさらに検索する。 +COMP-PROG-LIST は `skk-completion-prog-list' と同じ形式で、 +これに含まれる補完関数によって、まず変換キーから見出しのリストを得る。 +SEARCH-PROG-LIST は `skk-search-prog-list' と同じ形式で、 +補完関数によって得た見出しをこれに含まれる検索関数により変換候補を得る。 +デフォルトでは、補完によって得られた見出しと対応する候補はセットであるが、 +WITHOUT-MIDASI を指定すると見出しは省かれる。" (let (search-char) (when (or (setq search-char (eq (aref skk-henkan-key (1- (length skk-henkan-key))) @@ -587,10 +587,10 @@ WITHOUT-MIDASI $B$r;XDj$9$k$H8+=P$7$O>J$+$l$k!#(B" (setq tmp (skk-search-progs midasi (or search-prog-list skk-search-prog-list))) - (when tmp ; $BJd40BP>]$H8!:wBP>]$OFHN)$J$N$GB8:_$7$J$$;v$b(B + (when tmp ; 補完対象と検索対象は独立なので存在しない事も (unless without-midasi (setq words (nconc words (list midasi)))) - ;; SKK $BK\BN$G(B skk-nunion $B$7$F$k$N$G$3$3$G$O9bB.@-=E;k(B + ;; SKK 本体で skk-nunion してるのでここでは高速性重視 (setq words (nconc words tmp)))) words)))) diff --git a/skk-cursor.el b/skk-cursor.el index ad78f618..ed34d1c4 100644 --- a/skk-cursor.el +++ b/skk-cursor.el @@ -43,15 +43,15 @@ ;;;###autoload (defun skk-cursor-current-color () - ;; $B%+%l%s%H%P%C%U%!$N(B SKK $B$N%b!<%I$+$i!"%+!<%=%k$N?'$r8e$KF~NO$9$kJ8(B - ;; $B;z$,85$NF~NO%b!<%I$K$F9T$o$l$k$h$&$K(B)$B!#=>$$!"(Bskk-abbrev-mode - ;; $B%U%i%0$N%A%'%C%/$NM%@hEY$r>e$2$k!#(B + ;; `skk-start-henkan' の中では、skk-j-mode フラグを立てながら、 + ;; skk-abbrev-mode フラグも立てている (変換後、直後に入力する文 + ;; 字が元の入力モードにて行われるように)。従い、skk-abbrev-mode + ;; フラグのチェックの優先度を上げる。 (skk-abbrev-mode skk-cursor-abbrev-color) (skk-jisx0208-latin-mode skk-cursor-jisx0208-latin-color) diff --git a/skk-cus.el b/skk-cus.el index c5cfd589..93606ea4 100644 --- a/skk-cus.el +++ b/skk-cus.el @@ -1,4 +1,4 @@ -;;; skk-cus.el --- SKK $B$N4JC1$+$9$?$^$$$:;n:nIJ(B -*- coding: iso-2022-jp -*- +;;; skk-cus.el --- SKK の簡単かすたまいず試作品 -*- coding: iso-2022-jp -*- ;; Copyright (C) 2001 SKK Development Team @@ -23,7 +23,7 @@ ;;; Commentary: -;; SKK $B5/F08e(B M-x skk-customize $B$G@_Dj$9$k!#(B +;; SKK 起動後 M-x skk-customize で設定する。 ;;; Code: @@ -44,89 +44,89 @@ (defconst skk-cus-params-visual '((skk-use-face - (const :tag "$BJQ49Cf$K?'$r$D$1$k(B" t) "") + (const :tag "変換中に色をつける" t) "") (skk-use-color-cursor - (const :tag "$B%+!<%=%k$K?'$r$D$1$k(B" t) "") + (const :tag "カーソルに色をつける" t) "") (skk-japanese-message-and-error - (const :tag "$B%a%C%;!<%8$OF|K\8l$GDLCN$9$k(B" t) "") + (const :tag "メッセージは日本語で通知する" t) "") (skk-verbose - (const :tag "$B>iD9$J%a%C%;!<%8$rI=<($9$k(B" t) "") + (const :tag "冗長なメッセージを表示する" t) "") (skk-show-japanese-menu - (const :tag "$B%a%K%e!<%P!<$rF|K\8l$GI=<($9$k(B" t) "") + (const :tag "メニューバーを日本語で表示する" t) "") (skk-show-annotation - (radio :tag "$BJQ49;~$KCpo$KI=<((B" t) - (const :tag "$B8uJd0lMw$G$OHsI=<((B" (not list)) - (const :tag "$B%_%K%P%C%U%!$G$OHsI=<((B" (not minibuf)) - (const :tag "$B8uJd0lMw$H%_%K%P%C%U%!$G$OHsI=<((B" + (radio :tag "変換時に註釈を表示する?" + (const :tag "常に表示" t) + (const :tag "候補一覧では非表示" (not list)) + (const :tag "ミニバッファでは非表示" (not minibuf)) + (const :tag "候補一覧とミニバッファでは非表示" (not list minibuf)) - (const :tag "$BHsI=<((B" nil)) + (const :tag "非表示" nil)) "") (skk-show-inline - (radio :tag "$B8uJd0lMw$r%$%s%i%$%sI=<($9$k!)(B" - (const :tag "$B=D$KJB$Y$FI=<((B" vertical) - (const :tag "$B0lNs$KI=<((B" t) - (const :tag "$B%$%s%i%$%sI=<($7$J$$(B" nil)) + (radio :tag "候補一覧をインライン表示する?" + (const :tag "縦に並べて表示" vertical) + (const :tag "一列に表示" t) + (const :tag "インライン表示しない" nil)) "") (skk-show-tooltip - (const :tag "$B8uJd0lMw!&CmJN,2DG=$K$9$k(B" t) "") + (const :tag "明示的な確定を省略可能にする" t) "") (skk-delete-implies-kakutei - (const :tag "$B"'%b!<%I$G(B BS $B$r2!$7$?$i3NDj$9$k(B" t) "") + (const :tag "▼モードで BS を押したら確定する" t) "") (skk-auto-insert-paren - (const :tag "$BJD3g8L$r<+F0E*$KA^F~$9$k(B" t) ""))) + (const :tag "閉括弧を自動的に挿入する" t) ""))) (defconst skk-cus-params-henkan '((skk-auto-start-henkan - (const :tag "$BFCDj$NJ8;z$NF~NO;~$K<+F0E*$KJQ49$r3+;O$9$k(B" t) "") + (const :tag "特定の文字の入力時に自動的に変換を開始する" t) "") (skk-henkan-okuri-strictly - (const :tag "$BAw$j2>L>$,87L)$K@5$7$$8uJd$N$_I=<($9$k(B" t) "") + (const :tag "送り仮名が厳密に正しい候補のみ表示する" t) "") (skk-henkan-strict-okuri-precedence - (const :tag "$BAw$j2>L>$,87L)$K@5$7$$8uJd$rM%@h$7$FI=<($9$k(B" t) "") + (const :tag "送り仮名が厳密に正しい候補を優先して表示する" t) "") (skk-check-okurigana-on-touroku - (radio :tag "$B<-=qEPO?;~$NM>7W$JAw$j2>L>$N<+F0=hM}$O!)(B" - (const :tag "$B<+F0=hM}$9$k(B" auto) - (const :tag "$B%f!<%6$N;X<($K$h$k(B" ask) - (const :tag "$B<+F0=hM}$7$J$$(B" nil)) + (radio :tag "辞書登録時の余計な送り仮名の自動処理は?" + (const :tag "自動処理する" auto) + (const :tag "ユーザの指示による" ask) + (const :tag "自動処理しない" nil)) "") (skk-j-mode-function-key-usage - (radio :tag "$B$+$J%b!<%I$G%U%!%s%/%7%g%s%-!<$r;H$&!)(B" - (const :tag "$BFC3Q%+%J$rF~NO2DG=$K$9$k(B" t) ""))) + (const :tag "半角カナを入力可能にする" t) ""))) (defconst skk-cus-params-misc '((skk-share-private-jisyo - (const :tag "$BJ#?t$N(B SKK $B$,8D?M<-=q$r6&M-$9$k(B" t) "") + (const :tag "複数の SKK が個人辞書を共有する" t) "") (skk-show-icon - (const :tag "SKK $B$N%"%$%3%s$rI=<($9$k(B" t) "") + (const :tag "SKK のアイコンを表示する" t) "") (skk-preload - (const :tag "SKK $B$r$"$i$+$8$a%m!<%I$7$F=i2s5/F0$r9bB.$K$9$k(B" t) ""))) + (const :tag "SKK をあらかじめロードして初回起動を高速にする" t) ""))) (defun skk-custom-mode () (kill-all-local-variables) (setq major-mode 'skk-custom-mode - mode-name "SKK $B$N@_Dj(B") + mode-name "SKK の設定") (use-local-map skk-custom-map) (when (and (facep 'custom-button-face) (facep 'custom-button-pressed-face)) @@ -216,27 +216,27 @@ (skk-cus-info skk-cus-params-search) (skk-cus-info skk-cus-params-input) (skk-cus-info skk-cus-params-misc)))) - (kill-buffer (get-buffer-create "*SKK $B$N4pK\@_Dj(B*")) - ;; (switch-to-buffer (get-buffer-create "*SKK $B$N4pK\@_Dj(B*")) + (kill-buffer (get-buffer-create "*SKK の基本設定*")) + ;; (switch-to-buffer (get-buffer-create "*SKK の基本設定*")) (set-window-buffer (selected-window) - (get-buffer-create "*SKK $B$N4pK\@_Dj(B*")) - (set-buffer "*SKK $B$N4pK\@_Dj(B*") + (get-buffer-create "*SKK の基本設定*")) + (set-buffer "*SKK の基本設定*") (skk-custom-mode) - (widget-insert "SKK $B$N4pK\@_Dj!#=*$o$C$?$i(B ") + (widget-insert "SKK の基本設定。終わったら ") (widget-create 'push-button :tag "done" - :help-echo "$B=*$o$C$?$i%\%/$r2!$7$F!#(B" + :help-echo "終わったらボクを押して。" :action 'skk-customize-done) - (widget-insert " $B$r2!$7$F$/$@$5$$!#(B\n\n") - (widget-insert "$BCm0U(B: $B$$$/$D$+$N@_Dj$O:F5/F0$,I,MW$G$9!#(B\n\n") + (widget-insert " を押してください。\n\n") + (widget-insert "注意: いくつかの設定は再起動が必要です。\n\n") (setq skk-custom-params (list (widget-create 'group :value info `(set :inline t :greedy t - :tag "$BI=<($K4X$9$k@_Dj(B" + :tag "表示に関する設定" :format "%t:\n%h%v" :doc "" ,@visual)) @@ -244,7 +244,7 @@ :value info `(set :inline t :greedy t - :tag "$B4pK\E*$J%f!<%6!&%$%s%?!<%U%'!<%9(B" + :tag "基本的なユーザ・インターフェース" :format "%t:\n%h%v" :doc "" ,@ui)) @@ -252,7 +252,7 @@ :value info `(set :inline t :greedy t - :tag "$BJQ49$K4X$9$k@_Dj(B" + :tag "変換に関する設定" :format "%t:\n%h%v" :doc "" ,@henkan)) @@ -260,7 +260,7 @@ :value info `(set :inline t :greedy t - :tag "$B<-=q8!:w$K4X$9$k@_Dj(B" + :tag "辞書検索に関する設定" :format "%t:\n%h%v" :doc "" ,@search)) @@ -268,7 +268,7 @@ :value info `(set :inline t :greedy t - :tag "$BF~NOJ}<0$K4X$9$k@_Dj(B" + :tag "入力方式に関する設定" :format "%t:\n%h%v" :doc "" ,@input)) @@ -276,7 +276,7 @@ :value info `(set :inline t :greedy t - :tag "$B$=$NB>$N@_Dj(B" + :tag "その他の設定" :format "%t:\n%h%v" :doc "" ,@misc)))) diff --git a/skk-dcomp.el b/skk-dcomp.el index 6ef8b585..46452bc0 100644 --- a/skk-dcomp.el +++ b/skk-dcomp.el @@ -26,76 +26,76 @@ ;;; Commentary: -;; $B$3$l$O"&%b!<%I$K$*$1$k8+=P$78l$NF~NO$r!"<+F0E*$K%@%$%J%_%C%/$K%3%s%W(B -;; $B%j!<%7%g%s$9$k%W%m%0%i%`$G$9!#(B +;; これは▽モードにおける見出し語の入力を、自動的にダイナミックにコンプ +;; リーションするプログラムです。 -;; MS Excel $B$N%;%kF~NO$N<+F0Jd40(B ($BF1$8Ns$K4{$KF~NO$7$F$$$kJ8;zNs$,$"$C(B -;; $B$?$H$-$K$=$l$r;2>H$7$FJd40$7$h$&$H$9$k5!G=(B) $B$r8+$F$$$F!"$3$lJXMx$@$J$!(B -;; $B$H;W$C$?$N$,!"3+H/$N$-$C$+$1$G$9!#(B +;; MS Excel のセル入力の自動補完 (同じ列に既に入力している文字列があっ +;; たときにそれを参照して補完しようとする機能) を見ていて、これ便利だなぁ +;; と思ったのが、開発のきっかけです。 -;; $B$=$N8e!"A}0f=SG7(B $B$5$s$,3+H/$7$F$$$k(B POBox $B$r8+$F!"(BMS Excel $B$r8+$?:]$K(B -;; $B;W$C$?$3$H$r;W$$=P$7!"(BSKK $B$N(B skk-comp.el $B$GDs6!$5$l$F$$$k%3%s%W%j!<%7(B -;; $B%g%s$N5!G=$r<+F0E*$KDs6!$9$kJ}8~$G/$7F0:n$,CY$$$N$,FqE@$G$9!#(Bskk-dcomp.el -;; $B$O0l$D$7$+8uJd$r=P$7$^$;$s$,!"%f!<%6$N8+=P$78l$NF~NO$KDI=>$7%@%$%J%_%C(B -;; $B%/$K%3%s%W%j!<%7%g%s$9$k5!G=$O(B POBox $BF1MM;}$C$F$$$^$9$7!"$^$?F0:n$O$+$J(B -;; $B$j9bB.$G!"(Bskk-dcomp.el $B$r;H$&$3$H$K$h$k%*!<%P!<%X%C%I$rBN46$9$k$3$H$O$J(B -;; $B$$$H;W$$$^$9!#(B +;; POBox は沢山候補を出しますが、少し動作が遅いのが難点です。skk-dcomp.el +;; は一つしか候補を出しませんが、ユーザの見出し語の入力に追従しダイナミッ +;; クにコンプリーションする機能は POBox 同様持っていますし、また動作はかな +;; り高速で、skk-dcomp.el を使うことによるオーバーヘッドを体感することはな +;; いと思います。 ;; -;; SKK $B$rIaDL$K(B make $B$7$F2<$5$$!#FC$K:n6H$OITMW$G$9!#(B +;; SKK を普通に make して下さい。特に作業は不要です。 ;; -;; ~/.emacs.d/init.el $B$b$7$/$O(B ~/.skk $B$K(B (setq skk-dcomp-activate t) $B$H=q$-(B -;; $B$^$7$g$&!#(B -;; SKK $B5/F08e$K%@%$%J%_%C%/%3%s%W%j!<%7%g%s$N5!G=$r;_$a$?$+$C$?$i!"(B -;; (setq skk-dcomp-activate nil) $B$rI>2A$7$^$7$g$&!#(B +;; ~/.emacs.d/init.el もしくは ~/.skk に (setq skk-dcomp-activate t) と書き +;; ましょう。 +;; SKK 起動後にダイナミックコンプリーションの機能を止めたかったら、 +;; (setq skk-dcomp-activate nil) を評価しましょう。 ;; -;; $B"&%b!<%I$KF~$j8+=P$78l$rF~NO$9$k$H!"8D?M<-=q$r<+F0E*$K8!:w$7!"8+=P(B -;; $B$78l$r(B $B%3%s%W%j!<%7%g%s$7$^$9!#2<5-$N$h$&$KF0:n$7$^$9(B ($B%+%C%3Fb$O%-!<(B -;; $BF~NO$r!"(B-!- $B$O%]%$%s%H0LCV$rI=$7$^$9(B)$B!#(B +;; ▽モードに入り見出し語を入力すると、個人辞書を自動的に検索し、見出 +;; し語を コンプリーションします。下記のように動作します (カッコ内はキー +;; 入力を、-!- はポイント位置を表します)。 -;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B +;; (Ho) ▽ほ -> ▽ほ-!-んとう -;; * SKK $B$N%3%s%W%j!<%7%g%s$O!"85Mh8D?M<-=q$N$_$r;2>H$9$k;EMM$K$J$C$F$$(B -;; $B$k$N$G!"8D?M<-=q$K$J$$8+=P$78l$O%3%s%W%j!<%7%g%s$5$l$^$;$s!#(B -;; * $B%3%s%W%j!<%7%g%s$O!"Aw$j$J$7JQ49$N>l9g$7$+9T$o$l$^$;$s!#(B -;; * Ho $B$NF~NO$KBP$7!"!V$[$s$H$&!W$,%3%s%W%j!<%7%g%s$5$l$k$+$I$&$+$O8D(B -;; $B?M<-=q$N%(%s%H%j$N=gHV$l0c$&$O$:$G$9!#(B +;; * SKK のコンプリーションは、元来個人辞書のみを参照する仕様になってい +;; るので、個人辞書にない見出し語はコンプリーションされません。 +;; * コンプリーションは、送りなし変換の場合しか行われません。 +;; * Ho の入力に対し、「ほんとう」がコンプリーションされるかどうかは個 +;; 人辞書のエントリの順番次第 (変換順に降順に並んでいる) ですので、人 +;; それぞれ違うはずです。 -;; $B<+F0E*$K%3%s%W%j!<%7%g%s$5$l$?8+=P$78l$,!"<+J,$N0U?^$7$?$b$N$G$"$l$P(B TAB -;; $B$r2!$9$3$H$G%]%$%s%H0LCV$rF0$+$7!"%3%s%W%j!<%7%g%s$5$l$?8+=P$78l$rA*Br$9(B -;; $B$k$3$H$,$G$-$^$9!#$=$N$^$^(B SPC $B$r2!$7$FJQ49$9$k$J$j!"(Bq $B$r2!$7$F%+%?%+%J(B -;; $B$K$9$k$J$j(B SKK $BK\Mh$NF0:n$r2?$G$b9T$&$3$H$,$G$-$^$9!#(B +;; 自動的にコンプリーションされた見出し語が、自分の意図したものであれば TAB +;; を押すことでポイント位置を動かし、コンプリーションされた見出し語を選択す +;; ることができます。そのまま SPC を押して変換するなり、q を押してカタカナ +;; にするなり SKK 本来の動作を何でも行うことができます。 -;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (TAB) -> $B"&$[$s$H$&(B-!- (TAB) +;; (Ho) ▽ほ -> ▽ほ-!-んとう (TAB) -> ▽ほんとう-!- (TAB) -;; $B%3%s%W%j!<%7%g%s$5$l$?8+=P$78l$,<+J,$N0U?^$7$?$b$N$G$J$$>l9g$O!"$+$^(B -;; $B$o$: $B"&$[(B-!-$B$s$H$&(B (ka) -> $B"&$[$+(B-!-$B$s(B +;; (Ho) ▽ほ -> ▽ほ-!-んとう (ka) -> ▽ほか-!-ん -;; $B%3%s%W%j!<%7%g%s$5$l$J$$>uBV$,<+J,$N0U?^$7$?$b$N$G$"$k>l9g$b!"%3%s%W%j!<(B -;; $B%7%g%s$5$l$?ItJ,$rC1$KL5;k$9$k$@$1$G(B OK $B$G$9!#(B +;; コンプリーションされない状態が自分の意図したものである場合も、コンプリー +;; ションされた部分を単に無視するだけで OK です。 -;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (C-j) -> $B$[(B -;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (SPC) -> $B"'J](B ($B!V$[!W$r8+=P$78l$H$7$?JQ49$,9T$o$l$k(B) -;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (q) -> $B%[(B +;; (Ho) ▽ほ -> ▽ほ-!-んとう (C-j) -> ほ +;; (Ho) ▽ほ -> ▽ほ-!-んとう (SPC) -> ▼保 (「ほ」を見出し語とした変換が行われる) +;; (Ho) ▽ほ -> ▽ほ-!-んとう (q) -> ホ -;; $B%3%s%W%j!<%7%g%s$5$l$?>uBV$+$i(B BS $B$r2!$9$H!">C$5$l$?%3%s%W%j!<%7%g%sA0$N(B -;; $B8+=P$78l$+$i:FEY%3%s%W%j!<%7%g%s$r9T$$$^$9!#(B +;; コンプリーションされた状態から BS を押すと、消されたコンプリーション前の +;; 見出し語から再度コンプリーションを行います。 -;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (ka) -> $B"&$[$+(B-!-$B$s(B (BS) -> $B"&$[(B-!-$B$s$H$&(B +;; (Ho) ▽ほ -> ▽ほ-!-んとう (ka) -> ▽ほか-!-ん (BS) -> ▽ほ-!-んとう ;;; Code: @@ -183,8 +183,8 @@ skk-henkan-start-point (point))) (string= skk-dcomp-multiple-prefix skk-prefix))))))) -;; $BJ#?tI=<($N$?$a$K8!:w$7$F<-=q%P%C%U%!$N(B point $B$rF0$+$9$H!"(Bskk-comp $B$N(B -;; $BJd408uJd$,68$C$F$7$^$&$N$G0lC6J]B8$7$F$*$-:G8e$K85$KLa$9(B +;; 複数表示のために検索して辞書バッファの point を動かすと、skk-comp の +;; 補完候補が狂ってしまうので一旦保存しておき最後に元に戻す (defmacro skk-dcomp-save-point-in-jisyo-buffer (form) `(let (alist) (dolist (buf skk-dcomp-multiple-keep-point-buffer-list) @@ -231,13 +231,13 @@ (defun skk-dcomp-multiple-get-candidates (&optional same-key) (let (candidates) (cond - ;; (1) $B?75,8!:w(B + ;; (1) 新規検索 ((not same-key) (setq skk-dcomp-multiple-select-index - ;; skk-comp $B$N(B C-u TAB $B$r9MN8$9$k(B + ;; skk-comp の C-u TAB を考慮する (if (and current-prefix-arg (listp current-prefix-arg)) 0 -1)) (setq skk-dcomp-multiple-key - ;; skk-comp $B$N(B C-u TAB $B$r9MN8$9$k(B + ;; skk-comp の C-u TAB を考慮する (if (and current-prefix-arg (listp current-prefix-arg)) skk-comp-key (let ((key (buffer-substring-no-properties @@ -247,10 +247,10 @@ key)))) (setq skk-dcomp-multiple-prefix skk-prefix) (setq skk-dcomp-multiple-search-done nil) - (let ( ;; `skk-comp-get-candidate' $B$KI,MW$J%G!<%?$rB+G{(B + (let ( ;; `skk-comp-get-candidate' に必要なデータを束縛 (skk-comp-key skk-dcomp-multiple-key) (skk-comp-prefix skk-dcomp-multiple-prefix) - ;; `skk-comp-get-candidate' $B$GCM$,JQ$o$C$F$7$^$&$?$aB+G{(B + ;; `skk-comp-get-candidate' で値が変わってしまうため束縛 (skk-current-completion-prog-list skk-current-completion-prog-list) (skk-server-completion-words skk-server-completion-words) @@ -258,8 +258,8 @@ (i 0) cand) (when (or skk-comp-use-prefix - ;; skk-comp-use-prefix $B$,(B nil $B$N>l9g!""&(Bn $B$J$I$O(B - ;; $BJd408uJd$r8!:w$7$J$$(B + ;; skk-comp-use-prefix が nil の場合、▽n などは + ;; 補完候補を検索しない (not (skk-get-kana skk-current-rule-tree))) (skk-dcomp-save-point-in-jisyo-buffer (while (and (< i skk-dcomp-multiple-rows) @@ -272,18 +272,18 @@ (setq skk-dcomp-multiple-search-done t)) (setq skk-dcomp-multiple-candidates candidates))) - ;; (2) $BA4$F8!:w:Q(B + ;; (2) 全て検索済 (skk-dcomp-multiple-search-done (setq candidates (skk-dcomp-multiple-extract-candidates skk-dcomp-multiple-candidates skk-dcomp-multiple-select-index))) - ;; (3) $BA48!:w$9$k(B (TAB $BO"BG$G7+$j1[$7$?$H$-(B) + ;; (3) 全検索する (TAB 連打で繰り越したとき) ((and same-key (< (1- (length skk-dcomp-multiple-candidates)) skk-dcomp-multiple-select-index)) (skk-dcomp-save-point-in-jisyo-buffer - (let ( ;; `skk-comp-get-all-candidates' $B$G6u$K$J$C$F$7$^$&$?$aB+G{(B + (let ( ;; `skk-comp-get-all-candidates' で空になってしまうため束縛 (skk-comp-kakutei-midasi-list skk-comp-kakutei-midasi-list) (skk-server-completion-words skk-server-completion-words) (skk-look-completion-words skk-look-completion-words)) @@ -299,7 +299,7 @@ skk-dcomp-multiple-candidates skk-dcomp-multiple-select-index))) - ;; (4) $BC1$J$k(B TAB $BBG80(B + ;; (4) 単なる TAB 打鍵 (t (setq candidates skk-dcomp-multiple-candidates))) (when candidates @@ -357,12 +357,12 @@ (- (current-column) margin)))) (setq bottom (> (1+ i) (vertical-motion (1+ i)))) (cond (bottom - ;; $B%P%C%U%!:G=*9T$G$OIaDL$K(B overlay $B$rDI2C$7$F$$$/J}(B - ;; $BK!$@$H(B overlay $B$NI=<($5$l$k=gHV$,68$&$3$H$,$"$C$F(B - ;; $B$&$^$/$J$$!#$7$?$,$C$FA02s$N(B overlay $B$N(B - ;; after-string $B$KDI2C$9$k!#$?$@$7!"(BEOB $B$N>l9g$O(B - ;; prefix $B$N(B overlay $B$H>WFM$9$k$?$a(B - ;; `skk-prefix-overlay' $B$KDI2C$9$k(B + ;; バッファ最終行では普通に overlay を追加していく方 + ;; 法だと overlay の表示される順番が狂うことがあって + ;; うまくない。したがって前回の overlay の + ;; after-string に追加する。ただし、EOB の場合は + ;; prefix の overlay と衝突するため + ;; `skk-prefix-overlay' に追加する (setq ol (if (zerop i) (cond ((or (not skk-echo) (string= "" skk-prefix) @@ -376,32 +376,32 @@ (t (setq col (skk-move-to-screen-column beg-col)) (cond ((> beg-col col) - ;; $B7e9g$o$;$N6uGr$rDI2C(B + ;; 桁合わせの空白を追加 (setq str (concat (make-string (- beg-col col) ? ) str))) - ;; overlay $B$N:8C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B + ;; overlay の左端がマルチ幅文字と重なったときの微調整 ((< beg-col col) (backward-char) (setq col (skk-screen-column)) (setq str (concat (make-string (- beg-col col) ? ) str)))))) - ;; $B$3$N;~E@$G(B overlay $B$N3+;O0LCV$K(B point $B$,$"$k(B + ;; この時点で overlay の開始位置に point がある (unless bottom (let ((ol-beg (point)) (ol-end-col (+ col (string-width str))) base-ol) (setq col (skk-move-to-screen-column ol-end-col)) - ;; overlay $B$N1&C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B + ;; overlay の右端がマルチ幅文字と重なったときの微調整 (when (< ol-end-col col) (setq str (concat str (make-string (- col ol-end-col) ? )))) (setq ol (make-overlay ol-beg (point))) - ;; $B85%F%-%9%H$N(B face $B$r7Q>5$7$J$$$h$&$K(B1$B$D8e$m$K(B - ;; overlay $B$r:n$C$F!"$=$N(B face $B$r(B 'default $B$K;XDj$7$F$*$/(B + ;; 元テキストの face を継承しないように1つ後ろに + ;; overlay を作って、その face を 'default に指定しておく (setq base-ol (make-overlay (point) (1+ (point)))) (overlay-put base-ol 'face 'default) (push base-ol skk-dcomp-multiple-overlays) - ;; $B8uJd$,2D;k$+$I$&$+%A%'%C%/(B + ;; 候補が可視かどうかチェック (unless (pos-visible-in-window-p (point)) (setq invisible t))))) (overlay-put ol 'invisible t) @@ -449,7 +449,7 @@ skk-use-look) (setq skk-look-completion-words nil)) (skk-dcomp-do-completion (point))) - ;; dcomp $B$H$N=gHV@)8f$N$?$a!"$3$3$G8F$V(B + ;; dcomp との順番制御のため、ここで呼ぶ (skk-henkan-on-message)) ;;; advices. @@ -463,7 +463,7 @@ ad-do-it) (t (cond - ((or (eq skk-henkan-mode 'active) ; $B"'%b!<%I(B + ((or (eq skk-henkan-mode 'active) ; ▼モード (skk-get-prefix skk-current-rule-tree) (not skk-comp-stack)) (skk-set-marker skk-dcomp-start-point nil) @@ -482,7 +482,7 @@ ad-do-it (when (and skk-j-mode (or skk-use-kana-keyboard - ;; $BAw$j$"$jJQ49$,;O$^$C$?$iJd40$7$J$$(B + ;; 送りあり変換が始まったら補完しない (not (memq last-command-event skk-set-henkan-point-key)))) (if (skk-get-prefix skk-current-rule-tree) (when (and (skk-dcomp-multiple-activate-p) @@ -615,7 +615,7 @@ (skk-dcomp-multiple-increase-index skk-dcomp-multiple-select-index)) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates - ;; skk-comp $B$N(B C-u TAB $B$r9MN8$9$k(B + ;; skk-comp の C-u TAB を考慮する (not (and current-prefix-arg (listp current-prefix-arg))))))))) diff --git a/skk-decor.el b/skk-decor.el index a14f126b..c8c025da 100644 --- a/skk-decor.el +++ b/skk-decor.el @@ -36,27 +36,27 @@ ;; |- skk-henkan-candidate-list() ;; |- skk-treat-candidate-appearance() -;; $BJ8=q%P%C%U%!$N"'%b!<%I$K$*$1$kJQ498uJd$NI=<($rAu>~$9$k$K$O(B -;; skk-henkan-face $B$r@_Dj$7$^$9!#EvA3$G$9$,!"J8=q%P%C%U%!$NJQ498uJd$K$7(B -;; $B$+:nMQ$7$^$;$s!#(B - -;; $B%$%s%i%$%s!"(Btooltip $BKt$O(B $B8uJd%P%C%U%!$NJQ498uJd$NI=<($rAu>~$9$k$K$O(B -;; skk-treat-candidate-appearance-function $B$r@_Dj$7$^$9!#(B -;; $B$7$+$7!"(Bskk-treat-candidate-appearance-function $B$N@_Dj$O!"(B -;; o $BJ8=q%P%C%U%!$N"'%b!<%I$K$*$1$kJQ498uJd$NI=<($K$b1F6A(B -;; $B!J(Bskk-henkan-face $B$h$j$bM%@h$7$FE,MQ$5$l$k!K(B -;; o $B%$%s%i%$%s!"(Btooltip $B5Z$S(B $B8uJd%P%C%U%!$N#3$D$9$Y$F$K1F6A(B -;; $B$H$$$&8z2L$,$"$j$^$9!#(B - -;; $BNc$($P!"8uJd%P%C%U%!$NJQ498uJd$NI=<($rBg$-$/$7$h$&$H;W$C$?$H$-!"(B -;; skk-henkan-face $B$G$O8uJd%P%C%U%!$NAu>~$rJQ$($k$3$H$,$G$-$J$$$?$a!"(B -;; skk-treat-candidate-appearance-function $B$r;HMQ$7$F%5%$%:$NBg$-$J(B -;; face $B$rE,MQ$5$;$^$9!#$7$+$7!"(Bskk-treat-candidate-appearance-function $B$O(B -;; $BJ8=q%P%C%U%!$NAu>~$K$b1F6A$,5Z$V$3$H$+$i!"I=<($,%,%?%,%?$K$J$C$F$7$^(B -;; $B$$$^$9!#(B - -;; $B$=$3$G!"!VJ8=q%P%C%U%!$K1F6A$;$:!"8uJd%P%C%U%!$K8B$C$?I=<($NAu>~!W$r(B -;; $B$7$?$$J}$N$?$a$K:n$C$F$_$^$7$?!#(B +;; 文書バッファの▼モードにおける変換候補の表示を装飾するには +;; skk-henkan-face を設定します。当然ですが、文書バッファの変換候補にし +;; か作用しません。 + +;; インライン、tooltip 又は 候補バッファの変換候補の表示を装飾するには +;; skk-treat-candidate-appearance-function を設定します。 +;; しかし、skk-treat-candidate-appearance-function の設定は、 +;; o 文書バッファの▼モードにおける変換候補の表示にも影響 +;; (skk-henkan-face よりも優先して適用される) +;; o インライン、tooltip 及び 候補バッファの3つすべてに影響 +;; という効果があります。 + +;; 例えば、候補バッファの変換候補の表示を大きくしようと思ったとき、 +;; skk-henkan-face では候補バッファの装飾を変えることができないため、 +;; skk-treat-candidate-appearance-function を使用してサイズの大きな +;; face を適用させます。しかし、skk-treat-candidate-appearance-function は +;; 文書バッファの装飾にも影響が及ぶことから、表示がガタガタになってしま +;; います。 + +;; そこで、「文書バッファに影響せず、候補バッファに限った表示の装飾」を +;; したい方のために作ってみました。 ;;; Howto: @@ -74,7 +74,7 @@ (require 'skk) -;; skk-show-inline 'vertical $B$K8B$C$F%U%'%$%9$r:nMQ$5$;$k(B. +;; skk-show-inline 'vertical に限ってフェイスを作用させる. ;;;###autoload (defun skk-inline-show-vertically-decor-func (string) (let* ((sp (reverse (split-string string "\n"))) @@ -92,7 +92,7 @@ cands "\n") "\n" rest))) -;; tooltip $B$K8B$C$F%U%'%$%9$r:nMQ$5$;$k(B +;; tooltip に限ってフェイスを作用させる ;;;###autoload (defun skk-tooltip-show-at-point-decor-func (text) (let* ((sp (reverse (split-string text "\n"))) @@ -110,7 +110,7 @@ cands "\n") "\n" rest))) -;; $B8uJd%P%C%U%!$K8B$C$F%U%'%$%9$r:nMQ$5$;$k(B +;; 候補バッファに限ってフェイスを作用させる ;;;###autoload (defun skk-henkan-show-candidates-buffer-decor-func (str) (let* ((cand (reverse (split-string str " " t))) diff --git a/skk-develop.el b/skk-develop.el index 7578a87e..774f2362 100644 --- a/skk-develop.el +++ b/skk-develop.el @@ -84,14 +84,14 @@ (url-copy-file (format "%s%s" url f) fn))))) (defun skk-get-generate-gzip-d (dir) - "$BB(@J(B gzip -d" + "即席 gzip -d" (and (not (executable-find "gzip")) (eq system-type 'windows-nt) (not (file-exists-p (expand-file-name "gzip-d.ps1" dir))) (skk-get-generate-gzip-d-1 dir))) (defun skk-get-generate-gzip-d-1 (dir) - "$BMW(B powershell" + "要 powershell" (with-temp-buffer (insert "$infile = $args[0]" 10) (insert "$outfile = ( $infile -replace '\.gz$','' )" 10) @@ -151,7 +151,7 @@ (skk-get-download jisyo-dir) (skk-get-generate-gzip-d jisyo-dir) (skk-get-expand-gzip jisyo-dir) - (when (fboundp 'tar--extract) ; GNU Emacs 24.4 $B$+$i(B + (when (fboundp 'tar--extract) ; GNU Emacs 24.4 から (skk-get-expand-tar jisyo-dir))) (message "skk-get...done") nil) diff --git a/skk-emacs.el b/skk-emacs.el index fcff62d9..c4019b75 100644 --- a/skk-emacs.el +++ b/skk-emacs.el @@ -87,40 +87,40 @@ ["Visit Web Site" skk-emacs-visit-website t]))) (defvar skk-emacs-menu-resource-ja - '(("Daredevil SKK Menu" . "Daredevil SKK $B%a%K%e!<(B") - ("Convert Region and Echo" . "$BNN0h$rJQ49$7$F%_%K%P%C%U%!$KI=<((B") - ("Gyakubiki" . "$B5U0z$-(B") - ("to Hiragana" . "$B$R$i$,$J$KJQ49(B") - ("to Hiragana, All Candidates" . "$B$R$i$,$J$KJQ49!"A4$F$N8uJd$rI=<((B") - ("to Katakana" . "$B%+%?%+%J$KJQ49(B") - ("to Katakana, All Candidates" . "$B%+%?%+%J$KJQ49!"A4$F$N8uJd$rI=<((B") - ("Hurigana" . "$B$U$j$,$J(B") - ("Convert Region and Replace" . "$BNN0h$rJQ49$7$FCV$-49$($k(B") - ("Hiragana" . "$B$R$i$,$J(B") - ("Katakana" . "$B%+%?%+%J(B") - ("Hiragana to Katakana" . "$B$R$i$,$J$r%+%?%+%J$KJQ49(B") - ("Katakana to Hiragana" . "$B%+%?%+%J$r$R$i$,$J$KJQ49(B") - ("Kana and Zenkaku to Romaji" . "$B$+$J!&%+%J!&A43Q$r%m!<%^;z$KJQ49(B") - ("Ascii to Zenkaku" . "ASCII $B$rA43Q1Q?t$KJQ49(B") - ("Zenkaku to Ascii" . "$BA43Q1Q?t$r(B ASCII $B$KJQ49(B") - ("Count Jisyo Candidates" . "$B<-=qCf$N8uJd?t$r?t$($k(B") - ("Save Jisyo" . "$B<-=q$rJ]B8$9$k(B") - ("Undo Kakutei" . "$B3NDj$rC$9(B ($B%"%s%I%%(B)") - ("Restart SKK" . "SKK $B$N:F5/F0(B") - ("Version" . "SKK $B$N%P!<%8%g%s(B") - ("Daredevil SKK Menu" . "Daredevil SKK $B%a%K%e!<(B") - ("Hankaku alphabet" . "$BH>3Q1Q?t(B") - ("Zenkaku alphabet" . "$BA43Q1Q?t(B") - ("Read Manual" . "$B%^%K%e%"%k$rFI$`(B") - ("Start Tutorial" . "$B%A%e!<%H%j%"%k(B") - ("Customize SKK" . "SKK $B$r%+%9%?%^%$%:(B") - ("Customize SKK (simple)" . "SKK $B$r%+%9%?%^%$%:(B ($B4J0WHG(B)") - ("Find kanji by radicals" . "$B4A;z$rItJ,(B (ex.512) - (frame-char-height)) ;$B$N9T?t(B(ex.16) => 32 - 2)) ;$B4p=`$H$9$k:GBg9b(B => 16 + (max-lines (- (/ (/ (display-pixel-height) 2) ;ディスプレイの半分 (ex.512) + (frame-char-height)) ;の行数(ex.16) => 32 + 2)) ;基準とする最大高 => 16 (max-columns (- (car (skk-tooltip-max-tooltip-size)) 2)) ;ex.78 (columns 0) current-column indent) @@ -402,9 +402,9 @@ (goto-char (point-min)) (while (not (eobp)) (setq lines (1+ lines)) - (cond ((= lines max-lines) ;$BD9$9$.$k(B + (cond ((= lines max-lines) ;長すぎる (beginning-of-line) - (insert "($BD9$9$.$k$N$G>JN,$5$l$^$7$?(B)") + (insert "(長すぎるので省略されました)") (delete-region (point) (point-max)) (goto-char (point-max))) ;; @@ -432,7 +432,7 @@ (cons text (cons columns lines)))) (defun skk-tooltip-show-at-point (text &optional situation) - "TEXT $B$r(B tooltip $B$GI=<($9$k!#(B" + "TEXT を tooltip で表示する。" (require 'tooltip) (and (null (eq situation 'annotation)) @@ -471,7 +471,7 @@ (set-mouse-position (selected-frame) (car avoid-destination) ;; XXX pending - ;; $B%^%&%9%]%$%s%?$O$I$3$X$$$/$Y$-$+(B + ;; マウスポインタはどこへいくべきか ;; (cdr avoid-destination) 0)) ;; @@ -480,7 +480,7 @@ (setq tooltip-info (skk-tooltip-resize-text text) text (car tooltip-info))) (t - ;; $B%^%&%9%]%$%s%?$K0MB8$;$:(B tooptip $B$N0LCV$r7hDj$9$k!#(B + ;; マウスポインタに依存せず tooptip の位置を決定する。 (setq win (if skk-isearch-switch (minibuffer-window) (selected-window)) @@ -518,16 +518,16 @@ 'internal-border-width) 0) - ;; $B0J2<(B left $B$H(B top $B$O!"(BX Window System $B2<$G$O2hLLA4BN$NCf$G$N:BI8$r(B - ;; $B;XDj$9$k!#(B Apple OS X $B$K$*$$$F$b!"(BCarbon Emacs 22.3 $B$G$OF1MM$@$,(B - ;; Cocoa Emacs 23.2 $B$G$O(B Emacs $B%U%l!<%`Fb$G$N:BI8$r;XDj$9$kI,MW$,$"$k!#(B + ;; 以下 left と top は、X Window System 下では画面全体の中での座標を + ;; 指定する。 Apple OS X においても、Carbon Emacs 22.3 では同様だが + ;; Cocoa Emacs 23.2 では Emacs フレーム内での座標を指定する必要がある。 - ;; x $B:BI8(B ($B:8$+$i$N(B) + ;; x 座標 (左からの) left (+ (car tip-destination) (nth 0 (window-inside-pixel-edges win)) (eval (frame-parameter (selected-frame) 'left)) skk-tooltip-x-offset) - ;; y $B:BI8(B ($B>e$+$i$N(B) + ;; y 座標 (上からの) top (+ (cdr tip-destination) (nth 1 (window-inside-pixel-edges win)) (+ (if tool-bar-mode @@ -552,28 +552,28 @@ screen-height (display-pixel-height)) ;; (when (> (+ left text-width) screen-width) - ;; $B1&$K4s$j$9$.$F7g$1$F$7$^$o$J$$$h$&$K(B + ;; 右に寄りすぎて欠けてしまわないように (setq left (- left (- (+ left text-width - ;; $B>/$7M>7W$K:8$K4s$;$J$$$H(B avoid - ;; $B$7$?%^%&%9%]%$%s%?$H43>D$9$k(B + ;; 少し余計に左に寄せないと avoid + ;; したマウスポインタと干渉する (* 2 fontsize)) screen-width)))) (when (> (+ top text-height) screen-height) - ;; $B2<$K4s$j$9$.$F7g$1$F$7$^$o$J$$$h$&$K(B + ;; 下に寄りすぎて欠けてしまわないように (setq top (- top - ;; $B==J,>e$2$J$$$H%F%-%9%H$H=E$J$k$N$G!"(B - ;; $B$$$C$=%F%-%9%H$N>e$K$7$F$_$k(B + ;; 十分上げないとテキストと重なるので、 + ;; いっそテキストの上にしてみる text-height (* 2 (+ fontsize spacing)))) - ;; $B$5$i$K(B X $B:BI8$r(B... + ;; さらに X 座標を... (let ((right (+ left text-width skk-tooltip-x-offset)) (mouse-x (+ (frame-parameter (selected-frame) 'left) (* (frame-pixel-width))))) (when (and (<= left mouse-x) (<= mouse-x right)) - ;; $B%^%&%9%]%$%s%?$HHo$j$=$&$J$H$-(B + ;; マウスポインタと被りそうなとき (setq left (- left (- right mouse-x) fontsize))))))) - ;; END **$B%^%&%9%]%$%s%?$K0MB8$;$:(B tooptip $B$N0LCV$r7hDj$9$k(B** + ;; END **マウスポインタに依存せず tooptip の位置を決定する** ;; (setq parameters (if (eq skk-tooltip-mouse-behavior 'follow) skk-tooltip-parameters @@ -597,13 +597,13 @@ (car oP)) (mouse-avoidance-set-mouse-position oP)) (setq skk-henkan-count 0) - (cond ((eq skk-henkan-mode 'active) ; $B"'%b!<%I(B + (cond ((eq skk-henkan-mode 'active) ; ▼モード (skk-unread-event (aref (car (where-is-internal 'skk-previous-candidate skk-j-mode-map)) 0)) (when (eq situation 'listing) - (throw 'unread nil))) ; skk-henkan $B$^$G0l5$$K(B throw $B$9$k!#(B + (throw 'unread nil))) ; skk-henkan まで一気に throw する。 (t (skk-unread-event event)))) @@ -615,18 +615,18 @@ (skk-unread-event event))))) (defun skk-tooltip-show-1 (text skk-params) - "TEXT $B$r(B tooltip $B$GI=<($9$k!#(B -SKK-PARAMS $B$O(B `skk-tooltip-parameters' $BKt$O(B `tooltip-frame-parameters' $B$N$$$:$l$+!#(B -TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" + "TEXT を tooltip で表示する。 +SKK-PARAMS は `skk-tooltip-parameters' 又は `tooltip-frame-parameters' のいずれか。 +TEXT には `skk-tooltip-face' が適用される。" (condition-case error (let ((params (or skk-params tooltip-frame-parameters)) fg bg) (if skk-params - ;; $B%f!<%6$,FH<+$K(B tooltip $BI=<(@_Dj$9$k(B + ;; ユーザが独自に tooltip 表示設定する (dolist (cell tooltip-frame-parameters) (unless (assq (car cell) skk-params) (setq params (cons cell params)))) - ;; tooltip $B$N%G%U%)%k%H$N@_Dj$r$9$k(B + ;; tooltip のデフォルトの設定をする (setq fg (face-attribute 'tooltip :foreground)) (setq bg (face-attribute 'tooltip :background)) (when (stringp fg) @@ -637,15 +637,15 @@ TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" ;; (when (facep skk-tooltip-face) (setq text (propertize text 'face skk-tooltip-face))) - ;; $B%_%K%P%C%U%!$K$$$k$H$-M>7W$J%a%C%;!<%8$r%/%j%"$9$k(B + ;; ミニバッファにいるとき余計なメッセージをクリアする (when (or skk-isearch-switch (skk-in-minibuffer-p)) (message nil)) ;; (let ((x-gtk-use-system-tooltips nil)) - ;; GTK $BIU(B Emacs $B$G!"(BGTK $B$N%D!<%k%F%#%C%W$rMxMQ$9$k$H(B - ;; $B8=>u%U%'%$%9B0@-$,E,MQ$5$l$J$$$N$G!"(BEmacs $B$N%D!<%k(B - ;; $B%F%#%C%W$rMQ$$$k!#(B + ;; GTK 付 Emacs で、GTK のツールティップを利用すると + ;; 現状フェイス属性が適用されないので、Emacs のツール + ;; ティップを用いる。 (x-show-tip text (selected-frame) params skk-tooltip-hide-delay ;; (if (eq skk-tooltip-mouse-behavior 'follow) @@ -665,10 +665,10 @@ TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" ;;;###autoload (defun skk-search-ja-dic () - "GNU Emacs $B$KIUB0$9$k$+$J4A;zJQ49<-=q$rMQ$$$F8!:w$9$k!#(B -$B8=:_$N(B Emacs $B$K$O(B SKK-JISYO.L $B$r4p$KJQ49$5$l$?(B ja-dic.el $B$,IUB0$7$F$$$k!#(B -$B$3$N<-=q%G!<%?$rMQ$$$FAw$j$"$j!"Aw$j$J$7!"@\F,<-!"@\Hx<-$NJQ49$r9T$&!#(B -$B$?$@$7!"(BSKK-JISYO.L $B$N$h$&$J1Q?tJQ49!"?tCMJQ49$J$I$O$G$-$J$$!#(B" + "GNU Emacs に付属するかな漢字変換辞書を用いて検索する。 +現在の Emacs には SKK-JISYO.L を基に変換された ja-dic.el が付属している。 +この辞書データを用いて送りあり、送りなし、接頭辞、接尾辞の変換を行う。 +ただし、SKK-JISYO.L のような英数変換、数値変換などはできない。" (require 'ja-dic-utl) ;; Mostly from ja-dic-utl.el. (when (and (not skkdic-okuri-nasi) @@ -683,14 +683,14 @@ TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" ;; At first, generate vector VEC from SEQ for looking up SKK ;; alists. Nth element in VEC corresponds to Nth element in SEQ. ;; The values are decided as follows. - ;; If SEQ[N] is `$B!<(B', VEC[N] is 0, + ;; If SEQ[N] is `ー', VEC[N] is 0, ;; else if SEQ[N] is a Hiragana character, VEC[N] is: ;; ((The 2nd position code of SEQ[N]) - 32), ;; else VEC[N] is 128. (while (< i len) (let ((ch (aref skk-henkan-key i)) code) - (cond ((= ch ?$B!<(B) + (cond ((= ch ?ー) (aset vec i 0)) ((and (>= ch (car skkdic-jisx0208-hiragana-block)) (<= ch (cdr skkdic-jisx0208-hiragana-block)) @@ -700,7 +700,7 @@ TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" (aset vec i 128)))) (setq i (1+ i))) (cond - (skk-henkan-okurigana ; $BAw$j$"$jJQ49(B + (skk-henkan-okurigana ; 送りあり変換 (let ((okurigana (assq (aref skk-henkan-okurigana 0) skkdic-okurigana-table)) orig-element) @@ -712,11 +712,11 @@ TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" len 0 t)) (consp (car entry))) (setq entry (nreverse (copy-sequence (car entry)))))))) - ((string-match ">$" skk-henkan-key) ; $B@\F,<-(B + ((string-match ">$" skk-henkan-key) ; 接頭辞 (setq entry (lookup-nested-alist vec skkdic-prefix (1- len) 0 t))) - ((string-match "^>" skk-henkan-key) ; $B@\Hx<-(B + ((string-match "^>" skk-henkan-key) ; 接尾辞 (setq entry (lookup-nested-alist vec skkdic-postfix len 1 t))) - (t ; $BDL>o$NAw$j$J$7JQ49(B + (t ; 通常の送りなし変換 (setq entry (lookup-nested-alist vec skkdic-okuri-nasi len 0 t)))) ;; (when (consp (car entry)) diff --git a/skk-gadget.el b/skk-gadget.el index 3a8820a7..2d745366 100644 --- a/skk-gadget.el +++ b/skk-gadget.el @@ -1,4 +1,4 @@ -;;; skk-gadget.el --- $B @@ -26,66 +26,66 @@ ;;; Commentary: ;; 2014.12.30 SKK-JISYO.lisp -;; SKK-JISYO.L $B$+$i%W%m%0%i%`L>$N$J$$<-=q$NJQ49$N8uJd$K(B Emacs Lisp $B$N%3!<%I$,=q$$$F$"$l$P!"(BSKK -;; $B$O$=$N%3!<%I$r(B Lisp $B$N%W%m%0%i%`$H$7$FeIU$1$i$l$?!#(B -;; $BM>CL$@$,!"(BX Window $B$G;HMQ$5$l$k(B `Widget' $B$H$$$&8@MU$O!"(B`window'+`gadget' -;; $B$+$i:n$i$l$?B$8l$i$7$$!#(B +;; skk-gadget.el の `gadget' は「上手く工夫した道具」の意味。「色々飛び出す +;; 気のきいたおもちゃ箱」というような意味で名付けられた。 +;; 余談だが、X Window で使用される `Widget' という言葉は、`window'+`gadget' +;; から作られた造語らしい。 -;; $B<-=q%(%s%H%j(B today $B$N2r@b(B +;; 辞書エントリ today の解説 ;; ====================== ;; today /(skk-current-date (lambda (date-information format gengo and-time) (skk-default-current-date date-information nil 0 'gengo 0 0 0)) )/ -;; 1. lambda() $BA4BN$r0z?t$H$7$F(B skk-current-date() $B$r ("2013" "Jan" "29" "Tue" "22" "59" "50") ;; b. format => nil -;; c. (not skk-date-ad) => t=$B@>Nq(B, nil=$B859f(B +;; c. (not skk-date-ad) => t=西暦, nil=元号 ;; d. and-time => nil -;; $B$r0z?t$H$7$F(B lambda() $B$r(B funcall $B$9$k(B +;; を引数として lambda() を funcall する -;; 3. $B$9$J$o$A!"(Blambda() $B<+?H$N0z?t(B `date-information' `format' `gengo' `and-time' $B$O!"(B -;; $B>e5-$N(B a $B!A(B d $B$G$"$k(B +;; 3. すなわち、lambda() 自身の引数 `date-information' `format' `gengo' `and-time' は、 +;; 上記の a ~ d である -;; 4. $B:G=*E*$K(B skk-default-current-date() $B$, $B4A?t;z(B -;; h. 'gengo [gengo] ... non-nil => $BJ?@.Fs==8^G/(B -;; nil => $BFs@i==;0G/(B +;; f. nil [format] ... %s年%s月%s日(%s)%s時%s分%s秒 +;; g. 3 [num-type] ... 変換タイプ => 漢数字 +;; h. 'gengo [gengo] ... non-nil => 平成二十五年 +;; nil => 二千十三年 ;; i. 0 [gengo-index] ... ;; j. 0 [month-alist-index] ... ;; k. 0 [dayofweek-alist-index] ... ;; opt. and-time -;; 5. *scratch* $B$GI>2A$7$F$_$k(B +;; 5. *scratch* で評価してみる ;; (skk-default-current-date ;; '("2013" "Jan" "29" "Tue" "22" "59" "50") nil 3 t 0 0 0) [C-j] -;; => "$BJ?@.Fs==8^G/0l7nFs==6eF|(B($B2P(B)" -;; $B$3$l",$,!"H/C<$G$"$k(B skk-current-date() $B$NLa$jCM$G$"$k(B +;; => "平成二十五年一月二十九日(火)" +;; これ↑が、発端である skk-current-date() の戻り値である ;;; Code: @@ -97,27 +97,27 @@ ;; -- programs ;;;###autoload (defun skk-current-date (&optional pp-function format and-time) - "`current-time-string' $B$N=PNO$r2C9)$7!"8=:_$NF|;~(B \(string\) $B$rJV$9!#(B -$B%*%W%7%g%J%k0z?t$N(B PP-FUNCTION $B$r;XDj$9$k$H!"(B - `skk-current-date-1' $B$NJV$jCM!"(B FORMAT $B!"(B AND-TIME -$B$r0z?t$K$7$F(B PP-FUNCTION $B$r(B `funcall' $B$9$k!#(B -PP-FUNCTION $B$,(B nil $B$N>l9g$O(B `skk-default-current-date-function' $B$r(B -`funcall' $B$9$k!#(B -FORMAT $B$O(B `format' $B$NBh#10z?t$NMM<0(B \(string\) $B$K$h$k=PNO;XDj%F%s%W%l!<%H!#(B -AND-TIME \(boolean\) $B$r;XDj$9$k$H;~9o$bJV$9!#(B -`skk-today' $B$H(B `skk-clock' $B$N%5%V%k!<%A%s$G$"$k!#(B" + "`current-time-string' の出力を加工し、現在の日時 \(string\) を返す。 +オプショナル引数の PP-FUNCTION を指定すると、 + `skk-current-date-1' の返り値、 FORMAT 、 AND-TIME +を引数にして PP-FUNCTION を `funcall' する。 +PP-FUNCTION が nil の場合は `skk-default-current-date-function' を +`funcall' する。 +FORMAT は `format' の第1引数の様式 \(string\) による出力指定テンプレート。 +AND-TIME \(boolean\) を指定すると時刻も返す。 +`skk-today' と `skk-clock' のサブルーチンである。" (funcall (if pp-function pp-function skk-default-current-date-function) (skk-current-date-1) format (not skk-date-ad) and-time)) (defun skk-current-date-1 (&optional specified-time) - "`current-time-string' $B$N=PNO$r2C9)$7!"F|IU!&;~9o>pJs$r%j%9%H$K$7$FJV$9!#(B + "`current-time-string' の出力を加工し、日付・時刻情報をリストにして返す。 \(year month day day-of-week hour minute second\) \(\"2013\" \"Jan\" \"29\" \"Tue\" \"22\" \"41\" \"11\"\) -$B%*%W%7%g%J%k0z?t$N(B SPECIFIED-TIME $B$O(B `current-time-string' $B$N(B docstring -$B$r;2>H$N$3$H!#(B" +オプショナル引数の SPECIFIED-TIME は `current-time-string' の docstring +を参照のこと。" (cl-multiple-value-bind (dow month day time year) (split-string (current-time-string specified-time)) (append (list year month day dow) @@ -129,42 +129,42 @@ AND-TIME \(boolean\) $B$r;XDj$9$k$H;~9o$bJV$9!#(B format num-type gengo gengo-index month-alist-index dayofweek-alist-index &optional and-time) "\ -$BF|IU>pJs$NI8=`E*$J=PNO$r$9$kB>!"%f!<%6$K$"$kDxEY$N%+%9%?%^%$%:5!G=$rDs6!$9$k!#(B -$B$3$N4X?t$N0z?t$G%+%9%?%^%$%:$G$-$J$$=PNO$r4uK>$9$k>l9g$O!"(B -`skk-default-current-date-function' $B$K<+A0$N4X?t$r;XDj$9$k!#(B +日付情報の標準的な出力をする他、ユーザにある程度のカスタマイズ機能を提供する。 +この関数の引数でカスタマイズできない出力を希望する場合は、 +`skk-default-current-date-function' に自前の関数を指定する。 -DATE-INFORMATION $B$O(B +DATE-INFORMATION は \(year month day day-of-week hour minute second\) -$B$N7A<0$N%j%9%H!#3FMWAG$OJ8;zNs!#(B`skk-current-date-1' $B$N=PNO$r;HMQ!#(B +の形式のリスト。各要素は文字列。`skk-current-date-1' の出力を使用。 -FORMAT $B$O(B `format' $B$NBh#10z?t$NMM<0$K$h$k=PNO7ABV$r;XDj$9$kJ8;zNs!#(B - nil $B$G$"$l$P(B \"%s$BG/(B%s$B7n(B%s$BF|(B\(%s\)%s$B;~(B%s$BJ,(B%s$BIC(B\" \($B$b$7$/$O(B - \"%s$BG/(B%s$B7n(B%s$BF|(B\(%s\)\" $B$,;H$o$l$k!#(B +FORMAT は `format' の第1引数の様式による出力形態を指定する文字列。 + nil であれば \"%s年%s月%s日\(%s\)%s時%s分%s秒\" \(もしくは + \"%s年%s月%s日\(%s\)\" が使われる。 -NUM-TYPE \(number\) $B$O(B - 0 -> $BL5JQ49(B - 1 -> $BA43Q?t;z$XJQ49(B - 2 -> $B4A?t;z$XJQ49(B \($B0L $B4A?t;z$XJQ49(B \($B0L $B$=$N?t;z$=$N$b$N$r%-!<$K$7$F<-=q$r:F8!:w(B - 5 -> $B4A?t;z(B \($B $B>-4}$G;HMQ$9$k?t;z(B \(\"$B#3;M(B\" $B$J$I(B\) $B$KJQ49(B +NUM-TYPE \(number\) は + 0 -> 無変換 + 1 -> 全角数字へ変換 + 2 -> 漢数字へ変換 \(位取りなし\) + 3 -> 漢数字へ変換 \(位取りをする\) + 4 -> その数字そのものをキーにして辞書を再検索 + 5 -> 漢数字 \(手形などで使用する文字を使用\)へ変換 \(位取りをする\) + 9 -> 将棋で使用する数字 \(\"3四\" など\) に変換 -GENGO $B$O859fI=<($9$k$+$I$&$+(B \(boolean\)$B!#(B +GENGO は元号表示するかどうか \(boolean\)。 -GENGO-INDEX $B$O(B `skk-gengo-alist' $B$N3FMWAG$N(B cadr $B$r(B 0 $B$H$9$k(B index - \(number\)$B!#(Bnil $B$G$"$l$P(B `current-time-string' $B$N=PNO$N$^$^L5JQ49!#(B +GENGO-INDEX は `skk-gengo-alist' の各要素の cadr を 0 とする index + \(number\)。nil であれば `current-time-string' の出力のまま無変換。 -MONTH-ALIST-INDEX $B$O(B `skk-month-alist' $B$N3FMWAG$N(B cadr $B$r(B 0 $B$H$9$k(B - index \(number\)$B!#(Bnil $B$G$"$l$P(B `current-time-string' $B$N=PNO$N$^$^L5JQ49!#(B +MONTH-ALIST-INDEX は `skk-month-alist' の各要素の cadr を 0 とする + index \(number\)。nil であれば `current-time-string' の出力のまま無変換。 -DAYOFWEEK-ALIST-INDEX $B$O(B `skk-day-of-week-alist' $B$N3FMWAG$N(B cadr $B$r(B - 0 $B$H$9$k(B index \(number\)$B!#(Bnil $B$G$"$l$P(B `current-time-string' $B$N=PNO$N$^(B -$B$^L5JQ49!#(B +DAYOFWEEK-ALIST-INDEX は `skk-day-of-week-alist' の各要素の cadr を + 0 とする index \(number\)。nil であれば `current-time-string' の出力のま +ま無変換。 -AND-TIME $B$O;~9o$bI=<($9$k$+$I$&$+(B \(boolean\)$B!#(B" +AND-TIME は時刻も表示するかどうか \(boolean\)。" (cl-multiple-value-bind (year month day day-of-week hour minute second v) date-information (when gengo @@ -194,20 +194,20 @@ AND-TIME $B$O;~9o$bI=<($9$k$+$I$&$+(B \(boolean\)$B!#(B" (setq minute (skk-num-exp minute num-type)) (setq second (skk-num-exp second num-type))) (if and-time - (format (or format "%s$BG/(B%s$B7n(B%s$BF|(B(%s)%s$B;~(B%s$BJ,(B%s$BIC(B") + (format (or format "%s年%s月%s日(%s)%s時%s分%s秒") year month day day-of-week hour minute second) - (format (or format "%s$BG/(B%s$B7n(B%s$BF|(B(%s)") year month day day-of-week)))) + (format (or format "%s年%s月%s日(%s)") year month day day-of-week)))) ;;;###autoload (cl-defun skk-relative-date (pp-function format and-time &key (yy 0) (mm 0) (dd 0)) - "`skk-current-date' $B$N3HD%HG!#0z?t$G$"$k(B PP-FUNCTION, FORMAT $B5Z$S(B AND-TIME - $B$O(B `skk-current-date' $B$r;2>H$N$3$H!#(B - -$B \"$BJ?@.(B25$BG/(B2$B7n(B03$BF|(B($BF|(B)\" - (skk-relative-date (lambda (arg) body) nil nil :dd -1) => \"$BJ?@.(B25$BG/(B2$B7n(B02$BF|(B($BEZ(B)\" - (skk-relative-date (lambda (arg) body) nil nil :mm -1) => \"$BJ?@.(B25$BG/(B1$B7n(B03$BF|(B($BLZ(B)\" - (skk-relative-date (lambda (arg) body) nil nil :yy 2) => \"$BJ?@.(B27$BG/(B2$B7n(B03$BF|(B($B2P(B)\" + "`skk-current-date' の拡張版。引数である PP-FUNCTION, FORMAT 及び AND-TIME + は `skk-current-date' を参照のこと。 + +実行例 + (skk-relative-date) => \"平成25年2月03日(日)\" + (skk-relative-date (lambda (arg) body) nil nil :dd -1) => \"平成25年2月02日(土)\" + (skk-relative-date (lambda (arg) body) nil nil :mm -1) => \"平成25年1月03日(木)\" + (skk-relative-date (lambda (arg) body) nil nil :yy 2) => \"平成27年2月03日(火)\" " (let ((specified-time (cl-multiple-value-bind (sec min hour day month year dow dst zone) (decode-time) @@ -231,11 +231,11 @@ AND-TIME $B$O;~9o$bI=<($9$k$+$I$&$+(B \(boolean\)$B!#(B" ;;;###autoload (defun skk-today (arg) "\ -`current-time-string' $B$N=PNO$r2C9)$7!"8=:_$NF|;~$rI=$9J8;zNs$r:n$j!"A^F~(B -$B$9$k!#!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B SKK $B$N<-=q(B -$B$K2C$(!"(B\"/clock\"+ SPC $B$GJQ49$9$k$3$H$K$h$C$F$b5/F02D!#(B\\[keyboard-quit] $B$G;_$^$k!#(B -$Bl9g$O!"(B\\[keyboard-quit] $B$7$?;~E@$N;~E@$NF|;~$rA^F~$9$k!#(B - -$B%*%W%7%g%J%k0z?t$N(B KAKUTEI-WHEN-QUIT $B$,(B non-nil $B$G$"$l$P(B \\[keyboard-quit] $B$7$?$H$-$K3NDj$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B TIME-SIGNAL $B$,(B non-nil $B$G$"$l$P!"(BNTT $B$N;~JsIw$K(B ding $B$9$k!#(B -$B$=$l$>$l(B \"clock /(skk-clock nil t)/\" $B$N$h$&$J%(%s%H%j$r<-=q$KA^F~$9$l$PNI$$!#(B -`skk-date-ad' $B$H(B `skk-number-style' $B$K$h$C$FI=<(J}K!$N%+%9%?%^%$%:$,2DG=!#(B" + "ミニバッファにデジタル時計を表示する。 +quit すると、その時点の日時を候補として挿入する。 +quit したときに起動してからの経過時間をミニバッファに表示する。 +interactive に起動する他、\"clock /(skk-clock)/\" などのエントリを SKK の辞書 +に加え、\"/clock\"+ SPC で変換することによっても起動可。\\[keyboard-quit] で止まる。 +実行変換で起動した場合は、\\[keyboard-quit] した時点の時点の日時を挿入する。 + +オプショナル引数の KAKUTEI-WHEN-QUIT が non-nil であれば \\[keyboard-quit] したときに確定する。 +オプショナル引数の TIME-SIGNAL が non-nil であれば、NTT の時報風に ding する。 +それぞれ \"clock /(skk-clock nil t)/\" のようなエントリを辞書に挿入すれば良い。 +`skk-date-ad' と `skk-number-style' によって表示方法のカスタマイズが可能。" (interactive "*") (let ((start (current-time)) end @@ -269,18 +269,18 @@ interactive $B$K5/F0$9$kB>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S (cond ((or (not skk-number-style) (eq skk-number-style 0)) - (setq expr1 "[789]$BIC(B" - expr2 "0$BIC(B")) + (setq expr1 "[789]秒" + expr2 "0秒")) ((or (eq skk-number-style t) - ;; skk-number-style $B$K(B $B?t;z$H(B t $B0J30$N(B non-nil $BCM$rF~$l$F$$$k>l(B - ;; $B9g!"(B= $B$r;H$&$H(B Wrong type argument: number-or-marker-p, xxxx - ;; $B$K$J$C$F$7$^$&!#(B + ;; skk-number-style に 数字と t 以外の non-nil 値を入れている場 + ;; 合、= を使うと Wrong type argument: number-or-marker-p, xxxx + ;; になってしまう。 (eq skk-number-style 1)) - (setq expr1 "[$B#7#8#9(B]$BIC(B" - expr2 "$B#0IC(B")) + (setq expr1 "[789]秒" + expr2 "0秒")) (t - (setq expr1 "[$B<7H,6e(B]$BIC(B" - expr2 "$B!;IC(B"))) + (setq expr1 "[七八九]秒" + expr2 "〇秒"))) (save-match-data (condition-case nil @@ -294,18 +294,18 @@ interactive $B$K5/F0$9$kB>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S (when time-signal (cond ((string-match expr1 mes) - ;; [7890] $B$N$h$&$K@55,I=8=$r;H$o$:!"(B7 $B$@$1$GA4$F$N%^%7%s$,(B - ;; $BCe$$$F$f$1$PNI$$$N$@$,(B...$B!#CzEY$3$N4X?tl9g$,$"$k!#(B + ;; [7890] のように正規表現を使わず、7 だけで全てのマシンが + ;; 着いてゆけば良いのだが...。丁度この関数実行時に Garbage + ;; collection が呼ばれても表示される数字が飛ぶ場合がある。 (ding)) ((string-match expr2 mes) - ;; 0 $B$@$1!V%]!A%s!W$H$$$-$?$$$H$3$m$G$9$,!"%^%7%s$K$h$C(B - ;; $B$F:9$,$"$k!#(B - ;; 386SX 25Mhz + Mule-2.x $B$@$H!V%T%C!"%T%C!W$H$$$&46$8!#(B - ;; $BIU$$$F$f$/$N$,Hs>o$K?I$$!#(B68LC040 33Mhz + NEmacs $B$@$H(B - ;; $B!V%T%T%C!W$H$J$j!"2;$N%?%$%_%s%0$ONI$$$N$@$,!"$H$-(B - ;; $B$I$-(B 1 $BICJ,$D$$$F$$$1$J$/$J$k!#(BPentium 90Mhz + - ;; Mule-2.x$B$@$H!V%T%C!W$H$$$&C12;$K$J$C$F$7$^$&(B... (;_;)$B!#(B + ;; 0 だけ「ポ~ン」といきたいところですが、マシンによっ + ;; て差がある。 + ;; 386SX 25Mhz + Mule-2.x だと「ピッ、ピッ」という感じ。 + ;; 付いてゆくのが非常に辛い。68LC040 33Mhz + NEmacs だと + ;; 「ピピッ」となり、音のタイミングは良いのだが、とき + ;; どき 1 秒分ついていけなくなる。Pentium 90Mhz + + ;; Mule-2.xだと「ピッ」という単音になってしまう... (;_;)。 (if snd (ding) (ding) @@ -323,16 +323,16 @@ interactive $B$K5/F0$9$kB>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S (skk-current-date nil nil t) (when kakutei-when-quit (setq skk-kakutei-flag t)) - (message "$B7P2a;~4V(B: %s $BIC(B" + (message "経過時間: %s 秒" (skk-time-difference start end)))))))) ;;;###autoload (defun skk-ad-to-gengo (gengo-index &optional divider tail not-gannen) - ;; $B@>Nq$r859f$KJQ49$9$k!#%*%W%7%g%J%k0z?t$N(B DIVIDER $B$,;XDj$5$l$F$$$l$P!"G/9f(B - ;; $B$H?t;z$N4V$K!"(BTAIL $B$,;XDj$5$l$F$$$l$P!"?t;z$NKvHx$K!"$=$l$>$l$NJ8;zNs$rO"(B - ;; $B7k$9$k!#(B - ;; $B<-=q8+=P$7Nc(B; - ;; $B$;$$$l$-(B#$B$M$s(B /(skk-ad-to-gengo 0 nil "$BG/(B")/(skk-ad-to-gengo 0 " " " $BG/(B")/ + ;; 西暦を元号に変換する。オプショナル引数の DIVIDER が指定されていれば、年号 + ;; と数字の間に、TAIL が指定されていれば、数字の末尾に、それぞれの文字列を連 + ;; 結する。 + ;; 辞書見出し例; + ;; せいれき#ねん /(skk-ad-to-gengo 0 nil "年")/(skk-ad-to-gengo 0 " " " 年")/ (let ((v (skk-ad-to-gengo-1 (string-to-number (car skk-num-list)) not-gannen))) @@ -351,9 +351,9 @@ interactive $B$K5/F0$9$kB>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S ;; gotten from `skk-gengo-alist', and cdr is a number ;; of year. ;; if NOT-GANNEN is non-nil and calculated year is 1, - ;; return a value of which cdr is "$B85(B" (string). + ;; return a value of which cdr is "元" (string). (when (>= 1866 ad) - (skk-error "$BJ,$j$^$;$s(B" "Unknown year")) + (skk-error "分りません" "Unknown year")) (cons (cond ((or (< ad 1912) (and (= ad 1912) month (< month 7)) (and (= ad 1912) month (= month 7) day (< day 30))) (setq ad (- ad 1867)) @@ -373,16 +373,16 @@ interactive $B$K5/F0$9$kB>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S (setq ad (- ad 2018)) (cdr (assq 'reiwa skk-gengo-alist)))) (cond (not-gannen ad) - ((= ad 1) "$B85(B") + ((= ad 1) "元") (t ad)))) ;;;###autoload (defun skk-gengo-to-ad (&optional head tail) - ;; $B859f$r@>Nq$KJQ49$9$k!#%*%W%7%g%J%k0z?t$N(B HEAD, TAIL $B$,;XDj$5$l$F$$(B - ;; $B$l$P!"$=$NJ8;zNs$r@hF,!"KvHx$KO"7k$9$k!#(B - ;; $B<-=q8+=P$7Nc(B; - ;; $B$7$g$&$o(B#$B$M$s(B /(skk-gengo-to-ad "" "$BG/(B")/(skk-gengo-to-ad "" " $BG/(B")/\ - ;; (skk-gengo-to-ad "$B@>Nq(B" "$BG/(B")/(skk-gengo-to-ad "$B@>Nq(B" " $BG/(B")/ + ;; 元号を西暦に変換する。オプショナル引数の HEAD, TAIL が指定されてい + ;; れば、その文字列を先頭、末尾に連結する。 + ;; 辞書見出し例; + ;; しょうわ#ねん /(skk-gengo-to-ad "" "年")/(skk-gengo-to-ad "" " 年")/\ + ;; (skk-gengo-to-ad "西暦" "年")/(skk-gengo-to-ad "西暦" " 年")/ (save-match-data (when (string-match (car skk-num-list) skk-henkan-key) @@ -401,35 +401,35 @@ interactive $B$K5/F0$9$kB>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S (+ number (cond ((eq number 0) - (skk-error "0 $BG/$O$"$jF@$J$$(B" + (skk-error "0 年はあり得ない" "Cannot convert 0 year")) - ((member gengo '("$B$l$$$o(B" "$BNaOB(B")) + ((member gengo '("れいわ" "令和")) 2018) - ((member gengo '("$B$X$$$;$$(B" "$BJ?@.(B")) + ((member gengo '("へいせい" "平成")) 1988) - ((member gengo '("$B$7$g$&$o(B" "$B>!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B S ;;;###autoload (defun skk-ignore-dic-word (&rest no-show-list) - ;; $B6&MQ<-=q$KEPO?$5$l$F$$$k!"0c$C$F$$$k(B/$B5$$KF~$i$J$$JQ49$r=P$5$J$$$h$&$K$9(B - ;; $B$k!#(B - ;; $B<-=q8+=P$7Nc(B; - ;; $B$k$9$P$s(B /$BN1C$9!#>C$9$Y$-8uJd$O(B - ;; skk-henkan-list $B$+$iD>@\Cj=P$7$F$$$k$N$G(B delete $B$G$O$J$/(B delq $B$G==J,!#(B + ;; skk-ignore-dic-word 自身のエントリを消す。消すべき候補は + ;; skk-henkan-list から直接抽出しているので delete ではなく delq で十分。 (setq skk-henkan-list (delq (nth skk-henkan-count skk-henkan-list) skk-henkan-list)) - ;; $BA48uJd$r(B skk-henkan-list $B$KF~$l$k!#(B + ;; 全候補を skk-henkan-list に入れる。 (while skk-current-search-prog-list (setq skk-henkan-list (skk-nunion skk-henkan-list (skk-search)))) - ;; $BITMW$J8uJd$rC$7$?$N$G!"(B - ;; skk-henkan-count $B$OuBV$KLa$9!#(B - ;; (nth -1 '(A B C)) $B$O!"(BA $B$rJV$9$N$G!"(Bn $B$,Ii$N?t$G$J$$$3$H$r%A%'%C%/(B - ;; $B$7$F$*$/I,MW$,$"$k!#(B + ;; 空文字列が登録されたら辞書登録の前の状態に戻す。 + ;; (nth -1 '(A B C)) は、A を返すので、n が負の数でないことをチェック + ;; しておく必要がある。 (if (> skk-henkan-count 0) (setq skk-henkan-count (- skk-henkan-count 1) new-word (nth skk-henkan-count skk-henkan-list)) - ;; (1- skk-henkan-count) == -1 $B$K$J$k!#"&%b!<%I$KLa$9!#(B + ;; (1- skk-henkan-count) == -1 になる。▽モードに戻す。 (throw 'next-word 'none))) ;; (throw 'next-word new-word))) ;;;###autoload (defun skk-henkan-face-off-and-remove-itself () - ;; skk-insert-new-word-function $B$K%;%C%H$9$k$?$a$N4X?t!#%+%l%s%H%P%C%U%!$N(B - ;; $BJQ49ItJ,$,(B Overlay $B$N(B face $BB0@-$K$h$C$FI=<($,JQ99$5$l$F$$$k$N$rLa$7!"$=$N(B - ;; $B8e<+J,<+?H$r(B skk-insert-new-word-function $B$+$iH$7!"49;;$r9T$&!#(B -NUMBER $B$K$D$$$F(B UNIT-FROM $B$+$i(B UNIT-TO $B$X$N49;;$r9T$&!#(B" + "`skk-units-alist'を参照し、換算を行う。 +NUMBER について UNIT-FROM から UNIT-TO への換算を行う。" (let ((v (assoc unit-to (cdr (assoc unit-from skk-units-alist))))) (when v diff --git a/skk-hint.el b/skk-hint.el index 70c3a7b8..b53b0083 100644 --- a/skk-hint.el +++ b/skk-hint.el @@ -21,49 +21,49 @@ ;;; Commentary: -;; $B$3$l$O"&%b!<%I$H"'%b!<%I$GFI$_$N@Q=89g(B ($B$_$?$$$J$b$N(B) $B$ruBV$K$J$j$^$9!#(B +;; 例えば、▽かんどう となっているときに、; michi SPC と入力すると、 +;; ▼間道という状態になります。 -;; $B87L)$K@Q=89g$ruBV$K$J$j$^$9!#(B +;; 厳密に積集合を取っているわけではなく、▽かんどう で ; doubutsu SPC +;; と入力すると▼感動という状態になります。 -;; $B$D$^$j!"DL>o$NJQ498uJd$N$J$+$G!"%R%s%H$H$7$FM?$($i$l$?FI$_$r4^$s$@(B -;; $B4A;z$r;}$D$b$N$K8uJd$r9J$j$^$9!#(B +;; つまり、通常の変換候補のなかで、ヒントとして与えられた読みを含んだ +;; 漢字を持つものに候補を絞ります。 ;; -- Tips -- -;; skk-hint.el $B$OC14A;z$N8uJd$,$?$/$5$s$"$k>l9g$K!"$=$3$+$i8uJd$r9J$j(B -;; $B$3$`o$KM-8z$G$9!#Nc$($P(B +;; skk-hint.el は単漢字の候補がたくさんある場合に、そこから候補を絞り +;; こむ手段として非常に有効です。例えば -;; $B"&$+(B +;; ▽か -;; $B$rJQ49$9$k$H!"2c!"2=!"2D!"2!W$K4^$^$l$k(B +;; のように入力してから SPC を押して変換を開始すると、「かへい」の候補 +;; である「貨幣」に含まれる -;; $B"'2_(B +;; ▼貨 -;; $B$,>e0L$K8=$l$^$9!#(B +;; が上位に現れます。 ;;; Code: (require 'skk) (defadvice skk-search (around skk-hint-ad activate) - ;; skk-current-search-prog-list $B$NMWAG$K$J$C$F$$$k%W%m%0%i%`$rI>2A$7$F!"(B - ;; skk-henkan-key $B$r%-!<$K$7$F8!:w$r9T$&!#(B + ;; skk-current-search-prog-list の要素になっているプログラムを評価して、 + ;; skk-henkan-key をキーにして検索を行う。 (if (null skk-hint-henkan-hint) ad-do-it (let (l kouho hint) @@ -102,7 +102,7 @@ (list (concat henkan-key skk-hint-okuri-char) okurigana skk-hint-okuri-char))))) (t - (skk-error "$BM=4|$7$J$$>uBV$G(B %s $B$,8F$P$l$^$7$?(B" + (skk-error "予期しない状態で %s が呼ばれました" "%s is called from unexpected place" "skk-hint-setup-hint"))) (setq skk-hint-inhibit-kakutei nil)) @@ -187,7 +187,7 @@ skk-hint-inhibit-kakutei nil))) (defun skk-hint-member (char kouho) - ;; $BJ8;zNs$N%j%9%H(B KOUHO $B$NCf$KJ8;z(B CHAR $B$r4^$`$b$N$,$"$l$P!"$=$NJ8;zNs$rJV$9(B + ;; 文字列のリスト KOUHO の中に文字 CHAR を含むものがあれば、その文字列を返す (catch 'found (dolist (word kouho) (let ((length (length word))) @@ -196,8 +196,8 @@ (throw 'found word))))))) (defun skk-hint-limit (kouho hint) - ;; $BJQ498uJd(B KOUHO $B$r!"J8;zNs$N%j%9%H(B HINT $B$NCf$N$I$l$+$NJ8;z$,(B - ;; $B4^$^$l$F$$$k$b$N$N$_$K@)8B$9$k!#(B + ;; 変換候補 KOUHO を、文字列のリスト HINT の中のどれかの文字が + ;; 含まれているもののみに制限する。 (let ((kouho (copy-sequence kouho)) result) (dolist (string hint) diff --git a/skk-inline.el b/skk-inline.el index 19a8ed97..b828d1fc 100644 --- a/skk-inline.el +++ b/skk-inline.el @@ -33,8 +33,8 @@ ;; Functions. (defun skk-add-background-color (string color) - "STRING $B$N$&$AGX7J?'$,;XDj$5$l$F$$$J$$J8;z$K8B$C$F(B COLOR $B$NGX7J?'$r(B -$BE,MQ$9$k!#(B" + "STRING のうち背景色が指定されていない文字に限って COLOR の背景色を +適用する。" (when (and string color (color-defined-p color)) @@ -79,7 +79,7 @@ (defun skk-inline-show (str face &optional vertical-str text-max-height) (skk-delete-overlay skk-inline-overlays) (if (and (eq 'vertical skk-show-inline) - ;; window $B$,8uJd72$rI=<($G$-$k9b$5$,$"$k$+%A%'%C%/(B + ;; window が候補群を表示できる高さがあるかチェック (stringp vertical-str) (integerp text-max-height) (< (1+ text-max-height) (window-body-height))) @@ -105,8 +105,8 @@ (setq string (funcall skk-inline-show-vertically-decor string))) (unless (skk-in-minibuffer-p) (let* ((margin 2) - ;; XXX beg-col $B$,(B -1 $B$K$J$C$F(B `make-string' $B$G%(%i!<$K$J$k(B - ;; $B>l9g$"$j(B ? + ;; XXX beg-col が -1 になって `make-string' でエラーになる + ;; 場合あり ? (beg-col (max 0 (- (skk-screen-column) margin))) (candidates (split-string string "\n")) (max-width (skk-max-string-width candidates)) @@ -141,10 +141,10 @@ (setq bottom (> i (vertical-motion i))) (cond (bottom - ;; $B%P%C%U%!:G=*9T$G$OIaDL$K(B overlay $B$rDI2C$7$F$$$/J}K!$@(B - ;; $B$H(B overlay $B$NI=<($5$l$k=gHV$,68$&$3$H$,$"$C$F$&$^$/$J(B - ;; $B$$!#$7$?$,$C$FA02s$N(B overlay $B$N(B after-string $B$KDI2C$9(B - ;; $B$k!#(B + ;; バッファ最終行では普通に overlay を追加していく方法だ + ;; と overlay の表示される順番が狂うことがあってうまくな + ;; い。したがって前回の overlay の after-string に追加す + ;; る。 (setq ol (cond ((< (overlay-end (car skk-inline-overlays)) (point)) @@ -155,32 +155,32 @@ (t (setq col (skk-move-to-screen-column beg-col)) (cond ((> beg-col col) - ;; $B7e9g$o$;$N6uGr$rDI2C(B + ;; 桁合わせの空白を追加 (setq str (concat (make-string (- beg-col col) ? ) str))) - ;; overlay $B$N:8C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B + ;; overlay の左端がマルチ幅文字と重なったときの微調整 ((< beg-col col) (backward-char) (setq col (skk-screen-column)) (setq str (concat (make-string (- beg-col col) ? ) str)))))))) - ;; $B$3$N;~E@$G(B overlay $B$N3+;O0LCV$K(B point $B$,$"$k(B + ;; この時点で overlay の開始位置に point がある (unless bottom (let ((ol-beg (point)) (ol-end-col (+ col (string-width str))) base-ol) (setq col (skk-move-to-screen-column ol-end-col)) - ;; overlay $B$N1&C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B + ;; overlay の右端がマルチ幅文字と重なったときの微調整 (when (< ol-end-col col) (setq str (concat str (make-string (- col ol-end-col) ? )))) (setq ol (make-overlay ol-beg (point))) - ;; $B85%F%-%9%H$N(B face $B$r7Q>5$7$J$$$h$&$K(B1$B$D8e$m$K(B overlay - ;; $B$r:n$C$F!"$=$N(B face $B$r(B 'default $B$K;XDj$7$F$*$/(B + ;; 元テキストの face を継承しないように1つ後ろに overlay + ;; を作って、その face を 'default に指定しておく (setq base-ol (make-overlay (point) (1+ (point)))) (overlay-put base-ol 'face 'default) (push base-ol skk-inline-overlays) - ;; $B8uJd$,2D;k$+$I$&$+%A%'%C%/(B + ;; 候補が可視かどうかチェック (unless (pos-visible-in-window-p (point)) (setq invisible t))))) (overlay-put ol 'invisible t) diff --git a/skk-isearch.el b/skk-isearch.el index d319083a..436b2d04 100644 --- a/skk-isearch.el +++ b/skk-isearch.el @@ -150,7 +150,7 @@ The MODE should be canonical." (t (skk-isearch-turn-off-skk-mode)))) - + (defun skk-isearch-symbolic-mode (mode) "Return symbolic skk isearch mode for given numerical MODE." (car (rassq mode skk-isearch-mode-canonical-alist))) @@ -297,7 +297,7 @@ Optional argument PREFIX is appended if given." skk-isearch-incomplete-message prefix))) (isearch-message))) - + ;; ;; define keymap ;; @@ -383,7 +383,7 @@ Optional argument PREFIX is appended if given." ;; map) - + ;; ;; wrapper functions ;; @@ -450,7 +450,7 @@ If the conversion is in progress and no string is fixed, just return nil." ;; update echo area. (skk-isearch-incomplete-message)))) - + ;; ;; regexp search supports. ;; @@ -492,7 +492,7 @@ If the current mode is different from previous, remove it first." (skk-isearch-search-string-regexp string) string)) - + ;; ;; interactive functions. ;; @@ -678,7 +678,7 @@ If the current mode is different from previous, remove it first." (if (fboundp 'isearch-other-control-char) ; 2013-10-08 Remove functions. (isearch-other-control-char)))))) ; GNU Emacs 24.4 $B$+$iGQ;_(B - + ;; ;; advices. ;; diff --git a/skk-jisx0201.el b/skk-jisx0201.el index ed53b4cc..d7815229 100644 --- a/skk-jisx0201.el +++ b/skk-jisx0201.el @@ -1,4 +1,4 @@ -;;; skk-jisx0201.el --- JIS X 0201 (I6E(B, Roman -*- coding: iso-2022-7bit -*- +;;; skk-jisx0201.el --- JIS X 0201 カナ, Roman -*- coding: iso-2022-7bit -*- ;; Copyright (C) 1999-2007 SKK Development Team @@ -25,37 +25,37 @@ ;;; Commentary: -;; <$B4JC1$J@bL@(B> +;; <簡単な説明> -;; ~/.skk $B$K(B +;; ~/.skk に ;; (setq skk-use-jisx0201-input-method t) -;; $B$H=q$/$3$H$G%$%s%9%H!<%k$5$l$^$9!#;H$$J}$O0J2<$N$h$&$K$J$j$^$9!#(B +;; と書くことでインストールされます。使い方は以下のようになります。 -;; $B!}%+%?%+%J%b!<%I$K$*$$$F!"(B -;; $B!&(B"C-q" $B$GA43Q%+%J%b!<%I$HH>3Q%+%J%b!<%I$r@Z$j$+$($^$9!#(B +;; ◎カタカナモードにおいて、 +;; ・"C-q" で全角カナモードと半角カナモードを切りかえます。 -;; $B!}$R$i$,$J(B/$B%+%?%+%JN>%b!<%IFb$G$N"&%b!<%I$K$*$$$F!"(B -;; $B!&(B"C-q" $B$r2!$9$H(I$$B8+=P$78l$H$7$FF~NO$5$l$?$R$i$,$J(B/$B%+%?%+%J$r(IJ]686@6E$B$KJQ(B -;; $B49$7$^$9!#(B +;; ◎ひらがな/カタカナ両モード内での▽モードにおいて、 +;; ・"C-q" を押すと、見出し語として入力されたひらがな/カタカナをハンカクカタカナに変 +;; 換します。 -;; `skk-jisx0201-roman-rule-list' $B$K(B JISX0201.1976 Japanese Roman -;; (latin-jisx0201) $B$NJ8;zNs$rDj5A$7$F$$$^$9!#$?$@$7(B GNU Emacs 23 $B0J9_!"%U%!(B -;; $B%$%kJ]B8;~$K(B JIS X 0201 Roman $B$H(B ASCII $B$N6hJL$,$5$l$J$/$J$C$?$h$&$G$9(B ($B1_(B -;; $B5-9f$*$h$S%*!<%P!<%i%$%s$r=|$/(B)$B!#$7$?$,$C$F$3$N%U%!%$%k$N8=9THG$G$O!"$3$l(B -;; $B$i$N(B 2 $BJ8;z0J30$O(B ASCII $B$NJ8;z$,Dj5A$5$l$F$$$^$9!#(B +;; `skk-jisx0201-roman-rule-list' に JISX0201.1976 Japanese Roman +;; (latin-jisx0201) の文字列を定義しています。ただし GNU Emacs 23 以降、ファ +;; イル保存時に JIS X 0201 Roman と ASCII の区別がされなくなったようです (円 +;; 記号およびオーバーラインを除く)。したがってこのファイルの現行版では、これ +;; らの 2 文字以外は ASCII の文字が定義されています。 -;; (I6E(B $B$H(B roman $B$r@Z$jBX$($k5!G=(B `skk-toggle-jisx0201' $B$K$O%-! +;; <業務連絡> -;; GNU Emacs 20.3 $B!A(B 22 $B$G$3$N%U%!%$%k$rJT=8$9$k>l9g$O!"%U%!%$%k$r3+$/A0$K(B +;; GNU Emacs 20.3 ~ 22 でこのファイルを編集する場合は、ファイルを開く前に ;; (setq standard-translation-table-for-decode (make-translation-table nil)) -;; $B$rI>2A$7$F$/$@$5$$!#(B +;; を評価してください。 ;;; Code: @@ -63,77 +63,77 @@ (require 'japan-util) -;; $B=tHL$N;v>p$K$h$j(B skk-vars.el $B$KF~$l$k$Y$-$G$J$$JQ?t(B +;; 諸般の事情により skk-vars.el に入れるべきでない変数 (defvar skk-jisx0201-base-rule-list - '(("a" nil "(I1(B") - ("bb" "b" "(I/(B") ("ba" nil "(IJ^(B") ("be" nil "(IM^(B") - ("bi" nil "(IK^(B") ("bo" nil "(IN^(B") ("bu" nil "(IL^(B") ("bya" nil "(IK^,(B") - ("bye" nil "(IK^*(B") ("byi" nil "(IK^((B") ("byo" nil "(IK^.(B") ("byu" nil "(IK^-(B") - ("cc" "c" "(I/(B") ("cha" nil "(IA,(B") ("che" nil "(IA*(B") ("chi" nil "(IA(B") - ("cho" nil "(IA.(B") ("chu" nil "(IA-(B") ("cya" nil "(IA,(B") ("cye" nil "(IA*(B") - ("cyi" nil "(IA((B") ("cyo" nil "(IA.(B") ("cyu" nil "(IA-(B") - ("dd" "d" "(I/(B") ("da" nil "(I@^(B") ("de" nil "(IC^(B") ("dha" nil "(IC^,(B") - ("dhe" nil "(IC^*(B") ("dhi" nil "(IC^((B") ("dho" nil "(IC^.(B") ("dhu" nil "(IC^-(B") - ("di" nil "(IA^(B") ("do" nil "(ID^(B") ("du" nil "(IB^(B") ("dya" nil "(IA^,(B") - ("dye" nil "(IA^*(B") ("dyi" nil "(IA^((B") ("dyo" nil "(IA^.(B") ("dyu" nil "(IA^-(B") - ("e" nil "(I4(B") - ("ff" "f" "(I/(B") ("fa" nil "(IL'(B") ("fe" nil "(IL*(B") ("fi" nil "(IL((B") - ("fo" nil "(IL+(B") ("fu" nil "(IL(B") ("fya" nil "(IL,(B") ("fye" nil "(IL*(B") - ("fyi" nil "(IL((B") ("fyo" nil "(IL.(B") ("fyu" nil "(IL-(B") ("gg" "g" "(I/(B") - ("ga" nil "(I6^(B") ("ge" nil "(I9^(B") ("gi" nil "(I7^(B") ("go" nil "(I:^(B") - ("gu" nil "(I8^(B") ("gya" nil "(I7^,(B") ("gye" nil "(I7^*(B") ("gyi" nil "(I7^((B") - ("gyo" nil "(I7^.(B") ("gyu" nil "(I7^-(B") - ("ha" nil "(IJ(B") ("he" nil "(IM(B") ("hi" nil "(IK(B") ("ho" nil "(IN(B") - ("hu" nil "(IL(B") ("hya" nil "(IK,(B") ("hye" nil "(IK*(B") ("hyi" nil "(IK((B") - ("hyo" nil "(IK.(B") ("hyu" nil "(IK-(B") ("i" nil "(I2(B") - ("jj" "j" "(I/(B") ("ja" nil "(I<^,(B") ("je" nil "(I<^*(B") ("ji" nil "(I<^(B") - ("jo" nil "(I<^.(B") ("ju" nil "(I<^-(B") ("jya" nil "(I<^,(B") ("jye" nil "(I<^*(B") - ("jyi" nil "(I<^((B") ("jyo" nil "(I<^.(B") ("jyu" nil "(I<^-(B") - ("kk" "k" "(I/(B") ("ka" nil "(I6(B") ("ke" nil "(I9(B") ("ki" nil "(I7(B") - ("ko" nil "(I:(B") ("ku" nil "(I8(B") ("kya" nil "(I7,(B") ("kye" nil "(I7*(B") - ("kyi" nil "(I7((B") ("kyo" nil "(I7.(B") ("kyu" nil "(I7-(B") - ("mm" "c" "(I/(B") ("ma" nil "(IO(B") ("me" nil "(IR(B") ("mi" nil "(IP(B") - ("mo" nil "(IS(B") ("mu" nil "(IQ(B") ("mya" nil "(IP,(B") ("mye" nil "(IP*(B") - ("myi" nil "(IP((B") ("myo" nil "(IP.(B") ("myu" nil "(IP-(B") - ("n" nil "(I](B") ("n'" nil "(I](B") ("na" nil "(IE(B") ("ne" nil "(IH(B") - ("ni" nil "(IF(B") ("nn" nil "(I](B") ("no" nil "(II(B") ("nu" nil "(IG(B") - ("nya" nil "(IF,(B") ("nye" nil "(IF*(B") ("nyi" nil "(IF((B") ("nyo" nil "(IF.(B") - ("nyu" nil "(IF-(B") - ("o" nil "(I5(B") - ("pp" "p" "(I/(B") ("pa" nil "(IJ_(B") ("pe" nil "(IM_(B") ("pi" nil "(IK_(B") - ("po" nil "(IN_(B") ("pu" nil "(IL_(B") ("pya" nil "(IK_,(B") ("pye" nil "(IK_*(B") - ("pyi" nil "(IK_((B") ("pyo" nil "(IK_.(B") ("pyu" nil "(IK_-(B") - ("rr" "r" "(I/(B") ("ra" nil "(IW(B") ("re" nil "(IZ(B") ("ri" nil "(IX(B") - ("ro" nil "(I[(B") ("ru" nil "(IY(B") ("rya" nil "(IX,(B") ("rye" nil "(IX*(B") - ("ryi" nil "(IX((B") ("ryo" nil "(IX.(B") ("ryu" nil "(IX-(B") - ("ss" "s" "(I/(B") ("sa" nil "(I;(B") ("se" nil "(I>(B") ("sha" nil "(I<,(B") - ("she" nil "(I<*(B") ("shi" nil "(I<(B") ("sho" nil "(I<.(B") ("shu" nil "(I<-(B") - ("si" nil "(I<(B") ("so" nil "(I?(B") ("su" nil "(I=(B") ("sya" nil "(I<,(B") - ("sye" nil "(I<*(B") ("syi" nil "(I<((B") ("syo" nil "(I<.(B") ("syu" nil "(I<-(B") - ("tt" "t" "(I/(B") ("ta" nil "(I@(B") ("te" nil "(IC(B") ("tha" nil "(IC'(B") - ("the" nil "(IC*(B") ("thi" nil "(IC((B") ("tho" nil "(IC.(B") ("thu" nil "(IC-(B") - ("ti" nil "(IA(B") ("to" nil "(ID(B") ("tsu" nil "(IB(B") ("tu" nil "(IB(B") - ("tya" nil "(IA,(B") ("tye" nil "(IA*(B") ("tyi" nil "(IA((B") ("tyo" nil "(IA.(B") - ("tyu" nil "(IA-(B") - ("u" nil "(I3(B") - ("vv" "v" "(I/(B") ("va" nil "(I3^'(B") ("ve" nil "(I3^*(B") ("vi" nil "(I3^((B") - ("vo" nil "(I3^+(B") ("vu" nil "(I3^(B") - ("ww" "w" "(I/(B") ("wa" nil "(I\(B") ("we" nil "(I3*(B") ("wi" nil "(I3((B") - ("wo" nil "(I&(B") ("wu" nil "(I3(B") - ("xx" "x" "(I/(B") ("xa" nil "(I'(B") ("xe" nil "(I*(B") ("xi" nil "(I((B") - ("xka" nil "(I6(B") ("xke" nil "(I9(B") ("xo" nil "(I+(B") ("xtsu" nil "(I/(B") - ("xtu" nil "(I/(B") ("xu" nil "(I)(B") ("xwa" nil "(I\(B") ("xwe" nil "(I*(B") - ("xwi" nil "(I((B") ("xya" nil "(I,(B") ("xyo" nil "(I.(B") ("xyu" nil "(I-(B") - ("yy" "y" "(I/(B") ("ya" nil "(IT(B") ("ye" nil "(I2*(B") ("yo" nil "(IV(B") - ("yu" nil "(IU(B") - ("zz" "z" "(I/(B") ("z," nil "$B!E(B") ("z-" nil "$B!A(B") ("z." nil "$B!D(B") - ("z/" nil "(I%(B") ("z[" nil "$B!X(B") ("z]" nil "$B!Y(B") ("za" nil "(I;^(B") - ("ze" nil "(I>^(B") ("zh" nil "$B"+(B") ("zi" nil "(I<^(B") ("zj" nil "$B"-(B") - ("zk" nil "$B",(B") ("zl" nil "$B"*(B") ("zo" nil "(I?^(B") ("zu" nil "(I=^(B") - ("zya" nil "(I<^,(B") ("zye" nil "(I<^*(B") ("zyi" nil "(I<^((B") ("zyo" nil "(I<^.(B") - ("zyu" nil "(I<^-(B") - ("," nil "(I$(B") ("." nil "(I!(B") ("-" nil "(I0(B") (":" nil ":") (";" nil ";") - ("?" nil "?") ("[" nil "(I"(B") ("]" nil "(I#(B") + '(("a" nil "ア") + ("bb" "b" "ッ") ("ba" nil "バ") ("be" nil "ベ") + ("bi" nil "ビ") ("bo" nil "ボ") ("bu" nil "ブ") ("bya" nil "ビャ") + ("bye" nil "ビェ") ("byi" nil "ビィ") ("byo" nil "ビョ") ("byu" nil "ビュ") + ("cc" "c" "ッ") ("cha" nil "チャ") ("che" nil "チェ") ("chi" nil "チ") + ("cho" nil "チョ") ("chu" nil "チュ") ("cya" nil "チャ") ("cye" nil "チェ") + ("cyi" nil "チィ") ("cyo" nil "チョ") ("cyu" nil "チュ") + ("dd" "d" "ッ") ("da" nil "ダ") ("de" nil "デ") ("dha" nil "デャ") + ("dhe" nil "デェ") ("dhi" nil "ディ") ("dho" nil "デョ") ("dhu" nil "デュ") + ("di" nil "ヂ") ("do" nil "ド") ("du" nil "ヅ") ("dya" nil "ヂャ") + ("dye" nil "ヂェ") ("dyi" nil "ヂィ") ("dyo" nil "ヂョ") ("dyu" nil "ヂュ") + ("e" nil "エ") + ("ff" "f" "ッ") ("fa" nil "ファ") ("fe" nil "フェ") ("fi" nil "フィ") + ("fo" nil "フォ") ("fu" nil "フ") ("fya" nil "フャ") ("fye" nil "フェ") + ("fyi" nil "フィ") ("fyo" nil "フョ") ("fyu" nil "フュ") ("gg" "g" "ッ") + ("ga" nil "ガ") ("ge" nil "ゲ") ("gi" nil "ギ") ("go" nil "ゴ") + ("gu" nil "グ") ("gya" nil "ギャ") ("gye" nil "ギェ") ("gyi" nil "ギィ") + ("gyo" nil "ギョ") ("gyu" nil "ギュ") + ("ha" nil "ハ") ("he" nil "ヘ") ("hi" nil "ヒ") ("ho" nil "ホ") + ("hu" nil "フ") ("hya" nil "ヒャ") ("hye" nil "ヒェ") ("hyi" nil "ヒィ") + ("hyo" nil "ヒョ") ("hyu" nil "ヒュ") ("i" nil "イ") + ("jj" "j" "ッ") ("ja" nil "ジャ") ("je" nil "ジェ") ("ji" nil "ジ") + ("jo" nil "ジョ") ("ju" nil "ジュ") ("jya" nil "ジャ") ("jye" nil "ジェ") + ("jyi" nil "ジィ") ("jyo" nil "ジョ") ("jyu" nil "ジュ") + ("kk" "k" "ッ") ("ka" nil "カ") ("ke" nil "ケ") ("ki" nil "キ") + ("ko" nil "コ") ("ku" nil "ク") ("kya" nil "キャ") ("kye" nil "キェ") + ("kyi" nil "キィ") ("kyo" nil "キョ") ("kyu" nil "キュ") + ("mm" "c" "ッ") ("ma" nil "マ") ("me" nil "メ") ("mi" nil "ミ") + ("mo" nil "モ") ("mu" nil "ム") ("mya" nil "ミャ") ("mye" nil "ミェ") + ("myi" nil "ミィ") ("myo" nil "ミョ") ("myu" nil "ミュ") + ("n" nil "ン") ("n'" nil "ン") ("na" nil "ナ") ("ne" nil "ネ") + ("ni" nil "ニ") ("nn" nil "ン") ("no" nil "ノ") ("nu" nil "ヌ") + ("nya" nil "ニャ") ("nye" nil "ニェ") ("nyi" nil "ニィ") ("nyo" nil "ニョ") + ("nyu" nil "ニュ") + ("o" nil "オ") + ("pp" "p" "ッ") ("pa" nil "パ") ("pe" nil "ペ") ("pi" nil "ピ") + ("po" nil "ポ") ("pu" nil "プ") ("pya" nil "ピャ") ("pye" nil "ピェ") + ("pyi" nil "ピィ") ("pyo" nil "ピョ") ("pyu" nil "ピュ") + ("rr" "r" "ッ") ("ra" nil "ラ") ("re" nil "レ") ("ri" nil "リ") + ("ro" nil "ロ") ("ru" nil "ル") ("rya" nil "リャ") ("rye" nil "リェ") + ("ryi" nil "リィ") ("ryo" nil "リョ") ("ryu" nil "リュ") + ("ss" "s" "ッ") ("sa" nil "サ") ("se" nil "セ") ("sha" nil "シャ") + ("she" nil "シェ") ("shi" nil "シ") ("sho" nil "ショ") ("shu" nil "シュ") + ("si" nil "シ") ("so" nil "ソ") ("su" nil "ス") ("sya" nil "シャ") + ("sye" nil "シェ") ("syi" nil "シィ") ("syo" nil "ショ") ("syu" nil "シュ") + ("tt" "t" "ッ") ("ta" nil "タ") ("te" nil "テ") ("tha" nil "テァ") + ("the" nil "テェ") ("thi" nil "ティ") ("tho" nil "テョ") ("thu" nil "テュ") + ("ti" nil "チ") ("to" nil "ト") ("tsu" nil "ツ") ("tu" nil "ツ") + ("tya" nil "チャ") ("tye" nil "チェ") ("tyi" nil "チィ") ("tyo" nil "チョ") + ("tyu" nil "チュ") + ("u" nil "ウ") + ("vv" "v" "ッ") ("va" nil "ヴァ") ("ve" nil "ヴェ") ("vi" nil "ヴィ") + ("vo" nil "ヴォ") ("vu" nil "ヴ") + ("ww" "w" "ッ") ("wa" nil "ワ") ("we" nil "ウェ") ("wi" nil "ウィ") + ("wo" nil "ヲ") ("wu" nil "ウ") + ("xx" "x" "ッ") ("xa" nil "ァ") ("xe" nil "ェ") ("xi" nil "ィ") + ("xka" nil "カ") ("xke" nil "ケ") ("xo" nil "ォ") ("xtsu" nil "ッ") + ("xtu" nil "ッ") ("xu" nil "ゥ") ("xwa" nil "ワ") ("xwe" nil "ェ") + ("xwi" nil "ィ") ("xya" nil "ャ") ("xyo" nil "ョ") ("xyu" nil "ュ") + ("yy" "y" "ッ") ("ya" nil "ヤ") ("ye" nil "イェ") ("yo" nil "ヨ") + ("yu" nil "ユ") + ("zz" "z" "ッ") ("z," nil "‥") ("z-" nil "~") ("z." nil "…") + ("z/" nil "・") ("z[" nil "『") ("z]" nil "』") ("za" nil "ザ") + ("ze" nil "ゼ") ("zh" nil "←") ("zi" nil "ジ") ("zj" nil "↓") + ("zk" nil "↑") ("zl" nil "→") ("zo" nil "ゾ") ("zu" nil "ズ") + ("zya" nil "ジャ") ("zye" nil "ジェ") ("zyi" nil "ジィ") ("zyo" nil "ジョ") + ("zyu" nil "ジュ") + ("," nil "、") ("." nil "。") ("-" nil "ー") (":" nil ":") (";" nil ";") + ("?" nil "?") ("[" nil "「") ("]" nil "」") ("l" nil skk-latin-mode) ("q" nil skk-toggle-katakana) ("L" nil skk-jisx0208-latin-mode) @@ -144,7 +144,7 @@ ("@" nil skk-today) ("\\" nil skk-input-by-code-or-menu) (skk-kakutei-key nil skk-kakutei)) - "*SKK JISX0201 $B%b!<%I$N%Y!<%9$N%k!<%k!#(B") + "*SKK JISX0201 モードのベースのルール。") (defvar skk-jisx0201-roman-rule-list '(("!" nil "!") ("\"" nil "\"") ("#" nil "#") ("$" nil "$") ("%" nil "%") @@ -160,7 +160,7 @@ ("P" nil "P") ("Q" nil "Q") ("R" nil "R") ("S" nil "S") ("T" nil "T") ("U" nil "U") ("V" nil "V") ("W" nil "W") ("X" nil "X") ("Y" nil "Y") ("Z" nil "Z") - ("[" nil "[") ("\\" nil "\(J\(B") ("]" nil "]") ("^" nil "^") ("_" nil "_") + ("[" nil "[") ("\\" nil "\\") ("]" nil "]") ("^" nil "^") ("_" nil "_") ("`" nil "`") ("a" nil "a") ("b" nil "b") ("c" nil "c") ("d" nil "d") ("e" nil "e") ("f" nil "f") ("g" nil "g") ("h" nil "h") ("i" nil "i") ("j" nil "j") @@ -168,13 +168,13 @@ ("p" nil "p") ("q" nil "q") ("r" nil "r") ("s" nil "s") ("t" nil "t") ("u" nil "u") ("v" nil "v") ("w" nil "w") ("x" nil "x") ("y" nil "y") ("z" nil "z") - ("{" nil "{") ("|" nil "|") ("}" nil "}") ("~" nil "(J~(B")) - "*SKK JISX0201 $B%b!<%I$N(B Roman $B$N%k!<%k!#(B") + ("{" nil "{") ("|" nil "|") ("}" nil "}") ("~" nil "~")) + "*SKK JISX0201 モードの Roman のルール。") (defvar skk-jisx0201-rule-list '(("\(" nil "(") ("{" nil "{")) - "*SKK JISX0201 $B%b!<%I$NDI2C$N%k!<%k!#(B") + "*SKK JISX0201 モードの追加のルール。") (setq skk-jisx0201-base-rule-tree (skk-compile-rule-list skk-jisx0201-base-rule-list @@ -186,7 +186,7 @@ ;; inline functions. (defsubst skk-jisx0201-mode-on (&optional arg) - "SKK JIS X 0201 ($B%+%J(B) $B%b!<%I$r5/F0$9$k!#(B" + "SKK JIS X 0201 (カナ) モードを起動する。" (make-local-variable 'skk-rule-tree) (setq skk-mode t skk-jisx0201-mode t @@ -226,7 +226,7 @@ (kill-local-variable 'skk-rule-tree)) (defadvice skk-set-okurigana (around skk-jisx0201-ad activate) - "$BH>3Q%+%J$NAw$j2>L>$r@5$7$/L>$rH>3Q%+%J$K$9$k!#(B" + "SKK JIS X 0201 モードでは送り仮名を半角カナにする。" (when skk-jisx0201-mode - (ad-set-arg 0 '("(I;(B" "(I<(B" "(I=(B" "(I>(B")))) + (ad-set-arg 0 '("サ" "シ" "ス" "セ")))) ;; functions. ;;;###autoload (defun skk-jisx0201-mode (arg) - "SKK $B$N%b!<%I$r(B JIS X 0201 $B%b!<%I$KJQ99$9$k!#(B" + "SKK のモードを JIS X 0201 モードに変更する。" (interactive "P") (skk-kakutei) (skk-jisx0201-mode-on)) (defun skk-toggle-jisx0201 (arg) - "$BH>3Q%+%J%b!<%I$H%m!<%^;z%b!<%I$r@Z$jBX$($k!#(B" + "半角カナモードとローマ字モードを切り替える。" (interactive "P") (cond ((eq skk-henkan-mode 'on) @@ -353,11 +353,11 @@ (buffer-string))) (defun skk-jisx0201-zenkaku (str) - "STR $B$N(B JIS X 0201 $B%+%JJ8;z$rBP1~$9$k(B JIS X 0208 $B$NJ8;z$GCV$-49$($k!#(B" + "STR の JIS X 0201 カナ文字を対応する JIS X 0208 の文字で置き換える。" (skk-jisx0201-string-conversion str #'skk-jisx0201-zenkaku-region)) (defun skk-jisx0201-hankaku (str) - "STR $B$N(B JIS X 0208 $BJ8;z$rBP1~$9$k(B JIS X 0201 $B%+%J$NJ8;z$GCV$-49$($k!#(B" + "STR の JIS X 0208 文字を対応する JIS X 0201 カナの文字で置き換える。" (skk-jisx0201-string-conversion str #'japanese-hankaku-region)) ;;;###autoload @@ -381,16 +381,16 @@ (japanese-zenkaku-region start end 'katakana-only)) (defun skk-jisx0201-henkan (arg) - "$B"&%b!<%I$G$"$l$P!"NN0h$N$R$i$,$J(B/$B%+%?%+%J$r(B (IJ]686@6E(B $B$KJQ49$9$k!#(B -$B"'%b!<%I$G$O2?$b$7$J$$!#(B -$B$=$NB>$N%b!<%I$G$O!"%*%j%8%J%k$N%-!<3d$jIU$1$G%P%$%s%I$5$l$F$$$k%3%^%s%I$r diff --git a/skk-jisyo-edit-mode.el b/skk-jisyo-edit-mode.el index cb0ea387..c341a7e1 100644 --- a/skk-jisyo-edit-mode.el +++ b/skk-jisyo-edit-mode.el @@ -90,26 +90,26 @@ ;;;###autoload (defun skk-edit-private-jisyo (&optional coding-system) - "$B8D?M<-=q%U%!%$%k(B `skk-jisyo' $B$rJT=8$9$k!#(B -$BG$0U$G$N8D?M<-=qJ]B8$N$"$H!"(B`skk-jisyo' $B$r3+$-!"(B`skk-jisyo-edit-mode' $B$KF~$k!#(B -$B%m!<%+%k$K(B $B0J2<$N%-!l9g$O(B SKK $B$K$h$k8D?M<-=q%P%C%U%!$N99?7$,6X;_$5$l$k!#(B +SKK 使用中の場合は SKK による個人辞書バッファの更新が禁止される。 -$B%*%W%7%g%J%k0z?t(B CODING-SYSTEM $B$K$F8D?M<-=q$N%3!<%I7O$r;XDj2DG=!#(B +オプショナル引数 CODING-SYSTEM にて個人辞書のコード系を指定可能。 -$B$3$N5!G=$O=>Mh$N @@ -25,19 +25,19 @@ ;;; Commentary: -;; skk-kakasi.el $B$O(B KAKASI $B$r(B SKK $B$NCf$+$i;H$&%$%s%?!<%U%'%$%9$G$9!#(BKAKASI $B$O!"(B -;; $B9b66M5?.$5$s(B $B$K$h$k!"!V4A;z$+$J$^$8$jJ8$r$R$i$,(B -;; $B$JJ8$d%m!<%^;zJ8$KJQ49$9$k$3$H$rL\E*$H$7$F:n@.$7$?%W%m%0%i%`$H<-=q$NAm>N!W(B -;; $B$G$9!#;d<+?H$,%K%e!<%9$d%a!<%k$rFI$s$G$$$F!"F|>oFI$_$,J,$i$J$/$FCQ$:$+$7$$(B -;; $B;W$$$r$9$k$3$H$,B?$$$N$G!"5U0z$-$r$7$?$/$F:n$j$^$7$?!#(B +;; skk-kakasi.el は KAKASI を SKK の中から使うインターフェイスです。KAKASI は、 +;; 高橋裕信さん による、「漢字かなまじり文をひらが +;; な文やローマ字文に変換することを目的として作成したプログラムと辞書の総称」 +;; です。私自身がニュースやメールを読んでいて、日常読みが分らなくて恥ずかしい +;; 思いをすることが多いので、逆引きをしたくて作りました。 -;; KAKASI $B$O!"(B +;; KAKASI は、 ;; ftp://kakasi.namazu.org/pub/kakasi/ -;; $B$K$"$j(B anonymous ftp $B$GF~L>$rA4$F$R$i$,$J$KJQ49$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - $BCfEg(B -> {$B$J$+$7$^(B|$B$J$+$8$^(B}" + "領域の漢字、送り仮名を全てひらがなに変換する。 +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + 中島 -> {なかしま|なかじま}" (interactive "*r\nP") (let ((str (skk-gyakubiki-1 start end all))) (delete-region start end) @@ -62,7 +62,7 @@ ;;;###autoload (defun skk-gyakubiki-and-henkan (start end) - "$BNN0h$N4A;z$r$R$i$,$J$KJQ49$7!"$=$N$R$i$,$J$r8+=P$78l$H$7$F$+$J4A;zJQ49$rL>$rA4$F$R$i$,$J$KJQ498e!"%(%3!<$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - $BCfEg(B -> {$B$J$+$7$^(B|$B$J$+$8$^(B}" + "領域の漢字、送り仮名を全てひらがなに変換後、エコーする。 +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + 中島 -> {なかしま|なかじま}" (interactive "r\nP") (let ((str (skk-gyakubiki-1 start end all))) (save-match-data - (when (string-match "^[ $B!!(B\t]+" str) - ;; $B@hF,$N6uGr$rL>$rA4$F%+%?%+%J$KJQ49$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - $BCfEg(B -> {$B%J%+%7%^(B|$B%J%+%8%^(B}" + "領域の漢字、送り仮名を全てカタカナに変換する。 +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + 中島 -> {ナカシマ|ナカジマ}" (interactive "*r\nP") (let ((str (skk-gyakubiki-1 start end all 'katakana))) (delete-region start end) @@ -100,22 +100,22 @@ ;;;###autoload (defun skk-gyakubiki-katakana-message (start end &optional all) - "$BNN0h$N4A;z!"Aw$j2>L>$rA4$F%+%?%+%J$KJQ498e!"%(%3!<$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - $BCfEg(B -> {$B%J%+%7%^(B|$B%J%+%8%^(B}" + "領域の漢字、送り仮名を全てカタカナに変換後、エコーする。 +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + 中島 -> {ナカシマ|ナカジマ}" (interactive "r\nP") (let ((str (skk-gyakubiki-1 start end all 'katakana))) (save-match-data - (when (string-match "^[ $B!!(B\t]+" str) - ;; $B@hF,$N6uGr$r \"$BJQ49A0(B[$B$X$s$+$s$^$((B]$B$N4A;z(B[$B$+$s$8(B]$B$NOF(B[$B$o$-(B]$B$K(B\" - -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - \"$BCfEg(B\" -> \"$BCfEg(B[{$B$J$+$7$^(B|$B$J$+$8$^(B}]\"" + "領域の漢字に全てふりがなを付ける。 +例えば、 + \"変換前の漢字の脇に\" -> \"変換前[へんかんまえ]の漢字[かんじ]の脇[わき]に\" + +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + \"中島\" -> \"中島[{なかしま|なかじま}]\"" (interactive "*r\nP") (let ((str (skk-hurigana-1 start end all))) (delete-region start end) @@ -141,27 +141,27 @@ ;;;###autoload (defun skk-hurigana-message (start end &optional all) - "$BNN0h$N4A;z$KA4$F$U$j$,$J$rIU$1!"%(%3!<$9$k!#(B -$BNc$($P!"(B - \"$BJQ49A0$N4A;z$NOF$K(B\" -> \"$BJQ49A0(B[$B$X$s$+$s$^$((B]$B$N4A;z(B[$B$+$s$8(B]$B$NOF(B[$B$o$-(B]$B$K(B\" - -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - \"$BCfEg(B\" -> \"$BCfEg(B[{$B$J$+$7$^(B|$B$J$+$8$^(B}]\"" + "領域の漢字に全てふりがなを付け、エコーする。 +例えば、 + \"変換前の漢字の脇に\" -> \"変換前[へんかんまえ]の漢字[かんじ]の脇[わき]に\" + +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + \"中島\" -> \"中島[{なかしま|なかじま}]\"" (interactive "r\nP") (message "%s" (skk-hurigana-1 start end all))) ;;;###autoload (defun skk-hurigana-katakana-region (start end &optional all) - "$BNN0h$N4A;z$KA4$F%U%j%,%J$rIU$1$k!#(B -$BNc$($P!"(B - \"$BJQ49A0$N4A;z$NOF$K(B\" -> \"$BJQ49A0(B[$B%X%s%+%s%^%((B]$B$N4A;z(B[$B%+%s%8(B]$B$NOF(B[$B%o%-(B]$B$K(B\" - -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - \"$BCfEg(B\" -> \"$BCfEg(B[{$B%J%+%7%^(B|$B%J%+%8%^(B}]\"" + "領域の漢字に全てフリガナを付ける。 +例えば、 + \"変換前の漢字の脇に\" -> \"変換前[ヘンカンマエ]の漢字[カンジ]の脇[ワキ]に\" + +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + \"中島\" -> \"中島[{ナカシマ|ナカジマ}]\"" (interactive "*r\nP") (let ((str (skk-hurigana-1 start end all 'katakana))) (delete-region start end) @@ -170,20 +170,20 @@ ;;;###autoload (defun skk-hurigana-katakana-message (start end &optional all) - "$BNN0h$N4A;z$KA4$F%U%j%,%J$rIU$1!"%(%3!<$9$k!#(B -$BNc$($P!"(B - \"$BJQ49A0$N4A;z$NOF$K(B\" -> \"$BJQ49A0(B[$B%X%s%+%s%^%((B]$B$N4A;z(B[$B%+%s%8(B]$B$NOF(B[$B%o%-(B]$B$K(B\" - -$B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B -$B$/$C$FI=<($9$k!#(B -$BNc$($P!"(B - \"$BCfEg(B\" -> \"$BCfEg(B[{$B%J%+%7%^(B|$B%J%+%8%^(B}]\"" + "領域の漢字に全てフリガナを付け、エコーする。 +例えば、 + \"変換前の漢字の脇に\" -> \"変換前[ヘンカンマエ]の漢字[カンジ]の脇[ワキ]に\" + +オプショナル引数の ALL が non-nil ならば、複数の候補がある場合は、\"{}\" でく +くって表示する。 +例えば、 + \"中島\" -> \"中島[{ナカシマ|ナカジマ}]\"" (interactive "r\nP") (message "%s" (skk-hurigana-1 start end all 'katakana))) (defun skk-hurigana-1 (start end all &optional katakana) - ;; skk-hurigana-* $B$N%5%V%k!<%A%s!#(B - ;; $B%*%W%7%g%J%k0z?t$N(B KATAKANA $B$,(B non-nil $B$G$"$l$P!"%+%?%+%J$XJQ49$9$k!#(B + ;; skk-hurigana-* のサブルーチン。 + ;; オプショナル引数の KATAKANA が non-nil であれば、カタカナへ変換する。 (let ((arg (if katakana '("-JK" "-f") '("-JH" "-f")))) @@ -195,14 +195,14 @@ ;;;###autoload (defun skk-romaji-region (start end) - "$BNN0h$N4A;z!"$R$i$,$J!"%+%?%+%J!"A41QJ8;z$rA4$F%m!<%^;z$KJQ49$9$k!#(B -$BJQ49$K$O!"%X%\%s<0$rMQ$$$k!#(B -$BNc$($P!"(B - \"$B4A;z$+$J:.$8$jJ8$r%m!<%^;z$KJQ49(B\" + "領域の漢字、ひらがな、カタカナ、全英文字を全てローマ字に変換する。 +変換には、ヘボン式を用いる。 +例えば、 + \"漢字かな混じり文をローマ字に変換\" -> \" kan'zi kana ma ziri bun' woro-ma zi ni hen'kan' \" -`skk-romaji-*-by-hepburn' $B$,(B nil $B$G$"$l$P!"%m!<%^;z$X$NJQ49MM<0$r71Na<0$KJQ99$9(B -$B$k!#Nc$($P!"(B\"$B$7(B\" $B$O%X%\%s<0$G$O(B \"shi\" $B$@$,!"71Na<0$G$O(B \"si\" $B$H$J$k!#(B" +`skk-romaji-*-by-hepburn' が nil であれば、ローマ字への変換様式を訓令式に変更す +る。例えば、\"し\" はヘボン式では \"shi\" だが、訓令式では \"si\" となる。" (interactive "*r") (let ((arg '("-Ha" "-Ka" "-Ja" "-Ea" "-ka" "-s")) str) @@ -217,14 +217,14 @@ ;;;###autoload (defun skk-romaji-message (start end) - "$BNN0h$N4A;z!"$R$i$,$J!"%+%?%+%J!"A41QJ8;z$rA4$F%m!<%^;z$KJQ49$7!"%(%3!<$9$k!#(B -$BJQ49$K$O!"%X%\%s<0$rMQ$$$k!#(B -$BNc$($P!"(B - \"$B4A;z$+$J:.$8$jJ8$r%m!<%^;z$KJQ49(B\" + "領域の漢字、ひらがな、カタカナ、全英文字を全てローマ字に変換し、エコーする。 +変換には、ヘボン式を用いる。 +例えば、 + \"漢字かな混じり文をローマ字に変換\" -> \" kan'zi kana ma ziri bun' woro-ma zi ni hen'kan' \" -`skk-romaji-*-by-hepburn' $B$,(B nil $B$G$"$l$P!"%m!<%^;z$X$NJQ49MM<0$r71Na<0$KJQ99$9(B -$B$k!#Nc$($P!"(B\"$B$7(B\" $B$O%X%\%s<0$G$O(B \"shi\" $B$@$,!"71Na<0$G$O(B \"si\" $B$H$J$k!#(B" +`skk-romaji-*-by-hepburn' が nil であれば、ローマ字への変換様式を訓令式に変更す +る。例えば、\"し\" はヘボン式では \"shi\" だが、訓令式では \"si\" となる。" (interactive "r") (let ((arg '("-Ha" "-Ka" "-Ja" "-Ea" "-ka" "-s"))) (when skk-allow-spaces-newlines-and-tabs @@ -234,39 +234,39 @@ (message "%s" (skk-kakasi-region start end arg)))) (defun skk-kakasi-region (start end arglist) - ;; START $B$H(B END $B4V$NNN0h$KBP$7(B kakasi $B%3%^%s%I$rE,MQ$9$k!#(BARGLIST $B$r(B - ;; kakasi $B$N0z?t$H$7$FEO$9!#(Bkakasi $B$N=PNO$rJV$9!#(B + ;; START と END 間の領域に対し kakasi コマンドを適用する。ARGLIST を + ;; kakasi の引数として渡す。kakasi の出力を返す。 (unless (or skk-use-kakasi skk-kakasi-command) (skk-error - "KAKASI $B$,%$%s%9%H!<%k$5$l$F$$$J$$$+!";HMQ$7$J$$@_Dj(B(%s)$B$K$J$C$F$$$^$9(B" + "KAKASI がインストールされていないか、使用しない設定(%s)になっています" "KAKASI was not installed, or %s is nil" "skk-use-kakasi")) - ;; $BJ#?t<-=qBP1~(B + ;; 複数辞書対応 (dolist (jisyo skk-gyakubiki-jisyo-list) (setq arglist (append arglist (list (expand-file-name jisyo))))) (let ((str (buffer-substring-no-properties start end))) - ;; $BIQEY>pJs$r;H$C$F2?$+$*$b$7$m$$;H$$J}$,$G$-$k$+$J!)(B $B8=>u$G$O;H$C$F(B - ;; $B$$$J$$!#(B + ;; 頻度情報を使って何かおもしろい使い方ができるかな? 現状では使って + ;; いない。 ;;(hindo-file (skk-make-temp-file "skkKKS")) (with-temp-buffer - ;; current buffer $B$,(B read-only $B$N$H$-$K(B current buffer $B$G(B call-process - ;; $B$r8F$V$H(B destination buffer $B$rJL$K;XDj$7$F$$$F$b%(%i!<$K$J$k$N$G!"%j!<(B - ;; $B%8%g%s$NJ8;zNs$r%o!<%/%P%C%U%!$KB`Hr$9$k!#(B + ;; current buffer が read-only のときに current buffer で call-process + ;; を呼ぶと destination buffer を別に指定していてもエラーになるので、リー + ;; ジョンの文字列をワークバッファに退避する。 (insert str) (unless (and (eq (apply 'call-process-region (point-min) (point) skk-kakasi-command - ;; kakasi-2.2.5.hindo.diff $B$,Ev$C$F$$$k$H(B - ;; $BI8=`%(%i!<=PNO$KIQEY>pJs$,=PNO$5$l$k!#(B + ;; kakasi-2.2.5.hindo.diff が当っていると + ;; 標準エラー出力に頻度情報が出力される。 'delete-original-text ;;(list t hindo-file) '(t nil) nil (cons "-ieuc" (cons "-oeuc" arglist))) 0) (> (buffer-size) 0)) - (skk-error "$BJQ49$G$-$^$;$s(B" + (skk-error "変換できません" "Cannot convert!")) (buffer-string)))) diff --git a/skk-kcode.el b/skk-kcode.el index 00192270..162c026a 100644 --- a/skk-kcode.el +++ b/skk-kcode.el @@ -1,4 +1,4 @@ -;;; skk-kcode.el --- $BJ8;z%3!<%I$r;H$C$?JQ49$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-kcode.el --- 文字コードを使った変換のためのプログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, ;; 1998, 1999, 2000 @@ -39,8 +39,8 @@ ;;;###autoload (defun skk-input-by-code-or-menu (&optional arg) - "$BJQ?t(B `skk-kcode-method' $B$G;XDj$5$l$?5!G=$rMQ$$$FJ8;z$rA^F~$9$k!#(B" - ;; `skk-rom-kana-base-rule-list' $B$,;X$7$F$$$k$N$O$3$N4X?t!#(B + "変数 `skk-kcode-method' で指定された機能を用いて文字を挿入する。" + ;; `skk-rom-kana-base-rule-list' が指しているのはこの関数。 (interactive "*P") (let (list) (cl-case skk-kcode-method @@ -58,7 +58,7 @@ (skk-kakutei))) (defun skk-input-by-code (&optional arg) - "7/8 bit JIS $B%3!<%I(B $B$b$7$/$O(B $B6hE@HV9f$KBP1~$9$kJ8;z$rA^F~$9$k!#(B" + "7/8 bit JIS コード もしくは 区点番号に対応する文字を挿入する。" (interactive "*P") (when arg (setq skk-kcode-charset (intern (completing-read @@ -85,8 +85,8 @@ (defun skk-kcode-read-code-string () (read-string (format (if skk-japanese-message-and-error "\ -`%s' $B$NJ8;z$r;XDj$7$^$9!#(B7/8 $B%S%C%H(B JIS $B%3!<%I(B (00nn), $B6hE@%3!<%I(B (00-00),\ - UNICODE (U+00nn), $B$^$?$O(B [RET] (%s): " +`%s' の文字を指定します。7/8 ビット JIS コード (00nn), 区点コード (00-00),\ + UNICODE (U+00nn), または [RET] (%s): " "\ To find a character in `%s', type 7/8 bits JIS code (00nn),\ KUTEN code (00-00), UNICODE (U+00nn), or [RET] for %s: ") @@ -101,13 +101,13 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ n1 n2 flag char) (cond ((eq len 2) - ;; $B%O%$%U%s(B `-' $B$G6h@Z$i$l$?!V6h(B-$BE@!W(B + ;; ハイフン `-' で区切られた「区-点」 (setq n1 (+ (string-to-number (nth 0 list)) 32 128) n2 (+ (string-to-number (nth 1 list)) 32 128))) ((eq len 3) - ;; $B%O%$%U%s(B `-' $B$G6h@Z$i$l$?!VLL(B-$B6h(B-$BE@!W(B + ;; ハイフン `-' で区切られた「面-区-点」 (setq flag (if (equal "2" (nth 0 list)) 'x0213-2 'x0213-1) @@ -116,13 +116,13 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ n2 (+ (string-to-number (nth 2 list)) 32 128))) ((string-match "^[uU]\\+\\(.*\\)$" str) - ;; `U+' $B$G;O$^$l$P%f%K%3!<%I(B + ;; `U+' で始まればユニコード (setq flag 'unicode n1 161 n2 0 char (string-to-number (match-string-no-properties 1 str) 16))) (t - ;; $B>e5-0J30$O(B JIS $B%3!<%I$H$_$J$9(B + ;; 上記以外は JIS コードとみなす (setq n1 (if (string= str "") 128 (+ (* 16 (skk-char-to-hex (aref str 0) 'jis)) @@ -134,7 +134,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ;; (when (or (> n1 256) (> n2 256)) - (skk-error "$BL58z$J%3!<%I$G$9(B" + (skk-error "無効なコードです" "Invalid code")) (list flag n1 n2 char))) @@ -153,26 +153,26 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (skk-make-string n1 n2)))) (defun skk-char-to-hex (char &optional jischar) - "CHAR $B$r(B 16 $B?J?t$H$_$J$7$F!"BP1~$9$k?tCM$r(B 10 $B?J?t$GJV$9!#(B" + "CHAR を 16 進数とみなして、対応する数値を 10 進数で返す。" (cond ;; a(97) -- f(102) ((and (<= 97 char) (<= char 102)) - (- char 87)) ; a $B$J$i(B 10 $B$,!"(Bf $B$J$i(B 15 $B$,JV$k!#(B + (- char 87)) ; a なら 10 が、f なら 15 が返る。 ;; A(65) -- F(70) ((and (<= 65 char) (<= char 70)) - (- char 55)) ; A $B$J$i(B 10 $B$,!"(BF $B$J$i(B 15 $B$,JV$k!#(B + (- char 55)) ; A なら 10 が、F なら 15 が返る。 ;; 0(48) -- 9(57) ((and (<= 48 char) (<= char 57)) (if jischar - (- char 40) ; 0 $B$J$i(B 8 $B$,!"(B9 $B$J$i(B 17 $B$,JV$k!#(B - (- char 48))) ; 0 $B$J$i(B 0 $B$,!"(B9 $B$J$i(B 9 $B$,JV$k!#(B + (- char 40) ; 0 なら 8 が、9 なら 17 が返る。 + (- char 48))) ; 0 なら 0 が、9 なら 9 が返る。 (t - (skk-error "`%c' $B$r(B 16 $B?J?t$KJQ49$G$-$^$;$s(B" + (skk-error "`%c' を 16 進数に変換できません" "Cannot convert `%c' to hexadecimal number" char)))) (defun skk-make-string (n1 n2) - "`skk-kcode-charset' $B$,<($9J8;z=89g$K=>$C$F(B n1 n2 $B$KBP1~$9$k(B STRING $B$rJV$9(B" + "`skk-kcode-charset' が示す文字集合に従って n1 n2 に対応する STRING を返す" (char-to-string (make-char skk-kcode-charset n1 n2))) (defun skk-next-n2-code (n) @@ -201,7 +201,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (skk-input-by-code-or-menu-1 n1 n2))) (defun skk-input-by-code-or-menu-jump (n) - (let ((menu-keys1 (mapcar (lambda (char) ; $BI=<(MQ$N%-!<%j%9%H(B + (let ((menu-keys1 (mapcar (lambda (char) ; 表示用のキーリスト (skk-char-to-unibyte-string (upcase char))) skk-input-by-code-menu-keys1)) kanji-char) @@ -253,7 +253,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (signal 'quit nil)) ;; ((not (characterp char)) - (skk-message "`%s' $B$OL58z$J%-!<$G$9!*(B" + (skk-message "`%s' は無効なキーです!" "`%s' is not valid here!" (or (key-description key) (key-description char))) @@ -287,7 +287,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ((eq char ?\?) (skk-message "\ -`%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [$B2?$+%-!<$r2!$7$F$/$@$5$$(B]" +`%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [何かキーを押してください]" "\ `%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [Hit any key to continue]" (caar chars) @@ -299,7 +299,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (setq n n-org)) ;; (t - (skk-message "`%c' $B$OL58z$J%-!<$G$9!*(B" + (skk-message "`%c' は無効なキーです!" "`%c' is not valid here!" char) (sit-for 1) @@ -312,7 +312,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (car (cddr kanji-char))))) (defun skk-input-by-code-or-menu-1 (n1 n2) - (let ((menu-keys2 (mapcar (lambda (char) ; $BI=<(MQ$N%-!<%j%9%H(B + (let ((menu-keys2 (mapcar (lambda (char) ; 表示用のキーリスト (skk-char-to-unibyte-string (upcase char))) skk-input-by-code-menu-keys2)) kanji-char) @@ -354,7 +354,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ((skk-key-binding-member key skk-quit-commands skk-j-mode-map) (signal 'quit nil)) ((not (characterp char)) - (skk-message "`%s' $B$OL58z$J%-!<$G$9!*(B" "`%s' is not valid here!" + (skk-message "`%s' は無効なキーです!" "`%s' is not valid here!" (or (key-description key) (key-description char))) (sit-for 1) (message "") @@ -386,7 +386,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ((eq char ?\?) (skk-message "\ -`%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [$B2?$+%-!<$r2!$7$F$/$@$5$$(B]" +`%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [何かキーを押してください]" "\ `%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [Hit any key to continue]" (car chars) @@ -410,7 +410,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (setq n1 n1-org))) ;; (t - (skk-message "`%c' $B$OL58z$J%-!<$G$9!*(B" + (skk-message "`%c' は無効なキーです!" "`%c' is not valid here!" char) (sit-for 1) @@ -420,17 +420,17 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ;;;###autoload (defun skk-display-code-for-char-at-point (&optional arg) - "$B%]%$%s%H$K$"$kJ8;z$N6hE@HV9f!"(BJIS $B%3!<%I!"(BEUC $B%3!<%I!"%7%U%H(B JIS $B%3!<%I(B\ -$B5Z$S%f%K%3!<%I$rI=<($9$k!#(B" + "ポイントにある文字の区点番号、JIS コード、EUC コード、シフト JIS コード\ +及びユニコードを表示する。" (interactive) (cond ((not skk-display-code-method) (insert (format "%s" (this-command-keys)))) ((eobp) - (skk-message "$B%+!<%=%k$,%P%C%U%!$N=*C<$K$"$j$^$9(B" + (skk-message "カーソルがバッファの終端にあります" "Cursor is at the end of the buffer")) (t (skk-display-code (following-char) (point)))) - t) ; $B%(%3!<$7$?J8;zNs$r%+%l%s%H%P%C%U%!$KA^F~$7$J$$$h$&$K!#(B + t) ; エコーした文字列をカレントバッファに挿入しないように。 (defun skk-display-code (char p) (let ((charset (char-charset char skk-charset-list)) @@ -485,7 +485,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (unless (zerop (nth 2 char-data)) (concat ", " (propertize - (format "$BAm(B%d$B2h!J(B%s$BIt(B %d$B2h!K(B" + (format "総%d画(%s部 %d画)" (nth 2 char-data) (aref skk-tankan-radical-vector (nth 0 char-data)) @@ -514,7 +514,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ;; (t (setq mesg (format (if skk-japanese-message-and-error - "$BJ8;z=89g(B %s $B$O%5%]!<%H$7$F$$$^$;$s(B" + "文字集合 %s はサポートしていません" "%s character set is not supported") (char-charset char))))) ;; @@ -560,10 +560,10 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ;;;; skk-list-chars ;; TODO -;; o mode-line $B$K8=:_(B charset $B$rI=<($7$?$$(B -;; o $BA^F~@h$N%P%C%U%!(B skk-list-chars-destination-buffer $B$,B8:_$7$J$$>l9g$NBP=h(B -;; o $B%-! $B$G@hF,(B/$BKvHx$X(B +;; o mode-line に現在 charset を表示したい +;; o 挿入先のバッファ skk-list-chars-destination-buffer が存在しない場合の対処 +;; o キー操作 a, e で区の先頭/末尾へ +;; o キー操作 <, > で先頭/末尾へ (defun skk-list-chars-mode () "Major mode for skk-list-chars. @@ -583,7 +583,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (insert "\n" (propertize (format "%02d-#x--- 0-- 1-- 2-- 3-- 4-- 5-- 6-- 7-- 8-- 9-- A-- B-- C-- D-- E-- F" (- high 32)) 'face 'skk-list-chars-table-header-face)) - (setq i (* (/ min 16) 16)) ; i $B$O(B $B2<0L%P%$%H(B + (setq i (* (/ min 16) 16)) ; i は 下位バイト (while (<= i max) ; 0x21 .. 0x7e (when (zerop (% i 16)) (insert (propertize (format "\n %5X0" (/ (+ (* high 256) @@ -601,8 +601,8 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ ;;;###autoload (defun skk-list-chars (arg) - "$BJQ?t(B `skk-kcode-charset' $B$K=>$C$FJ8;z0lMw$rI=<($9$k(B. -\\[universal-argument] $BIU$-$Gl9g(B + (when skk-henkan-mode ; ▽ or ▼ で呼ばれた場合 (skk-kakutei)) (setq skk-list-chars-destination-buffer (current-buffer)) (set-buffer buf) @@ -651,7 +651,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (interactive) (let ((c (following-char))) (if (eq 'ascii (car (split-char c))) - ;; $B6h@Z$j9T$J$I$G(B $ $B$5$l$?>l9g(B + ;; 区切り行などで $ された場合 (next-completion 1) (skk-display-code c (point))))) @@ -708,7 +708,7 @@ To find a character in `%s', type 7/8 bits JIS code (00nn),\ (if (eobp) (forward-char -1) (if (eq 'ascii (car (split-char (following-char)))) - ;; $B6h@Z$j9T$J$I$G(B RET $B$5$l$?>l9g(B + ;; 区切り行などで RET された場合 (next-completion 1) (let ((c (following-char))) (set-buffer skk-list-chars-destination-buffer) diff --git a/skk-look.el b/skk-look.el index 7f16892a..8da68d2f 100644 --- a/skk-look.el +++ b/skk-look.el @@ -25,86 +25,86 @@ ;;; Commentary: ;; -;; ~/.skk $B$+(B ~/.emacs.d/init.el $B$G(B `skk-use-look' $B$r(B t $B$K%;%C%H$7$F$3$l$r(B -;; $BI>2A$7$F2<$5$$!#$=$N8e(B skk-mode $B$rN)$A>e$2$k$+!"(BM-x skk-restart $B$9$k$H!"(B -;; $B2<5-$N$h$&$J7]Ev$,2DG=$K$J$j$^$9!#(B +;; ~/.skk か ~/.emacs.d/init.el で `skk-use-look' を t にセットしてこれを +;; 評価して下さい。その後 skk-mode を立ち上げるか、M-x skk-restart すると、 +;; 下記のような芸当が可能になります。 -;; (1)$B1QC18l$rJd40$,$G$-$^$9!#(B +;; (1)英単語を補完ができます。 -;; $B"&(Babstr(TAB) ---> $B"&(Babstract +;; ▽abstr(TAB) ---> ▽abstract -;; $BDL>o$NJd405!G=F1MM!"(B`.' $B$G $B"'(Babstract +;; ▽abstr* (SPC) ---> ▼abstract -;; $B8+=P$78l$K%"%9%?%j%9%/(B (`*') $B$rF~$l$k$N$r$*K:$l$J$/!#(B +;; 見出し語にアスタリスク (`*') を入れるのをお忘れなく。 -;; $B3NDj$9$k$H!"(B`abstr*' $B$r8+=P$78l!"(B`abstract' $B$r8uJd$H$9$k%(%s%H%j$,8D?M<-(B -;; $B=q$KDI2C$5$l$^$9!#$3$N$h$&$J%(%s%H%j$rDI2C$7$?$/$J$$>l9g$O!"(B -;; $B%f!<%6!\$7$/$O!"(B -;; `skk-search-excluding-word-pattern-function' $B$N%I%-%e%a%s%H$r$4Mw2<$5$$!#(B +;; 確定すると、`abstr*' を見出し語、`abstract' を候補とするエントリが個人辞 +;; 書に追加されます。このようなエントリを追加したくない場合は、 +;; ユーザー変数、`skk-search-excluding-word-pattern-function' を適切に +;; 設定することで、これを実現することができます。詳しくは、 +;; `skk-search-excluding-word-pattern-function' のドキュメントをご覧下さい。 -;; (3)(2)$B$GJQ49$7$?8e!"99$K:F5"E*$J1QOBJQ49$r9T$&$3$H$,$G$-$^$9!#(B +;; (3)(2)で変換した後、更に再帰的な英和変換を行うことができます。 -;; $B$^$:!"(B`skk-look-recursive-search' $B$NCM$r(B non-nil $B$K%;%C%H$7$F2<$5(B -;; $B$$!#(BEmacs/SKK $B$r:F5/F0$9$kI,MW$O$"$j$^$;$s!#(B +;; まず、`skk-look-recursive-search' の値を non-nil にセットして下さ +;; い。Emacs/SKK を再起動する必要はありません。 -;; $B$9$k$H!"Nc$($P!"(B +;; すると、例えば、 -;; $B"&(Babstr* (SPC) +;; ▽abstr* (SPC) -;; ---> $B"'(Babstract (SPC) -> $B"'%"%V%9%H%i%/%H(B (SPC) -> $B"'Cj>](B (SPC) -;; -> $B"'(Babstraction (SPC) -> $B"'%"%V%9%H%i%/%7%g%s(B +;; ---> ▼abstract (SPC) -> ▼アブストラクト (SPC) -> ▼抽象 (SPC) +;; -> ▼abstraction (SPC) -> ▼アブストラクション -;; $B$3$N$h$&$K1QC18l(B + $B$=$N1QC18l$r8+=P$78l$K$7$?8uJd$N!V%;%C%H!W$rJQ49(B -;; $B7k2L$H$7$F=PNO$9$k$3$H$,$G$-$^$9!#(B +;; このように英単語 + その英単語を見出し語にした候補の「セット」を変換 +;; 結果として出力することができます。 -;; $B$3$N:]!"(B`skk-look-expanded-word-only' $B$NCM$,(B non-nil $B$G$"$l$P!":F5"(B -;; $B8!:w$K@.8y$7$?1QC18l$N!V%;%C%H!W$@$1$r=PNO$9$k$3$H$,$G$-$^$9(B ($B:F5"(B -;; $B8!:w$G8!=P$5$l$J$+$C$?1QC18l$OL5;k$7$F=PNO$7$^$;$s(B) $B!#(B +;; この際、`skk-look-expanded-word-only' の値が non-nil であれば、再帰 +;; 検索に成功した英単語の「セット」だけを出力することができます (再帰 +;; 検索で検出されなかった英単語は無視して出力しません) 。 -;; $B$b$A$m$s!"(BSKK $B<-=q$K(B +;; もちろん、SKK 辞書に -;; abstract /$B%"%V%9%H%i%/%H(B/$BCj>](B/ -;; abstraction /$B%"%V%9%H%i%/%7%g%s(B/ +;; abstract /アブストラクト/抽象/ +;; abstraction /アブストラクション/ -;; $B$H$$$&%(%s%H%j$,$"$k$3$H$rA0Ds$H$7$F$$$^$9!#(Bedict $B$r(B SKK $B<-=q7A<0$K(B -;; $BJQ49$9$k$HNI$$$G$9$M!#(B +;; というエントリがあることを前提としています。edict を SKK 辞書形式に +;; 変換すると良いですね。 -;; $BF0:n$r3NG'$7$?(B look $B$O!"(BSlackware 3.5 $B$KF~$C$F$$$?!"(Bman page $B$K(B -;; `BSD Experimental June 14, 1993' $B$H5-:\$N$"$k$b$N(B ($B%P!<%8%g%s>pJs$,$J$$(B) -;; $B$G$9!#%*%W%7%g%s$N;XDj$J$I$,0[$J$k(B look $B$,$"$l$P!"$40lJs2<$5$$!#(B -;; $B$h$m$7$/$*4j$$$$$?$7$^$9!#(B +;; 動作を確認した look は、Slackware 3.5 に入っていた、man page に +;; `BSD Experimental June 14, 1993' と記載のあるもの (バージョン情報がない) +;; です。オプションの指定などが異なる look があれば、ご一報下さい。 +;; よろしくお願いいたします。 ;; ;; ftp://ftp.u-aizu.ac.jp:/pub/SciEng/nihongo/ftp.cc.monash.edu.au/ -;; $B$KCV$$$F$"$k(B edict $B$rMxMQ$9$k$H temp ;; % skkdic-expr temp | skkdic-sort > SKK-JISYO.E2J ;; % rm temp -;; $B$G$-$?(B SKK-JISYO.E2J $B$NMxMQJ}K!$O?'!9$"$j$^$9$,!"(B +;; できた SKK-JISYO.E2J の利用方法は色々ありますが、 ;; % skkdic-expr SKK-JISYO.E2J + /usr/local/share/skk/SKK-JISYO.L\ ;; | skkdic-sort > SKK-JISYO.L -;; $B$J$I$H$7$F!"(BSKK-JISYO.L $B$H%^!<%8$7$F;H$&$N$, -;; $B$3$N%W%m%0%i%`$O!"(BeWnn for Linux/FreeBSD $B$N9-9p$KN`;w$N5!G=>R2p$,$"$C$?$N$r(B -;; $B8+$F!"!V$3$s$J5!G=$J$i(B SKK $B>e$K$9$0%$%s%W%j%a%s%H$G$-$k$5!W$H;W$&$H$?$^$i$/(B -;; $B$J$C$F=q$$$F$7$^$$$^$7$?!#(BeWnn $B$KIi$1$k$J!"(BSKK! +;; このプログラムは、eWnn for Linux/FreeBSD の広告に類似の機能紹介があったのを +;; 見て、「こんな機能なら SKK 上にすぐインプリメントできるさ」と思うとたまらく +;; なって書いてしまいました。eWnn に負けるな、SKK! -;; $B@N!"(BSeiichi Namba $B$5$s$H0l=o$K(B Emacs Lisp $B$G(B -;; look interface $B$r=q$$$?$3$H$,$"$k$N$G$9$,!":#2s$O$=$N:]$N7P83$r@8$+$9$3$H$,(B -;; $B$G$-$^$7$?!#FqGH$5$s$K46 さんと一緒に Emacs Lisp で +;; look interface を書いたことがあるのですが、今回はその際の経験を生かすことが +;; できました。難波さんに感謝いたします。 ;;; Code: @@ -147,18 +147,18 @@ ;; program ;;;###autoload (defun skk-look (&optional conversion-arguments not-abbrev-only expand-null) - "UNIX look $B%3%^%s%I$rMxMQ$7$FJQ49$9$k!#(B -SKK abbrev $B%b!<%I$K$F!"1QJ8;z(B + $B%"%9%?%j%9%/$G(B uncompleted spelling $B$r;XDj$9$k!#(B -$B>\$7$/$O(B skk-look.el $B%U%!%$%k$N%3%a%s%H$d(B Info $B$r;2>H$N;v!#(B -CONVERSION-ARGUMENTS $B$O(B `skk-look-conversion-arguments' $B$r(B -$B0l;~E*$KCV$-49$($?$$;~$K;XDj$9$k!#(B -$B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B -NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B -EXPAND-NULL $B$r;XDj$9$k$H!"F~NO$,(B \"*\" $B$N$_$N;~$O(B -words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$,BP>]$H$J$k!#(B + "UNIX look コマンドを利用して変換する。 +SKK abbrev モードにて、英文字 + アスタリスクで uncompleted spelling を指定する。 +詳しくは skk-look.el ファイルのコメントや Info を参照の事。 +CONVERSION-ARGUMENTS は `skk-look-conversion-arguments' を +一時的に置き換えたい時に指定する。 +デフォルトでは SKK abbrev モードのみで有効な機能だが、 +NOT-ABBREV-ONLY を指定する事で常に有効となる。 +EXPAND-NULL を指定すると、入力が \"*\" のみの時は +words ファイルにある全ての見出しが対象となる。 `skk-look-recursive-search', `skk-look-expanded-word-only', -`skk-look-use-ispell' $B$r0l;~E*$KJQ99$7$?$$>l9g$K$O(B -`let' $B$K$h$jB+G{$7$F;H$&;v!#(B" +`skk-look-use-ispell' を一時的に変更したい場合には +`let' により束縛して使う事。" (when (and (not (memq skk-use-look '(nil completion))) (or not-abbrev-only skk-abbrev-mode) @@ -221,18 +221,18 @@ words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$,BP>]$H$J$k!#(B ;;;###autoload (defun skk-look-completion (&optional completion-arguments not-abbrev-only expand-null) - "look $B%3%^%s%I$rMxMQ$7$FJd408uJd$rF@$k!#(B -COMPLETION-ARGUMENTS $B$O(B `skk-look-completion-arguments' $B$r(B -$B0l;~E*$KCV$-49$($?$$;~$K;XDj$9$k!#(B -$B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B -NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B -EXPAND-NULL $B$r;XDj$9$k$H!"F~NO$,6u$G$"$k;~$K(B -words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$rJV$9!#(B -`skk-look-use-ispell' $B$r0l;~E*$KJQ99$7$?$$>l9g$K$O(B -`let' $B$K$h$jB+G{$7$F;H$&;v!#(B" + "look コマンドを利用して補完候補を得る。 +COMPLETION-ARGUMENTS は `skk-look-completion-arguments' を +一時的に置き換えたい時に指定する。 +デフォルトでは SKK abbrev モードのみで有効な機能だが、 +NOT-ABBREV-ONLY を指定する事で常に有効となる。 +EXPAND-NULL を指定すると、入力が空である時に +words ファイルにある全ての見出しを返す。 +`skk-look-use-ispell' を一時的に変更したい場合には +`let' により束縛して使う事。" (let* ((numericp (and skk-use-numeric-conversion (save-match-data - (string-match "[0-9$B#0(B-$B#9(B]" skk-comp-key)))) + (string-match "[0-90-9]" skk-comp-key)))) (conv-key (and numericp (skk-num-compute-henkan-key skk-comp-key))) (comp-key (or conv-key skk-comp-key)) @@ -245,8 +245,8 @@ words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$rJV$9!#(B (let ((skk-look-completion-arguments (or completion-arguments skk-look-completion-arguments))) (when skk-comp-first - ;; look $B$OJ#?t$N8uJd$rEG$/$N$G!"0lC6Cy$a$F$*$$$F!"(B - ;; $B0l$D$:$D(B complete $B$9$k!#(B + ;; look は複数の候補を吐くので、一旦貯めておいて、 + ;; 一つずつ complete する。 (setq skk-look-completion-words (if (and (not (memq skk-look-use-ispell '(nil conversion))) (> (length comp-key) 0)) @@ -298,14 +298,14 @@ words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$rJV$9!#(B (setq ispell-filter nil) (cond ((eq poss 'error) - (skk-message "ispell process $B$G%(%i!<$,H/@8$7$^$7$?(B" + (skk-message "ispell process でエラーが発生しました" "error in ispell process") (sit-for 1) (message "") nil) ((or (eq poss t) - ;; root word $B$KBP$7$F(B skk-look-1 $B$+$1$A$c$*$&$+!)(B - ;; $B$G$b$A$C$H$bJd40$B$c$J$/$J$C$A$^$$$^$9$M(B... (^^;;$B!#(B + ;; root word に対して skk-look-1 かけちゃおうか? + ;; でもちっとも補完ぢゃなくなっちまいますね... (^^;;。 (stringp poss) (null (or (nth 2 poss) (nth 3 poss)))) (skk-look-1 word situation)) diff --git a/skk-lookup.el b/skk-lookup.el index 92a7dfba..bd65bc91 100644 --- a/skk-lookup.el +++ b/skk-lookup.el @@ -25,87 +25,87 @@ ;;; Commentary: -;; Keisuke Nishida $B$5$s$N:n$i$l$?<-=q8!:w%D!<%k(B -;; Lookup $B$H(B SKK $B$H$N(B gateway $B$r9T$$!"(BLookup $B$G8!:w$G$-$k<-=q$r;H$C(B -;; $B$F8uJd$r=PNO$9$k%W%m%0%i%`$G$9!#(B +;; Keisuke Nishida さんの作られた辞書検索ツール +;; Lookup と SKK との gateway を行い、Lookup で検索できる辞書を使っ +;; て候補を出力するプログラムです。 ;; -;; make $B$r -;; $BEvA3$G$9$,!"(BLookup $B$,%$%s%9%H!<%k$5$l$F$$$F!"$+$D!"BP1~$9$k<-=q$,(B -;; $B%^%&%s%H$5$l$F$$$J$$$H;H$($^$;$s!#(B +;; 当然ですが、Lookup がインストールされていて、かつ、対応する辞書が +;; マウントされていないと使えません。 -;; $BJF2(B $B%K%e!<%;%s%A%e%j!<1QOB!&?7%/%i%&%sOB1Q<-E5(B -;; "GENIUS" ; $B%8!<%K%"%91QOB(B, $B%8!<%K%"%91QOB!&OB1Q<-E5(B -;; "GN99EP01" ;Super$BE}9g<-=q(B99 Disk1/$B8=BeMQ8l$N4pACCN<1(B -;; "GN99EP02" ;Super$BE}9g<-=q(B99 Disk2/$B8=BeMQ8l$N4pACCN<1(B -;; "IWAKOKU" ;$B4dGH9q8l<-E5(B -;; "KANJIGEN"; Super$BE}9g<-=q(B99 Disk2/$B4A;z8;(B : EPWING +;; "CRCEN" ;三省堂 ニューセンチュリー英和・新クラウン和英辞典 +;; "GENIUS" ; ジーニアス英和, ジーニアス英和・和英辞典 +;; "GN99EP01" ;Super統合辞書99 Disk1/現代用語の基礎知識 +;; "GN99EP02" ;Super統合辞書99 Disk2/現代用語の基礎知識 +;; "IWAKOKU" ;岩波国語辞典 +;; "KANJIGEN"; Super統合辞書99 Disk2/漢字源 : EPWING ;; "KANWA"; -;; "KOJIEN" ; $B9-<-1qBh(B5$BHG(B($B4dGH(B,EPWING) -;; "KOKUGO" ;$B;0>JF2(B $BF|K\8l<-E5!J8=Be9q8l!"30Mh8l!K(B -;; "KOUJIEN"; $B9-<-1qBh(B4$BHG(B($B4dGH(B,EPWING) $B%^%k%A%a%G%#%"HG(B -;; "MYPAEDIA" ;$B!V<-!&E5!&HW!WImB0$N%^%$%Z%G%#%"(B -;; ; mypaedia-fpw $B$+$i@8@.$7$?(B PC Success $BHG%^%$%Z%G%#%"(B -;; (FreePWING $B<-=q(B) -;; "NEWANC" ; $B%K%e!<%"%s%+!<1QOB(B +;; "KOJIEN" ; 広辞苑第5版(岩波,EPWING) +;; "KOKUGO" ;三省堂 日本語辞典(現代国語、外来語) +;; "KOUJIEN"; 広辞苑第4版(岩波,EPWING) マルチメディア版 +;; "MYPAEDIA" ;「辞・典・盤」附属のマイペディア +;; ; mypaedia-fpw から生成した PC Success 版マイペディア +;; (FreePWING 辞書) +;; "NEWANC" ; ニューアンカー英和 ;; "PLUS"; -;; "RIKAGAKU" ;$BM}2=3X<-E5(B +;; "RIKAGAKU" ;理化学辞典 ;; "WAEI"; ;; "ispell"; ;; "jedict"; -;; $B$4<+J,$G;HMQ$7$F$$$k<-=q$N=PNO$,>e2A$7$F(B ("$B$3$7$g$&(B" $B$NJ8;zNsItJ,$OLdBj$H$J$C$F$$$k8!:wBP>]$H(B -;; $BF~$lBX$($^$7$g$&(B) `lookup-dictionary-name' $B$H(B -;; `lookup-entry-heading' $B$,JV$9CM$r;29M$K!"(B`skk-lookup-option-alist' -;; $B$KI,MW$J%j%9%H$r2C$($^$7$g$&!#?7$?$J%j%9%H$r2C$($i$l$?$i@'Hs(B -;; skk@ring.gr.jp $B08$F$KCN$;$F2<$5$$!#(Bdefault value $B$K $B$5$s!"3+H/$N=i4|(B -;; $B$+$i%G%P%C%0$r $B$5$s!"(Bsphere $B$5(B -;; $B$s$K?<$/46 さん、開発の初期 +;; からデバッグを手伝っていただいた、NEMOTO Takashi +;; さん、sphere さ +;; んに深く感謝いたします。 ;;; Code: @@ -177,7 +177,7 @@ (defun skk-lookup-search () (unless (or skk-num-list skk-num-recompute-key) - ;; $B?tCMJQ49$N$H$-$OJQ49%-!<$,(B `#' $B$r4^$`$b$N$J$N$G!"(Blookup $B$G8!:w$7$J$$!#(B + ;; 数値変換のときは変換キーが `#' を含むものなので、lookup で検索しない。 (let ((module (skk-lookup-default-module)) ;; if `lookup-enable-gaiji' is nil, gaiji tag like ;; `' is put out. @@ -197,14 +197,14 @@ okuri-process (cdr v))) ;; okuri-ari and (not skk-process-okuri-early) (skk-henkan-okurigana - ;; $BAw$j2>L>$N$+$J(B prefix $B$rL>$rB-$7$F(B lookup $B$KEO$9!#(B + ;; 送り仮名のかな prefix を捨て、送り仮名を足して lookup に渡す。 (setq henkan-key (concat (substring henkan-key 0 (1- (length henkan-key))) skk-henkan-okurigana) okuri-process 1)) ;; okuri-ari and skk-process-okuri-early (skk-okuri-char - ;; $BAw$j2>L>$N$+$J(B prefix $B$r$-!Z??LZ!&(B(GAIJI)$B!&Kj![(B' + ;; KOUJIEN has a heading like `ま‐き【真木・(GAIJI)・槙】' ;; As GAIJI cannot be processed by skk-lookup.el, the heading - ;; is equal to `$B$^!>$-!Z??LZ!&!&Kj![(B' for skk-lookup.el. + ;; is equal to `ま‐き【真木・・槙】' for skk-lookup.el. ;; It causes to produce a null string candidate. - ;; (split-string "$B??LZ!&!&Kj(B" "$B!&(B") -> ("$B??LZ(B" "" "$BKj(B") + ;; (split-string "真木・・槙" "・") -> ("真木" "" "槙") ;; So return nil if STRING is a null string. nil) ;; okuri-nasi @@ -289,8 +289,8 @@ (substring string 0 (- okuri-length)))))))) (defun skk-lookup-process-heading (name heading okuri-process-type) - ;; heading $B$7$+$K$b>pJs$rH$9$k$+!)(B + ;; heading しか取り出さないのはもったいない? 他にも情報を取り出し + ;; ておいて、必要に応じて参照するか? (save-match-data (cl-do* ((pickup (skk-lookup-get-pickup-regexp name)) (pickup-regexp (if (consp pickup) (car pickup))) @@ -299,9 +299,9 @@ (cleanup-regexp (skk-lookup-get-cleanup-regexp name)) (candidates-list (if (not pickup) (list heading))) candidates-string) - ;; `$B$@$7!Z=P$7![!Z=P$7!&!R=P=A!S![!Z!P;3l9g(B - ;; $B$,$"$k$N$G%k!<%W$G:n6H$9$k!#(B + ;; `だし【出し】【出し・〈出汁〉】【{山車}】' などのように + ;; 1 つの heading に対し、複数の切り出し作業が必要になる場合 + ;; があるのでループで作業する。 ((or (string= heading "") (and pickup-regexp (not (string-match pickup-regexp heading)))) @@ -314,8 +314,8 @@ (mapconcat (lambda (num) (match-string-no-properties num heading)) match "") - ;; XXX MATCH $B$,J#?t$@$C$?$i!"(Bheading $B@Z$j=P$7$O(B - ;; $B0lEY$@$1$7$+$G$-$J$$(B...$B!#(B + ;; XXX MATCH が複数だったら、heading 切り出しは + ;; 一度だけしかできない...。 heading "")) (pickup-regexp (setq candidates-string (match-string-no-properties match heading) @@ -418,7 +418,7 @@ (defun skk-lookup-pickup-headings (pattern method) "Search PATTERN by METHOD. -METHOD $B$OJQ?t(B`lookup-search-methods'$B$r;2>H$N$3$H(B." +METHOD は変数`lookup-search-methods'を参照のこと." (let ((module (skk-lookup-default-module)) (lookup-gaiji-alternate "") ;;lookup-enable-gaiji ; not to put out gaiji. diff --git a/skk-macs.el b/skk-macs.el index f31d2128..a37a5a74 100644 --- a/skk-macs.el +++ b/skk-macs.el @@ -93,10 +93,10 @@ doesn't give arguments of `interactive'. See `interactive' for details." (def-edebug-spec skk-save-point t) (defmacro skk-message (japanese english &rest arg) - "$B%a%C%;!<%8$rI=<($9$k!#(B -`skk-japanese-message-and-error' $B$,(B non-nil $B$G$"$l$P(B JAPANESE $B$r!"(B nil $B$G(B -$B$"$l$P(B ENGLISH $B$r%(%3!<%(%j%"$KI=<($9$k!#(B - ARG $B$O(B `message' $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B" + "メッセージを表示する。 +`skk-japanese-message-and-error' が non-nil であれば JAPANESE を、 nil で +あれば ENGLISH をエコーエリアに表示する。 + ARG は `message' 関数の第2引数以降の引数として渡される。" (append (if arg `(message (if skk-japanese-message-and-error @@ -108,10 +108,10 @@ doesn't give arguments of `interactive'. See `interactive' for details." arg)) (defmacro skk-error (japanese english &rest arg) - "$B%a%C%;!<%8$rI=<($7$F!"%(%i!<$rH/@8$5$;$k!#(B -`skk-japanese-message-and-error' $B$,(B non-nil $B$G$"$l$P(B JAPANESE $B$r!"(B nil $B$G(B -$B$"$l$P(B ENGLISH $B$r%(%3!<%(%j%"$KI=<($7!"%(%i!<$rH/@8$5$;$k!#(B - ARG $B$O(B `error' $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B" + "メッセージを表示して、エラーを発生させる。 +`skk-japanese-message-and-error' が non-nil であれば JAPANESE を、 nil で +あれば ENGLISH をエコーエリアに表示し、エラーを発生させる。 + ARG は `error' 関数の第2引数以降の引数として渡される。" (append (if arg `(error (if skk-japanese-message-and-error @@ -123,33 +123,33 @@ doesn't give arguments of `interactive'. See `interactive' for details." arg)) (defmacro skk-yes-or-no-p (japanese english) - "$B%f!<%6$K(B yes-or-no $B$rl9g$O(B `skk-yes-or-no-p' $B$r(B -$B;H$&$h$j$b%*%j%8%J%k$N(B `yes-or-no-p' $B$r;HMQ$7$?J}$,%3!<%I$,J#;($K$J$i$J$$>l9g(B -$B$,$"$k!#(B" + "ユーザに yes-or-no を質問し、答えが yes だったら t を返す。 +`skk-japanese-message-and-error' が non-nil であれば JAPANESE を、 nil であれ +ば ENGLISH を PROMPT として `yes-or-no-p' を実行する。 +`yes-or-no-p' の引数 PROMPT が複雑に入れ込んでいる場合は `skk-yes-or-no-p' を +使うよりもオリジナルの `yes-or-no-p' を使用した方がコードが複雑にならない場合 +がある。" `(yes-or-no-p (if skk-japanese-message-and-error ,japanese ,english))) (defmacro skk-y-or-n-p (japanese english) - "$B%f!<%6$K(B \"y or n\" $B$rl9g$K;H$&!#(B" + "ポイントを移動するがフックを実行してほしくない場合に使う。" `(unwind-protect (progn ,@form) @@ -172,7 +172,7 @@ MARKER $B$,(B nil $B$@$C$?$i!"?75,%^!<%+!<$r:n$C$FBeF~$9$k!#(B" ;;;###autoload (put 'skk-loop-for-buffers 'lisp-indent-function 1) (defmacro skk-loop-for-buffers (buffers &rest body) - "BUFFERS $B$,;XDj$9$k3F%P%C%U%!$K0\F0$7$F(B BODY $B$r= emacs-major-version 26)) (encode-coding-string (char-to-string char) 'iso-8859-1)) - ;; GNU Emacs 25 $B$^$G(B + ;; GNU Emacs 25 まで (t (string-make-unibyte (char-to-string char)))))) @@ -252,10 +252,10 @@ If the event isn't a keypress, this returns nil." (defun skk-split-char (ch) ;; http://mail.ring.gr.jp/skk/200908/msg00006.html - ;; C $B$N(B split-char() $B$HF1MM$N5!G=$@$,!"(Bchar-charset() $B$N8F=P$7$K$*$$$F(B - ;; $BJ8;z=89g$NA*Br;h$r(B skk-charset-list $B$K4^$^$l$k$b$N$K@)8B$9$k!#(B - ;; $B$3$l$ONc$($P!"(Bjapanese-jisx0208 $B$NJ8;z$,(B unicode-bmp $B$KB0$9$k!"(B - ;; $B$HH=Dj$5$l$k$h$&$J>u67$r2sHr$9$k!#(B + ;; C の split-char() と同様の機能だが、char-charset() の呼出しにおいて + ;; 文字集合の選択肢を skk-charset-list に含まれるものに制限する。 + ;; これは例えば、japanese-jisx0208 の文字が unicode-bmp に属する、 + ;; と判定されるような状況を回避する。 (let* ((charset (char-charset ch skk-charset-list)) (code (encode-char ch charset)) (dimension (charset-dimension charset)) @@ -268,7 +268,7 @@ If the event isn't a keypress, this returns nil." (cons charset val))) (defun skk-indicator-to-string (indicator &optional no-properties) - "SKK $B%$%s%8%1!<%?7?%*%V%8%'%/%H(B INDICATOR $B$rJ8;zNs$KJQ49$9$k!#(B" + "SKK インジケータ型オブジェクト INDICATOR を文字列に変換する。" (if no-properties (with-temp-buffer (insert indicator) @@ -276,7 +276,7 @@ If the event isn't a keypress, this returns nil." indicator)) (defun skk-mode-string-to-indicator (mode string) - "$BJ8;zNs(B STRING $B$r(B SKK $B%$%s%8%1!<%?7?%*%V%8%'%/%H$KJQ49$9$k!#(B" + "文字列 STRING を SKK インジケータ型オブジェクトに変換する。" (if (and window-system (not (eq mode 'default))) (apply 'propertize string @@ -288,7 +288,7 @@ If the event isn't a keypress, this returns nil." (eq (face-attribute face :inherit) 'variable-pitch))) (defun skk-event-key (event) - "$B%$%Y%s%H(B EVENT $B$rH/@8$7$?F~NO$N>pJs$rC$9!#(B -$B%*%W%7%g%J%k0z?t$N(B CLEAN $B$,;XDj$5$l$k$H!"JQ?t$H$7$F$N(B `skk-prefix' $B$r6uJ8;z$K!"(B -`skk-current-rule-tree' $B$r(B nil $B$K=i4|2=$9$k!#(B" - ;; $B$+$JJ8;z$NF~NO$,$^$@40@.$7$F$$$J$$>l9g$K$3$N4X?t$,8F$P$l$?$H$-$J$I$O(B - ;; $BI=<($5$l$F$$$k(B skk-prefix $B$O:o=|$7$?$$$,!"JQ?t$H$7$F$N(B skk-prefix $B$O(B - ;; null $BJ8;z$K$7$?$/$J$$!#(B + "`skk-echo' が non-nil であれば現在表示されている `skk-prefix' を消す。 +オプショナル引数の CLEAN が指定されると、変数としての `skk-prefix' を空文字に、 +`skk-current-rule-tree' を nil に初期化する。" + ;; かな文字の入力がまだ完成していない場合にこの関数が呼ばれたときなどは + ;; 表示されている skk-prefix は削除したいが、変数としての skk-prefix は + ;; null 文字にしたくない。 (when (overlayp skk-prefix-overlay) (condition-case nil (delete-overlay skk-prefix-overlay) @@ -421,7 +421,7 @@ If the event isn't a keypress, this returns nil." (when (stringp kana) (skk-insert-str kana)) (skk-set-marker skk-kana-start-point nil) - (or data t)))) ; skk-prefix $B$KBP1~$9$k%G!<%?$,$"$C$?$J$i$=$l$rJV$9(B + (or data t)))) ; skk-prefix に対応するデータがあったならそれを返す (defsubst skk-numeric-p () (and skk-use-numeric-conversion @@ -437,14 +437,14 @@ If the event isn't a keypress, this returns nil." (vectorp skk-jisyo-update-vector)) (defsubst skk-lower-case-p (char) - "CHAR $B$,>.J8;z$N%"%k%U%!%Y%C%H$G$"$l$P!"(Bt $B$rJV$9!#(B" + "CHAR が小文字のアルファベットであれば、t を返す。" (and (<= ?a char) (>= ?z char))) (defsubst skk-downcase (char) - "$BO"A[%j%9%H(B `skk-downcase-alist' $B$K3:Ev$"$l$P(B (assq)$B!"MWAG(B($B;R%j%9%H(B)$B$N(B cdr $B$rJV$9!#(B -$B3:Ev$J$1$l$P(B $B4X?t(B `downcase'$B$N7k2L$rJV$9!#(B -$B4X?t(B `skk-set-henkan-point' $B$+$i8F$P$l$F$$$k!#(B" + "連想リスト `skk-downcase-alist' に該当あれば (assq)、要素(子リスト)の cdr を返す。 +該当なければ 関数 `downcase'の結果を返す。 +関数 `skk-set-henkan-point' から呼ばれている。" (or (cdr (assq char skk-downcase-alist)) (downcase char))) @@ -510,12 +510,12 @@ If the event isn't a keypress, this returns nil." skk-j-mode nil skk-jisx0208-latin-mode nil skk-jisx0201-mode nil - ;; skk-abbrev-mode $B$O0l;~E*$J(B ascii $BJ8;z$K$h$kJQ49$J$N$G!"JQ498e$O85$N(B - ;; $BF~NO%b!<%I(B ($B$+$J%b!<%I$+%+%J%b!<%I(B) $B$KLa$k$3$H$,4|BT$5$l$k!#(B - ;; skk-katakana $B$O(B minor-mode $B%U%i%0$G$O$J$/!"(Bskk-j-mode $B%^%$%J!<%b!<%I(B - ;; $B$NCf$G$3$N%U%i%0$K$h$jF~NOJ8;z$r7hDj$9$k%]%$%s%?$rJQ99$9$k$@$1$J$N$G(B - ;; skk-abbrev-mode $B%^%$%J!<%b!<%I2=$9$k$N$K(B skk-katakana $B%U%i%0$r=i4|2=(B - ;; $B$7$J$1$l$P$J$i$J$$I,A3@-$O$J$$!#(B + ;; skk-abbrev-mode は一時的な ascii 文字による変換なので、変換後は元の + ;; 入力モード (かなモードかカナモード) に戻ることが期待される。 + ;; skk-katakana は minor-mode フラグではなく、skk-j-mode マイナーモード + ;; の中でこのフラグにより入力文字を決定するポインタを変更するだけなので + ;; skk-abbrev-mode マイナーモード化するのに skk-katakana フラグを初期化 + ;; しなければならない必然性はない。 ;; sub mode of skk-j-mode. ;;skk-katakana nil ) @@ -524,36 +524,36 @@ If the event isn't a keypress, this returns nil." (skk-cursor-set)) (defsubst skk-in-minibuffer-p () - "$B%+%l%s%H%P%C%U%!$,%_%K%P%C%U%!$G$"$l$P(B t $B$rJV$9!#(B" + "カレントバッファがミニバッファであれば t を返す。" (eq (current-buffer) (window-buffer (minibuffer-window)))) (defun skk-screen-column () - "$B%9%/%j!<%s9T$+$iF@$?%+!<%=%k0LCV$N7e?t$rJV$9!#(B -$B%F%-%9%H9T!J2~9TJ8;z$G6h@Z$i$l$?%F%-%9%H!K$,%&%#%s%I%&I}$r1[$($F@^$jJV$7$FI=<((B -$B$5$l$F$$$k>l9g$K$bBP1~$9$k!#(B" + "スクリーン行から得たカーソル位置の桁数を返す。 +テキスト行(改行文字で区切られたテキスト)がウィンドウ幅を越えて折り返して表示 +されている場合にも対応する。" (- (current-column) (save-excursion - (vertical-motion 0) ;$B%9%/%j!<%s9T$N9TF,$K0\F0$9$k(B - (current-column)))) ;$B",$3$N7k2L!"%9%/%j!<%s9T$N9TF,$J$N$+(B - ;$B%F%-%9%H9T$N9TF,$J$N$+(B + (vertical-motion 0) ;スクリーン行の行頭に移動する + (current-column)))) ;↑この結果、スクリーン行の行頭なのか + ;テキスト行の行頭なのか (defun skk-move-to-screen-column (col) - "$B%9%/%j!<%s9T$+$i8+$?(B COL $B7e0LCV$K%]%$%s%H$r0\F0$9$k!#(B -$B%F%-%9%H9T!J2~9TJ8;z$G6h@Z$i$l$?%F%-%9%H!K$,%&%#%s%I%&I}$r1[$($F@^$jJV$7$FI=<((B -$B$5$l$F$$$k>l9g$K$bBP1~$9$k$,!"2~9TJ8;z$r1[$($k0\F0$O9T$o$J$$!#(B" - (move-to-column (+ (current-column) ;$B%F%-%9%H9T$+$i8+$?7e?t(B + "スクリーン行から見た COL 桁位置にポイントを移動する。 +テキスト行(改行文字で区切られたテキスト)がウィンドウ幅を越えて折り返して表示 +されている場合にも対応するが、改行文字を越える移動は行わない。" + (move-to-column (+ (current-column) ;テキスト行から見た桁数 (- col (skk-screen-column)))) (skk-screen-column)) (defun skk-max-string-width (list) - "LIST $B$N3FMWAG$NCf$+$i!":GD9$N%3%i%`I}(B (string-width) $B$rJV$9!#(B" + "LIST の各要素の中から、最長のコラム幅 (string-width) を返す。" (apply 'max (mapcar 'string-width list))) (defun skk-insert-prefix (&optional char) - "`skk-echo' $B$,(B non-nil $B$G$"$l$P%+%l%s%H%P%C%U%!$K(B `skk-prefix' $B$rA^F~$9$k!#(B" + "`skk-echo' が non-nil であればカレントバッファに `skk-prefix' を挿入する。" (when skk-echo - ;; skk-prefix $B$O%"%s%I%%$NBP>]$H$J$i$J$$$N$G(B - ;; $B%P%C%U%!$KA^F~$5$l$kI,MW$,$J$$!#(B + ;; skk-prefix はアンドゥの対象とならないので + ;; バッファに挿入される必要がない。 (setq skk-prefix-overlay (make-overlay (point) (point))) (let ((prefix (or char skk-prefix))) (when (and skk-use-face (not skk-henkan-mode)) @@ -572,23 +572,23 @@ If the event isn't a keypress, this returns nil." (encode-coding-string str2 coding-system))) (defun skk-string< (str1 str2) - "STR1 $B$H(B STR2 $B$H$rHf3S$9$k!#(B -$BFbIt%3!<%I$,(B emacs-mule $B$G$J$$$J$I(B `stringp' $B$NJV$jCM$,0[$J$k(B Emacs $B$K(B -$BBP$7$F(B emacs-mule $B$N(B encoded string $B$KJQ49$7$FHf3S$9$k!#(B -$BHf3S$N7k2L(B str1 < str2 $B$J$i$P(B t $B$rJV$9!#(B" - ;; mule-version $B$,(B 6.0 $B0J>e$N(B GNU Emacs $B$O(B Emacs with coding system utf-8-emacs + "STR1 と STR2 とを比較する。 +内部コードが emacs-mule でないなど `stringp' の返り値が異なる Emacs に +対して emacs-mule の encoded string に変換して比較する。 +比較の結果 str1 < str2 ならば t を返す。" + ;; mule-version が 6.0 以上の GNU Emacs は Emacs with coding system utf-8-emacs ;; (emacs-version) => "GNU Emacs 28.0.50" - ;; (stringp "$B4A(B") => t - ;; (encode-coding-string "$B4A(B" 'emacs-mule) => "\222\264\301" + ;; (stringp "漢") => t + ;; (encode-coding-string "漢" 'emacs-mule) => "\222\264\301" (skk-string-lessp-in-coding-system str1 str2 'emacs-mule)) (defsubst skk-string<= (str1 str2) - "STR1 $B$H(B STR2 $B$H$rHf3S$7$F!"(B`string<' $B$+(B `string=' $B$G$"$l$P!"(Bt $B$rJV$9!#(B" + "STR1 と STR2 とを比較して、`string<' か `string=' であれば、t を返す。" (or (skk-string< str1 str2) (string= str1 str2))) (defsubst skk-do-auto-fill () - "`auto-fill-function' $B$KCM$,BeF~$5$l$F$$$l$P!"$=$l$r%3!<%k$9$k!#(B" + "`auto-fill-function' に値が代入されていれば、それをコールする。" (when auto-fill-function (funcall auto-fill-function))) @@ -602,18 +602,18 @@ If the event isn't a keypress, this returns nil." (defsubst skk-get-current-candidate-1 (&optional count) (setq count (or count skk-henkan-count)) (when (> 0 count) - (skk-error "$B8uJd$r ::= nil | ( . ) ;; ::= ( ) -;; ::= (<$B$R$i$,$JJ8;zNs(B> . <$B%+%?%+%JJ8;zNs(B>) | nil -;; ::= <$B1Q>.J8;z(B> -;; ::= <$B1Q>.J8;zJ8;zNs(B> | nil +;; ::= (<ひらがな文字列> . <カタカナ文字列>) | nil +;; ::= <英小文字> +;; ::= <英小文字文字列> | nil (defsubst skk-make-raw-arg (arg) (cond ((eql arg '1) nil) @@ -639,9 +639,9 @@ If the event isn't a keypress, this returns nil." skk-last-henkan-data))))) (defun skk-find-coding-system (code) - "CODE $B$,!"(BEmacs $B$,2r l 2) (eq (aref string 0) ?\() ;; second character is ascii or not. (skk-ascii-char-p (aref string 1)) - (eq (aref string (1- l)) ?\)) ; $B$3$N9T!"$b$&ITMW$+$b(B + (eq (aref string (1- l)) ?\)) ; この行、もう不要かも (ignore-errors (= l (cdr (read-from-string string))))))) @@ -670,8 +670,8 @@ If the event isn't a keypress, this returns nil." (skk-eval-string (substring string (match-end 0))))) ((skk-lisp-prog-p string) (let (func face) - ;; (^_^;) $B$N$h$&$JJ8;zNs$KBP$7!"(Bread-from-string $B$r8F$V$H(B - ;; $B%(%i!<$K$J$k$N$G!"(Bignore-errors $B$G0O$`!#(B + ;; (^_^;) のような文字列に対し、read-from-string を呼ぶと + ;; エラーになるので、ignore-errors で囲む。 (ignore-errors (setq func (car (read-from-string string))) (when (and (listp func) @@ -686,7 +686,7 @@ If the event isn't a keypress, this returns nil." string))) ;;;; from dabbrev.el. Welcome! -;; $BH=Dj4V0c$$$rHH$9>l9g$"$j!#MW2~NI!#(B +;; 判定間違いを犯す場合あり。要改良。 (defsubst skk-minibuffer-origin () (nth 1 (buffer-list))) @@ -694,14 +694,14 @@ If the event isn't a keypress, this returns nil." (mapconcat (lambda (char) (or (cdr (assq char alist)) (char-to-string char))) - ;; $BJ8;zNs$rBP1~$9$k(B char $B$N%j%9%H$KJ,2r$9$k!#(B + ;; 文字列を対応する char のリストに分解する。 (append word nil) "")) (defun skk-key-binding-member (key commands &optional map) - "$BF~NO(B KEY $B$,H/F0$9$k%3%^%s%I$,!"(BCOMMANDS $B$K4^$^$l$l$P(B non-nil $B$rJV$9!#(B -MAP $B$OF~NO$,=q$+$l$F$$$k%-!<%^%C%W$r;XDj$9$k$,!";XDj$5$l$J$1$l$P(B -`skk-j-mode-map' $B$r;2>H$9$k!#(B -$B$3$N4X?t$O!"F~NO(B KEY $B$,(B `lookup-key' $B$GC5$;$J$$7A<0$G$"$j$&$k>l9g$KMQ$$$k!#(B" + "入力 KEY が発動するコマンドが、COMMANDS に含まれれば non-nil を返す。 +MAP は入力が書かれているキーマップを指定するが、指定されなければ +`skk-j-mode-map' を参照する。 +この関数は、入力 KEY が `lookup-key' で探せない形式でありうる場合に用いる。" (unless map (setq map skk-j-mode-map)) (let (keys) @@ -744,8 +744,8 @@ Return the modified ALIST." (set symbol (skk-del-alist key (symbol-value symbol))))) (defun skk-reset-henkan-count (count) - ;; $B"&%b!<%I$KLa$k$H$-$O(B 0 - ;; $B"'%b!<%I$N$^$^8uJd0lMw$N \(\"#2\" .\"$B0l(B\"\) -$B$N$h$&$KJQ49$9$k!#(B" + "INDEX が指す `skk-henkan-list' の要素を数値変換のために加工する。 +`skk-henkan-list' の INDEX が指している候補 \(数値変換キーの)\ を + \"#2\" -> \(\"#2\" .\"一\"\) +のように変換する。" (let ((key (skk-get-current-candidate-1 index)) convlist current) (unless (consp key) @@ -83,11 +83,11 @@ (cond ((null convlist) nil) - ;; CONV-LIST $B$NA4MWAG$,J8;zNs!#(B + ;; CONV-LIST の全要素が文字列。 ((null (memq t (mapcar 'listp convlist))) (setq current (mapconcat 'identity convlist "")) (if (skk-get-current-candidate-1) - ;; ("A" "#2" "C") -> ("A" ("#2" ."$B0l(B") "C") + ;; ("A" "#2" "C") -> ("A" ("#2" ."一") "C") (setcar (nthcdr index skk-henkan-list) (cons key current)) (setq skk-henkan-list @@ -109,34 +109,34 @@ (skk-num-uniq)))))))) (defun skk-num-convert-1 (key) - "KEY $B$r(B `skk-num-list' $B$K=>$$JQ49$9$k!#(B -$BJQ498e$NJ8;zNs$N%Q!<%D$r=g$K$J$i$Y$?%j%9%H$rJV$9!#Nc$($P(B - KEY ::= `$BJ?@.(B#0$BG/(B', return ::= (\"$BJ?@.(B\" \"13\" \"$BG/(B\")" + "KEY を `skk-num-list' に従い変換する。 +変換後の文字列のパーツを順にならべたリストを返す。例えば + KEY ::= `平成#0年', return ::= (\"平成\" \"13\" \"年\")" (unless (or (not key) (consp key)) (let ((numexp (if skk-num-convert-float - ;; "." $B$r4^$a$k0U?^$O(B? + ;; "." を含める意図は? "#[.0-9]+" "#[0-9]+")) (n 0) (workkey key) num convnum string convlist beg) (save-match-data (while (and - ;; $B6qBNE*$J?tCM$rJ];}$7$F$$$k%j%9%H$r;2>H$9$k!#(B + ;; 具体的な数値を保持しているリストを参照する。 (setq num (nth n skk-num-list)) (setq beg (string-match numexp workkey))) - (setq convnum ; $B?tCMJQ49$5$l$?ItJ,$NJ8;zNs(B - ;; $B6qBNE*$J?t;z$rJQ49%?%$%W$K=>$$JQ49$9$k!#(B + (setq convnum ; 数値変換された部分の文字列 + ;; 具体的な数字を変換タイプに従い変換する。 (skk-num-exp num (string-to-number (substring workkey (1+ beg) (match-end 0)))) - ;; $B=hM}$5$l$??tCM%-!<$^$G$N(B prefix $BJ8;zNs(B + ;; 処理された数値キーまでの prefix 文字列 string (substring workkey 0 beg) - ;; $BL$=hM}$NJ8;zNs(B + ;; 未処理の文字列 workkey (substring workkey (match-end 0)) n (1+ n)) - ;; $BJQ49$5$l$?J8;z$H?tCMJQ49$K4X78$N$J$$L5JQ49$NJ8;z$rJB$Y$?%j%9%H(B + ;; 変換された文字と数値変換に関係のない無変換の文字を並べたリスト (setq convlist (nconc convlist (list string convnum)))) (delete "" (nconc convlist (list workkey))))))) @@ -155,21 +155,21 @@ (defun skk-num-rawnum-exp (string) (setq string (skk-num-rawnum-exp-1 - string "[$B#0(B-$B#9(B][$B!;0l6e8^;0;M<7FsH,O;(B]" "#9" 0)) + string "[0-9][〇一九五三四七二八六]" "#9" 0)) (setq string (skk-num-rawnum-exp-1 string "\\(^\\|[^#0-9]\\)\\([0-9]+\\)" "#0" 2)) (setq string (skk-num-rawnum-exp-1 - string "[$B#0(B-$B#9(B]+" "#1" 0)) + string "[0-9]+" "#1" 0)) (setq string (skk-num-rawnum-exp-1 - string "\\([$B!;0l6e8^;0;M<7FsH,O;==(B][$B==I4@iK|2/C{5~(B]\\)+" + string "\\([〇一九五三四七二八六十][十百千万億兆京]\\)+" "#3" 0)) ;; (mapcar 'char-to-string ;; (sort - ;; '(?$B0l(B ?$BFs(B ?$B;0(B ?$B;M(B ?$B8^(B ?$BO;(B ?$B<7(B ?$BH,(B ?$B6e(B ?$B!;(B) '<)) - ;; --> ("$B!;(B" "$B0l(B" "$B6e(B" "$B8^(B" "$B;0(B" "$B;M(B" "$B<7(B" "$BFs(B" "$BH,(B" "$BO;(B") + ;; '(?一 ?二 ?三 ?四 ?五 ?六 ?七 ?八 ?九 ?〇) '<)) + ;; --> ("〇" "一" "九" "五" "三" "四" "七" "二" "八" "六") ;; - ;; [$B!;(B-$B6e(B] $B$H$$$&@55,I=8=$,;H$($J$$$N$G!"@8$N$^$^$D$C$3$s$G$*$/!#(B - (skk-num-rawnum-exp-1 string "[$B!;0l6e8^;0;M<7FsH,O;(B]+" "#2" 0)) + ;; [〇-九] という正規表現が使えないので、生のままつっこんでおく。 + (skk-num-rawnum-exp-1 string "[〇一九五三四七二八六]+" "#2" 0)) (defun skk-num-rawnum-exp-1 (string key type place) (save-match-data @@ -180,8 +180,8 @@ string)) (defun skk-num-flatten-list (list) - "$BM?$($i$l$?%j%9%H$N3FMWAG$+$iAH$_9g$;2DG=$JJ8;zNs$NO"@\$r:n$k!#(B -$B7k2L$O%j%9%H$GJV$9!#Nc$($P(B + "与えられたリストの各要素から組み合せ可能な文字列の連接を作る。 +結果はリストで返す。例えば ((\"A\" \"B\") \"1\" (\"X\" \"Y\")) -> (\"A1X\" \"A1Y\" \"B1X\" \"B1Y\")" (let ((dst (car list))) (unless (listp dst) @@ -204,24 +204,24 @@ ;;;###autoload (defun skk-num-exp (num type) - "ascii $B?t;z(B (string) $B$N(B NUM $B$r(B TYPE $B$K=>$C$FJQ49$7$?J8;zNs$rJV$9!#(B -TYPE $B$O2<5-$NDL$j!#(B -0 -> $BL5JQ49(B -1 -> $BA43Q?t;z$XJQ49(B -2 -> $B4A?t;z(B ($B0L $B0l!;Fs;M(B -3 -> $B4A?t;z(B ($B0L $B@iFs==;M(B -4 -> $B$=$N?t;z$=$N$b$N$r%-!<$K$7$F<-=q$r:F8!:w(B -5 -> $B4A?t;z(B ($B $B7e6h@Z$j$XJQ49(B (1,234,567) -9 -> $B>-4}$G;HMQ$9$k?t;z(B (\"$B#3;M(B\" $B$J$I(B) $B$XJQ49(B" + "ascii 数字 (string) の NUM を TYPE に従って変換した文字列を返す。 +TYPE は下記の通り。 +0 -> 無変換 +1 -> 全角数字へ変換 +2 -> 漢数字 (位取りあり) へ変換。例;1024 -> 一〇二四 +3 -> 漢数字 (位取りなし) へ変換。例;1024 -> 千二十四 +4 -> その数字そのものをキーにして辞書を再検索 +5 -> 漢数字 (手形などで使用する文字を使用) へ変換 +8 -> 桁区切りへ変換 (1,234,567) +9 -> 将棋で使用する数字 (\"3四\" など) へ変換" (save-match-data (let ((fun (cdr (assq type skk-num-type-alist)))) (when fun (funcall fun num))))) (defun skk-num-jisx0208-latin (num) - "ascii $B?t;z$N(B NUM $B$rA43Q?t;z$NJ8;zNs$KJQ49$7!"JQ498e$NJ8;zNs$rJV$9!#(B -$BNc$($P(B \"45\" $B$r(B \"$B#4#5(B\" $B$KJQ49$9$k!#(B" + "ascii 数字の NUM を全角数字の文字列に変換し、変換後の文字列を返す。 +例えば \"45\" を \"45\" に変換する。" (let ((candidate (mapconcat (lambda (c) (skk-num-get-suuji c skk-num-alist-type1)) @@ -230,8 +230,8 @@ TYPE $B$O2<5-$NDL$j!#(B candidate))) (defun skk-num-type2-kanji (num) - "ascii $B?t;z(B NUM $B$r4A?t;z$NJ8;zNs(B ($B0L.?tE@$r4^$^$J$$?t(B + ;; 小数点を含まない数 (skk-num-to-kanji num 'type3)))) (defun skk-num-type5-kanji (num) - "ascii $B?t;z(B NUM $B$r4A?t;z$NJ8;zNs$KJQ49$7!"JQ498e$NJ8;zNs$rJV$9!#(B -$BNc$($P(B \"1021\" $B$r(B \"$B0motFu=&0m(B\" $B$KJQ49$9$k!#(B" + "ascii 数字 NUM を漢数字の文字列に変換し、変換後の文字列を返す。 +例えば \"1021\" を \"壱阡弐拾壱\" に変換する。" (save-match-data (when (skk-num-int-p num) - ;; $B>.?tE@$r4^$^$J$$?t(B + ;; 小数点を含まない数 (skk-num-to-kanji num 'type5)))) (defun skk-num-to-kanji (num type &optional alist) - "NUM $B$r(B TYPE $B$N7A<0$N4A?t;z$K$9$k!#0L$J$I$rI=$94A;z$O(B ALIST $B$+$i len 20) - (skk-error "$B0L$,Bg$-$9$.$^$9!*(B" "Too big number!")) + (skk-error "位が大きすぎます!" "Too big number!")) (setq num (append num nil)) (cond ((<= len 4) (while (setq char (car num)) - ;; $B0L(B: $B0l(B $B==(B $BI4(B $B@i(B + ;; 位: 一 十 百 千 ;; len: 1 2 3 4 (cond ((= len 1) - ;; $B0L$rI=$o$94A?t;z0J30$N4A?t;z!#(B + ;; 位を表わす漢数字以外の漢数字。 (unless (eq char ?0) - ;; $B0l$N0L$G(B 0 $B$G$J$$?t!#(B + ;; 一の位で 0 でない数。 (setq v (concat v (skk-num-get-suuji char alist))))) (t - ;; $B0L$rI=$o$94A?t;z0J30$N4A?t;z!#(B + ;; 位を表わす漢数字以外の漢数字。 (unless (or (and (eq type 'type3) (memq char '(?0 ?1))) (and (eq type 'type5) (eq char ?0))) - ;; type3 $B$N$H$-$O!"==$N0L0J>e$G!"$+$D(B 0, 1 $B0J30$N?t;z!#(B - ;; type5 $B$N$H$-$O!"==$N0L0J>e$G!"$+$D(B 0 $B0J30$N?t;z!#(B + ;; type3 のときは、十の位以上で、かつ 0, 1 以外の数字。 + ;; type5 のときは、十の位以上で、かつ 0 以外の数字。 (setq v (concat v (skk-num-get-suuji char alist)))) - ;; $B0L$rI=$o$94A?t;z!#(B + ;; 位を表わす漢数字。 (when (and (not (eq char ?0)) (< 1 len)) (setq v (concat v (skk-num-get-suuji - (cond ((eq len 2) 'ju) ; $B==(B - ((eq len 3) 'hyaku) ; $BI4(B - (t 'sen)) ; $B@i(B + (cond ((eq len 2) 'ju) ; 十 + ((eq len 3) 'hyaku) ; 百 + (t 'sen)) ; 千 alist)))))) (setq len (1- len) num (cdr num)))) (t @@ -314,10 +314,10 @@ TYPE $B$O2<5-$NDL$j!#(B (setq v1 (skk-num-to-kanji num1 type alist)) (when (string= v1 (skk-num-get-suuji ?0 alist)) (setq v1 "")) - (when (and (eq type 'type3) (eq i 1) (equal v1 "$B@i(B")) - ;; $BF|K\8l$G$O!V@i2/!W$H$$$&I=8=$O$H$-$K;H$o$l$k$,!"!V@iK|!W$H$$$&I=(B - ;; $B8=$O$^$:;H$o$l$J$$$N$G!"!V0l@iK|!W$KD>$9!#(B - (setq v1 (concat "$B0l(B" v1))) + (when (and (eq type 'type3) (eq i 1) (equal v1 "千")) + ;; 日本語では「千億」という表現はときに使われるが、「千万」という表 + ;; 現はまず使われないので、「一千万」に直す。 + (setq v1 (concat "一" v1))) (setq v (concat @@ -325,10 +325,10 @@ TYPE $B$O2<5-$NDL$j!#(B (when v1 (skk-num-get-suuji (cond ((eq i 0) ?\ ) - ((eq i 1) 'man) ; $BK|(B - ((eq i 2) 'oku) ; $B2/(B - ((eq i 3) 'cho) ; $BC{(B - ((eq i 4) 'kei)) ; $B5~(B + ((eq i 1) 'man) ; 万 + ((eq i 2) 'oku) ; 億 + ((eq i 3) 'cho) ; 兆 + ((eq i 4) 'kei)) ; 京 alist)) v))) (setq i (1+ i))))) @@ -338,7 +338,7 @@ TYPE $B$O2<5-$NDL$j!#(B (defun add-number-grouping (number &optional separator places) ;; http://www.emacswiki.org/cgi-bin/wiki/AddCommasToNumbers - ;; and $B6LLn7r0l(B + ;; and 玉野健一 "Add commas to NUMBER and return it as a string. Optional SEPARATOR is the string to use to separate groups. It defaults to a comma. @@ -359,17 +359,17 @@ TYPE $B$O2<5-$NDL$j!#(B num)) (defun skk-num-grouping (num) - "ascii $B?t;z$N(B NUM $B$r7e6h@Z$j$XJQ49$7!"JQ498e$NJ8;zNs$rJV$9!#(B -$BNc$($P(B \"1234567\" $B$r(B \"1,234,567\" $B$XJQ49$9$k!#(B -$B6h@Z$k5-9f$O(B `skk-num-grouping-separator' $B$G!"6h@Z$k7e?t$O(B `skk-num-grouping-places' $B$G;XDj$9$k!#(B" + "ascii 数字の NUM を桁区切りへ変換し、変換後の文字列を返す。 +例えば \"1234567\" を \"1,234,567\" へ変換する。 +区切る記号は `skk-num-grouping-separator' で、区切る桁数は `skk-num-grouping-places' で指定する。" (add-number-grouping (string-to-number num) ; number skk-num-grouping-separator ; `,' skk-num-grouping-places ; 3 )) (defun skk-num-shogi (num) - "ascii $B?t;z$N(B NUM $B$r>-4}$G;HMQ$5$l$k?t;zI=5-$KJQ49$9$k!#(B -$BNc$($P(B \"34\" $B$r(B \"$B#3;M(B\" $B$KJQ49$9$k!#(B" + "ascii 数字の NUM を将棋で使用される数字表記に変換する。 +例えば \"34\" を \"3四\" に変換する。" (save-match-data (when (and (= (length num) 2) (skk-num-int-p num)) @@ -380,26 +380,26 @@ TYPE $B$O2<5-$NDL$j!#(B candidate))))) (defun skk-num-recompute (num) - "#4 $B$N8+=P$7$KBP$7(B `skk-henkan-key' $B$KBeF~$5$l$??t;z$=$N$b$N$r:FEY8!:w$9$k!#(B" + "#4 の見出しに対し `skk-henkan-key' に代入された数字そのものを再度検索する。" (let (result) (setq skk-num-recompute-key num) (with-temp-buffer - ;; $B%+%l%s%H%P%C%U%!$N%P%C%U%!%m!<%+%kJQ?t$K1F6A$r5Z$\$5$J$$$h$&!"(B - ;; $B%o!<%-%s%0%P%C%U%!$X0lC6F($2$k(B + ;; カレントバッファのバッファローカル変数に影響を及ぼさないよう、 + ;; ワーキングバッファへ一旦逃げる (let ((skk-current-search-prog-list skk-search-prog-list) (skk-henkan-key num) - ;; $B%+%l%s%H$NJQ49$OAw$j$J$7(B (skk-henkan-okurigana $B$H(B - ;; skk-okuri-char $B$O$$$:$l$b(B nil) $B$@$,!"JL%P%C%U%!(B - ;; (work $B%P%C%U%!(B) $B$KF~$C$F$$$k$N$G!"G0$N$?$a!"(Bnil $B$r(B - ;; $BF~$l$F$*$/!#(B + ;; カレントの変換は送りなし (skk-henkan-okurigana と + ;; skk-okuri-char はいずれも nil) だが、別バッファ + ;; (work バッファ) に入っているので、念のため、nil を + ;; 入れておく。 skk-henkan-okurigana skk-okuri-char skk-use-numeric-conversion) (while skk-current-search-prog-list (setq result (skk-nunion result (skk-search)))))) - ;; $B$3$3$G(B temp-buffer $B$r=P$FJQ49$r9T$C$F$$$k%+%l%s%H%P%C%U%!$KLa$k(B - ;; ($B%P%C%U%!%m!<%+%kCM$G$"$k(B skk-henkan-list $B$rA`:n$7$?$$$?$a(B)$B!#(B + ;; ここで temp-buffer を出て変換を行っているカレントバッファに戻る + ;; (バッファローカル値である skk-henkan-list を操作したいため)。 (cond ((not result) - ;; $BJQ49$G$-$J$+$C$?$i85$N?t;z$r$=$N$^$^JV$7$F$*$/!#(B + ;; 変換できなかったら元の数字をそのまま返しておく。 num) ((null (cdr result));;(= (length result) 1) (car result)) @@ -414,7 +414,7 @@ TYPE $B$O2<5-$NDL$j!#(B (let ((n1 -1) n2 e1 e2 e3 - ;; 1 $B$D$G$b(B 2 $B7e0J>e$N?t;z$,$"$l$P!"(B#2 $B$H(B #3 $B$G$O(B uniq $B$7$J$$!#(B + ;; 1 つでも 2 桁以上の数字があれば、#2 と #3 では uniq しない。 (type2and3 (> 2 (apply 'max (mapcar 'length skk-num-list)))) type2 type3 index2 index3 @@ -422,26 +422,26 @@ TYPE $B$O2<5-$NDL$j!#(B tail2 tail3 case-fold-search) (while (setq n1 (1+ n1) e1 (nth n1 skk-henkan-list)) - ;; cons cell $B$G$J$1$l$P(B skk-nunion $B$G=hM}:Q$_$J$N$G!"=EJ#$O$J$$!#(B + ;; cons cell でなければ skk-nunion で処理済みなので、重複はない。 (when (consp e1) (setq skk-henkan-list (delete (car e1) skk-henkan-list) skk-henkan-list (delete (cdr e1) skk-henkan-list))) (when (and skk-num-recompute-key (consp e1)) - ;; ("#4" . "xxx") $B$r4^$`8uJd$,(B skk-henkan-list $B$NCf$K$"$k!#(B + ;; ("#4" . "xxx") を含む候補が skk-henkan-list の中にある。 (setq n2 -1) (while (setq n2 (1+ n2) e2 (nth n2 skk-henkan-list)) (when (and (not (= n1 n2)) (consp e2) - ;; $BNc$($P(B ("#4" . "$B0l(B") $B$H(B ("#2" . "$B0l(B") $B$,(B - ;; $BJBB8$7$F$$$k>l9g!#(B + ;; 例えば ("#4" . "一") と ("#2" . "一") が + ;; 並存している場合。 (string= (cdr e1) (cdr e2))) (setq skk-henkan-list (delq e2 skk-henkan-list))))) (when type2and3 - ;; 1 $B7e$N?t;z$rJQ49$9$k:]$K!"(Bskk-henkan-list $B$K(B #2 $B%(%s%H%j$H(B #3 - ;; $B%(%s%H%j$,$"$l$P!"(B#2 $B$b$7$/$O(B #3 $B%(%s%H%j$N$&$A!"$h$j8eJ}$K$"$k(B - ;; $B$b$N$r>C$9!#(B + ;; 1 桁の数字を変換する際に、skk-henkan-list に #2 エントリと #3 + ;; エントリがあれば、#2 もしくは #3 エントリのうち、より後方にある + ;; ものを消す。 (setq e3 (if (consp e1) (car e1) e1)) - ;; e3 $B$O(B "#2" $B$N$h$&$K?tCMJQ49$r<($9J8;zNs$N$_$H$O8B$i$J$$$N$G!"(B - ;; member $B$O;H$($J$$!#(B + ;; e3 は "#2" のように数値変換を示す文字列のみとは限らないので、 + ;; member は使えない。 (cond ((string-match "#2" e3) (setq type2 e1 index2 n1 @@ -453,34 +453,34 @@ TYPE $B$O2<5-$NDL$j!#(B head3 (substring e3 0 (match-beginning 0)) tail3 (substring e3 (match-end 0))))))) (when (and type2and3 type2 type3 - ;; $B?tCMJQ49$r<($9J8;zNs(B "#[23]" $B$NA08e$NJ8;zNs$bF10l$N$H(B - ;; $B$-$N$_(B uniq $B$r9T$&!#(B + ;; 数値変換を示す文字列 "#[23]" の前後の文字列も同一のと + ;; きのみ uniq を行う。 (string= head2 head3) (string= tail2 tail3)) (if (> index2 index3) - ;; "#3" $B$NJ}$,A0$K$"$k!#(B + ;; "#3" の方が前にある。 (setq skk-henkan-list (delq type2 skk-henkan-list)) - ;; $BJQ?t(B type[23] $B$NCM$O!"(Bskk-henkan-list $B$+$iD>@\Cj=P$7$?$b(B - ;; $B$N$@$+$i(B delete $B$G$J$/!"(Bdelq $B$G==J,!#(B + ;; 変数 type[23] の値は、skk-henkan-list から直接抽出したも + ;; のだから delete でなく、delq で十分。 (setq skk-henkan-list (delq type3 skk-henkan-list)))))))) ;;;###autoload (defun skk-num-initialize () - "`skk-use-numeric-conversion' $B4XO"$NJQ?t$r=i4|2=$9$k!#(B" + "`skk-use-numeric-conversion' 関連の変数を初期化する。" (setq skk-last-henkan-data (skk-put-alist 'num-list skk-num-list skk-last-henkan-data) skk-num-list nil skk-num-recompute-key nil)) ;;;###autoload (defun skk-num-henkan-key () - "$BE,@Z$JJQ49%-!<$rJV$9!#(B -type4 $B$N?tCM:FJQ49$,9T$o$l$?$H$-$O!"?tCM<+?H$rJV$7!"$=$l0J30$N?tCMJQ49(B -$B$G$O!"(B`skk-henkan-key' $B$N?tCM$r(B \"#\" $B$GCV$-49$($?%-!<$rJV$9!#(B" + "適切な変換キーを返す。 +type4 の数値再変換が行われたときは、数値自身を返し、それ以外の数値変換 +では、`skk-henkan-key' の数値を \"#\" で置き換えたキーを返す。" (or skk-num-recompute-key (skk-num-compute-henkan-key skk-henkan-key))) ;;;###autoload (defun skk-num-update-jisyo (noconvword word &optional purge) - "$B?t;z<+?H$r8+=P$78l$H$7$F<-=q$r%"%C%W%G!<%H$9$k!#(B" + "数字自身を見出し語として辞書をアップデートする。" (when (and skk-num-recompute-key (save-match-data (string-match "#4" noconvword))) (with-current-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg) @@ -491,8 +491,8 @@ type4 $B$N?tCM:FJQ49$,9T$o$l$?$H$-$O!"?tCM<+?H$rJV$7!"$=$l0J30$N?tCMJQ49(B ;;;###autoload (defun skk-num (str) - "$B?t;z$r(B `skk-number-style' $B$NCM$K=>$$JQ49$9$k!#(B -`skk-current-date' $B$N%5%V%k!<%A%s!#(B" + "数字を `skk-number-style' の値に従い変換する。 +`skk-current-date' のサブルーチン。" (mapconcat (lambda (c) (cond ((or (< ?9 c) (< c 0)) diff --git a/skk-search-web.el b/skk-search-web.el index ad7ed964..997fb4c6 100644 --- a/skk-search-web.el +++ b/skk-search-web.el @@ -1,4 +1,4 @@ -;;; skk-search-web.el --- Google $B%5%8%'%9%H$J$I$rMxMQ$7$?$+$J4A;zJQ49(B -*- coding: iso-2022-jp -*- +;;; skk-search-web.el --- Google サジェストなどを利用したかな漢字変換 -*- coding: iso-2022-jp -*- ;; Copyright (C) 2010, 2011 HAMANO Kiyoto ;; Copyright (C) 2011 Tsuyoshi Kitamoto @@ -24,24 +24,24 @@ ;;; Commentary: -;; $B;HMQJ}K!$r#2$D@bL@$7$^$9!#9%$_$NJ}$r;HMQ$7$F$/$@$5$$!#(B +;; 使用方法を2つ説明します。好みの方を使用してください。 -;; (1) $B$+$J4A;zJQ49$N8uJd$K(B Google $B%5%8%'%9%H$rMxMQ$9$k(B -;; skk-search-prog-list $B$N:G8eJ}$K(B skk-search-web() $B$rCV$/$3$H$K$h$j!"(B -;; $B8D?M<-=q$d6&M-<-=q$KEPO?$5$l$F$$$J$$8+=P$78l$r(B Google $B%5%8%'%9%H(B -;; $B$7$^$9!#(B +;; (1) かな漢字変換の候補に Google サジェストを利用する +;; skk-search-prog-list の最後方に skk-search-web() を置くことにより、 +;; 個人辞書や共有辞書に登録されていない見出し語を Google サジェスト +;; します。 ;; (add-to-list 'skk-search-prog-list ;; '(skk-search-web 'skk-google-suggest) ;; t) -;; (2) $B<-=qEPO?%b!<%I$X$NFMF~;~$N=i4|CM$K(B Google $B%5%8%'%9%H$rMxMQ$9$k(B +;; (2) 辞書登録モードへの突入時の初期値に Google サジェストを利用する ;; (setq skk-read-from-minibuffer-function ;; (lambda () ;; (car (skk-google-suggest skk-henkan-key)))) -;; $B>e5-Nc$G<($7$?4X?t(B skk-google-suggest $B$O(B skk-google-cgi-api-for-japanese-input -;; $B$KCV$-49$(2DG=$G$9!#(B +;; 上記例で示した関数 skk-google-suggest は skk-google-cgi-api-for-japanese-input +;; に置き換え可能です。 ;; (add-to-list 'skk-search-prog-list ;; '(skk-search-web 'skk-google-cgi-api-for-japanese-input) ;; t) @@ -50,19 +50,19 @@ ;; (lambda () ;; (car (skk-google-cgi-api-for-japanese-input skk-henkan-key)))) -;; SKK Dynamic Completion $B$HJ;MQ$9$k$3$H$b2DG=$G$9!#(B +;; SKK Dynamic Completion と併用することも可能です。 ;; (add-to-list 'skk-completion-prog-list '(skk-comp-google) t) ;;; Test: ;; (let ((skk-henkan-key "emacs")) ;; (skk-search-web 'skk-google-suggest)) -;; => ("emacs" "emacs $B%3%^%s%I(B" "emacs windows" "emacs $B;H$$J}(B" "emacs $BJ8;z%3!<%I(B" ...) +;; => ("emacs" "emacs コマンド" "emacs windows" "emacs 使い方" "emacs 文字コード" ...) -;;; $B $B$5$s$,(B -;; $B=q$$$?5-;v(B http://d.hatena.ne.jp/khiker/20100128/google_suggest $B$G$9!#(B -;; $B2~JQ!"8x3+$r2w$/>5Bz$7$F$$$?$@$$$?(B HAMANO Kiyoto $B$5$s$K46 さんが +;; 書いた記事 http://d.hatena.ne.jp/khiker/20100128/google_suggest です。 +;; 改変、公開を快く承諾していただいた HAMANO Kiyoto さんに感謝します。 ;;; Code: @@ -75,7 +75,7 @@ (defvar skk-comp-first)) (defun skk-url-retrieve (url coding-system) - "URL $B$rL>$@$H$"$^$j%R%C%H$7$J$$!#$=$N$?$a!"$+$J4A;z(B - ;; $BJQ49$NMQES$K$OIT8~$-$+$b!#(B + ;; ["みだしご" ["候補a" "候補b" "候補c"]] + ;; ※「みだしご」が漢字であれば様々な候補が得られるが、 + ;; 平仮名だとあまりヒットしない。そのため、かな漢字 + ;; 変換の用途には不向きかも。 (ary (aref json 1)) list) (dotimes (i (length ary)) diff --git a/skk-server-completion.el b/skk-server-completion.el index 8bc215cf..b1a48bed 100644 --- a/skk-server-completion.el +++ b/skk-server-completion.el @@ -1,4 +1,4 @@ -;;; skk-server-completion.el --- server completion $B$N%/%i%$%"%s%H(B -*- coding: iso-2022-jp -*- +;;; skk-server-completion.el --- server completion のクライアント -*- coding: iso-2022-jp -*- ;; Copyright (C) 2005 Fumihiko MACHIDA @@ -19,29 +19,29 @@ ;;; Commentary: -;; Server completion $B$KBP1~$7$?<-=q%5!<%P$rMQ$$8+=P$78l$+$i;O$^$kA4$F$N(B -;; $B8l6g$N8!:w$r9T$$$^$9!#(B +;; Server completion に対応した辞書サーバを用い見出し語から始まる全ての +;; 語句の検索を行います。 -;; $B$3$N%W%m%0%i%`$O0J2<$N(B 2 $B$D$N5!G=$rDs6!$7$^$9!#(B +;; このプログラムは以下の 2 つの機能を提供します。 -;; * skk-look $B$NF|K\8lHG!#FI$_$N:G8e$K(B `~' $B$rIU$1$FJQ49$9$k$H!"$=$NFI$_$+(B -;; $B$i;O$^$kA4$F$N8uJd$rI=<($7$^$9!#(B +;; * skk-look の日本語版。読みの最後に `~' を付けて変換すると、その読みか +;; ら始まる全ての候補を表示します。 -;; $BNc!'(B +;; 例: -;; $B"&$^$A$@(B~ -;; ==> "$B$^$A$@(B" "$BD.ED(B" "$B$^$A$@$($-(B" "$BD.ED1X(B" "$B$^$A$@$*$@$-$e$&(B" "$BD.ED>.ED5^(B" .. +;; ▽まちだ~ +;; ==> "まちだ" "町田" "まちだえき" "町田駅" "まちだおだきゅう" "町田小田急" .. -;; * skk-comp $B$G!"(Bserver completion $B$r;HMQ(B +;; * skk-comp で、server completion を使用 -;; $BNc!'(B +;; 例: -;; $B"&$^$A$@(B-!- $B$G(B Tab $B$r2!$9$H!""&$^$A$@$($-(B $B"*(B $B"&$^$A$@$*$@$-$e$&(B $B!D!D(B -;; $B$H$J$j$^$9!#(B +;; ▽まちだ-!- で Tab を押すと、▽まちだえき → ▽まちだおだきゅう …… +;; となります。 -;; [$B@_DjJ}K!(B] +;; [設定方法] -;; .skk $B$K!"0J2<$rDI2C$7$^$9!#(B +;; .skk に、以下を追加します。 ;; (add-to-list 'skk-search-prog-list ;; '(skk-server-completion-search) t) @@ -49,8 +49,8 @@ ;; (add-to-list 'skk-completion-prog-list ;; '(skk-comp-by-server-completion) t) -;; $B$^$?!"(B`~' $B$rIU$1$?JQ497k2L$r8D?M<-=q$K3X=,$7$F$7$^$&$N$r$d$a$k$?$a$K$O(B -;; $B0J2<$rDI2C$7$F$/$@$5$$!#(B +;; また、`~' を付けた変換結果を個人辞書に学習してしまうのをやめるためには +;; 以下を追加してください。 ;; (add-hook 'skk-search-excluding-word-pattern-function ;; #'(lambda (kakutei-word) @@ -65,29 +65,29 @@ ;;;###autoload (defun skk-server-completion-search () - "$B%5!<%P!<%3%s%W%j!<%7%g%s$r9T$$!"F@$i$l$?3F8+=P$7$G$5$i$K8!:w$9$k!#(B -$BAw$jM-$jJQ49$K$OHsBP1~!#(B" + "サーバーコンプリーションを行い、得られた各見出しでさらに検索する。 +送り有り変換には非対応。" (when (and (eq (aref skk-henkan-key (1- (length skk-henkan-key))) skk-server-completion-search-char) (not (or skk-henkan-okurigana skk-okuri-char))) - ;; skk-search $B$G$O8+=P$7$,?t;z$r4^$`;~$N$_(B - ;; skk-use-numeric-conversion $B$,(B t $B$J8F=P$7$r$9$k$,!"(B - ;; $B0l1~$=$l$K0MB8$7$J$$$h$&$K$7$F$$$k!#(B + ;; skk-search では見出しが数字を含む時のみ + ;; skk-use-numeric-conversion が t な呼出しをするが、 + ;; 一応それに依存しないようにしている。 (let* ((henkan-key (substring skk-henkan-key 0 (1- (length skk-henkan-key)))) (numericp (and skk-use-numeric-conversion (save-match-data - (string-match "[0-9$B#0(B-$B#9(B]" henkan-key)))) + (string-match "[0-90-9]" henkan-key)))) (conv-key (and numericp (skk-num-compute-henkan-key henkan-key))) (key (or conv-key henkan-key)) midasi-list result-list kouho-list) (setq midasi-list (skk-server-completion-search-midasi key)) (dolist (skk-henkan-key midasi-list) - ;; $B8+=P$7$KBP1~$7$?%(%s%H%j$,<-=q%5!<%P$KB8:_$9$k;v$rA0Ds$H$7$F$$$k!#(B - ;; $BIT@09g$,$"$C$F$b%(%i!<$K$O$J$i$J$$$,!"8+=P$7$@$1$,I=<($5$l$k;v$K$J$k$N$G(B - ;; $B8!:wBP>]<-=q$+$iD>@\Jd408uJd$r@8@.$7$F$$$J$$<-=q%5!<%P$G$O1?MQ$K5$$r$D$1$k;v!#(B + ;; 見出しに対応したエントリが辞書サーバに存在する事を前提としている。 + ;; 不整合があってもエラーにはならないが、見出しだけが表示される事になるので + ;; 検索対象辞書から直接補完候補を生成していない辞書サーバでは運用に気をつける事。 (setq kouho-list (cons (if numericp (concat henkan-key (substring skk-henkan-key @@ -98,7 +98,7 @@ result-list))) (defun skk-server-completion-search-midasi (key) - "server completion $B$rMxMQ$7$F!"(Bkey $B$+$i;O$^$k$9$Y$F$N8+=P$78l$N%j%9%H$rJV5Q$9$k!#(B" + "server completion を利用して、key から始まるすべての見出し語のリストを返却する。" (when (and (not skk-server-disable-completion) (skk-server-live-p (skk-open-server))) (with-current-buffer skkserv-working-buffer @@ -106,12 +106,12 @@ (count 0) sep ret) (erase-buffer) - ;; server completion $B$KBP1~$7$F$*$i$:!"$+$DL5H?1~$J<-=q%5!<%P$KBP=h(B - ;; 5$BIC$bBT$F$P= (length midasi) len) (string-equal key (substring midasi @@ -160,11 +160,11 @@ ;;;###autoload (defun skk-comp-by-server-completion () - "Server completion $B$KBP1~$7$?<-=q%5!<%P$rMxMQ$9$kJd40%W%m%0%i%`!#(B -`skk-completion-prog-list' $B$NMWAG$K;XDj$7$F;H$&!#(B" + "Server completion に対応した辞書サーバを利用する補完プログラム。 +`skk-completion-prog-list' の要素に指定して使う。" (let* ((numericp (and skk-use-numeric-conversion (save-match-data - (string-match "[0-9$B#0(B-$B#9(B]" skk-comp-key)))) + (string-match "[0-90-9]" skk-comp-key)))) (conv-key (and numericp (skk-num-compute-henkan-key skk-comp-key))) (comp-key (or conv-key skk-comp-key)) diff --git a/skk-server.el b/skk-server.el index 067a2a68..5d68758b 100644 --- a/skk-server.el +++ b/skk-server.el @@ -1,4 +1,4 @@ -;;; skk-server.el --- $B<-=q%5!<%P$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-server.el --- 辞書サーバのためのプログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, ;; 1997, 1998, 1999, 2000, 2001 @@ -48,27 +48,27 @@ When called interactively, print version information." (message "%s" (skk-server-version))) ((not (or skk-server-host skk-servers-list)) - (skk-error "$B<-=q%5!<%P$N%[%9%H>pJs$,$"$j$^$;$s(B" + (skk-error "辞書サーバのホスト情報がありません" "Lack of host information of SKK server")) ((skk-server-live-p (skk-open-server)) (let (v) (save-match-data (with-current-buffer skkserv-working-buffer (erase-buffer) - ;; $B<-=q%5!<%P$N%P!<%8%g%s$rF@$k!#(B + ;; 辞書サーバのバージョンを得る。 (process-send-string skkserv-process "2") (while (eq (buffer-size) 0) (accept-process-output)) (setq v (buffer-string)) (erase-buffer) - ;; $B%[%9%HL>$rF@$k!#(B + ;; ホスト名を得る。 (process-send-string skkserv-process "3") (while (eq (buffer-size) 0) (accept-process-output)) (goto-char (point-min)) (format (concat "SKK SERVER version %s" (if skk-japanese-message-and-error - "($B%[%9%HL>(B %s)" + "(ホスト名 %s)" "running on HOST %s")) v (prog1 @@ -77,12 +77,12 @@ When called interactively, print version information." ;;;###autoload (defun skk-search-server-1 (file limit) - "`skk-search-server' $B$N%5%V%k!<%A%s!#(B" + "`skk-search-server' のサブルーチン。" (let ((key (if skk-use-numeric-conversion (skk-num-compute-henkan-key skk-henkan-key) skk-henkan-key)) - ;; $B%P%C%U%!%m!<%+%kCM$N$N0l;~JQ?t$K]$,3NG'$G$-$k!#(B - ;; $B0J2<$NBP:v$G$[$\2sHr$G$-$kLOMM!#(B + ;; dbskkd-cdb や skksearch などの辞書サーバを使って変換する + ;; 際に、2 秒ほど待たされることがある。どうやら応答待ちのループ + ;; が負担になっているようで、多いときには数百~最大で数十万回の + ;; 応答待ちになることがある。skk-server-report-response を t に + ;; しておくとこの現象が確認できる。 + ;; 以下の対策でほぼ回避できる模様。 (sit-for 0.01) ;; (setq count (1+ count)) @@ -116,7 +116,7 @@ When called interactively, print version information." (setq cont nil)))) (goto-char (point-min)) (when skk-server-report-response - (skk-message "$B<-=q%5!<%P$N1~Ez$r(B %d $B2sBT$A$^$7$?(B" + (skk-message "辞書サーバの応答を %d 回待ちました" "Waited for server response %d times" count)) (when (eq (following-char) ?1) ;?1 @@ -125,7 +125,7 @@ When called interactively, print version information." (when l (cond ((and okurigana skk-henkan-okuri-strictly) - ;; $BAw$j2>L>$,F10l$N%(%s%H%j$N$_$rJV$9!#(B + ;; 送り仮名が同一のエントリのみを返す。 (nth 2 l)) ((and okurigana skk-henkan-strict-okuri-precedence) @@ -139,7 +139,7 @@ When called interactively, print version information." (skk-search-jisyo-file file limit)))))) (defun skk-open-server () - "$B<-=q%5!<%P$H@\B3$9$k!#%5!<%P!<%W%m%;%9$rJV$9!#(B" + "辞書サーバと接続する。サーバープロセスを返す。" (unless (skk-server-live-p) (setq skkserv-process (skk-open-server-1)) (when (skk-server-live-p) @@ -148,20 +148,20 @@ When called interactively, print version information." skkserv-process) (defun skk-open-server-1 () - "`skk-open-server' $B$N%5%V%k!<%A%s!#(B -skkserv $B%5!<%S%9$r%*!<%W%s$G$-$?$i(B process $B$rJV$9!#(B" + "`skk-open-server' のサブルーチン。 +skkserv サービスをオープンできたら process を返す。" (let* ((host (or skk-server-host (getenv "SKKSERVER"))) (prog (or skk-server-prog (getenv "SKKSERV"))) (jisyo (or skk-server-jisyo (getenv "SKK_JISYO"))) (port skk-server-portnum) - ;; skk-server-host $B$N>pJs$r(B skk-servers-list $B$KH?1G$9$k(B + ;; skk-server-host の情報を skk-servers-list に反映する (list (cond ((null skk-servers-list) (if host (list (list host prog jisyo port)) (setq skk-server-prog nil))) ((and host (not (assoc host skk-servers-list))) - ;; skk-servers-list $B$K(B host $B$,F~$C$F$$$J$$>l9g(B + ;; skk-servers-list に host が入っていない場合 (cons (list host prog jisyo port) skk-servers-list)) (t skk-servers-list))) @@ -170,12 +170,12 @@ skkserv $B%5!<%S%9$r%*!<%W%s$G$-$?$i(B process $B$rJV$9!#(B" ;; (while (and (not (skk-server-live-p process)) list) - ;; $B%5!<%S%9$,MxMQ2DG=$G$J$$%[%9%H$N>pJs$O(B skk-servers-list $B$+$i>C$9(B + ;; サービスが利用可能でないホストの情報は skk-servers-list から消す (setq skk-servers-list list elt (car list) process (or (skk-open-network-stream (car elt) (nth 3 elt)) - ;; $B%5!<%S%9$,MxMQ2DG=$G$J$$>l9g$O%5!<%S%9$r5/F0(B - ;; $B$G$-$k$+$I$&$+;n$_$k(B + ;; サービスが利用可能でない場合はサービスを起動 + ;; できるかどうか試みる (if (not skk-server-inhibit-startup-server) (apply #'skk-startup-server elt) nil)) @@ -186,15 +186,15 @@ skkserv $B%5!<%S%9$r%*!<%W%s$G$-$?$i(B process $B$rJV$9!#(B" (setq skk-server-host nil skk-server-prog nil skk-servers-list nil)) - ;; $B4D6-JQ?t(B SKKSERVER $B$r(B clear $B$7$F:FEY$NLd$$9g$o$;$rKI$0!#(B + ;; 環境変数 SKKSERVER を clear して再度の問い合わせを防ぐ。 (setenv "SKKSERVER" nil t) ;; process)) (defun skk-open-network-stream (&optional host port) - "HOST $B$K;XDj$5$l$?%[%9%H$K$*$1$k(B skkserv $B%5!<%S%9$N(B TCP $B@\B3$r%*!<%W%s$9$k!#(B -HOST $B$,(B nil $B$J$i$P(B `skk-server-host' $B$r;2>H$9$k!#(B -$B%W%m%;%9$rJV$9!#(B" + "HOST に指定されたホストにおける skkserv サービスの TCP 接続をオープンする。 +HOST が nil ならば `skk-server-host' を参照する。 +プロセスを返す。" (ignore-errors (let ((process (open-network-stream "skkservd" @@ -205,33 +205,33 @@ HOST $B$,(B nil $B$J$i$P(B `skk-server-host' $B$r;2>H$9$k!#(B process))) (defun skk-startup-server (host prog jisyo port) - "HOST $B$N(B skkserv $B$rD>@\5/F0$9$k!#(B -$B5/F08e$=$N%5!<%S%9$K@\B3$r;n$_$k!#@\B3$G$-$?>l9g$O%W%m%;%9$rJV$9!#(B" + "HOST の skkserv を直接起動する。 +起動後そのサービスに接続を試みる。接続できた場合はプロセスを返す。" (when (and host prog) (let (;;(msgbuff (get-buffer-create " *skkserv-msg*")) (count 7) arg process) - ;; skkserv $B$KM?$($k0z?t$r@_Dj$9$k!#(B + ;; skkserv に与える引数を設定する。 - ;; skkserv $B$N5/F0%*%W%7%g%s$O2<5-$NDL$j!#(B + ;; skkserv の起動オプションは下記の通り。 ;; skkserv [-d] [-p NNNN] [JISHO] - ;; `-d' $B%G%#%P%C%0!&%b!<%I(B - ;; `-p NNNN' $BDL?.MQ$N%]!<%HHV9f$H$7$F(BNNNN$B$r;H$&(B. - ;; `~/JISYO' ~/JISYO$B$r<-=q$H$7$FMxMQ(B. + ;; `-d' ディバッグ・モード + ;; `-p NNNN' 通信用のポート番号としてNNNNを使う. + ;; `~/JISYO' ~/JISYOを辞書として利用. (when jisyo - ;; skkserv $B$O0z?t$K<-=q$,;XDj$5$l$F$$$J$1$l$P!"(BDEFAULT_JISYO $B$r(B - ;; $B;2>H$9$k!#(B + ;; skkserv は引数に辞書が指定されていなければ、DEFAULT_JISYO を + ;; 参照する。 (setq arg (list jisyo))) ;;(if skk-server-debug ;; (setq arg (cons "-d" arg))) (when port (setq arg (nconc (list "-p" (number-to-string port)) arg))) - ;; skkserv $B$N5/F0%H%i%$%"%k$r7+$jJV$9(B...? + ;; skkserv の起動トライアルを繰り返す...? (while (> count 0) (skk-message - "%s $B$N<-=q%5!<%P$,5/F0$7$F$$$^$;$s!#5/F0$7$^$9(B%s" + "%s の辞書サーバが起動していません。起動します%s" "SKK SERVER on %s is not active, I will activate it%s" host (make-string count ?.)) (if (or (string= host (system-name)) @@ -242,9 +242,9 @@ HOST $B$,(B nil $B$J$i$P(B `skk-server-host' $B$r;2>H$9$k!#(B 0 nil arg) (apply 'call-process skk-server-remote-shell-program nil - ;; 0 $B$K$7$F%5%V%W%m%;%9$N=*N;$rBT$C$F$O$$$1$J$$M}M3$,$"$k!)(B - ;; $B$J$1$l$P(B msgbuf $B$K%(%i!<=PNO$rl9g$O$3$N(B while $B%k!<%W<+?H$,$$$i$J$$!)(B + ;; 0 にしてサブプロセスの終了を待ってはいけない理由がある? + ;; なければ msgbuf にエラー出力を取った方が建設的では? また + ;; その場合はこの while ループ自身がいらない? ;; msgbuff 0 nil host prog arg)) (sleep-for 3) @@ -256,14 +256,14 @@ HOST $B$,(B nil $B$J$i$P(B `skk-server-host' $B$r;2>H$9$k!#(B ;; (cond ((skk-server-live-p process) - (skk-message "$B%[%9%H(B %s $B$N<-=q%5!<%P$,5/F0$7$^$7$?(B" + (skk-message "ホスト %s の辞書サーバが起動しました" "SKK SERVER on %s is active now" skk-server-host) (sit-for 1) - ;; process $B$rJV$jCM$H$9$k(B + ;; process を返り値とする process) (t - (skk-message "%s $B$N<-=q%5!<%P$r5/F0$9$k$3$H$,$G$-$^$;$s$G$7$?(B" + (skk-message "%s の辞書サーバを起動することができませんでした" "Could not activate SKK SERVER on %s" skk-server-host) (sit-for 1) @@ -272,28 +272,28 @@ HOST $B$,(B nil $B$J$i$P(B `skk-server-host' $B$r;2>H$9$k!#(B ;;;###autoload (defun skk-adjust-search-prog-list-for-server-search (&optional non-del) - "$BJQ?t(B `skk-search-prog-list' $B$rD4@0$9$k!#(B -`skk-server-host' $B$b$7$/$O(B `skk-servers-list' $B$,(B nil $B$G$"$l$P!"(B -`skk-search-prog-list' $B$+$i(B `skk-search-server' $B$r(B car $B$K;}$D%j%9%H$r>C$9!#(B -non-nil $B$G$"$l$P!"2C$($k!#(B" + "変数 `skk-search-prog-list' を調整する。 +`skk-server-host' もしくは `skk-servers-list' が nil であれば、 +`skk-search-prog-list' から `skk-search-server' を car に持つリストを消す。 +non-nil であれば、加える。" (when (and (or skk-server-host skk-servers-list) (not (assq 'skk-search-server (default-value 'skk-search-prog-list)))) - ;; skk-search-prog-list $B$,(B nil $B$H$$$&$3$H$O$^$:$J$$$@$m$&$,!"G0$N$?(B - ;; $B$a!"(Bsetq $B$7$F$*$/!#(B + ;; skk-search-prog-list が nil ということはまずないだろうが、念のた + ;; め、setq しておく。 (setq-default skk-search-prog-list - ;; $BKvHx$KIU$1$k!#KvHx$K$O(B (skk-okuri-search) $B$r;}$C$F$-$?$$?M(B - ;; $B$b$$$k$+$b!#%*%W%7%g%s$GIU$1$k>l=j$rJQ99$9$k$h$&$K$7$?J}$,(B - ;; $BNI$$!)(B + ;; 末尾に付ける。末尾には (skk-okuri-search) を持ってきたい人 + ;; もいるかも。オプションで付ける場所を変更するようにした方が + ;; 良い? (nconc (default-value 'skk-search-prog-list) (list '(skk-search-server skk-aux-large-jisyo 10000)))))) ;;;###autoload (defun skk-disconnect-server () - "$B<-=q%5!<%P$r@Z$jN%$9!#(B" + "辞書サーバを切り離す。" (when (and skk-server-host (skk-server-live-p)) ;; disconnect server diff --git a/skk-show-mode.el b/skk-show-mode.el index e8de23f3..56295459 100644 --- a/skk-show-mode.el +++ b/skk-show-mode.el @@ -1,4 +1,4 @@ -;;; skk-show-mode.el --- $B%b!<%I@ZBX;~$K(B tooltip/inline $BI=<($9$k(B -*- coding: iso-2022-jp -*- +;;; skk-show-mode.el --- モード切替時に tooltip/inline 表示する -*- coding: iso-2022-jp -*- ;; Copyright (C) 2011 Tsuyoshi Kitamoto @@ -24,12 +24,12 @@ ;;; Commentary: -;; ~/.skk $B$K$F(B +;; ~/.skk にて ;; (setq skk-show-mode-show t) -;; $B$H@_Dj$7$F$/$@$5$$!#(B -;; Emacs $B5/F0Cf$O(B M-x skk-show-mode $B$G%H%0%k$9$k$3$H$,$G$-$^$9!#(B +;; と設定してください。 +;; Emacs 起動中は M-x skk-show-mode でトグルすることができます。 -;; $BJQ?t(B skk-show-mode-style $B$K(B 'tooltip $BKt$O(B 'inline $B$r@_Dj$7$F$/$@$5$$!#(B +;; 変数 skk-show-mode-style に 'tooltip 又は 'inline を設定してください。 ;;; Code: @@ -42,8 +42,8 @@ (setq skk-show-mode-show nil)) (defadvice skk-cursor-set (after skk-show-mode activate) - "$B$+$J%b!<%I$d%"%9%-!<%b!<%I$X@Z$jBX$o$C$?$H$-$K(B skk-*-mode-string $B$r(B -tooltip / inline $BI=<($9$k(B." + "かなモードやアスキーモードへ切り替わったときに skk-*-mode-string を +tooltip / inline 表示する." (when (and skk-show-mode-invoked skk-show-mode-show (not skk-isearch-switch)) @@ -82,7 +82,7 @@ tooltip / inline $BI=<($9$k(B." (skk-delete-overlay skk-show-mode-inline-overlays)) (defun skk-show-mode-inline-1 (str) - ;; skk-dcomp-multiple-show() $B$+$iGRl9g$O(B prefix $B$N(B overlay $B$H>WFM$9$k$?$a(B - ;; `skk-prefix-overlay' $B$KDI2C$9$k(B + ;; バッファ最終行では、普通に overlay を追加していく方法だと + ;; overlay の表示される順番が狂うことがあってうまくない。 + ;; したがって前回の overlay の after-string に追加する。 + ;; ただし、EOB の場合は prefix の overlay と衝突するため + ;; `skk-prefix-overlay' に追加する (setq ol (cond ((or (not skk-echo) (string= "" skk-prefix) (< (overlay-end skk-prefix-overlay) @@ -113,34 +113,34 @@ tooltip / inline $BI=<($9$k(B." (setq str (concat (overlay-get ol 'after-string) "\n" (make-string beg-col ? ) str))) - ;; bottom $B0J30(B + ;; bottom 以外 (t (setq col (skk-move-to-screen-column beg-col)) (cond ((> beg-col col) - ;; $B7e9g$o$;$N6uGr$rDI2C(B + ;; 桁合わせの空白を追加 (setq str (concat (make-string (- beg-col col) ? ) str))) - ;; overlay $B$N:8C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B + ;; overlay の左端がマルチ幅文字と重なったときの微調整 ((< beg-col col) (backward-char) (setq col (skk-screen-column)) (setq str (concat (make-string (- beg-col col) ? ) str)))))) - ;; $B$3$N;~E@$G(B overlay $B$N3+;O0LCV$K(B point $B$,$"$k(B + ;; この時点で overlay の開始位置に point がある (unless bottom (let ((ol-beg (point)) (ol-end-col (+ col (string-width str))) base-ol) (setq col (skk-move-to-screen-column ol-end-col)) - ;; overlay $B$N1&C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B + ;; overlay の右端がマルチ幅文字と重なったときの微調整 (when (< ol-end-col col) (setq str (concat str (make-string (- col ol-end-col) ? )))) (setq ol (make-overlay ol-beg (point))) - ;; $B85%F%-%9%H$N(B face $B$r7Q>5$7$J$$$h$&$K(B1$B$D8e$m$K(B overlay $B$r:n$C$F!"(B - ;; $B$=$N(B face $B$r(B 'default $B$K;XDj$7$F$*$/(B + ;; 元テキストの face を継承しないように1つ後ろに overlay を作って、 + ;; その face を 'default に指定しておく (setq base-ol (make-overlay (point) (1+ (point)))) (overlay-put base-ol 'face 'default) (push base-ol skk-show-mode-inline-overlays)))) diff --git a/skk-sticky.el b/skk-sticky.el index 39fb17ae..4f08c633 100644 --- a/skk-sticky.el +++ b/skk-sticky.el @@ -22,78 +22,78 @@ ;;; Commentary: -;; [$B35MW(B] -;; SKK $B$G$ODL>o!"JQ493+;O$*$h$SAw$j3+;O$N0LCV$rBgJ8;z$G;XDj$7$^$9$,!"$3(B -;; $B$l$rG$0U$N%-!<$G;XDj$G$-$k$h$&$K$7!"(Bsticky-shift $B%i%$%/$JA`:n$r2DG=(B -;; $B$K$7$^$9!#(B +;; [概要] +;; SKK では通常、変換開始および送り開始の位置を大文字で指定しますが、こ +;; れを任意のキーで指定できるようにし、sticky-shift ライクな操作を可能 +;; にします。 -;; ~/.skk.el $B$K(B +;; ~/.skk.el に ;; (setq skk-sticky-key ";") -;; $B$H=q$$$F$*$/$H(B ";" $B%-!<$GJQ490LCV$,;XDj$G$-$k$h$&$K$J$j$^$9!#Nc$($P(B -;; $B!VM-$k!W$,(B +;; と書いておくと ";" キーで変換位置が指定できるようになります。例えば +;; 「有る」が ;; "; a ; r u" -;; $B$G$bF~NO$G$-!"%7%U%H%-!<$r2!$9I,MW$,$J$/$J$j$^$9!#A`:n>e$O(B +;; でも入力でき、シフトキーを押す必要がなくなります。操作上は -;; (info "(skk) Q.3-4 $B:8.;X$r(B SHIFT $B$G9s;H$7$?$/$"$j$^$;$s!#(B") +;; (info "(skk) Q.3-4 左手の小指を SHIFT で酷使したくありません。") -;; $B$J$I$K$"$kDL>o$N(B sticky-shift $B$HJQ$o$j$^$;$s$,!"2hLLI=<($O(B +;; などにある通常の sticky-shift と変わりませんが、画面表示は -;; $BBG80(B $BDL>o$N(Bsticky skk-sticky -;; ; $BJQ2=$J$7(B $B"&(B -;; a $B"&$"(B $B"&$"(B -;; ; $B"&$"(B $B"&$"(B* -;; r $B"&$"(B*r $B"&$"(B*r +;; 打鍵 通常のsticky skk-sticky +;; ; 変化なし ▽ +;; a ▽あ ▽あ +;; ; ▽あ ▽あ* +;; r ▽あ*r ▽あ*r -;; $B$HA+0\$7$^$9!#(Bskk-sticky $B$O(B ";" $B$r2!$7$?;~E@$GI=<($,JQ2=$9$k$N$Gl9g$O(B +;; ";" などの表示が可能なキーの場合は ;; (setq skk-sticky-key ";") -;; $B$N$h$&$K(B string $B$r@_Dj$7$F2<$5$$!#(B`skk-sticky-key' $B$K@_Dj$7$?J8;z(B -;; $B$=$N$b$N$rF~NO$7$?$$>l9g$O(B2$B2sB3$1$FBG$D$HF~NO$G$-$^$9!#(B +;; のように string を設定して下さい。`skk-sticky-key' に設定した文字 +;; そのものを入力したい場合は2回続けて打つと入力できます。 -;; 2. $BI=<($5$l$J$$%-!<(B +;; 2. 表示されないキー -;; "$BL5JQ49(B" $B$N$h$&$JI=<($rH<$o$J$$%-!<$N>l9g$O(B +;; "無変換" のような表示を伴わないキーの場合は -;; (setq skk-sticky-key [muhenkan]) ; Windows $B4D6-$@$H(B [noconvert] +;; (setq skk-sticky-key [muhenkan]) ; Windows 環境だと [noconvert] -;; $B$N$h$&$K$=$N%-!<$rI=$o$9(B vector $B$r@_Dj$7$F2<$5$$!#(B +;; のようにそのキーを表わす vector を設定して下さい。 -;; 3. $BF1;~BG80(B +;; 3. 同時打鍵 -;; 2$B$D$N%-!<$rF1;~$KBG80$9$k$3$H$G$bJQ490LCV$r;XDj$G$-$^$9!#Nc$($P(B -;; "f" $B$H(B "j" $B$NF1;~BG80$G;XDj$9$k>l9g$O(B +;; 2つのキーを同時に打鍵することでも変換位置を指定できます。例えば +;; "f" と "j" の同時打鍵で指定する場合は ;; (setq skk-sticky-key '(?f ?j)) -;; $B$N$h$&$K(B character $B$N%j%9%H$r@_Dj$7$F2<$5$$!#(B -;; Dvorak $BG[Ns$N$h$&$J!"2!$7$d$9$$>l=j$KE,Ev$J%-!<$,$J$$4D6-$G$b$3$N(B -;; $B5!G=$r;H$$$?$$>l9g$KJXMx$+$b$7$l$^$;$s!#(B +;; のように character のリストを設定して下さい。 +;; Dvorak 配列のような、押しやすい場所に適当なキーがない環境でもこの +;; 機能を使いたい場合に便利かもしれません。 -;; [$BCm0U;v9`(B] -;; o $B$3$l$O$"$/$^$G$b!VG$0U$N%-!<$GJQ490LCV$r;XDj$9$k!W$b$N$G$"$j!"(B -;; sticky-shift $B$=$N$b$N$G$O$"$j$^$;$s!#$7$?$,$C$F!"(Blatin $B%b!<%I$d(B -;; abbrev $B%b!<%I!"$^$?(B SKK $B0J30$G$b(B sticky-shift $B$r;H$$$?$$>l9g$OA0=R(B -;; $B$N(B info $B$N$h$&$J@_Dj$rJ;MQ$9$kI,MW$,$"$j$^$9!#(B +;; [注意事項] +;; o これはあくまでも「任意のキーで変換位置を指定する」ものであり、 +;; sticky-shift そのものではありません。したがって、latin モードや +;; abbrev モード、また SKK 以外でも sticky-shift を使いたい場合は前述 +;; の info のような設定を併用する必要があります。 -;; o skk-hint.el $B$rJ;MQ$9$k>l9g!"(B`skk-hint-start-char' $B$N%G%U%)%k%H$,(B -;; ";" $B$J$N$G@_Dj$K$h$C$F$O3dEv$F%-!<$,=EJ#$9$k2DG=@-$,$"$j$^$9!#(B +;; o skk-hint.el を併用する場合、`skk-hint-start-char' のデフォルトが +;; ";" なので設定によっては割当てキーが重複する可能性があります。 ;;; TODO -;; * SPC $B$K3dEv$F$?$$$H$$$&?M$b5o$?$j$9$k(B? +;; * SPC に割当てたいという人も居たりする? ;;; Code: @@ -102,7 +102,7 @@ (defvar skk-sticky-key-orig-output nil) (skk-deflocalvar skk-sticky-okuri-flag nil) -;;; $B=i4|@_Dj(B +;;; 初期設定 (cond ((stringp skk-sticky-key) (let ((orig-rule (assoc skk-sticky-key (append skk-rom-kana-rule-list @@ -116,13 +116,13 @@ ;;; Functions (defun skk-sticky-looking-back-okuri-mark () - "`point' $B$ND>A0$NJ8;z$,(B `*' $B$J$i$P(B t $B$rJV$9!#(B" + "`point' の直前の文字が `*' ならば t を返す。" (and (not (bobp)) (string= "*" (buffer-substring-no-properties (1- (point)) (point))))) (defun skk-sticky-set-okuri-mark () - "$BAw$j3+;OE@$r(B `*' $B$rA^F~$9$k$3$H$GI8<1$7!"Aw$j$"$jJQ49$NBT$A>uBV$KF~$k!#(B" + "送り開始点を `*' を挿入することで標識し、送りあり変換の待ち状態に入る。" (when (eq skk-henkan-mode 'on) (unless (and skk-sticky-okuri-flag (skk-sticky-looking-back-okuri-mark)) @@ -134,7 +134,7 @@ nil))) (defun skk-sticky-set-henkan-point (&optional arg) - "$BJQ493+;O0LCV$b$7$/$OAw$j3+;O0LCV$r;XDj$9$k!#(B" + "変換開始位置もしくは送り開始位置を指定する。" (interactive "*P") (cond ((not (eq skk-henkan-mode 'on)) (skk-set-henkan-point-subr)) @@ -156,15 +156,15 @@ (skk-sticky-set-okuri-mark)))) (defadvice skk-kakutei (after skk-sticky-ad activate) - "`skk-sticky-okuri-flag' $B$r%/%j%"$9$k!#(B" + "`skk-sticky-okuri-flag' をクリアする。" (setq skk-sticky-okuri-flag nil)) (defadvice keyboard-quit (after skk-sticky-ad activate) - "`skk-sticky-okuri-flag' $B$r%/%j%"$9$k!#(B" + "`skk-sticky-okuri-flag' をクリアする。" (setq skk-sticky-okuri-flag nil)) (defadvice skk-insert (before skk-sticky-ad activate) - "`*' $B$ND>8e$G$"$l$PF~NO$rBgJ8;z$KJQ49$9$k!#(B" + "`*' の直後であれば入力を大文字に変換する。" (when (and skk-sticky-okuri-flag (skk-sticky-looking-back-okuri-mark) (string= "" skk-prefix)) @@ -174,19 +174,19 @@ (upcase last-command-event)))))) (defadvice skk-set-henkan-point (before skk-sticky-ad activate) - "`point' $BD>A0$N(B `*' $B$r>C$9!#(B" + "`point' 直前の `*' を消す。" (when (and skk-sticky-okuri-flag (skk-sticky-looking-back-okuri-mark)) (delete-backward-char 1))) -;; `skk-kana-input' $B$ODL>o(B `cancel-undo-boundary' $B$r8F$V$,!"(B -;; `skk-sticky-key' $B$N(B2$BEYBG$A$N:]$KK\Mh$"$k$Y$-(B boundary (C-k $B$N8e$J$I(B) -;; $B$b>C$7$F$7$^$&$?$a!"(Badvice $B$K$F8F$P$J$$$h$&$KBP=h$9$k!#(B -;; $B$3$l$K$h$j!"(B`skk-undo-kakutei-word-only' $B$,(B non-nil $B$G$b(B2$BEYBG$A$N;~(B -;; $B$K(B boundary $B$,F~$C$F$7$^$&I{:nMQ$,$"$k$,!"@h$NLdBj$h$j$O%^%7$@$H9M$((B -;; $B$k!#(B +;; `skk-kana-input' は通常 `cancel-undo-boundary' を呼ぶが、 +;; `skk-sticky-key' の2度打ちの際に本来あるべき boundary (C-k の後など) +;; も消してしまうため、advice にて呼ばないように対処する。 +;; これにより、`skk-undo-kakutei-word-only' が non-nil でも2度打ちの時 +;; に boundary が入ってしまう副作用があるが、先の問題よりはマシだと考え +;; る。 ;;; (defadvice skk-kana-input (around skk-sticky-ad activate) -;;; "$B"&D>8e$N(B `skk-sticky-key' $B$NF~NO$N:](B `cancel-undo-boundary' $B$r8F$P$J$$$h$&$K!#(B" +;;; "▽直後の `skk-sticky-key' の入力の際 `cancel-undo-boundary' を呼ばないように。" ;;; (if (and (stringp skk-sticky-key) ;;; (eq (skk-last-command-char) (string-to-char skk-sticky-key)) ;;; (eq skk-henkan-mode 'on) @@ -197,9 +197,9 @@ ;;; (setq skk-self-insert-non-undo-count (1+ skk-self-insert-non-undo-count))) ;;; ad-do-it)) -;;; $BF1;~BG804XO"(B +;;; 同時打鍵関連 (defun skk-sticky-double-p (first next) - "FIRST $B$H(B NEXT $B$,F1;~BG80$G$"$l$P(B non-nil $B$rJV$9!#(B" + "FIRST と NEXT が同時打鍵であれば non-nil を返す。" (let ((char (if (characterp first) first last-command-event))) @@ -208,7 +208,7 @@ (memq next skk-sticky-key)))) (defadvice skk-insert (around skk-sticky-ad-double activate) - "$BF1;~BG80$r8!=P$7$F=hM}$9$k!#(B" + "同時打鍵を検出して処理する。" (cond ((not (consp skk-sticky-key)) ad-do-it) ((not (memq last-command-event skk-sticky-key)) diff --git a/skk-study.el b/skk-study.el index 748a96a0..8dfaa885 100644 --- a/skk-study.el +++ b/skk-study.el @@ -1,4 +1,4 @@ -;;; skk-study.el --- SKK $B3X=,8z2LDs6!%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-study.el --- SKK 学習効果提供プログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000, 2002, 2003 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio @@ -24,24 +24,24 @@ ;;; Commentary: -;; $B$"$k8l(B A' $B$r3NDj$7$?>l9g$K!"(BA' $B5Z$S$=$N8+=P$78l(B A $B$KBP$7$F!"D>A0$K(B -;; $BJQ49$7$?8l(B B' $B$H$=$N8+=P$78l(B B $B$r4XO"8l$H$7$FEPO?$7$F$*$-!":FEY(B A -;; $B$NJQ49$r9T$C$?$H$-$K!"(BB $B5Z$S(B B' $B$N%Z%"$,D>A0$N2?2s$+$K3NDj$7$?8l$N(B -;; $BCf$K8+$D$+$l$P!"(BA' $B$rM%@h$7$F=PNO$9$kC1=c$J3X=,8z2L$rDs6!$9$k%W%m%0(B -;; $B%i%`$G$9!#(B +;; ある語 A' を確定した場合に、A' 及びその見出し語 A に対して、直前に +;; 変換した語 B' とその見出し語 B を関連語として登録しておき、再度 A +;; の変換を行ったときに、B 及び B' のペアが直前の何回かに確定した語の +;; 中に見つかれば、A' を優先して出力する単純な学習効果を提供するプログ +;; ラムです。 -;; $B@N(B SKK ML $B$GOCBj$K$J$C$?C18l$NB0@-$NJ]B8$N$?$a$K!"(Bskk-attr.el $B$r:n(B -;; $B$j$^$7$?$,!"5!G=$rM_D%$j$9$.$F$b$N$K$J$j$^$;$s$G$7$?!#D>A0$NJQ49$H(B -;; $B$N4XO"@-$rJ]B8$9$k$?$a$@$1$K5!G=$r9J$C$F:F9=@.$7$?$N$,$3$N%W%m%0%i(B -;; $B%`$G$9!#(B +;; 昔 SKK ML で話題になった単語の属性の保存のために、skk-attr.el を作 +;; りましたが、機能を欲張りすぎてものになりませんでした。直前の変換と +;; の関連性を保存するためだけに機能を絞って再構成したのがこのプログラ +;; ムです。 ;; -;; ~/.skk $B$K(B +;; ~/.skk に ;; (require 'skk-study) -;; $B$H=q$$$F2<$5$$!#(B +;; と書いて下さい。 ;; @@ -53,15 +53,15 @@ ;; o examples ;; ((okuri-ari . -;; (("$B$-(Br" . ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) -;; (("$B$-(B" . "$BLZ(B") . ("$B@Z(B")) -;; (("$B$($s(B" . "$B1o(B") . ("$B@Z(B")))) -;; ("$B$J(Bk" . ((("$B$3$I$b(B" . "$B;R6!(B") . ("$B5c(B")) -;; (("$B$3$H$j(B" . "$B>.D;(B") . ("$BLD(B")))) -;; ("$B$+(Bk" . ((("$B$+$_(B" . "$B;f(B") . ("$B=q(B")) (("$B$R$s$+$/(B" . "$BIJ3J(B") . ("$B7g(B"))))) +;; (("きr" . ((("ふく" . "服") . ("着")) +;; (("き" . "木") . ("切")) +;; (("えん" . "縁") . ("切")))) +;; ("なk" . ((("こども" . "子供") . ("泣")) +;; (("ことり" . "小鳥") . ("鳴")))) +;; ("かk" . ((("かみ" . "紙") . ("書")) (("ひんかく" . "品格") . ("欠"))))) ;; ...) ;; (okuri-nasi . -;; (("$B$+$_(B" . ((("$B$-(Br" . "$B@Z(B") . ("$B;f(B")))) +;; (("かみ" . ((("きr" . "切") . ("紙")))) ;; ...))) ;; @@ -100,14 +100,14 @@ ;;;###autoload (defun skk-study-search (henkan-buffer midasi okurigana entry) - "$B3X=,%G!<%?$r;2>H$7$F(B ENTRY $B$r2C9)$7!"4XO"@-$N$"$k8l$NM%@h=g0L$r>e$2$FJV$9!#(B" + "学習データを参照して ENTRY を加工し、関連性のある語の優先順位を上げて返す。" (or skk-study-data-ring (setq skk-study-data-ring (make-ring skk-study-search-times))) (when (and entry (cdr entry)) (or skk-study-alist (skk-study-read)) (with-current-buffer henkan-buffer - ;; (("$B$-(Br" . ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (("$B$-(B" . "$BLZ(B") . ("$B@Z(B")))) - ;; ("$B$J(Bk" . ((("$B$3$I$b(B" . "$B;R6!(B") . ("$B5c(B"))))) + ;; (("きr" . ((("ふく" . "服") . ("着")) (("き" . "木") . ("切")))) + ;; ("なk" . ((("こども" . "子供") . ("泣"))))) (let ((alist (cdr (assoc midasi (cdr (skk-study-get-current-alist)))))) (when alist (setq entry (skk-study-search-1 alist midasi okurigana entry)))))) @@ -120,8 +120,8 @@ ((or exit (zerop times)) entry) (and (setq last-data (skk-study-get-last-henkan-data index)) - ;; ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (("$B$-(B" . "$BLZ(B") . ("$B@Z(B"))) - ;; ("$BCe(B") + ;; ((("ふく" . "服") . ("着")) (("き" . "木") . ("切"))) + ;; ("着") (setq associates (cdr (assoc last-data target-alist))) (setq associates (reverse associates)) (setq exit t) @@ -132,26 +132,26 @@ ;;;###autoload (defun skk-study-update (henkan-buffer midasi okurigana word purge) - "MIDASI $B$H(B WORD $B$K$D$$$F(B `skk-study-data-ring' $B$N:G=i$N4XO"8l$r4XO"IU$1$F3X=,$9$k!#(B" + "MIDASI と WORD について `skk-study-data-ring' の最初の関連語を関連付けて学習する。" (or skk-study-data-ring (setq skk-study-data-ring (make-ring skk-study-search-times))) (let ((inhibit-quit t) last-data diff grandpa papa baby) (with-current-buffer henkan-buffer (when (and - ;; $BBh0l8uJd$G3NDj$7$?$+$I$&$+(B + ;; 第一候補で確定したかどうか (or skk-study-first-candidate (not (string= word (car skk-henkan-list)))) - ;; $BJQ49%P%C%U%!$,JQ$o$C$F$$$J$$$+$I$&$+(B + ;; 変換バッファが変わっていないかどうか (eq (skk-get-last-henkan-datum 'henkan-buffer) henkan-buffer) (or (not skk-study-max-distance) (and (setq diff (- (point) (skk-get-last-henkan-datum 'henkan-point))) - ;; $BD>A0$NJQ49$h$j%]%$%s%H$,A0$X0\F0$7$F$$$J$$$+$I$&$+(B + ;; 直前の変換よりポイントが前へ移動していないかどうか (> diff 0) - ;; skk-study-max-distance $B$rD6$($FD>A0$NJQ49$H%]%$%s(B - ;; $B%H$,N%$l$F$$$J$$$+$I$&$+!#(B + ;; skk-study-max-distance を超えて直前の変換とポイン + ;; トが離れていないかどうか。 (> skk-study-max-distance diff))) midasi word (setq last-data (if (not (ring-empty-p skk-study-data-ring)) @@ -161,27 +161,27 @@ (string= word (cdr last-data)))))) (or skk-study-alist (skk-study-read)) (setq grandpa (skk-study-get-current-alist) - ;; ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (("$B$-(B" . "$BLZ(B") . ("$B@Z(B"))) + ;; ((("ふく" . "服") . ("着")) (("き" . "木") . ("切"))) papa (assoc midasi (cdr grandpa))) (cond ( - ;; car $B$K8+=P$78l$r;}$D(B cell $B$,$J$$(B + ;; car に見出し語を持つ cell がない (not (or papa purge)) (setcdr grandpa (nconc (list (cons midasi (list (cons last-data (list word))))) (cdr grandpa)))) - ;; $B8+=P$78l$+$i;O$^$k(B cell $B$O$"$k$,!"(Bcdr $B$K(B (last-key . last-word) $B$r(B - ;; $B%-!<$K$7$?(B cell $B$,$J$$!#(B + ;; 見出し語から始まる cell はあるが、cdr に (last-key . last-word) を + ;; キーにした cell がない。 ((not (or - ;; (("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) + ;; (("ふく" . "服") . ("着")) (setq baby (assoc last-data (cdr papa))) purge)) (setcdr papa (cons (cons last-data (list word)) (cdr papa)))) - ;; $B8+=P$78l$r%-!<$H$7$?4{B8$N(B cell $B9=B$$,$G$-$"$,$C$F$$$k$N$G!"4XO"8l$@$1(B - ;; $B%"%C%W%G!<%H$9$k!#(B + ;; 見出し語をキーとした既存の cell 構造ができあがっているので、関連語だけ + ;; アップデートする。 ((not purge) - ;; ring $B%G!<%?$NJ}$,$b$C$H8zN(E*$+!)(B $B$G$b$3$3$NItJ,$N%G!<%?$N%"%C%W%G!<%H(B - ;; $B$,8zN(NI$/$G$-$J$$!#(B + ;; ring データの方がもっと効率的か? でもここの部分のデータのアップデート + ;; が効率良くできない。 (setcdr baby (cons word (delete word (cdr baby)))) (if (> (1- (length (cdr baby))) skk-study-associates-number) (skk-study-chomp (cdr baby) (1- skk-study-associates-number)))) @@ -189,8 +189,8 @@ ;;;###autoload (defun skk-study-save (&optional nomsg) - "$B3X=,7k2L$r(B `skk-study-file' $B$XJ]B8$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B NOMSG $B$,(B non-nil $B$G$"$l$P!"J]B8%a%C%;!<%8$rI=<($7$J$$!#(B" + "学習結果を `skk-study-file' へ保存する。 +オプショナル引数の NOMSG が non-nil であれば、保存メッセージを表示しない。" (interactive "P") (if (or (and (null skk-study-alist) (not nomsg)) (not skk-study-last-read) @@ -198,7 +198,7 @@ (skk-study-time-lessp skk-study-last-save skk-study-last-read))) (progn - (skk-message "SKK $B$N3X=,7k2L$r%;!<%V$9$kI,MW$O$"$j$^$;$s(B" + (skk-message "SKK の学習結果をセーブする必要はありません" "No SKK study need saving") (sit-for 1)) (skk-study-save-1 nomsg))) @@ -207,7 +207,7 @@ (let ((inhibit-quit t) e) (when (not nomsg) - (skk-message "SKK $B$N3X=,7k2L$r(B %s $B$K%;!<%V$7$F$$$^$9(B..." + (skk-message "SKK の学習結果を %s にセーブしています..." "Saving SKK study to %s..." skk-study-file)) (and skk-study-backup-file (file-exists-p (expand-file-name skk-study-file)) @@ -238,17 +238,17 @@ (write-region (point-min) (point-max) skk-study-file))) (setq skk-study-last-save (current-time)) (when (not nomsg) - (skk-message "SKK $B$N3X=,7k2L$r(B %s $B$K%;!<%V$7$F$$$^$9(B...$B40N;!*(B" + (skk-message "SKK の学習結果を %s にセーブしています...完了!" "Saving SKK study to %s...done" skk-study-file) (sit-for 1) (message "")))) ;;;###autoload (defun skk-study-switch-current-theme (theme) - "$B%+%l%s%H%P%C%U%!$KBP$7$F(B skk-study $B$N3X=,%F!<%^(B THEME $B$r@_Dj$9$k!#(B -$B3X=,%F!<%^L>(B THEME $B$K$OG$0U$NJ8;zNs$r;XDj$G$-$k!#(B -$B%+%l%s%H%P%C%U%!$K3X=,%F!<%^$,@_Dj$5$l$J$$$H$-$O!"3X=,%F!<%^(B -\"general\" $B$KBP$7$F3X=,$,9T$o$l$k!#(B" + "カレントバッファに対して skk-study の学習テーマ THEME を設定する。 +学習テーマ名 THEME には任意の文字列を指定できる。 +カレントバッファに学習テーマが設定されないときは、学習テーマ +\"general\" に対して学習が行われる。" (interactive (list (completing-read "Theme of current buffer: (default: general) " @@ -268,7 +268,7 @@ ;;;###autoload (defun skk-study-remove-theme (theme) - "skk-study $B$N3X=,%F!<%^(B THEME $B$r:o=|$9$k!#(B" + "skk-study の学習テーマ THEME を削除する。" (interactive (list (completing-read "Remove skk-study theme: " @@ -280,7 +280,7 @@ (mapcar 'car skk-study-alist)))) nil 'require-match))) (if (string= theme "general") - (skk-message "$B3X=,%F!<%^(B `general' $B$O:o=|$G$-$^$;$s(B" + (skk-message "学習テーマ `general' は削除できません" "Cannot remove skk-study theme `general'") (setq skk-study-alist (delq (assoc theme skk-study-alist) skk-study-alist)) @@ -290,8 +290,8 @@ ;;;###autoload (defun skk-study-copy-theme (from to) - "skk-study $B$N3X=,%F!<%^(B FROM $B$r(B TO $B$K%3%T!<$9$k!#(B -TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" + "skk-study の学習テーマ FROM を TO にコピーする。 +TO の既存データは破壊される。" (interactive (list (completing-read "Copy skk-study theme from: " (when (or skk-study-alist (skk-study-read)) @@ -308,12 +308,12 @@ TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" (cons e n)) (mapcar 'car skk-study-alist)))))) (when (string= from to) - (skk-error "$B%3%T!<85$H%3%T!<@h$N%F!<%^$,F10l$G$9(B" + (skk-error "コピー元とコピー先のテーマが同一です" "FROM and TO is the same theme")) (let ((fromalist (copy-tree (cdr (assoc from skk-study-alist)))) (toalist (assoc to skk-study-alist))) (unless fromalist - (skk-error "$B%3%T!<85$N3X=,%G!<%?$,$"$j$^$;$s(B" + (skk-error "コピー元の学習データがありません" "FROM study data is null")) (if toalist (setcdr toalist fromalist) @@ -321,21 +321,21 @@ TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" ;;;###autoload (defun skk-study-read (&optional nomsg force) - "`skk-study-file' $B$+$i3X=,7k2L$rFI$_9~$`!#(B -$B%*%W%7%g%J%k0z?t$N(B FORCE $B$,(B non-nil $B$G$"$l$P!"GK4~$N3NG'$r$7$J$$!#(B" + "`skk-study-file' から学習結果を読み込む。 +オプショナル引数の FORCE が non-nil であれば、破棄の確認をしない。" (interactive "P") (skk-create-file skk-study-file (if (not nomsg) (if skk-japanese-message-and-error - "SKK $B$N3X=,7k2L%U%!%$%k$r:n$j$^$7$?(B" + "SKK の学習結果ファイルを作りました" "I have created an SKK study file for you"))) (when (or (null skk-study-alist) force (skk-yes-or-no-p - (format "%s $B$r:FFI$_9~$_$7$^$9$+!)(B " skk-study-file) + (format "%s を再読み込みしますか? " skk-study-file) (format "Reread %s? " skk-study-file))) (unless nomsg - (skk-message "%s $B$N(B SKK $B3X=,7k2L$rE83+$7$F$$$^$9(B..." + (skk-message "%s の SKK 学習結果を展開しています..." "Expanding SKK study of %s ..." (file-name-nondirectory skk-study-file))) (when skk-study-check-alist-format @@ -343,7 +343,7 @@ TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" (setq skk-study-alist (skk-study-read-1 skk-study-file)) (setq skk-study-last-read (current-time)) (when (and skk-study-alist (not nomsg)) - (skk-message "%s $B$N(B SKK $B3X=,7k2L$rE83+$7$F$$$^$9(B...$B40N;!*(B" + (skk-message "%s の SKK 学習結果を展開しています...完了!" "Expanding SKK study of %s ...done" (file-name-nondirectory skk-study-file)) (sit-for 1) @@ -367,7 +367,7 @@ TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" (when (looking-at "^;;; skk-study-file format version \\([.0-9]+\\)\n") (setq version (match-string 1))) (cond ((not version) - (skk-error "skk-study-file $B$,2u$l$F$$$^$9(B" + (skk-error "skk-study-file が壊れています" "Broken skk-study-file")) ((string= version skk-study-file-format-version) (read (current-buffer))) @@ -376,17 +376,17 @@ TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" (list (cons "general" (read (current-buffer))))))))) (defun skk-study-check-alist-format (file) - "skk-study $B$N3X=,%G!<%?%U%!%$%k(B FILE $B$N%U%)!<%^%C%H$r%A%'%C%/$9$k!#(B" + "skk-study の学習データファイル FILE のフォーマットをチェックする。" (interactive (list (read-file-name (format "File to check: (default: %s) " skk-study-file) default-directory skk-study-file))) - (skk-message "%s $B$N%U%)!<%^%C%H$r%A%'%C%/$7$F$$$^$9(B..." + (skk-message "%s のフォーマットをチェックしています..." "Checking format of %s..." file) (or (skk-study-check-alist-format-1 (skk-study-read-1 file)) - (skk-error "%s $B$N%U%)!<%^%C%H$O2u$l$F$$$^$9(B" + (skk-error "%s のフォーマットは壊れています" "%s format is broken" file)) - (skk-message "%s $B$N%U%)!<%^%C%H$r%A%'%C%/$7$F$$$^$9(B...$B40N;(B!" + (skk-message "%s のフォーマットをチェックしています...完了!" "Checking format of %s...done" file) (sit-for 1) (message "")) @@ -419,14 +419,14 @@ TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" (while a2 (setq e (car a2)) (or (funcall func (car e)) - ;; $B8+=P$78l$N%A%'%C%/(B + ;; 見出し語のチェック (throw 'exit nil)) (setq f (cdr e)) (while f (if (not (and - ;; $BD>A0$NJQ49$N>pJs(B + ;; 直前の変換の情報 (consp (caar f)) - ;; $B4XO"8l%j%9%H(B + ;; 関連語リスト (listp (cdar f)))) (throw 'exit nil)) (setq f (cdr f))) diff --git a/skk-tankan.el b/skk-tankan.el index 7548535b..dbf5bb8b 100644 --- a/skk-tankan.el +++ b/skk-tankan.el @@ -1,4 +1,4 @@ -;;; skk-tankan.el --- SKK $BC14A;zJQ49%W%m%0%i%`(B -*- coding: iso-2022-jp -*- +;;; skk-tankan.el --- SKK 単漢字変換プログラム -*- coding: iso-2022-jp -*- ;; Copyright (C) 2003 YAGI Tatsuya ;; Copyright (C) 2010 Tsuyoshi Kitamoto @@ -25,54 +25,54 @@ ;;; Commentary: -;; 1. $B;H$$J}(B +;; 1. 使い方 -;; 1-a. $BFI$_$N:G8e$K!"FI$_$N0lIt$H$7$F(B @ $B$rF~NO$7$F$+$iJQ49$9$k$H!"(B -;; $B0lJ8;z$N$_$+$i$J$k8uJd$K9J$j9~$s$@>e$G!"(B -;; $B8uJd$rAm2h?t=g$G%=!<%H$7$F$+$iJQ49$7$^$9!#(B +;; 1-a. 読みの最後に、読みの一部として @ を入力してから変換すると、 +;; 一文字のみからなる候補に絞り込んだ上で、 +;; 候補を総画数順でソートしてから変換します。 -;; 1-b. $B!VFI$_!WItJ,$,?tCM$G$"$l$P!"$=$N?tCM$rAm2h?t$H$9$k8uJd$rI=<($7$^$9!#(B -;; $B"&(B12@ [Q 1 2 @ ] +;; 1-b. 「読み」部分が数値であれば、その数値を総画数とする候補を表示します。 +;; ▽12@ [Q 1 2 @ ] ;; -;; 1-c. $B!VFI$_!WItJ,$,(B @ $B$G$"$l$P!"It [Q @ @ ] +;; 1-c. 「読み」部分が @ であれば、部首変換を開始します。 +;; ▽@@ [Q @ @ ] -;; 2. $B@_DjJ}K!(B +;; 2. 設定方法 -;; ~/.skk $B$K$Ol9g$O!"0J2<$N$h$&$K(B skk-search-prog-list $B$N@hF,$K(B -;; ;; $BDI2C$7$F$b9=$$$^$;$s!#(B +;; ;; 確定変換を用いない場合は、以下のように skk-search-prog-list の先頭に +;; ;; 追加しても構いません。 ;; (add-to-list 'skk-search-prog-list ;; '(skk-tankan-search 'skk-search-jisyo-file ;; skk-large-jisyo 10000)) -;; ;; $B$7$+$7!"3NDjJQ49$rJ;MQ$9$k>l9g$O!"(B skk-search-kakutei-jisyo-file -;; ;; $B$^$?$OBe$o$j$N3NDj%W%m%0%i%`$,(B skk-search-prog-list $B$N@hF,$K(B -;; ;; $B$J$1$l$P$$$1$^$;$s!#$=$N>l9g$OBe$o$j$K0J2<$N@_Dj$r$7$^$9!#(B +;; ;; しかし、確定変換を併用する場合は、 skk-search-kakutei-jisyo-file +;; ;; または代わりの確定プログラムが skk-search-prog-list の先頭に +;; ;; なければいけません。その場合は代わりに以下の設定をします。 ;; (setq skk-search-prog-list ;; (cons (car skk-search-prog-list) ;; (cons '(skk-tankan-search 'skk-search-jisyo-file ;; skk-large-jisyo 10000) ;; (cdr skk-search-prog-list)))) -;; ;; $BC14A;z8!:w$N%-!<$r(B @ $B$K$9$k(B($B%G%U%)%k%H(B) +;; ;; 単漢字検索のキーを @ にする(デフォルト) ;; (setq skk-tankan-search-key ?@) -;; ;; ;; @ $B$rF~NO$G$-$k$h$&$K$9$k(B ; DDSKK 14.2 $B$+$i$OITMW$G$9!#(B -;; ;; (setq skk-rom-kana-rule-list ; $B%a!<%j%s%0%j%9%H(B 2010-11-27 +;; ;; ;; @ を入力できるようにする ; DDSKK 14.2 からは不要です。 +;; ;; (setq skk-rom-kana-rule-list ; メーリングリスト 2010-11-27 ;; ;; (append skk-rom-kana-rule-list ;; ;; '(("@" nil "@")))) -;; ;; annotation $B$H$7$F2h?t$HIt]$+$i$O$:$9(B +;; ;; 単漢字入力は学習対象からはずす ;; (add-hook 'skk-search-excluding-word-pattern-function ;; #'(lambda (kakutei-word) ;; (string-match (format "%s$" @@ -80,37 +80,37 @@ ;; (char-to-string skk-tankan-search-key))) ;; skk-henkan-key))) -;; ;; $BJ8;z(B CHAR $B$N(B ANNOTATION ($BJ8;zNs(B) $B$rJQ99$7$?$$>l9g(B +;; ;; 文字 CHAR の ANNOTATION (文字列) を変更したい場合 ;; ;; (aset skk-tankan-annotation-table CHAR ANNOTATION) -;; ;; $B%a%b%j$r@aLs$7$?$$?M8~$1(B ($BIt==KNRGRLRSKt(B\ -$B8}SxEZ;NTiTjM.UwUyV%;3V_9)8J6R43VvVxW.W0W55]W@WDWF(B\ -$B?4Xy8M 57777 ;; (skk-tankan-get-char-data 57777) ;; => (24 7 9) ;; (aref skk-tankan-radical-vector 24) - ;; => "$B==(B" + ;; => "十" (let* ((charset (char-charset char skk-charset-list)) (fun (cdr (assq charset skk-tankan-get-char-data-functions)))) (or (and fun @@ -1721,21 +1721,21 @@ radical dat stroke) (if (null n) nil - (setq n (* 2 n) ; table $B$O!"(B1 $BJ8;z$"$?$j(B 2 byte $B$r;HMQ(B - radical (aref table n) ; $BIt 55329 +;; (string-to-char "亜") => 55329 ;; (split-char 55329) => (japanese-jisx0208 48 33) -;; split-char $B$N7k2L$r(B 16$B?J$KD>$9$H(B JIS$B%3!<%I(B $B$,F@$i$l$k!#(B +;; split-char の結果を 16進に直すと JISコード が得られる。 ;; (format "%x %x" 48 33) => "30 21" ;; ?! = 33 = 0x21 -;; 01$B6h!A(B13$B6h$^$G$OHs4A;zNN0h(B -;; $B6h$R$H$DEv$?$j(B (- (* 16 6) 2) = 94 +;; 01区~13区までは非漢字領域 +;; 区ひとつ当たり (- (* 16 6) 2) = 94 ;; (skk-tankan-encode-0213-1 55329) => 188 @@ -1767,16 +1767,16 @@ list)) (defun skk-search-by-stroke-or-radical (num method) - "JIS X 0208 $BKt$O(B JIS X 0213-[12] $B$NJ8;z=89g$N$&$A;XDj$NJ}K!$GC14A;z$r8!:w$9$k!#(B -METHOD $B$,(B 0 $B$G$"$l$P?tCM(B NUM $B$OIt@\;2>H$9$k$h$&=q$-49$($k!#(B - ;; $B",$N(B 1st byte $B$,Ito$O(B `skk-search-prog-list' $B$N#1MWAG$H$7$F => $BAm2h?tJQ49(B + ;; ▽12@ => 総画数変換 ((string-match "^[0-9]+$" skk-henkan-key) (skk-search-by-stroke-or-radical (string-to-number skk-henkan-key) 2)) - ;; $B"&(B@@ => $BIt => 部首変換 ((equal (char-to-string skk-tankan-search-key) skk-henkan-key) (skk-search-by-stroke-or-radical (skk-tankan-bushu-compread) 0)) - ;; $B"&$"(B => "$BFI$_(B"$BC14A;zJQ49(B + ;; ▽あ => "読み"単漢字変換 (t (apply func args)))))))) @@ -1998,7 +1998,7 @@ METHOD $B$,(B 2 $B$G$"$l$P?tCM(B NUM $B$OAm2h?t$H$7$F8!:w$rByE@(B,KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK") - (?$B!-(B "$B%"%/%5%s%F%.%e(B,$B%"%-%e!<%H%"%/%;%s%H(B,$B%W%i%$%`5-9f(B,ACUTE ACCENT") - (?$B!.(B "$B%"%/%5%s%0%i!<%V(B,$B%0%l!<%V%"%/%;%s%H(B,GRAVE ACCENT") - (?$B!/(B "$B%&%`%i%&%H(B,$B%@%$%(%l%7%9(B,DIAERESIS") - (?$B!0(B "$B%"%/%5%s%7%k%3%s%U%l%C%/%9(B,$B%5!<%+%`%U%l%C%/%9%"%/%;%s%H(B,CIRCUMFLEX ACCENT") - (?$B!1(B "$B%*!<%P!<%i%$%s(B,$BO@M}H]Dj5-9f(B,OVERLINE") - (?$B!2(B "$B%"%s%@!<%i%$%s(B,LOW LINE") - (?$B!3(B "$BJR2>L>7+JV$75-9f(B,KATAKANA ITERATION MARK") - (?$B!4(B "$BJR2>L>7+JV$75-9f(B($BByE@(B),KATAKANA VOICED ITERATION MARK") - (?$B!5(B "$BJ?2>L>7+JV$75-9f(B,HIRAGANA ITERATION MARK") - (?$B!6(B "$BJ?2>L>7+JV$75-9f(B($BByE@(B),HIRAGANA VOICED ITERATION MARK") - (?$B!7(B "$BF1$8$/5-9f(B,DITTO MARK") - (?$B!8(B "$BF1>e5-9f(B,CJK UNIFIED IDEOGRAPH-4EDD") - (?$B!9(B "$B7+JV$75-9f(B,IDEOGRAPHIC ITERATION MARK") - (?$B!:(B "$B$7$a(B,IDEOGRAPHIC CLOSING MARK") - (?$B!;(B "$B4A?t;z%<%m(B,IDEOGRAPHIC NUMBER ZERO") - (?$B!<(B "$BD92;5-9f(B,KATAKANA-HIRAGANA PROLONGED SOUND MARK") - (?$B!=(B "$B%@%C%7%e(B($BA43Q(B),EM DASH") - (?$B!>(B "$B%O%$%U%s(B($B;MJ,(B),HYPHEN") - (?$B!?(B "$B.3g8L(B,$B;O$a4]3g8L(B,LEFT PARENTHESIS") - (?$B!K(B "$B=*$o$j>.3g8L(B,$B=*$o$j4]3g8L(B,RIGHT PARENTHESIS") - (?$B!L(B "$B;O$a$-$C$3$&(B($B559C(B)$B3g8L(B,LEFT TORTOISE SHELL BRACKET") - (?$B!M(B "$B=*$o$j$-$C$3$&(B($B559C(B)$B3g8L(B,RIGHT TORTOISE SHELL BRACKET") - (?$B!N(B "$B;O$aBg3g8L(B,$B;O$a3Q3g8L(B,LEFT SQUARE BRACKET") - (?$B!O(B "$B=*$o$jBg3g8L(B,$B=*$o$j3Q3g8L(B,RIGHT SQUARE BRACKET") - (?$B!P(B "$B;O$aCf3g8L(B,$B;O$aGH3g8L(B,LEFT CURLY BRACKET") - (?$B!Q(B "$B=*$o$jCf3g8L(B,$B=*$o$jGH3g8L(B,RIGHT CURLY BRACKET") - (?$B!R(B "$B;O$a;33g8L(B,LEFT ANGLE BRACKET") - (?$B!S(B "$B=*$o$j;33g8L(B,RIGHT ANGLE BRACKET") - (?$B!T(B "$B;O$aFs=E;33g8L(B,LEFT DOUBLE ANGLE BRACKET") - (?$B!U(B "$B=*$o$jFs=E;33g8L(B,RIGHT DOUBLE ANGLE BRACKET") - (?$B!V(B "$B;O$a$+$.3g8L(B,LEFT CORNER BRACKET") - (?$B!W(B "$B=*$o$j$+$.3g8L(B,RIGHT CORNER BRACKET") - (?$B!X(B "$B;O$aFs=E$+$.3g8L(B,LEFT WHITE CORNER BRACKET") - (?$B!Y(B "$B=*$o$jFs=E$+$.3g8L(B,RIGHT WHITE CORNER BRACKET") - (?$B!Z(B "$B;O$a$9$_IU$-3g8L(B,LEFT BLACK LENTICULAR BRACKET") - (?$B![(B "$B=*$o$j$9$_IU$-3g8L(B,RIGHT BLACK LENTICULAR BRACKET") - (?$B!\(B "$B@5Id9f(B,$B2C;;5-9f(B,PLUS SIGN") - (?$B!](B "$BIiId9f(B,$B8:;;5-9f(B,MINUS SIGN") - (?$B!^(B "$B@5Kt$OIiId9f(B,PLUS-MINUS SIGN") - (?$B!_(B "$B>h;;5-9f(B,MULTIPLICATION SIGN") - (?$B!`(B "$B=|;;5-9f(B,DIVISION SIGN") - (?$B!a(B "$BEy9f(B,EQUALS SIGN") - (?$B!b(B "$BEy9fH]Dj(B,NOT EQUAL TO") - (?$B!c(B "$BITEy9f(B($B$h$j>.(B),LESS-THAN SIGN") - (?$B!d(B "$BITEy9f(B($B$h$jBg(B),GREATER-THAN SIGN") - (?$B!e(B "$B$h$j>.$5$$$+Kt$OEy$7$$(B,LESS-THAN OVER EQUAL TO") - (?$B!f(B "$B$h$jBg$-$$$+Kt$OEy$7$$(B,GREATER-THAN OVER EQUAL TO") - (?$B!g(B "$BL58BBg(B,INFINITY") - (?$B!h(B "$B$f$($K(B,THEREFORE") - (?$B!i(B "$BM:5-9f(B,MALE SIGN") - (?$B!j(B "$B;s5-9f(B,FEMALE SIGN") - (?$B!k(B "$BEY(B,DEGREE SIGN") - (?$B!l(B "$BJ,(B,PRIME") - (?$B!m(B "$BIC(B,DOUBLE PRIME") - (?$B!n(B "$B%;;aEY5-9f(B,DEGREE CELSIUS") - (?$B!o(B "$B1_5-9f(B,YEN SIGN") - (?$B!p(B "$B%I%k5-9f(B,DOLLAR SIGN") - (?$B!q(B "$B%;%s%H5-9f(B,CENT SIGN") - (?$B!r(B "$B%]%s%I5-9f(B,POUND SIGN") - (?$B!s(B "$B%Q!<%;%s%H5-9f(B,PERCENT SIGN") - (?$B!t(B "$BHV9f5-9f(B,$B0f$2$?(B,NUMBER SIGN") - (?$B!u(B "$B%"%s%Q%5%s%I(B,AMPERSAND") - (?$B!v(B "$B@10u(B,$B%"%9%F%j%9%/(B,ASTERISK") - (?$B!w(B "$BC12A5-9f(B,COMMERCIAL AT") - (?$B!x(B "$B@a5-9f(B,SECTION SIGN") - (?$B!y(B "$BGr@1(B,WHITE STAR") - (?$B!z(B "$B9u@1(B,BLACK STAR") - (?$B!{(B "$B4]0u(B,$BGr4](B,WHITE CIRCLE") - (?$B!|(B "$B9u4](B,BLACK CIRCLE") - (?$B!}(B "$BFs=E4](B,BULLSEYE") - (?$B!~(B "$B$R$77A(B,WHITE DIAMOND") - (?$B"!(B "$B9u$R$77A(B,BLACK DIAMOND") - (?$B""(B "$B;M3Q(B,WHITE SQUARE") - (?$B"#(B "$B9u;M3Q(B,BLACK SQUARE") - (?$B"$(B "$B;03Q(B,WHITE UP-POINTING TRIANGLE") - (?$B"%(B "$B9u;03Q(B,BLACK UP-POINTING TRIANGLE") - (?$B"&(B "$B5U;03Q(B,WHITE DOWN-POINTING TRIANGLE") - (?$B"'(B "$B5U9u;03Q(B,BLACK DOWN-POINTING TRIANGLE") - (?$B"((B "$BJF0u(B,REFERENCE MARK") - (?$B")(B "$BM9JX5-9f(B,POSTAL MARK") - (?$B"*(B "$B1&Lp0u(B,RIGHTWARDS ARROW") - (?$B"+(B "$B:8Lp0u(B,LEFTWARDS ARROW") - (?$B",(B "$B>eLp0u(B,UPWARDS ARROW") - (?$B"-(B "$B2(B "$B??ItJ,=89g(B,SUBSET OF") - (?$B"?(B "$B??ItJ,=89g(B($B5UJ}8~(B),SUPERSET OF") - (?$B"@(B "$B9gJ;=89g(B,UNION") - (?$B"A(B "$B6&DL=89g(B,INTERSECTION") - (?$B"J(B "$B5Z$S(B($B9g@\(B),LOGICAL AND") - (?$B"K(B "$BKt$O(B($BN%@\(B),LOGICAL OR") - (?$B"L(B "$BH]Dj(B,NOT SIGN") - (?$B"M(B "$B$J$i$P(B($B4^0U(B),RIGHTWARDS DOUBLE ARROW") - (?$B"N(B "$BF1CM(B,LEFT RIGHT DOUBLE ARROW") - (?$B"O(B "$B$9$Y$F$N(B($BIaDL8BDj;R(B),FOR ALL") - (?$B"P(B "$BB8:_$9$k(B($BB8:_8BDj;R(B),THERE EXISTS") - (?$B"\(B "$B3Q(B,ANGLE") - (?$B"](B "$B?bD>(B,UP TACK") - (?$B"^(B "$B8L(B,ARC") - (?$B"_(B "$B%G%k(B,$B%i%&%s%I%G%#!<(B,PARTIAL DIFFERENTIAL") - (?$B"`(B "$B%J%V%i(B,NABLA") - (?$B"a(B "$B>o$KEy$7$$(B,$B9gF1(B,IDENTICAL TO") - (?$B"b(B "$B$[$H$s$IEy$7$$(B,APPROXIMATELY EQUAL TO OR THE IMAGE OF") - (?$B"c(B "$BHs>o$K>.$5$$(B,MUCH LESS-THAN") - (?$B"d(B "$BHs>o$KBg$-$$(B,MUCH GREATER-THAN") - (?$B"e(B "$B:,9f(B,SQUARE ROOT") - (?$B"f(B "$BAj;w(B,REVERSED TILDE") - (?$B"g(B "$BHfNc(B,PROPORTIONAL TO") - (?$B"h(B "$B$J$<$J$i$P(B,BECAUSE") - (?$B"i(B "$B@QJ,5-9f(B,INTEGRAL") - (?$B"j(B "2$B=E@QJ,5-9f(B,DOUBLE INTEGRAL") - (?$B"r(B "$B%*%s%0%9%H%m!<%`(B,ANGSTROM SIGN") - (?$B"s(B "$B%Q!<%_%k(B,PER MILLE SIGN") - (?$B"t(B "$B%7%c!<%W(B,MUSIC SHARP SIGN") - (?$B"u(B "$B%U%i%C%H(B,MUSIC FLAT SIGN") - (?$B"v(B "$B2;Id(B,EIGHTH NOTE") - (?$B"w(B "$B%@%,!<(B,DAGGER") - (?$B"x(B "$B%@%V%k%@%,!<(B,DOUBLE DAGGER") - (?$B"y(B "$BCJMn5-9f(B,PILCROW SIGN") - (?$B"~(B "$BBg$-$J4](B,LARGE CIRCLE") - (?$B#0(B "0,DIGIT ZERO") - (?$B#1(B "1,DIGIT ONE") - (?$B#2(B "2,DIGIT TWO") - (?$B#3(B "3,DIGIT THREE") - (?$B#4(B "4,DIGIT FOUR") - (?$B#5(B "5,DIGIT FIVE") - (?$B#6(B "6,DIGIT SIX") - (?$B#7(B "7,DIGIT SEVEN") - (?$B#8(B "8,DIGIT EIGHT") - (?$B#9(B "9,DIGIT NINE") - (?$B#A(B "$B%i%F%sBgJ8;z(BA,LATIN CAPITAL LETTER A") - (?$B#B(B "$B%i%F%sBgJ8;z(BB,LATIN CAPITAL LETTER B") - (?$B#C(B "$B%i%F%sBgJ8;z(BC,LATIN CAPITAL LETTER C") - (?$B#D(B "$B%i%F%sBgJ8;z(BD,LATIN CAPITAL LETTER D") - (?$B#E(B "$B%i%F%sBgJ8;z(BE,LATIN CAPITAL LETTER E") - (?$B#F(B "$B%i%F%sBgJ8;z(BF,LATIN CAPITAL LETTER F") - (?$B#G(B "$B%i%F%sBgJ8;z(BG,LATIN CAPITAL LETTER G") - (?$B#H(B "$B%i%F%sBgJ8;z(BH,LATIN CAPITAL LETTER H") - (?$B#I(B "$B%i%F%sBgJ8;z(BI,LATIN CAPITAL LETTER I") - (?$B#J(B "$B%i%F%sBgJ8;z(BJ,LATIN CAPITAL LETTER J") - (?$B#K(B "$B%i%F%sBgJ8;z(BK,LATIN CAPITAL LETTER K") - (?$B#L(B "$B%i%F%sBgJ8;z(BL,LATIN CAPITAL LETTER L") - (?$B#M(B "$B%i%F%sBgJ8;z(BM,LATIN CAPITAL LETTER M") - (?$B#N(B "$B%i%F%sBgJ8;z(BN,LATIN CAPITAL LETTER N") - (?$B#O(B "$B%i%F%sBgJ8;z(BO,LATIN CAPITAL LETTER O") - (?$B#P(B "$B%i%F%sBgJ8;z(BP,LATIN CAPITAL LETTER P") - (?$B#Q(B "$B%i%F%sBgJ8;z(BQ,LATIN CAPITAL LETTER Q") - (?$B#R(B "$B%i%F%sBgJ8;z(BR,LATIN CAPITAL LETTER R") - (?$B#S(B "$B%i%F%sBgJ8;z(BS,LATIN CAPITAL LETTER S") - (?$B#T(B "$B%i%F%sBgJ8;z(BT,LATIN CAPITAL LETTER T") - (?$B#U(B "$B%i%F%sBgJ8;z(BU,LATIN CAPITAL LETTER U") - (?$B#V(B "$B%i%F%sBgJ8;z(BV,LATIN CAPITAL LETTER V") - (?$B#W(B "$B%i%F%sBgJ8;z(BW,LATIN CAPITAL LETTER W") - (?$B#X(B "$B%i%F%sBgJ8;z(BX,LATIN CAPITAL LETTER X") - (?$B#Y(B "$B%i%F%sBgJ8;z(BY,LATIN CAPITAL LETTER Y") - (?$B#Z(B "$B%i%F%sBgJ8;z(BZ,LATIN CAPITAL LETTER Z") - (?$B#a(B "$B%i%F%s>.J8;z(BA,LATIN SMALL LETTER A") - (?$B#b(B "$B%i%F%s>.J8;z(BB,LATIN SMALL LETTER B") - (?$B#c(B "$B%i%F%s>.J8;z(BC,LATIN SMALL LETTER C") - (?$B#d(B "$B%i%F%s>.J8;z(BD,LATIN SMALL LETTER D") - (?$B#e(B "$B%i%F%s>.J8;z(BE,LATIN SMALL LETTER E") - (?$B#f(B "$B%i%F%s>.J8;z(BF,LATIN SMALL LETTER F") - (?$B#g(B "$B%i%F%s>.J8;z(BG,LATIN SMALL LETTER G") - (?$B#h(B "$B%i%F%s>.J8;z(BH,LATIN SMALL LETTER H") - (?$B#i(B "$B%i%F%s>.J8;z(BI,LATIN SMALL LETTER I") - (?$B#j(B "$B%i%F%s>.J8;z(BJ,LATIN SMALL LETTER J") - (?$B#k(B "$B%i%F%s>.J8;z(BK,LATIN SMALL LETTER K") - (?$B#l(B "$B%i%F%s>.J8;z(BL,LATIN SMALL LETTER L") - (?$B#m(B "$B%i%F%s>.J8;z(BM,LATIN SMALL LETTER M") - (?$B#n(B "$B%i%F%s>.J8;z(BN,LATIN SMALL LETTER N") - (?$B#o(B "$B%i%F%s>.J8;z(BO,LATIN SMALL LETTER O") - (?$B#p(B "$B%i%F%s>.J8;z(BP,LATIN SMALL LETTER P") - (?$B#q(B "$B%i%F%s>.J8;z(BQ,LATIN SMALL LETTER Q") - (?$B#r(B "$B%i%F%s>.J8;z(BR,LATIN SMALL LETTER R") - (?$B#s(B "$B%i%F%s>.J8;z(BS,LATIN SMALL LETTER S") - (?$B#t(B "$B%i%F%s>.J8;z(BT,LATIN SMALL LETTER T") - (?$B#u(B "$B%i%F%s>.J8;z(BU,LATIN SMALL LETTER U") - (?$B#v(B "$B%i%F%s>.J8;z(BV,LATIN SMALL LETTER V") - (?$B#w(B "$B%i%F%s>.J8;z(BW,LATIN SMALL LETTER W") - (?$B#x(B "$B%i%F%s>.J8;z(BX,LATIN SMALL LETTER X") - (?$B#y(B "$B%i%F%s>.J8;z(BY,LATIN SMALL LETTER Y") - (?$B#z(B "$B%i%F%s>.J8;z(BZ,LATIN SMALL LETTER Z") - (?$B$!(B "$B>.=q$-J?2>L>$"(B,HIRAGANA LETTER SMALL A") - (?$B$"(B "$BJ?2>L>$"(B,HIRAGANA LETTER A") - (?$B$#(B "$B>.=q$-J?2>L>$$(B,HIRAGANA LETTER SMALL I") - (?$B$$(B "$BJ?2>L>$$(B,HIRAGANA LETTER I") - (?$B$%(B "$B>.=q$-J?2>L>$&(B,HIRAGANA LETTER SMALL U") - (?$B$&(B "$BJ?2>L>$&(B,HIRAGANA LETTER U") - (?$B$'(B "$B>.=q$-J?2>L>$((B,HIRAGANA LETTER SMALL E") - (?$B$((B "$BJ?2>L>$((B,HIRAGANA LETTER E") - (?$B$)(B "$B>.=q$-J?2>L>$*(B,HIRAGANA LETTER SMALL O") - (?$B$*(B "$BJ?2>L>$*(B,HIRAGANA LETTER O") - (?$B$+(B "$BJ?2>L>$+(B,HIRAGANA LETTER KA") - (?$B$,(B "$BByE@IU$-J?2>L>$+(B,HIRAGANA LETTER GA") - (?$B$-(B "$BJ?2>L>$-(B,HIRAGANA LETTER KI") - (?$B$.(B "$BByE@IU$-J?2>L>$-(B,HIRAGANA LETTER GI") - (?$B$/(B "$BJ?2>L>$/(B,HIRAGANA LETTER KU") - (?$B$0(B "$BByE@IU$-J?2>L>$/(B,HIRAGANA LETTER GU") - (?$B$1(B "$BJ?2>L>$1(B,HIRAGANA LETTER KE") - (?$B$2(B "$BByE@IU$-J?2>L>$1(B,HIRAGANA LETTER GE") - (?$B$3(B "$BJ?2>L>$3(B,HIRAGANA LETTER KO") - (?$B$4(B "$BByE@IU$-J?2>L>$3(B,HIRAGANA LETTER GO") - (?$B$5(B "$BJ?2>L>$5(B,HIRAGANA LETTER SA") - (?$B$6(B "$BByE@IU$-J?2>L>$5(B,HIRAGANA LETTER ZA") - (?$B$7(B "$BJ?2>L>$7(B,HIRAGANA LETTER SI") - (?$B$8(B "$BByE@IU$-J?2>L>$7(B,HIRAGANA LETTER ZI") - (?$B$9(B "$BJ?2>L>$9(B,HIRAGANA LETTER SU") - (?$B$:(B "$BByE@IU$-J?2>L>$9(B,HIRAGANA LETTER ZU") - (?$B$;(B "$BJ?2>L>$;(B,HIRAGANA LETTER SE") - (?$B$<(B "$BByE@IU$-J?2>L>$;(B,HIRAGANA LETTER ZE") - (?$B$=(B "$BJ?2>L>$=(B,HIRAGANA LETTER SO") - (?$B$>(B "$BByE@IU$-J?2>L>$=(B,HIRAGANA LETTER ZO") - (?$B$?(B "$BJ?2>L>$?(B,HIRAGANA LETTER TA") - (?$B$@(B "$BByE@IU$-J?2>L>$?(B,HIRAGANA LETTER DA") - (?$B$A(B "$BJ?2>L>$A(B,HIRAGANA LETTER TI") - (?$B$B(B "$BByE@IU$-J?2>L>$A(B,HIRAGANA LETTER DI") - (?$B$C(B "$B>.=q$-J?2>L>$D(B,HIRAGANA LETTER SMALL TU") - (?$B$D(B "$BJ?2>L>$D(B,HIRAGANA LETTER TU") - (?$B$E(B "$BByE@IU$-J?2>L>$D(B,HIRAGANA LETTER DU") - (?$B$F(B "$BJ?2>L>$F(B,HIRAGANA LETTER TE") - (?$B$G(B "$BByE@IU$-J?2>L>$F(B,HIRAGANA LETTER DE") - (?$B$H(B "$BJ?2>L>$H(B,HIRAGANA LETTER TO") - (?$B$I(B "$BByE@IU$-J?2>L>$H(B,HIRAGANA LETTER DO") - (?$B$J(B "$BJ?2>L>$J(B,HIRAGANA LETTER NA") - (?$B$K(B "$BJ?2>L>$K(B,HIRAGANA LETTER NI") - (?$B$L(B "$BJ?2>L>$L(B,HIRAGANA LETTER NU") - (?$B$M(B "$BJ?2>L>$M(B,HIRAGANA LETTER NE") - (?$B$N(B "$BJ?2>L>$N(B,HIRAGANA LETTER NO") - (?$B$O(B "$BJ?2>L>$O(B,HIRAGANA LETTER HA") - (?$B$P(B "$BByE@IU$-J?2>L>$O(B,HIRAGANA LETTER BA") - (?$B$Q(B "$BH>ByE@IU$-J?2>L>$O(B,HIRAGANA LETTER PA") - (?$B$R(B "$BJ?2>L>$R(B,HIRAGANA LETTER HI") - (?$B$S(B "$BByE@IU$-J?2>L>$R(B,HIRAGANA LETTER BI") - (?$B$T(B "$BH>ByE@IU$-J?2>L>$R(B,HIRAGANA LETTER PI") - (?$B$U(B "$BJ?2>L>$U(B,HIRAGANA LETTER HU") - (?$B$V(B "$BByE@IU$-J?2>L>$U(B,HIRAGANA LETTER BU") - (?$B$W(B "$BH>ByE@IU$-J?2>L>$U(B,HIRAGANA LETTER PU") - (?$B$X(B "$BJ?2>L>$X(B,HIRAGANA LETTER HE") - (?$B$Y(B "$BByE@IU$-J?2>L>$X(B,HIRAGANA LETTER BE") - (?$B$Z(B "$BH>ByE@IU$-J?2>L>$X(B,HIRAGANA LETTER PE") - (?$B$[(B "$BJ?2>L>$[(B,HIRAGANA LETTER HO") - (?$B$\(B "$BByE@IU$-J?2>L>$[(B,HIRAGANA LETTER BO") - (?$B$](B "$BH>ByE@IU$-J?2>L>$[(B,HIRAGANA LETTER PO") - (?$B$^(B "$BJ?2>L>$^(B,HIRAGANA LETTER MA") - (?$B$_(B "$BJ?2>L>$_(B,HIRAGANA LETTER MI") - (?$B$`(B "$BJ?2>L>$`(B,HIRAGANA LETTER MU") - (?$B$a(B "$BJ?2>L>$a(B,HIRAGANA LETTER ME") - (?$B$b(B "$BJ?2>L>$b(B,HIRAGANA LETTER MO") - (?$B$c(B "$B>.=q$-J?2>L>$d(B,HIRAGANA LETTER SMALL YA") - (?$B$d(B "$BJ?2>L>$d(B,HIRAGANA LETTER YA") - (?$B$e(B "$B>.=q$-J?2>L>$f(B,HIRAGANA LETTER SMALL YU") - (?$B$f(B "$BJ?2>L>$f(B,HIRAGANA LETTER YU") - (?$B$g(B "$B>.=q$-J?2>L>$h(B,HIRAGANA LETTER SMALL YO") - (?$B$h(B "$BJ?2>L>$h(B,HIRAGANA LETTER YO") - (?$B$i(B "$BJ?2>L>$i(B,HIRAGANA LETTER RA") - (?$B$j(B "$BJ?2>L>$j(B,HIRAGANA LETTER RI") - (?$B$k(B "$BJ?2>L>$k(B,HIRAGANA LETTER RU") - (?$B$l(B "$BJ?2>L>$l(B,HIRAGANA LETTER RE") - (?$B$m(B "$BJ?2>L>$m(B,HIRAGANA LETTER RO") - (?$B$n(B "$B>.=q$-J?2>L>$o(B,HIRAGANA LETTER SMALL WA") - (?$B$o(B "$BJ?2>L>$o(B,HIRAGANA LETTER WA") - (?$B$p(B "$BJ?2>L>$p(B,HIRAGANA LETTER WI") - (?$B$q(B "$BJ?2>L>$q(B,HIRAGANA LETTER WE") - (?$B$r(B "$BJ?2>L>$r(B,HIRAGANA LETTER WO") - (?$B$s(B "$BJ?2>L>$s(B,HIRAGANA LETTER N") - (?$B%!(B "$B>.=q$-JR2>L>%"(B,KATAKANA LETTER SMALL A") - (?$B%"(B "$BJR2>L>%"(B,KATAKANA LETTER A") - (?$B%#(B "$B>.=q$-JR2>L>%$(B,KATAKANA LETTER SMALL I") - (?$B%$(B "$BJR2>L>%$(B,KATAKANA LETTER I") - (?$B%%(B "$B>.=q$-JR2>L>%&(B,KATAKANA LETTER SMALL U") - (?$B%&(B "$BJR2>L>%&(B,KATAKANA LETTER U") - (?$B%'(B "$B>.=q$-JR2>L>%((B,KATAKANA LETTER SMALL E") - (?$B%((B "$BJR2>L>%((B,KATAKANA LETTER E") - (?$B%)(B "$B>.=q$-JR2>L>%*(B,KATAKANA LETTER SMALL O") - (?$B%*(B "$BJR2>L>%*(B,KATAKANA LETTER O") - (?$B%+(B "$BJR2>L>%+(B,KATAKANA LETTER KA") - (?$B%,(B "$BByE@IU$-JR2>L>%+(B,KATAKANA LETTER GA") - (?$B%-(B "$BJR2>L>%-(B,KATAKANA LETTER KI") - (?$B%.(B "$BByE@IU$-JR2>L>%-(B,KATAKANA LETTER GI") - (?$B%/(B "$BJR2>L>%/(B,KATAKANA LETTER KU") - (?$B%0(B "$BByE@IU$-JR2>L>%/(B,KATAKANA LETTER GU") - (?$B%1(B "$BJR2>L>%1(B,KATAKANA LETTER KE") - (?$B%2(B "$BByE@IU$-JR2>L>%1(B,KATAKANA LETTER GE") - (?$B%3(B "$BJR2>L>%3(B,KATAKANA LETTER KO") - (?$B%4(B "$BByE@IU$-JR2>L>%3(B,KATAKANA LETTER GO") - (?$B%5(B "$BJR2>L>%5(B,KATAKANA LETTER SA") - (?$B%6(B "$BByE@IU$-JR2>L>%5(B,KATAKANA LETTER ZA") - (?$B%7(B "$BJR2>L>%7(B,KATAKANA LETTER SI") - (?$B%8(B "$BByE@IU$-JR2>L>%7(B,KATAKANA LETTER ZI") - (?$B%9(B "$BJR2>L>%9(B,KATAKANA LETTER SU") - (?$B%:(B "$BByE@IU$-JR2>L>%9(B,KATAKANA LETTER ZU") - (?$B%;(B "$BJR2>L>%;(B,KATAKANA LETTER SE") - (?$B%<(B "$BByE@IU$-JR2>L>%;(B,KATAKANA LETTER ZE") - (?$B%=(B "$BJR2>L>%=(B,KATAKANA LETTER SO") - (?$B%>(B "$BByE@IU$-JR2>L>%=(B,KATAKANA LETTER ZO") - (?$B%?(B "$BJR2>L>%?(B,KATAKANA LETTER TA") - (?$B%@(B "$BByE@IU$-JR2>L>%?(B,KATAKANA LETTER DA") - (?$B%A(B "$BJR2>L>%A(B,KATAKANA LETTER TI") - (?$B%B(B "$BByE@IU$-JR2>L>%A(B,KATAKANA LETTER DI") - (?$B%C(B "$B>.=q$-JR2>L>%D(B,KATAKANA LETTER SMALL TU") - (?$B%D(B "$BJR2>L>%D(B,KATAKANA LETTER TU") - (?$B%E(B "$BByE@IU$-JR2>L>%D(B,KATAKANA LETTER DU") - (?$B%F(B "$BJR2>L>%F(B,KATAKANA LETTER TE") - (?$B%G(B "$BByE@IU$-JR2>L>%F(B,KATAKANA LETTER DE") - (?$B%H(B "$BJR2>L>%H(B,KATAKANA LETTER TO") - (?$B%I(B "$BByE@IU$-JR2>L>%H(B,KATAKANA LETTER DO") - (?$B%J(B "$BJR2>L>%J(B,KATAKANA LETTER NA") - (?$B%K(B "$BJR2>L>%K(B,KATAKANA LETTER NI") - (?$B%L(B "$BJR2>L>%L(B,KATAKANA LETTER NU") - (?$B%M(B "$BJR2>L>%M(B,KATAKANA LETTER NE") - (?$B%N(B "$BJR2>L>%N(B,KATAKANA LETTER NO") - (?$B%O(B "$BJR2>L>%O(B,KATAKANA LETTER HA") - (?$B%P(B "$BByE@IU$-JR2>L>%O(B,KATAKANA LETTER BA") - (?$B%Q(B "$BH>ByE@IU$-JR2>L>%O(B,KATAKANA LETTER PA") - (?$B%R(B "$BJR2>L>%R(B,KATAKANA LETTER HI") - (?$B%S(B "$BByE@IU$-JR2>L>%R(B,KATAKANA LETTER BI") - (?$B%T(B "$BH>ByE@IU$-JR2>L>%R(B,KATAKANA LETTER PI") - (?$B%U(B "$BJR2>L>%U(B,KATAKANA LETTER HU") - (?$B%V(B "$BByE@IU$-JR2>L>%U(B,KATAKANA LETTER BU") - (?$B%W(B "$BH>ByE@IU$-JR2>L>%U(B,KATAKANA LETTER PU") - (?$B%X(B "$BJR2>L>%X(B,KATAKANA LETTER HE") - (?$B%Y(B "$BByE@IU$-JR2>L>%X(B,KATAKANA LETTER BE") - (?$B%Z(B "$BH>ByE@IU$-JR2>L>%X(B,KATAKANA LETTER PE") - (?$B%[(B "$BJR2>L>%[(B,KATAKANA LETTER HO") - (?$B%\(B "$BByE@IU$-JR2>L>%[(B,KATAKANA LETTER BO") - (?$B%](B "$BH>ByE@IU$-JR2>L>%[(B,KATAKANA LETTER PO") - (?$B%^(B "$BJR2>L>%^(B,KATAKANA LETTER MA") - (?$B%_(B "$BJR2>L>%_(B,KATAKANA LETTER MI") - (?$B%`(B "$BJR2>L>%`(B,KATAKANA LETTER MU") - (?$B%a(B "$BJR2>L>%a(B,KATAKANA LETTER ME") - (?$B%b(B "$BJR2>L>%b(B,KATAKANA LETTER MO") - (?$B%c(B "$B>.=q$-JR2>L>%d(B,KATAKANA LETTER SMALL YA") - (?$B%d(B "$BJR2>L>%d(B,KATAKANA LETTER YA") - (?$B%e(B "$B>.=q$-JR2>L>%f(B,KATAKANA LETTER SMALL YU") - (?$B%f(B "$BJR2>L>%f(B,KATAKANA LETTER YU") - (?$B%g(B "$B>.=q$-JR2>L>%h(B,KATAKANA LETTER SMALL YO") - (?$B%h(B "$BJR2>L>%h(B,KATAKANA LETTER YO") - (?$B%i(B "$BJR2>L>%i(B,KATAKANA LETTER RA") - (?$B%j(B "$BJR2>L>%j(B,KATAKANA LETTER RI") - (?$B%k(B "$BJR2>L>%k(B,KATAKANA LETTER RU") - (?$B%l(B "$BJR2>L>%l(B,KATAKANA LETTER RE") - (?$B%m(B "$BJR2>L>%m(B,KATAKANA LETTER RO") - (?$B%n(B "$B>.=q$-JR2>L>%o(B,KATAKANA LETTER SMALL WA") - (?$B%o(B "$BJR2>L>%o(B,KATAKANA LETTER WA") - (?$B%p(B "$BJR2>L>%p(B,KATAKANA LETTER WI") - (?$B%q(B "$BJR2>L>%q(B,KATAKANA LETTER WE") - (?$B%r(B "$BJR2>L>%r(B,KATAKANA LETTER WO") - (?$B%s(B "$BJR2>L>%s(B,KATAKANA LETTER N") - (?$B%t(B "$BByE@IU$-JR2>L>%&(B,KATAKANA LETTER VU") - (?$B%u(B "$B>.=q$-JR2>L>%+(B,KATAKANA LETTER SMALL KA") - (?$B%v(B "$B>.=q$-JR2>L>%1(B,KATAKANA LETTER SMALL KE") - (?$B&!(B "$B%.%j%7%"BgJ8;z(BALPHA,GREEK CAPITAL LETTER ALPHA") - (?$B&"(B "$B%.%j%7%"BgJ8;z(BBETA,GREEK CAPITAL LETTER BETA") - (?$B&#(B "$B%.%j%7%"BgJ8;z(BGAMMA,GREEK CAPITAL LETTER GAMMA") - (?$B&$(B "$B%.%j%7%"BgJ8;z(BDELTA,GREEK CAPITAL LETTER DELTA") - (?$B&%(B "$B%.%j%7%"BgJ8;z(BEPSILON,GREEK CAPITAL LETTER EPSILON") - (?$B&&(B "$B%.%j%7%"BgJ8;z(BZETA,GREEK CAPITAL LETTER ZETA") - (?$B&'(B "$B%.%j%7%"BgJ8;z(BETA,GREEK CAPITAL LETTER ETA") - (?$B&((B "$B%.%j%7%"BgJ8;z(BTHETA,GREEK CAPITAL LETTER THETA") - (?$B&)(B "$B%.%j%7%"BgJ8;z(BIOTA,GREEK CAPITAL LETTER IOTA") - (?$B&*(B "$B%.%j%7%"BgJ8;z(BKAPPA,GREEK CAPITAL LETTER KAPPA") - (?$B&+(B "$B%.%j%7%"BgJ8;z(BLAMBDA,GREEK CAPITAL LETTER LAMBDA") - (?$B&,(B "$B%.%j%7%"BgJ8;z(BMU,GREEK CAPITAL LETTER MU") - (?$B&-(B "$B%.%j%7%"BgJ8;z(BNU,GREEK CAPITAL LETTER NU") - (?$B&.(B "$B%.%j%7%"BgJ8;z(BXI,GREEK CAPITAL LETTER XI") - (?$B&/(B "$B%.%j%7%"BgJ8;z(BOMICRON,GREEK CAPITAL LETTER OMICRON") - (?$B&0(B "$B%.%j%7%"BgJ8;z(BPI,GREEK CAPITAL LETTER PI") - (?$B&1(B "$B%.%j%7%"BgJ8;z(BRHO,GREEK CAPITAL LETTER RHO") - (?$B&2(B "$B%.%j%7%"BgJ8;z(BSIGMA,GREEK CAPITAL LETTER SIGMA") - (?$B&3(B "$B%.%j%7%"BgJ8;z(BTAU,GREEK CAPITAL LETTER TAU") - (?$B&4(B "$B%.%j%7%"BgJ8;z(BUPSILON,GREEK CAPITAL LETTER UPSILON") - (?$B&5(B "$B%.%j%7%"BgJ8;z(BPHI,GREEK CAPITAL LETTER PHI") - (?$B&6(B "$B%.%j%7%"BgJ8;z(BCHI,GREEK CAPITAL LETTER CHI") - (?$B&7(B "$B%.%j%7%"BgJ8;z(BPSI,GREEK CAPITAL LETTER PSI") - (?$B&8(B "$B%.%j%7%"BgJ8;z(BOMEGA,GREEK CAPITAL LETTER OMEGA") - (?$B&A(B "$B%.%j%7%">.J8;z(BALPHA,GREEK SMALL LETTER ALPHA") - (?$B&B(B "$B%.%j%7%">.J8;z(BBETA,GREEK SMALL LETTER BETA") - (?$B&C(B "$B%.%j%7%">.J8;z(BGAMMA,GREEK SMALL LETTER GAMMA") - (?$B&D(B "$B%.%j%7%">.J8;z(BDELTA,GREEK SMALL LETTER DELTA") - (?$B&E(B "$B%.%j%7%">.J8;z(BEPSILON,GREEK SMALL LETTER EPSILON") - (?$B&F(B "$B%.%j%7%">.J8;z(BZETA,GREEK SMALL LETTER ZETA") - (?$B&G(B "$B%.%j%7%">.J8;z(BETA,GREEK SMALL LETTER ETA") - (?$B&H(B "$B%.%j%7%">.J8;z(BTHETA,GREEK SMALL LETTER THETA") - (?$B&I(B "$B%.%j%7%">.J8;z(BIOTA,GREEK SMALL LETTER IOTA") - (?$B&J(B "$B%.%j%7%">.J8;z(BKAPPA,GREEK SMALL LETTER KAPPA") - (?$B&K(B "$B%.%j%7%">.J8;z(BLAMBDA,GREEK SMALL LETTER LAMBDA") - (?$B&L(B "$B%.%j%7%">.J8;z(BMU,GREEK SMALL LETTER MU") - (?$B&M(B "$B%.%j%7%">.J8;z(BNU,GREEK SMALL LETTER NU") - (?$B&N(B "$B%.%j%7%">.J8;z(BXI,GREEK SMALL LETTER XI") - (?$B&O(B "$B%.%j%7%">.J8;z(BOMICRON,GREEK SMALL LETTER OMICRON") - (?$B&P(B "$B%.%j%7%">.J8;z(BPI,GREEK SMALL LETTER PI") - (?$B&Q(B "$B%.%j%7%">.J8;z(BRHO,GREEK SMALL LETTER RHO") - (?$B&R(B "$B%.%j%7%">.J8;z(BSIGMA,GREEK SMALL LETTER SIGMA") - (?$B&S(B "$B%.%j%7%">.J8;z(BTAU,GREEK SMALL LETTER TAU") - (?$B&T(B "$B%.%j%7%">.J8;z(BUPSILON,GREEK SMALL LETTER UPSILON") - (?$B&U(B "$B%.%j%7%">.J8;z(BPHI,GREEK SMALL LETTER PHI") - (?$B&V(B "$B%.%j%7%">.J8;z(BCHI,GREEK SMALL LETTER CHI") - (?$B&W(B "$B%.%j%7%">.J8;z(BPSI,GREEK SMALL LETTER PSI") - (?$B&X(B "$B%.%j%7%">.J8;z(BOMEGA,GREEK SMALL LETTER OMEGA") - (?$B'!(B "$B%-%j!<%kBgJ8;z(BA,CYRILLIC CAPITAL LETTER A") - (?$B'"(B "$B%-%j!<%kBgJ8;z(BBE,CYRILLIC CAPITAL LETTER BE") - (?$B'#(B "$B%-%j!<%kBgJ8;z(BVE,CYRILLIC CAPITAL LETTER VE") - (?$B'$(B "$B%-%j!<%kBgJ8;z(BGHE,CYRILLIC CAPITAL LETTER GHE") - (?$B'%(B "$B%-%j!<%kBgJ8;z(BDE,CYRILLIC CAPITAL LETTER DE") - (?$B'&(B "$B%-%j!<%kBgJ8;z(BIE,CYRILLIC CAPITAL LETTER IE") - (?$B''(B "$B%-%j!<%kBgJ8;z(BIO,CYRILLIC CAPITAL LETTER IO") - (?$B'((B "$B%-%j!<%kBgJ8;z(BZHE,CYRILLIC CAPITAL LETTER ZHE") - (?$B')(B "$B%-%j!<%kBgJ8;z(BZE,CYRILLIC CAPITAL LETTER ZE") - (?$B'*(B "$B%-%j!<%kBgJ8;z(BI,CYRILLIC CAPITAL LETTER I") - (?$B'+(B "$B%-%j!<%kBgJ8;z(BSHORT I,CYRILLIC CAPITAL LETTER SHORT I") - (?$B',(B "$B%-%j!<%kBgJ8;z(BKA,CYRILLIC CAPITAL LETTER KA") - (?$B'-(B "$B%-%j!<%kBgJ8;z(BEL,CYRILLIC CAPITAL LETTER EL") - (?$B'.(B "$B%-%j!<%kBgJ8;z(BEM,CYRILLIC CAPITAL LETTER EM") - (?$B'/(B "$B%-%j!<%kBgJ8;z(BEN,CYRILLIC CAPITAL LETTER EN") - (?$B'0(B "$B%-%j!<%kBgJ8;z(BO,CYRILLIC CAPITAL LETTER O") - (?$B'1(B "$B%-%j!<%kBgJ8;z(BPE,CYRILLIC CAPITAL LETTER PE") - (?$B'2(B "$B%-%j!<%kBgJ8;z(BER,CYRILLIC CAPITAL LETTER ER") - (?$B'3(B "$B%-%j!<%kBgJ8;z(BES,CYRILLIC CAPITAL LETTER ES") - (?$B'4(B "$B%-%j!<%kBgJ8;z(BTE,CYRILLIC CAPITAL LETTER TE") - (?$B'5(B "$B%-%j!<%kBgJ8;z(BU,CYRILLIC CAPITAL LETTER U") - (?$B'6(B "$B%-%j!<%kBgJ8;z(BEF,CYRILLIC CAPITAL LETTER EF") - (?$B'7(B "$B%-%j!<%kBgJ8;z(BHA,CYRILLIC CAPITAL LETTER HA") - (?$B'8(B "$B%-%j!<%kBgJ8;z(BTSE,CYRILLIC CAPITAL LETTER TSE") - (?$B'9(B "$B%-%j!<%kBgJ8;z(BCHE,CYRILLIC CAPITAL LETTER CHE") - (?$B':(B "$B%-%j!<%kBgJ8;z(BSHA,CYRILLIC CAPITAL LETTER SHA") - (?$B';(B "$B%-%j!<%kBgJ8;z(BSHCHA,CYRILLIC CAPITAL LETTER SHCHA") - (?$B'<(B "$B%-%j!<%kBgJ8;z(BHARD SIGN,CYRILLIC CAPITAL LETTER HARD SIGN") - (?$B'=(B "$B%-%j!<%kBgJ8;z(BYERU,CYRILLIC CAPITAL LETTER YERU") - (?$B'>(B "$B%-%j!<%kBgJ8;z(BSOFT SIGN,CYRILLIC CAPITAL LETTER SOFT SIGN") - (?$B'?(B "$B%-%j!<%kBgJ8;z(BE,CYRILLIC CAPITAL LETTER E") - (?$B'@(B "$B%-%j!<%kBgJ8;z(BYU,CYRILLIC CAPITAL LETTER YU") - (?$B'A(B "$B%-%j!<%kBgJ8;z(BYA,CYRILLIC CAPITAL LETTER YA") - (?$B'Q(B "$B%-%j!<%k>.J8;z(BA,CYRILLIC SMALL LETTER A") - (?$B'R(B "$B%-%j!<%k>.J8;z(BBE,CYRILLIC SMALL LETTER BE") - (?$B'S(B "$B%-%j!<%k>.J8;z(BVE,CYRILLIC SMALL LETTER VE") - (?$B'T(B "$B%-%j!<%k>.J8;z(BGHE,CYRILLIC SMALL LETTER GHE") - (?$B'U(B "$B%-%j!<%k>.J8;z(BDE,CYRILLIC SMALL LETTER DE") - (?$B'V(B "$B%-%j!<%k>.J8;z(BIE,CYRILLIC SMALL LETTER IE") - (?$B'W(B "$B%-%j!<%k>.J8;z(BIO,CYRILLIC SMALL LETTER IO") - (?$B'X(B "$B%-%j!<%k>.J8;z(BZHE,CYRILLIC SMALL LETTER ZHE") - (?$B'Y(B "$B%-%j!<%k>.J8;z(BZE,CYRILLIC SMALL LETTER ZE") - (?$B'Z(B "$B%-%j!<%k>.J8;z(BI,CYRILLIC SMALL LETTER I") - (?$B'[(B "$B%-%j!<%k>.J8;z(BSHORT I,CYRILLIC SMALL LETTER SHORT I") - (?$B'\(B "$B%-%j!<%k>.J8;z(BKA,CYRILLIC SMALL LETTER KA") - (?$B'](B "$B%-%j!<%k>.J8;z(BEL,CYRILLIC SMALL LETTER EL") - (?$B'^(B "$B%-%j!<%k>.J8;z(BEM,CYRILLIC SMALL LETTER EM") - (?$B'_(B "$B%-%j!<%k>.J8;z(BEN,CYRILLIC SMALL LETTER EN") - (?$B'`(B "$B%-%j!<%k>.J8;z(BO,CYRILLIC SMALL LETTER O") - (?$B'a(B "$B%-%j!<%k>.J8;z(BPE,CYRILLIC SMALL LETTER PE") - (?$B'b(B "$B%-%j!<%k>.J8;z(BER,CYRILLIC SMALL LETTER ER") - (?$B'c(B "$B%-%j!<%k>.J8;z(BES,CYRILLIC SMALL LETTER ES") - (?$B'd(B "$B%-%j!<%k>.J8;z(BTE,CYRILLIC SMALL LETTER TE") - (?$B'e(B "$B%-%j!<%k>.J8;z(BU,CYRILLIC SMALL LETTER U") - (?$B'f(B "$B%-%j!<%k>.J8;z(BEF,CYRILLIC SMALL LETTER EF") - (?$B'g(B "$B%-%j!<%k>.J8;z(BHA,CYRILLIC SMALL LETTER HA") - (?$B'h(B "$B%-%j!<%k>.J8;z(BTSE,CYRILLIC SMALL LETTER TSE") - (?$B'i(B "$B%-%j!<%k>.J8;z(BCHE,CYRILLIC SMALL LETTER CHE") - (?$B'j(B "$B%-%j!<%k>.J8;z(BSHA,CYRILLIC SMALL LETTER SHA") - (?$B'k(B "$B%-%j!<%k>.J8;z(BSHCHA,CYRILLIC SMALL LETTER SHCHA") - (?$B'l(B "$B%-%j!<%k>.J8;z(BHARD SIGN,CYRILLIC SMALL LETTER HARD SIGN") - (?$B'm(B "$B%-%j!<%k>.J8;z(BYERU,CYRILLIC SMALL LETTER YERU") - (?$B'n(B "$B%-%j!<%k>.J8;z(BSOFT SIGN,CYRILLIC SMALL LETTER SOFT SIGN") - (?$B'o(B "$B%-%j!<%k>.J8;z(BE,CYRILLIC SMALL LETTER E") - (?$B'p(B "$B%-%j!<%k>.J8;z(BYU,CYRILLIC SMALL LETTER YU") - (?$B'q(B "$B%-%j!<%k>.J8;z(BYA,CYRILLIC SMALL LETTER YA") - (?$B(!(B "$B2#:Y@~AGJR(B,BOX DRAWINGS LIGHT HORIZONTAL") - (?$B("(B "$B=D:Y@~AGJR(B,BOX DRAWINGS LIGHT VERTICAL") - (?$B(#(B "$B:Y@~AGJR:8>e(B,BOX DRAWINGS LIGHT DOWN AND RIGHT") - (?$B($(B "$B:Y@~AGJR1&>e(B,BOX DRAWINGS LIGHT DOWN AND LEFT") - (?$B(%(B "$B:Y@~AGJR1&2<(B,BOX DRAWINGS LIGHT UP AND LEFT") - (?$B(&(B "$B:Y@~AGJR:82<(B,BOX DRAWINGS LIGHT UP AND RIGHT") - (?$B('(B "$B:Y@~AGJR:8(B,BOX DRAWINGS LIGHT VERTICAL AND RIGHT") - (?$B(((B "$B:Y@~AGJR>e(B,BOX DRAWINGS LIGHT DOWN AND HORIZONTAL") - (?$B()(B "$B:Y@~AGJR1&(B,BOX DRAWINGS LIGHT VERTICAL AND LEFT") - (?$B(*(B "$B:Y@~AGJR2<(B,BOX DRAWINGS LIGHT UP AND HORIZONTAL") - (?$B(+(B "$B:Y@~AGJRCf1{(B,BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL") - (?$B(,(B "$B2#B@@~AGJR(B,BOX DRAWINGS HEAVY HORIZONTAL") - (?$B(-(B "$B=DB@@~AGJR(B,BOX DRAWINGS HEAVY VERTICAL") - (?$B(.(B "$BB@@~AGJR:8>e(B,BOX DRAWINGS HEAVY DOWN AND RIGHT") - (?$B(/(B "$BB@@~AGJR1&>e(B,BOX DRAWINGS HEAVY DOWN AND LEFT") - (?$B(0(B "$BB@@~AGJR1&2<(B,BOX DRAWINGS HEAVY UP AND LEFT") - (?$B(1(B "$BB@@~AGJR:82<(B,BOX DRAWINGS HEAVY UP AND RIGHT") - (?$B(2(B "$BB@@~AGJR:8(B,BOX DRAWINGS HEAVY VERTICAL AND RIGHT") - (?$B(3(B "$BB@@~AGJR>e(B,BOX DRAWINGS HEAVY DOWN AND HORIZONTAL") - (?$B(4(B "$BB@@~AGJR1&(B,BOX DRAWINGS HEAVY VERTICAL AND LEFT") - (?$B(5(B "$BB@@~AGJR2<(B,BOX DRAWINGS HEAVY UP AND HORIZONTAL") - (?$B(6(B "$BB@@~AGJRCf1{(B,BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL") - (?$B(7(B "$B=DB@@~2#:Y@~AGJR:8(B,BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT") - (?$B(8(B "$B2#B@@~=D:Y@~AGJR>e(B,BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY") - (?$B(9(B "$B=DB@@~2#:Y@~AGJR1&(B,BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT") - (?$B(:(B "$B2#B@@~=D:Y@~AGJR2<(B,BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY") - (?$B(;(B "$B=D:Y@~2#B@@~AGJRCf1{(B,BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY") - (?$B(<(B "$B=D:Y@~2#B@@~AGJR:8(B,BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY") - (?$B(=(B "$B2#:Y@~=DB@@~AGJR>e(B,BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT") - (?$B(>(B "$B=D:Y@~2#B@@~AGJR1&(B,BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY") - (?$B(?(B "$B2#:Y@~=DB@@~AGJR2<(B,BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT") - (?$B(@(B "$B2#:Y@~=DB@@~AGJRCf1{(B,BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT") - (?$B0"(B "83$B;zBNJQ99(B") - (?$B03(B "83$BF~BX$((B($BrM(B)") - (?$B1<(B "$B$&$k$&!#o`(B($BE55rIT>\(B)$B$OJL;z(B") - (?$B1k(B "83$B;zBNJQ99(B") - (?$B2)(B "83$BF~BX$((B($Brt(B)$B!#rt(B($B$&$0$$$9(B)$B$NN,;z!#s?(B($B$&$=(B)$B$OJL;z(B") - (?$B2*(B "83$B;zBNJQ99(B") - (?$B3>(B "$BG[Ns$NMp$l!#(B19$B6h(B 29$B3=(B($B$+$$$j(B) 30$B3>(B($B$+$*$k(B) 31$B3?(B($B$+$($k(B)") - (?$B3B(B "83$BF~BX$((B($BiZ(B)") - (?$B3I(B "83$BF~BX$((B($BYx(B)") - (?$B3v(B "83$BF~BX$((B($Bc^(B)") - (?$B3z(B "83$B;zBNJQ99(B") - (?$B4C(B "83$BF~BX$((B($B^u(B)") - (?$B4R(B "83$BF~BX$((B($Bk](B)") - (?$B6"(B "83$B;zBNJQ99(B") - (?$B6F(B "83$BDI2CF~BX$((B($Bt!(B)") - (?$B6m(B "83$B;zBNJQ99(B") - (?$B7[(B "83$BF~BX$((B($Bpt(B)") - (?$B84(B "83$B;zBNJQ99(B") - (?$B9\(B "83$BF~BX$((B($Bbh(B)") - (?$B9m(B "83$B;zBNJQ99(B") - (?$BU(B "83$B;zBNJQ99(B") - (?$B>_(B "83$B;zBNJQ99(B") - (?$B?Y(B "83$BF~BX$((B($BpW(B)") - (?$B@f(B "83$B;zBNJQ99(B") - (?$BA((B "83$BF~BX$((B($BlM(B)") - (?$BA_(B "83$B;zBNJQ99(B") - (?$BBM(B "83$B;zBNJQ99(B") - (?$BC=(B "83$B;zBNJQ99(B") - (?$BDO(B "83$B;zBNJQ99(B") - (?$BD[(B "83$BF~BX$((B($BTd(B)$B!#Td(B($B$D$\(B)$B$NN,;z!#Tg(B($B%3%s(B)$B$OJL;z(B") - (?$BE6(B "83$B;zBNJQ99(B") - (?$BE?(B "83$B;zBNJQ99(B") - (?$BEW(B "83$BF~BX$((B($Bbj(B)") - (?$BEn(B "83$BF~BX$((B($B[m(B)") - (?$BEs(B "83$BF~BX$((B($B^9(B)") - (?$BEx(B "83$B;zBNJQ99(B") - (?$BFB(B "83$B;zBNJQ99(B") - (?$BFv(B "83$BF~BX$((B($Bmn(B)") - (?$BG*(B "$BG)(B($B%M(B)$B$NN,;z!#jY(B($BE55rIT>\(B)$B$OJL;z(B") - (?$BG9(B "83$B;zBNJQ99(B") - (?$BGh(B "83$BF~BX$((B($Bj$(B)") - (?$BH.(B "83$B;zBNJQ99(B") - (?$BH0(B "83$B;zBNJQ99(B") - (?$BI0(B "83$BF~BX$((B($B[X(B)") - (?$BJj(B "$B$D$A$N$(!#Xz(B($B$^$5$+$j(B)$B$OJL;z(B") - (?$BKK(B "83$B;zBNJQ99(B") - (?$BKj(B "83$BDI2CF~BX$((B($Bt"(B)") - (?$BKy(B "83$BF~BX$((B($BPV(B)") - (?$BLM(B "83$B;zBNJQ99(B") - (?$BLy(B "83$BF~BX$((B($Bi.(B)") - (?$BMZ(B "83$BDI2CF~BX$((B($Bt#(B)") - (?$BMi(B "83$B;zBNJQ99(B") - (?$BNB(B "$B$d$J!#dm(B($B$"$o(B)$B$OJL;z(B") - (?$BO6(B "83$BF~BX$((B($BdF(B)") - (?$BO9(B "83$B;zBNJQ99(B") - (?$BPG(B "$BJ)(B($B$[$H$1(B)$B$N5l;z!#WJ(B($B%U%D(B)$B$OJL;z(B") - (?$BPV(B "83$BF~BX$((B($BKy(B)") - (?$BQI(B "$B$+$V$H!#ft(B($B%A%e%&(B)$B$OJL;z(B") - (?$BR9(B "$B$O$3$,$^$(!#R>(B($B$+$/$7$,$^$((B)$B$OJL;z(B") - (?$BR>(B "$B$+$/$7$,$^$(!#R9(B($B$O$3$,$^$((B)$B$OJL;z(B") - (?$BTW(B "$BE55rITL@(B") - (?$BT_(B "$BE55rITL@(B") - (?$BTd(B "83$BF~BX$((B($BD[(B)$B!#$D$\!#Tg(B($B%3%s(B)$B$OJL;z(B") - (?$BTg(B "$B%3%s!#Td(B($B$D$\(B)$B$OJL;z(B") - (?$BTi(B "$B%A!#Tj(B($B%9%$(B)$B$OJL;z$@$,:.F1$5$l$k(B") - (?$BTj(B "$B%9%$!#Ti(B($B%A(B)$B$OJL;z$@$,:.F1$5$l$k(B") - (?$BV,(B "$BE55rIT>\!#$"$1$S$N8m;z$+(B") - (?$BW;(B "$BF1DjITG=(B") - (?$BWJ(B "$B%U%D!#PG(B($B$[$H$1(B)$B$OJL;z(B") - (?$BXz(B "$B$^$5$+$j!#Jj(B($B$D$A$N$((B)$B$OJL;z(B") - (?$BX{(B "$B$^$b$k!#X|(B($B$$$L(B)$B$OJL;z(B") - (?$BX|(B "$B$$$L!#X{(B($B$^$b$k(B)$B$OJL;z(B") - (?$BYK(B "$BE55rIT>\(B") - (?$BYx(B "83$BF~BX$((B($BYx(B)") - (?$BZ9(B "83$B;zBNJQ99(B") - (?$BZH(B "$B%7%g%&!#ZI(B($B%X%$(B)$B$OJL;z(B") - (?$BZI(B "$B%X%$!#ZH(B($B%7%g%&(B)$B$OJL;z(B") - (?$BZl(B "$BCk(B($B$R$k(B)$B$N5l;z!#aA(B($B%+%/(B)$B$OJL;z(B") - (?$BZs(B "$BE55rIT>\(B") - (?$B[6(B "$B$*$&$4!#[7(B($B%H%&(B)$B$OJL;z(B") - (?$B[7(B "$B%H%&!#[6(B($B$*$&$4(B)$B$OJL;z(B") - (?$B[X(B "83$BF~BX$((B($BI0(B)") - (?$B[m(B "83$BF~BX$((B($BEn(B)") - (?$B[{(B "$BE55rIT>\!#$L$GEg$N$L$G$N8m;z$+(B") - (?$B\Y(B "$BE55rIT>\(B") - (?$B^9(B "83$BF~BX$((B($BEs(B)") - (?$B^u(B "83$BF~BX$((B($B4C(B)") - (?$B`v(B "83$BDI2CF~BX$((B($Bt$(B)") - (?$BaA(B "$B2h(B($B%+%/(B)$B$N5l;z!#Zl(B($B$R$k(B)$B$OJL;z(B") - (?$Bad(B "$B%^!#ae(B($B%j%s(B)$B$OJL;z(B") - (?$Bae(B "$B%j%s!#ad(B($B%^(B)$B$OJL;z(B") - (?$Bbh(B "83$BF~BX$((B($B9\(B)") - (?$Bbj(B "83$BF~BX$((B($BEW(B)") - (?$Bc^(B "83$BF~BX$((B($B3v(B)") - (?$BdF(B "83$BF~BX$((B($BO6(B)") - (?$Bdm(B "$B$"$o!#NB(B($B$d$J(B)$B$OJL;z(B") - (?$Bft(B "$B%A%e%&!#QI(B($B$+$V$H(B)$B$OJL;z(B") - (?$Bi"(B "83$BF~BX$((B($B\(B") - (?$BjY(B "$BE55rIT>\!#G*(B($B%M(B)$B$OJL;z(B") - (?$Bk](B "83$BF~BX$((B($B4R(B)") - (?$BlM(B "83$BF~BX$((B($BA((B)") - (?$Bmn(B "83$BF~BX$((B($BFv(B)") - (?$Bmr(B "$B$9$J$o$A!#n%(B($B%7%e%&(B)$B$OJL;z(B") - (?$Bn%(B "$Bn$(B($B%7%e%&(B)$B$N0[BN;z!#mr(B($B$9$J$o$A(B)$B$OJL;z(B") - (?$Bn[(B "$B$+$?$J!#n^(B($B%3%/(B)$B$OJL;z(B") - (?$Bn^(B "$B%3%/!#n[(B($B$+$?$J(B)$B$OJL;z(B") - (?$BoL(B "$B$d$9$j!#oN(B($B%m(B)$B$OJL;z(B") - (?$BoN(B "$B%m!#oL(B($B$d$9$j(B)$B$OJL;z(B") - (?$Bo`(B "$BE55rIT>\!#1<(B($B$&$k$&(B)$B$OJL;z(B") - (?$Bo}(B "$B%-%g%&!#p!(B($B%;%s(B)$B$OJL;z(B") - (?$Bp!(B "$B%;%s!#o}(B($B%-%g%&(B)$B$OJL;z(B") - (?$BpW(B "83$BF~BX$((B($B?Y(B)") - (?$Bpt(B "83$BF~BX$((B($B7[(B)") - (?$BqR(B "$BE55rIT>\(B") - (?$BrM(B "83$BF~BX$((B($B03(B)") - (?$Brt(B "83$BF~BX$((B($B2)(B)$B!#$&$0$$$9!#s?(B($B$&$=(B)$B$OJL;z(B") - (?$Bs?(B "$B$&$=!#rt(B($B$&$0$$$9(B)$B$OJL;z(B") - (?$Bt!(B "83$BDI2CF~BX$((B($B6F(B)") - (?$Bt"(B "83$BDI2CF~BX$((B($BKj(B)") - (?$Bt#(B "83$BDI2CF~BX$((B($BMZ(B)") - (?$Bt$(B "83$BDI2CF~BX$((B($B`v(B)") - (?$Bt%(B "90$BDI2C(B") - (?$Bt&(B "90$BDI2C(B")))) + (?  "和字間隔,IDEOGRAPHIC SPACE") + (?、 "読点,IDEOGRAPHIC COMMA") + (?。 "句点,IDEOGRAPHIC FULL STOP") + (?, "コンマ,COMMA") + (?. "ピリオド,FULL STOP") + (?・ "中点,KATAKANA MIDDLE DOT") + (?: "コロン,COLON") + (?; "セミコロン,SEMICOLON") + (?? "疑問符,QUESTION MARK") + (?! "感嘆符,EXCLAMATION MARK") + (?゛ "濁点,KATAKANA-HIRAGANA VOICED SOUND MARK") + (?゜ "半濁点,KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK") + (?´ "アクサンテギュ,アキュートアクセント,プライム記号,ACUTE ACCENT") + (?` "アクサングラーブ,グレーブアクセント,GRAVE ACCENT") + (?¨ "ウムラウト,ダイエレシス,DIAERESIS") + (?^ "アクサンシルコンフレックス,サーカムフレックスアクセント,CIRCUMFLEX ACCENT") + (? ̄ "オーバーライン,論理否定記号,OVERLINE") + (?_ "アンダーライン,LOW LINE") + (?ヽ "片仮名繰返し記号,KATAKANA ITERATION MARK") + (?ヾ "片仮名繰返し記号(濁点),KATAKANA VOICED ITERATION MARK") + (?ゝ "平仮名繰返し記号,HIRAGANA ITERATION MARK") + (?ゞ "平仮名繰返し記号(濁点),HIRAGANA VOICED ITERATION MARK") + (?〃 "同じく記号,DITTO MARK") + (?仝 "同上記号,CJK UNIFIED IDEOGRAPH-4EDD") + (?々 "繰返し記号,IDEOGRAPHIC ITERATION MARK") + (?〆 "しめ,IDEOGRAPHIC CLOSING MARK") + (?〇 "漢数字ゼロ,IDEOGRAPHIC NUMBER ZERO") + (?ー "長音記号,KATAKANA-HIRAGANA PROLONGED SOUND MARK") + (?― "ダッシュ(全角),EM DASH") + (?‐ "ハイフン(四分),HYPHEN") + (?/ "斜線,SOLIDUS") + (?\ "逆斜線,REVERSE SOLIDUS") + (?~ "波ダッシュ,WAVE DASH") + (?∥ "双柱,DOUBLE VERTICAL LINE") + (?| "縦線,VERTICAL LINE") + (?… "三点リーダ,HORIZONTAL ELLIPSIS") + (?‥ "二点リーダ,TWO DOT LEADER") + (?‘ "左シングル引用符,左シングルクォーテーションマーク,LEFT SINGLE QUOTATION MARK") + (?’ "右シングル引用符,右シングルクォーテーションマーク,RIGHT SINGLE QUOTATION MARK") + (?“ "左ダブル引用符,左ダブルクォーテーションマーク,LEFT DOUBLE QUOTATION MARK") + (?” "右ダブル引用符,右ダブルクォーテーションマーク,RIGHT DOUBLE QUOTATION MARK") + (?( "始め小括弧,始め丸括弧,LEFT PARENTHESIS") + (?) "終わり小括弧,終わり丸括弧,RIGHT PARENTHESIS") + (?〔 "始めきっこう(亀甲)括弧,LEFT TORTOISE SHELL BRACKET") + (?〕 "終わりきっこう(亀甲)括弧,RIGHT TORTOISE SHELL BRACKET") + (?[ "始め大括弧,始め角括弧,LEFT SQUARE BRACKET") + (?] "終わり大括弧,終わり角括弧,RIGHT SQUARE BRACKET") + (?{ "始め中括弧,始め波括弧,LEFT CURLY BRACKET") + (?} "終わり中括弧,終わり波括弧,RIGHT CURLY BRACKET") + (?〈 "始め山括弧,LEFT ANGLE BRACKET") + (?〉 "終わり山括弧,RIGHT ANGLE BRACKET") + (?《 "始め二重山括弧,LEFT DOUBLE ANGLE BRACKET") + (?》 "終わり二重山括弧,RIGHT DOUBLE ANGLE BRACKET") + (?「 "始めかぎ括弧,LEFT CORNER BRACKET") + (?」 "終わりかぎ括弧,RIGHT CORNER BRACKET") + (?『 "始め二重かぎ括弧,LEFT WHITE CORNER BRACKET") + (?』 "終わり二重かぎ括弧,RIGHT WHITE CORNER BRACKET") + (?【 "始めすみ付き括弧,LEFT BLACK LENTICULAR BRACKET") + (?】 "終わりすみ付き括弧,RIGHT BLACK LENTICULAR BRACKET") + (?+ "正符号,加算記号,PLUS SIGN") + (?- "負符号,減算記号,MINUS SIGN") + (?± "正又は負符号,PLUS-MINUS SIGN") + (?× "乗算記号,MULTIPLICATION SIGN") + (?÷ "除算記号,DIVISION SIGN") + (?= "等号,EQUALS SIGN") + (?≠ "等号否定,NOT EQUAL TO") + (?< "不等号(より小),LESS-THAN SIGN") + (?> "不等号(より大),GREATER-THAN SIGN") + (?≦ "より小さいか又は等しい,LESS-THAN OVER EQUAL TO") + (?≧ "より大きいか又は等しい,GREATER-THAN OVER EQUAL TO") + (?∞ "無限大,INFINITY") + (?∴ "ゆえに,THEREFORE") + (?♂ "雄記号,MALE SIGN") + (?♀ "雌記号,FEMALE SIGN") + (?° "度,DEGREE SIGN") + (?′ "分,PRIME") + (?″ "秒,DOUBLE PRIME") + (?℃ "セ氏度記号,DEGREE CELSIUS") + (?¥ "円記号,YEN SIGN") + (?$ "ドル記号,DOLLAR SIGN") + (?¢ "セント記号,CENT SIGN") + (?£ "ポンド記号,POUND SIGN") + (?% "パーセント記号,PERCENT SIGN") + (?# "番号記号,井げた,NUMBER SIGN") + (?& "アンパサンド,AMPERSAND") + (?* "星印,アステリスク,ASTERISK") + (?@ "単価記号,COMMERCIAL AT") + (?§ "節記号,SECTION SIGN") + (?☆ "白星,WHITE STAR") + (?★ "黒星,BLACK STAR") + (?○ "丸印,白丸,WHITE CIRCLE") + (?● "黒丸,BLACK CIRCLE") + (?◎ "二重丸,BULLSEYE") + (?◇ "ひし形,WHITE DIAMOND") + (?◆ "黒ひし形,BLACK DIAMOND") + (?□ "四角,WHITE SQUARE") + (?■ "黒四角,BLACK SQUARE") + (?△ "三角,WHITE UP-POINTING TRIANGLE") + (?▲ "黒三角,BLACK UP-POINTING TRIANGLE") + (?▽ "逆三角,WHITE DOWN-POINTING TRIANGLE") + (?▼ "逆黒三角,BLACK DOWN-POINTING TRIANGLE") + (?※ "米印,REFERENCE MARK") + (?〒 "郵便記号,POSTAL MARK") + (?→ "右矢印,RIGHTWARDS ARROW") + (?← "左矢印,LEFTWARDS ARROW") + (?↑ "上矢印,UPWARDS ARROW") + (?↓ "下矢印,DOWNWARDS ARROW") + (?〓 "げた記号,GETA MARK") + (?∈ "属する,ELEMENT OF") + (?∋ "元として含む,CONTAINS AS MEMBER") + (?⊆ "部分集合,SUBSET OF OR EQUAL TO") + (?⊇ "部分集合(逆方向),SUPERSET OF OR EQUAL TO") + (?⊂ "真部分集合,SUBSET OF") + (?⊃ "真部分集合(逆方向),SUPERSET OF") + (?∪ "合併集合,UNION") + (?∩ "共通集合,INTERSECTION") + (?∧ "及び(合接),LOGICAL AND") + (?∨ "又は(離接),LOGICAL OR") + (?¬ "否定,NOT SIGN") + (?⇒ "ならば(含意),RIGHTWARDS DOUBLE ARROW") + (?⇔ "同値,LEFT RIGHT DOUBLE ARROW") + (?∀ "すべての(普通限定子),FOR ALL") + (?∃ "存在する(存在限定子),THERE EXISTS") + (?∠ "角,ANGLE") + (?⊥ "垂直,UP TACK") + (?⌒ "弧,ARC") + (?∂ "デル,ラウンドディー,PARTIAL DIFFERENTIAL") + (?∇ "ナブラ,NABLA") + (?≡ "常に等しい,合同,IDENTICAL TO") + (?≒ "ほとんど等しい,APPROXIMATELY EQUAL TO OR THE IMAGE OF") + (?≪ "非常に小さい,MUCH LESS-THAN") + (?≫ "非常に大きい,MUCH GREATER-THAN") + (?√ "根号,SQUARE ROOT") + (?∽ "相似,REVERSED TILDE") + (?∝ "比例,PROPORTIONAL TO") + (?∵ "なぜならば,BECAUSE") + (?∫ "積分記号,INTEGRAL") + (?∬ "2重積分記号,DOUBLE INTEGRAL") + (?Å "オングストローム,ANGSTROM SIGN") + (?‰ "パーミル,PER MILLE SIGN") + (?♯ "シャープ,MUSIC SHARP SIGN") + (?♭ "フラット,MUSIC FLAT SIGN") + (?♪ "音符,EIGHTH NOTE") + (?† "ダガー,DAGGER") + (?‡ "ダブルダガー,DOUBLE DAGGER") + (?¶ "段落記号,PILCROW SIGN") + (?◯ "大きな丸,LARGE CIRCLE") + (?0 "0,DIGIT ZERO") + (?1 "1,DIGIT ONE") + (?2 "2,DIGIT TWO") + (?3 "3,DIGIT THREE") + (?4 "4,DIGIT FOUR") + (?5 "5,DIGIT FIVE") + (?6 "6,DIGIT SIX") + (?7 "7,DIGIT SEVEN") + (?8 "8,DIGIT EIGHT") + (?9 "9,DIGIT NINE") + (?A "ラテン大文字A,LATIN CAPITAL LETTER A") + (?B "ラテン大文字B,LATIN CAPITAL LETTER B") + (?C "ラテン大文字C,LATIN CAPITAL LETTER C") + (?D "ラテン大文字D,LATIN CAPITAL LETTER D") + (?E "ラテン大文字E,LATIN CAPITAL LETTER E") + (?F "ラテン大文字F,LATIN CAPITAL LETTER F") + (?G "ラテン大文字G,LATIN CAPITAL LETTER G") + (?H "ラテン大文字H,LATIN CAPITAL LETTER H") + (?I "ラテン大文字I,LATIN CAPITAL LETTER I") + (?J "ラテン大文字J,LATIN CAPITAL LETTER J") + (?K "ラテン大文字K,LATIN CAPITAL LETTER K") + (?L "ラテン大文字L,LATIN CAPITAL LETTER L") + (?M "ラテン大文字M,LATIN CAPITAL LETTER M") + (?N "ラテン大文字N,LATIN CAPITAL LETTER N") + (?O "ラテン大文字O,LATIN CAPITAL LETTER O") + (?P "ラテン大文字P,LATIN CAPITAL LETTER P") + (?Q "ラテン大文字Q,LATIN CAPITAL LETTER Q") + (?R "ラテン大文字R,LATIN CAPITAL LETTER R") + (?S "ラテン大文字S,LATIN CAPITAL LETTER S") + (?T "ラテン大文字T,LATIN CAPITAL LETTER T") + (?U "ラテン大文字U,LATIN CAPITAL LETTER U") + (?V "ラテン大文字V,LATIN CAPITAL LETTER V") + (?W "ラテン大文字W,LATIN CAPITAL LETTER W") + (?X "ラテン大文字X,LATIN CAPITAL LETTER X") + (?Y "ラテン大文字Y,LATIN CAPITAL LETTER Y") + (?Z "ラテン大文字Z,LATIN CAPITAL LETTER Z") + (?a "ラテン小文字A,LATIN SMALL LETTER A") + (?b "ラテン小文字B,LATIN SMALL LETTER B") + (?c "ラテン小文字C,LATIN SMALL LETTER C") + (?d "ラテン小文字D,LATIN SMALL LETTER D") + (?e "ラテン小文字E,LATIN SMALL LETTER E") + (?f "ラテン小文字F,LATIN SMALL LETTER F") + (?g "ラテン小文字G,LATIN SMALL LETTER G") + (?h "ラテン小文字H,LATIN SMALL LETTER H") + (?i "ラテン小文字I,LATIN SMALL LETTER I") + (?j "ラテン小文字J,LATIN SMALL LETTER J") + (?k "ラテン小文字K,LATIN SMALL LETTER K") + (?l "ラテン小文字L,LATIN SMALL LETTER L") + (?m "ラテン小文字M,LATIN SMALL LETTER M") + (?n "ラテン小文字N,LATIN SMALL LETTER N") + (?o "ラテン小文字O,LATIN SMALL LETTER O") + (?p "ラテン小文字P,LATIN SMALL LETTER P") + (?q "ラテン小文字Q,LATIN SMALL LETTER Q") + (?r "ラテン小文字R,LATIN SMALL LETTER R") + (?s "ラテン小文字S,LATIN SMALL LETTER S") + (?t "ラテン小文字T,LATIN SMALL LETTER T") + (?u "ラテン小文字U,LATIN SMALL LETTER U") + (?v "ラテン小文字V,LATIN SMALL LETTER V") + (?w "ラテン小文字W,LATIN SMALL LETTER W") + (?x "ラテン小文字X,LATIN SMALL LETTER X") + (?y "ラテン小文字Y,LATIN SMALL LETTER Y") + (?z "ラテン小文字Z,LATIN SMALL LETTER Z") + (?ぁ "小書き平仮名あ,HIRAGANA LETTER SMALL A") + (?あ "平仮名あ,HIRAGANA LETTER A") + (?ぃ "小書き平仮名い,HIRAGANA LETTER SMALL I") + (?い "平仮名い,HIRAGANA LETTER I") + (?ぅ "小書き平仮名う,HIRAGANA LETTER SMALL U") + (?う "平仮名う,HIRAGANA LETTER U") + (?ぇ "小書き平仮名え,HIRAGANA LETTER SMALL E") + (?え "平仮名え,HIRAGANA LETTER E") + (?ぉ "小書き平仮名お,HIRAGANA LETTER SMALL O") + (?お "平仮名お,HIRAGANA LETTER O") + (?か "平仮名か,HIRAGANA LETTER KA") + (?が "濁点付き平仮名か,HIRAGANA LETTER GA") + (?き "平仮名き,HIRAGANA LETTER KI") + (?ぎ "濁点付き平仮名き,HIRAGANA LETTER GI") + (?く "平仮名く,HIRAGANA LETTER KU") + (?ぐ "濁点付き平仮名く,HIRAGANA LETTER GU") + (?け "平仮名け,HIRAGANA LETTER KE") + (?げ "濁点付き平仮名け,HIRAGANA LETTER GE") + (?こ "平仮名こ,HIRAGANA LETTER KO") + (?ご "濁点付き平仮名こ,HIRAGANA LETTER GO") + (?さ "平仮名さ,HIRAGANA LETTER SA") + (?ざ "濁点付き平仮名さ,HIRAGANA LETTER ZA") + (?し "平仮名し,HIRAGANA LETTER SI") + (?じ "濁点付き平仮名し,HIRAGANA LETTER ZI") + (?す "平仮名す,HIRAGANA LETTER SU") + (?ず "濁点付き平仮名す,HIRAGANA LETTER ZU") + (?せ "平仮名せ,HIRAGANA LETTER SE") + (?ぜ "濁点付き平仮名せ,HIRAGANA LETTER ZE") + (?そ "平仮名そ,HIRAGANA LETTER SO") + (?ぞ "濁点付き平仮名そ,HIRAGANA LETTER ZO") + (?た "平仮名た,HIRAGANA LETTER TA") + (?だ "濁点付き平仮名た,HIRAGANA LETTER DA") + (?ち "平仮名ち,HIRAGANA LETTER TI") + (?ぢ "濁点付き平仮名ち,HIRAGANA LETTER DI") + (?っ "小書き平仮名つ,HIRAGANA LETTER SMALL TU") + (?つ "平仮名つ,HIRAGANA LETTER TU") + (?づ "濁点付き平仮名つ,HIRAGANA LETTER DU") + (?て "平仮名て,HIRAGANA LETTER TE") + (?で "濁点付き平仮名て,HIRAGANA LETTER DE") + (?と "平仮名と,HIRAGANA LETTER TO") + (?ど "濁点付き平仮名と,HIRAGANA LETTER DO") + (?な "平仮名な,HIRAGANA LETTER NA") + (?に "平仮名に,HIRAGANA LETTER NI") + (?ぬ "平仮名ぬ,HIRAGANA LETTER NU") + (?ね "平仮名ね,HIRAGANA LETTER NE") + (?の "平仮名の,HIRAGANA LETTER NO") + (?は "平仮名は,HIRAGANA LETTER HA") + (?ば "濁点付き平仮名は,HIRAGANA LETTER BA") + (?ぱ "半濁点付き平仮名は,HIRAGANA LETTER PA") + (?ひ "平仮名ひ,HIRAGANA LETTER HI") + (?び "濁点付き平仮名ひ,HIRAGANA LETTER BI") + (?ぴ "半濁点付き平仮名ひ,HIRAGANA LETTER PI") + (?ふ "平仮名ふ,HIRAGANA LETTER HU") + (?ぶ "濁点付き平仮名ふ,HIRAGANA LETTER BU") + (?ぷ "半濁点付き平仮名ふ,HIRAGANA LETTER PU") + (?へ "平仮名へ,HIRAGANA LETTER HE") + (?べ "濁点付き平仮名へ,HIRAGANA LETTER BE") + (?ぺ "半濁点付き平仮名へ,HIRAGANA LETTER PE") + (?ほ "平仮名ほ,HIRAGANA LETTER HO") + (?ぼ "濁点付き平仮名ほ,HIRAGANA LETTER BO") + (?ぽ "半濁点付き平仮名ほ,HIRAGANA LETTER PO") + (?ま "平仮名ま,HIRAGANA LETTER MA") + (?み "平仮名み,HIRAGANA LETTER MI") + (?む "平仮名む,HIRAGANA LETTER MU") + (?め "平仮名め,HIRAGANA LETTER ME") + (?も "平仮名も,HIRAGANA LETTER MO") + (?ゃ "小書き平仮名や,HIRAGANA LETTER SMALL YA") + (?や "平仮名や,HIRAGANA LETTER YA") + (?ゅ "小書き平仮名ゆ,HIRAGANA LETTER SMALL YU") + (?ゆ "平仮名ゆ,HIRAGANA LETTER YU") + (?ょ "小書き平仮名よ,HIRAGANA LETTER SMALL YO") + (?よ "平仮名よ,HIRAGANA LETTER YO") + (?ら "平仮名ら,HIRAGANA LETTER RA") + (?り "平仮名り,HIRAGANA LETTER RI") + (?る "平仮名る,HIRAGANA LETTER RU") + (?れ "平仮名れ,HIRAGANA LETTER RE") + (?ろ "平仮名ろ,HIRAGANA LETTER RO") + (?ゎ "小書き平仮名わ,HIRAGANA LETTER SMALL WA") + (?わ "平仮名わ,HIRAGANA LETTER WA") + (?ゐ "平仮名ゐ,HIRAGANA LETTER WI") + (?ゑ "平仮名ゑ,HIRAGANA LETTER WE") + (?を "平仮名を,HIRAGANA LETTER WO") + (?ん "平仮名ん,HIRAGANA LETTER N") + (?ァ "小書き片仮名ア,KATAKANA LETTER SMALL A") + (?ア "片仮名ア,KATAKANA LETTER A") + (?ィ "小書き片仮名イ,KATAKANA LETTER SMALL I") + (?イ "片仮名イ,KATAKANA LETTER I") + (?ゥ "小書き片仮名ウ,KATAKANA LETTER SMALL U") + (?ウ "片仮名ウ,KATAKANA LETTER U") + (?ェ "小書き片仮名エ,KATAKANA LETTER SMALL E") + (?エ "片仮名エ,KATAKANA LETTER E") + (?ォ "小書き片仮名オ,KATAKANA LETTER SMALL O") + (?オ "片仮名オ,KATAKANA LETTER O") + (?カ "片仮名カ,KATAKANA LETTER KA") + (?ガ "濁点付き片仮名カ,KATAKANA LETTER GA") + (?キ "片仮名キ,KATAKANA LETTER KI") + (?ギ "濁点付き片仮名キ,KATAKANA LETTER GI") + (?ク "片仮名ク,KATAKANA LETTER KU") + (?グ "濁点付き片仮名ク,KATAKANA LETTER GU") + (?ケ "片仮名ケ,KATAKANA LETTER KE") + (?ゲ "濁点付き片仮名ケ,KATAKANA LETTER GE") + (?コ "片仮名コ,KATAKANA LETTER KO") + (?ゴ "濁点付き片仮名コ,KATAKANA LETTER GO") + (?サ "片仮名サ,KATAKANA LETTER SA") + (?ザ "濁点付き片仮名サ,KATAKANA LETTER ZA") + (?シ "片仮名シ,KATAKANA LETTER SI") + (?ジ "濁点付き片仮名シ,KATAKANA LETTER ZI") + (?ス "片仮名ス,KATAKANA LETTER SU") + (?ズ "濁点付き片仮名ス,KATAKANA LETTER ZU") + (?セ "片仮名セ,KATAKANA LETTER SE") + (?ゼ "濁点付き片仮名セ,KATAKANA LETTER ZE") + (?ソ "片仮名ソ,KATAKANA LETTER SO") + (?ゾ "濁点付き片仮名ソ,KATAKANA LETTER ZO") + (?タ "片仮名タ,KATAKANA LETTER TA") + (?ダ "濁点付き片仮名タ,KATAKANA LETTER DA") + (?チ "片仮名チ,KATAKANA LETTER TI") + (?ヂ "濁点付き片仮名チ,KATAKANA LETTER DI") + (?ッ "小書き片仮名ツ,KATAKANA LETTER SMALL TU") + (?ツ "片仮名ツ,KATAKANA LETTER TU") + (?ヅ "濁点付き片仮名ツ,KATAKANA LETTER DU") + (?テ "片仮名テ,KATAKANA LETTER TE") + (?デ "濁点付き片仮名テ,KATAKANA LETTER DE") + (?ト "片仮名ト,KATAKANA LETTER TO") + (?ド "濁点付き片仮名ト,KATAKANA LETTER DO") + (?ナ "片仮名ナ,KATAKANA LETTER NA") + (?ニ "片仮名ニ,KATAKANA LETTER NI") + (?ヌ "片仮名ヌ,KATAKANA LETTER NU") + (?ネ "片仮名ネ,KATAKANA LETTER NE") + (?ノ "片仮名ノ,KATAKANA LETTER NO") + (?ハ "片仮名ハ,KATAKANA LETTER HA") + (?バ "濁点付き片仮名ハ,KATAKANA LETTER BA") + (?パ "半濁点付き片仮名ハ,KATAKANA LETTER PA") + (?ヒ "片仮名ヒ,KATAKANA LETTER HI") + (?ビ "濁点付き片仮名ヒ,KATAKANA LETTER BI") + (?ピ "半濁点付き片仮名ヒ,KATAKANA LETTER PI") + (?フ "片仮名フ,KATAKANA LETTER HU") + (?ブ "濁点付き片仮名フ,KATAKANA LETTER BU") + (?プ "半濁点付き片仮名フ,KATAKANA LETTER PU") + (?ヘ "片仮名ヘ,KATAKANA LETTER HE") + (?ベ "濁点付き片仮名ヘ,KATAKANA LETTER BE") + (?ペ "半濁点付き片仮名ヘ,KATAKANA LETTER PE") + (?ホ "片仮名ホ,KATAKANA LETTER HO") + (?ボ "濁点付き片仮名ホ,KATAKANA LETTER BO") + (?ポ "半濁点付き片仮名ホ,KATAKANA LETTER PO") + (?マ "片仮名マ,KATAKANA LETTER MA") + (?ミ "片仮名ミ,KATAKANA LETTER MI") + (?ム "片仮名ム,KATAKANA LETTER MU") + (?メ "片仮名メ,KATAKANA LETTER ME") + (?モ "片仮名モ,KATAKANA LETTER MO") + (?ャ "小書き片仮名ヤ,KATAKANA LETTER SMALL YA") + (?ヤ "片仮名ヤ,KATAKANA LETTER YA") + (?ュ "小書き片仮名ユ,KATAKANA LETTER SMALL YU") + (?ユ "片仮名ユ,KATAKANA LETTER YU") + (?ョ "小書き片仮名ヨ,KATAKANA LETTER SMALL YO") + (?ヨ "片仮名ヨ,KATAKANA LETTER YO") + (?ラ "片仮名ラ,KATAKANA LETTER RA") + (?リ "片仮名リ,KATAKANA LETTER RI") + (?ル "片仮名ル,KATAKANA LETTER RU") + (?レ "片仮名レ,KATAKANA LETTER RE") + (?ロ "片仮名ロ,KATAKANA LETTER RO") + (?ヮ "小書き片仮名ワ,KATAKANA LETTER SMALL WA") + (?ワ "片仮名ワ,KATAKANA LETTER WA") + (?ヰ "片仮名ヰ,KATAKANA LETTER WI") + (?ヱ "片仮名ヱ,KATAKANA LETTER WE") + (?ヲ "片仮名ヲ,KATAKANA LETTER WO") + (?ン "片仮名ン,KATAKANA LETTER N") + (?ヴ "濁点付き片仮名ウ,KATAKANA LETTER VU") + (?ヵ "小書き片仮名カ,KATAKANA LETTER SMALL KA") + (?ヶ "小書き片仮名ケ,KATAKANA LETTER SMALL KE") + (?Α "ギリシア大文字ALPHA,GREEK CAPITAL LETTER ALPHA") + (?Β "ギリシア大文字BETA,GREEK CAPITAL LETTER BETA") + (?Γ "ギリシア大文字GAMMA,GREEK CAPITAL LETTER GAMMA") + (?Δ "ギリシア大文字DELTA,GREEK CAPITAL LETTER DELTA") + (?Ε "ギリシア大文字EPSILON,GREEK CAPITAL LETTER EPSILON") + (?Ζ "ギリシア大文字ZETA,GREEK CAPITAL LETTER ZETA") + (?Η "ギリシア大文字ETA,GREEK CAPITAL LETTER ETA") + (?Θ "ギリシア大文字THETA,GREEK CAPITAL LETTER THETA") + (?Ι "ギリシア大文字IOTA,GREEK CAPITAL LETTER IOTA") + (?Κ "ギリシア大文字KAPPA,GREEK CAPITAL LETTER KAPPA") + (?Λ "ギリシア大文字LAMBDA,GREEK CAPITAL LETTER LAMBDA") + (?Μ "ギリシア大文字MU,GREEK CAPITAL LETTER MU") + (?Ν "ギリシア大文字NU,GREEK CAPITAL LETTER NU") + (?Ξ "ギリシア大文字XI,GREEK CAPITAL LETTER XI") + (?Ο "ギリシア大文字OMICRON,GREEK CAPITAL LETTER OMICRON") + (?Π "ギリシア大文字PI,GREEK CAPITAL LETTER PI") + (?Ρ "ギリシア大文字RHO,GREEK CAPITAL LETTER RHO") + (?Σ "ギリシア大文字SIGMA,GREEK CAPITAL LETTER SIGMA") + (?Τ "ギリシア大文字TAU,GREEK CAPITAL LETTER TAU") + (?Υ "ギリシア大文字UPSILON,GREEK CAPITAL LETTER UPSILON") + (?Φ "ギリシア大文字PHI,GREEK CAPITAL LETTER PHI") + (?Χ "ギリシア大文字CHI,GREEK CAPITAL LETTER CHI") + (?Ψ "ギリシア大文字PSI,GREEK CAPITAL LETTER PSI") + (?Ω "ギリシア大文字OMEGA,GREEK CAPITAL LETTER OMEGA") + (?α "ギリシア小文字ALPHA,GREEK SMALL LETTER ALPHA") + (?β "ギリシア小文字BETA,GREEK SMALL LETTER BETA") + (?γ "ギリシア小文字GAMMA,GREEK SMALL LETTER GAMMA") + (?δ "ギリシア小文字DELTA,GREEK SMALL LETTER DELTA") + (?ε "ギリシア小文字EPSILON,GREEK SMALL LETTER EPSILON") + (?ζ "ギリシア小文字ZETA,GREEK SMALL LETTER ZETA") + (?η "ギリシア小文字ETA,GREEK SMALL LETTER ETA") + (?θ "ギリシア小文字THETA,GREEK SMALL LETTER THETA") + (?ι "ギリシア小文字IOTA,GREEK SMALL LETTER IOTA") + (?κ "ギリシア小文字KAPPA,GREEK SMALL LETTER KAPPA") + (?λ "ギリシア小文字LAMBDA,GREEK SMALL LETTER LAMBDA") + (?μ "ギリシア小文字MU,GREEK SMALL LETTER MU") + (?ν "ギリシア小文字NU,GREEK SMALL LETTER NU") + (?ξ "ギリシア小文字XI,GREEK SMALL LETTER XI") + (?ο "ギリシア小文字OMICRON,GREEK SMALL LETTER OMICRON") + (?π "ギリシア小文字PI,GREEK SMALL LETTER PI") + (?ρ "ギリシア小文字RHO,GREEK SMALL LETTER RHO") + (?σ "ギリシア小文字SIGMA,GREEK SMALL LETTER SIGMA") + (?τ "ギリシア小文字TAU,GREEK SMALL LETTER TAU") + (?υ "ギリシア小文字UPSILON,GREEK SMALL LETTER UPSILON") + (?φ "ギリシア小文字PHI,GREEK SMALL LETTER PHI") + (?χ "ギリシア小文字CHI,GREEK SMALL LETTER CHI") + (?ψ "ギリシア小文字PSI,GREEK SMALL LETTER PSI") + (?ω "ギリシア小文字OMEGA,GREEK SMALL LETTER OMEGA") + (?А "キリール大文字A,CYRILLIC CAPITAL LETTER A") + (?Б "キリール大文字BE,CYRILLIC CAPITAL LETTER BE") + (?В "キリール大文字VE,CYRILLIC CAPITAL LETTER VE") + (?Г "キリール大文字GHE,CYRILLIC CAPITAL LETTER GHE") + (?Д "キリール大文字DE,CYRILLIC CAPITAL LETTER DE") + (?Е "キリール大文字IE,CYRILLIC CAPITAL LETTER IE") + (?Ё "キリール大文字IO,CYRILLIC CAPITAL LETTER IO") + (?Ж "キリール大文字ZHE,CYRILLIC CAPITAL LETTER ZHE") + (?З "キリール大文字ZE,CYRILLIC CAPITAL LETTER ZE") + (?И "キリール大文字I,CYRILLIC CAPITAL LETTER I") + (?Й "キリール大文字SHORT I,CYRILLIC CAPITAL LETTER SHORT I") + (?К "キリール大文字KA,CYRILLIC CAPITAL LETTER KA") + (?Л "キリール大文字EL,CYRILLIC CAPITAL LETTER EL") + (?М "キリール大文字EM,CYRILLIC CAPITAL LETTER EM") + (?Н "キリール大文字EN,CYRILLIC CAPITAL LETTER EN") + (?О "キリール大文字O,CYRILLIC CAPITAL LETTER O") + (?П "キリール大文字PE,CYRILLIC CAPITAL LETTER PE") + (?Р "キリール大文字ER,CYRILLIC CAPITAL LETTER ER") + (?С "キリール大文字ES,CYRILLIC CAPITAL LETTER ES") + (?Т "キリール大文字TE,CYRILLIC CAPITAL LETTER TE") + (?У "キリール大文字U,CYRILLIC CAPITAL LETTER U") + (?Ф "キリール大文字EF,CYRILLIC CAPITAL LETTER EF") + (?Х "キリール大文字HA,CYRILLIC CAPITAL LETTER HA") + (?Ц "キリール大文字TSE,CYRILLIC CAPITAL LETTER TSE") + (?Ч "キリール大文字CHE,CYRILLIC CAPITAL LETTER CHE") + (?Ш "キリール大文字SHA,CYRILLIC CAPITAL LETTER SHA") + (?Щ "キリール大文字SHCHA,CYRILLIC CAPITAL LETTER SHCHA") + (?Ъ "キリール大文字HARD SIGN,CYRILLIC CAPITAL LETTER HARD SIGN") + (?Ы "キリール大文字YERU,CYRILLIC CAPITAL LETTER YERU") + (?Ь "キリール大文字SOFT SIGN,CYRILLIC CAPITAL LETTER SOFT SIGN") + (?Э "キリール大文字E,CYRILLIC CAPITAL LETTER E") + (?Ю "キリール大文字YU,CYRILLIC CAPITAL LETTER YU") + (?Я "キリール大文字YA,CYRILLIC CAPITAL LETTER YA") + (?а "キリール小文字A,CYRILLIC SMALL LETTER A") + (?б "キリール小文字BE,CYRILLIC SMALL LETTER BE") + (?в "キリール小文字VE,CYRILLIC SMALL LETTER VE") + (?г "キリール小文字GHE,CYRILLIC SMALL LETTER GHE") + (?д "キリール小文字DE,CYRILLIC SMALL LETTER DE") + (?е "キリール小文字IE,CYRILLIC SMALL LETTER IE") + (?ё "キリール小文字IO,CYRILLIC SMALL LETTER IO") + (?ж "キリール小文字ZHE,CYRILLIC SMALL LETTER ZHE") + (?з "キリール小文字ZE,CYRILLIC SMALL LETTER ZE") + (?и "キリール小文字I,CYRILLIC SMALL LETTER I") + (?й "キリール小文字SHORT I,CYRILLIC SMALL LETTER SHORT I") + (?к "キリール小文字KA,CYRILLIC SMALL LETTER KA") + (?л "キリール小文字EL,CYRILLIC SMALL LETTER EL") + (?м "キリール小文字EM,CYRILLIC SMALL LETTER EM") + (?н "キリール小文字EN,CYRILLIC SMALL LETTER EN") + (?о "キリール小文字O,CYRILLIC SMALL LETTER O") + (?п "キリール小文字PE,CYRILLIC SMALL LETTER PE") + (?р "キリール小文字ER,CYRILLIC SMALL LETTER ER") + (?с "キリール小文字ES,CYRILLIC SMALL LETTER ES") + (?т "キリール小文字TE,CYRILLIC SMALL LETTER TE") + (?у "キリール小文字U,CYRILLIC SMALL LETTER U") + (?ф "キリール小文字EF,CYRILLIC SMALL LETTER EF") + (?х "キリール小文字HA,CYRILLIC SMALL LETTER HA") + (?ц "キリール小文字TSE,CYRILLIC SMALL LETTER TSE") + (?ч "キリール小文字CHE,CYRILLIC SMALL LETTER CHE") + (?ш "キリール小文字SHA,CYRILLIC SMALL LETTER SHA") + (?щ "キリール小文字SHCHA,CYRILLIC SMALL LETTER SHCHA") + (?ъ "キリール小文字HARD SIGN,CYRILLIC SMALL LETTER HARD SIGN") + (?ы "キリール小文字YERU,CYRILLIC SMALL LETTER YERU") + (?ь "キリール小文字SOFT SIGN,CYRILLIC SMALL LETTER SOFT SIGN") + (?э "キリール小文字E,CYRILLIC SMALL LETTER E") + (?ю "キリール小文字YU,CYRILLIC SMALL LETTER YU") + (?я "キリール小文字YA,CYRILLIC SMALL LETTER YA") + (?─ "横細線素片,BOX DRAWINGS LIGHT HORIZONTAL") + (?│ "縦細線素片,BOX DRAWINGS LIGHT VERTICAL") + (?┌ "細線素片左上,BOX DRAWINGS LIGHT DOWN AND RIGHT") + (?┐ "細線素片右上,BOX DRAWINGS LIGHT DOWN AND LEFT") + (?┘ "細線素片右下,BOX DRAWINGS LIGHT UP AND LEFT") + (?└ "細線素片左下,BOX DRAWINGS LIGHT UP AND RIGHT") + (?├ "細線素片左,BOX DRAWINGS LIGHT VERTICAL AND RIGHT") + (?┬ "細線素片上,BOX DRAWINGS LIGHT DOWN AND HORIZONTAL") + (?┤ "細線素片右,BOX DRAWINGS LIGHT VERTICAL AND LEFT") + (?┴ "細線素片下,BOX DRAWINGS LIGHT UP AND HORIZONTAL") + (?┼ "細線素片中央,BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL") + (?━ "横太線素片,BOX DRAWINGS HEAVY HORIZONTAL") + (?┃ "縦太線素片,BOX DRAWINGS HEAVY VERTICAL") + (?┏ "太線素片左上,BOX DRAWINGS HEAVY DOWN AND RIGHT") + (?┓ "太線素片右上,BOX DRAWINGS HEAVY DOWN AND LEFT") + (?┛ "太線素片右下,BOX DRAWINGS HEAVY UP AND LEFT") + (?┗ "太線素片左下,BOX DRAWINGS HEAVY UP AND RIGHT") + (?┣ "太線素片左,BOX DRAWINGS HEAVY VERTICAL AND RIGHT") + (?┳ "太線素片上,BOX DRAWINGS HEAVY DOWN AND HORIZONTAL") + (?┫ "太線素片右,BOX DRAWINGS HEAVY VERTICAL AND LEFT") + (?┻ "太線素片下,BOX DRAWINGS HEAVY UP AND HORIZONTAL") + (?╋ "太線素片中央,BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL") + (?┠ "縦太線横細線素片左,BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT") + (?┯ "横太線縦細線素片上,BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY") + (?┨ "縦太線横細線素片右,BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT") + (?┷ "横太線縦細線素片下,BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY") + (?┿ "縦細線横太線素片中央,BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY") + (?┝ "縦細線横太線素片左,BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY") + (?┰ "横細線縦太線素片上,BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT") + (?┥ "縦細線横太線素片右,BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY") + (?┸ "横細線縦太線素片下,BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT") + (?╂ "横細線縦太線素片中央,BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT") + (?唖 "83字体変更") + (?鯵 "83入替え(鰺)") + (?閏 "うるう。閠(典拠不詳)は別字") + (?焔 "83字体変更") + (?鴬 "83入替え(鶯)。鶯(うぐいす)の略字。鷽(うそ)は別字") + (?鴎 "83字体変更") + (?馨 "配列の乱れ。19区 29浬(かいり) 30馨(かおる) 31蛙(かえる)") + (?蛎 "83入替え(蠣)") + (?撹 "83入替え(攪)") + (?竃 "83入替え(竈)") + (?噛 "83字体変更") + (?潅 "83入替え(灌)") + (?諌 "83入替え(諫)") + (?侠 "83字体変更") + (?尭 "83追加入替え(堯)") + (?躯 "83字体変更") + (?頚 "83入替え(頸)") + (?鹸 "83字体変更") + (?砿 "83入替え(礦)") + (?麹 "83字体変更") + (?屡 "83字体変更") + (?蕊 "83入替え(蘂)") + (?繍 "83字体変更") + (?蒋 "83字体変更") + (?醤 "83字体変更") + (?靭 "83入替え(靱)") + (?蝉 "83字体変更") + (?賎 "83入替え(賤)") + (?掻 "83字体変更") + (?騨 "83字体変更") + (?箪 "83字体変更") + (?掴 "83字体変更") + (?壷 "83入替え(壺)。壺(つぼ)の略字。壼(コン)は別字") + (?填 "83字体変更") + (?顛 "83字体変更") + (?砺 "83入替え(礪)") + (?梼 "83入替え(檮)") + (?涛 "83入替え(濤)") + (?祷 "83字体変更") + (?涜 "83字体変更") + (?迩 "83入替え(邇)") + (?祢 "禰(ネ)の略字。袮(典拠不詳)は別字") + (?嚢 "83字体変更") + (?蝿 "83入替え(蠅)") + (?溌 "83字体変更") + (?醗 "83字体変更") + (?桧 "83入替え(檜)") + (?戊 "つちのえ。戉(まさかり)は別字") + (?頬 "83字体変更") + (?槙 "83追加入替え(槇)") + (?侭 "83入替え(儘)") + (?麺 "83字体変更") + (?薮 "83入替え(藪)") + (?遥 "83追加入替え(遙)") + (?莱 "83字体変更") + (?梁 "やな。粱(あわ)は別字") + (?篭 "83入替え(籠)") + (?蝋 "83字体変更") + (?佛 "仏(ほとけ)の旧字。彿(フツ)は別字") + (?儘 "83入替え(侭)") + (?冑 "かぶと。胄(チュウ)は別字") + (?匚 "はこがまえ。匸(かくしがまえ)は別字") + (?匸 "かくしがまえ。匚(はこがまえ)は別字") + (?墸 "典拠不明") + (?壥 "典拠不明") + (?壺 "83入替え(壷)。つぼ。壼(コン)は別字") + (?壼 "コン。壺(つぼ)は別字") + (?夂 "チ。夊(スイ)は別字だが混同される") + (?夊 "スイ。夂(チ)は別字だが混同される") + (?妛 "典拠不詳。あけびの誤字か") + (?彁 "同定不能") + (?彿 "フツ。佛(ほとけ)は別字") + (?戉 "まさかり。戊(つちのえ)は別字") + (?戍 "まもる。戌(いぬ)は別字") + (?戌 "いぬ。戍(まもる)は別字") + (?挧 "典拠不詳") + (?攪 "83入替え(攪)") + (?攅 "83字体変更") + (?敞 "ショウ。敝(ヘイ)は別字") + (?敝 "ヘイ。敞(ショウ)は別字") + (?晝 "昼(ひる)の旧字。畫(カク)は別字") + (?暃 "典拠不詳") + (?朸 "おうご。朷(トウ)は別字") + (?朷 "トウ。朸(おうご)は別字") + (?檜 "83入替え(桧)") + (?檮 "83入替え(梼)") + (?椦 "典拠不詳。ぬで島のぬでの誤字か") + (?槞 "典拠不詳") + (?濤 "83入替え(涛)") + (?灌 "83入替え(潅)") + (?瑶 "83追加入替え(瑤)") + (?畫 "画(カク)の旧字。晝(ひる)は別字") + (?痲 "マ。痳(リン)は別字") + (?痳 "リン。痲(マ)は別字") + (?礦 "83入替え(砿)") + (?礪 "83入替え(砺)") + (?竈 "83入替え(竃)") + (?籠 "83入替え(篭)") + (?粱 "あわ。梁(やな)は別字") + (?胄 "チュウ。冑(かぶと)は別字") + (?蘂 "83入替え(蕊)") + (?藪 "83入替え(薮)") + (?蠣 "83入替え(蛎)") + (?蜴 "とかげ。蝪(トウ)は別字") + (?蝪 "トウ。蜴(とかげ)は別字") + (?蠅 "83入替え(蝿)") + (?蟐 "典拠不詳") + (?袮 "典拠不詳。祢(ネ)は別字") + (?諫 "83入替え(諌)") + (?賤 "83入替え(賎)") + (?邇 "83入替え(迩)") + (?迺 "すなわち。逎(シュウ)は別字") + (?逎 "遒(シュウ)の異体字。迺(すなわち)は別字") + (?釖 "かたな。釛(コク)は別字") + (?釛 "コク。釖(かたな)は別字") + (?鑢 "やすり。鑪(ロ)は別字") + (?鑪 "ロ。鑢(やすり)は別字") + (?閠 "典拠不詳。閏(うるう)は別字") + (?陜 "キョウ。陝(セン)は別字") + (?陝 "セン。陜(キョウ)は別字") + (?靱 "83入替え(靭)") + (?頸 "83入替え(頚)") + (?駲 "典拠不詳") + (?鰺 "83入替え(鯵)") + (?鶯 "83入替え(鴬)。うぐいす。鷽(うそ)は別字") + (?鷽 "うそ。鶯(うぐいす)は別字") + (?堯 "83追加入替え(尭)") + (?槇 "83追加入替え(槙)") + (?遙 "83追加入替え(遥)") + (?瑤 "83追加入替え(瑶)") + (?凜 "90追加") + (?熙 "90追加")))) (dolist (x l) (aset skk-tankan-annotation-table (car x) (nth 1 x))))) @@ -2700,676 +2700,676 @@ METHOD $B$,(B 2 $B$G$"$l$P?tCM(B NUM $B$OAm2h?t$H$7$F8!:w$re(B,VERTICAL KANA REPEAT MARK UPPER HALF") - (2 20 "$B$/$N;zE@>e(B($BByE@(B),VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF") - (2 21 "$B$/$N;zE@2<(B,VERTICAL KANA REPEAT MARK LOWER HALF") - (2 22 "$BFs$N;zE@(B,$B$f$9$jE@(B,VERTICAL IDEOGRAPHIC ITERATION MARK") - (2 23 "$B$^$95-9f(B,MASU MARK") - (2 24 "$B%3%H(B,KATAKANA DIGRAPH KOTO") - (2 25 "$B$h$j(B,HIRAGANA DIGRAPH YORI") - (2 34 "$BItJ,=89g$NH]Dj(B,NOT A SUBSET OF") - (2 35 "$BItJ,=89g$NH]Dj(B($B5UJ}8~(B),NOT A SUPERSET OF") - (2 36 "$B??ItJ,=89g(B2,SUBSET OF WITH NOT EQUAL TO") - (2 37 "$B??ItJ,=89g(B2($B5UJ}8~(B),SUPERSET OF WITH NOT EQUAL TO") - (2 38 "$BMWAG$NH]Dj(B,$B85$NH]Dj(B,NOT AN ELEMENT OF") - (2 39 "$B6u=89g(B,EMPTY SET") - (2 40 "$BOB(B,CIRCLED PLUS") - (2 50 "$B4]IU$-%^%$%J%9(B,CIRCLED MINUS") - (2 51 "$B%F%s%=%k@Q(B,CIRCLED TIMES") - (2 52 "$BJ?9T(B,PARALLEL TO") - (2 53 "$BJ?9T$NH]Dj(B,NOT PARALLEL TO") - (2 54 "$B;O$aFs=E%Q!<%l%s(B,$B;O$aFs=E3g8L(B,FULLWIDTH LEFT WHITE PARENTHESIS") - (2 55 "$B=*$o$jFs=E%Q!<%l%s(B,$B=*$o$jFs=E3g8L(B,FULLWIDTH RIGHT WHITE PARENTHESIS") - (2 56 "$B;O$aFs=E$-$C$3$&(B($B559C(B)$B3g8L(B,LEFT WHITE TORTOISE SHELL BRACKET") - (2 57 "$B=*$o$jFs=E$-$C$3$&(B($B559C(B)$B3g8L(B,RIGHT WHITE TORTOISE SHELL BRACKET") - (2 58 "$B;O$a$9$_IU$-3g8L(B($BGr(B),LEFT WHITE LENTICULAR BRACKET") - (2 59 "$B=*$o$j$9$_IU$-3g8L(B($BGr(B),RIGHT WHITE LENTICULAR BRACKET") - (2 75 "$B9gF1H]Dj(B,NOT IDENTICAL TO") - (2 76 "$BA2?JE*$KEy$7$$(B,$B%[%b%H!<%W(B,ASYMPTOTICALLY EQUAL TO") - (2 77 "$BF17A(B,APPROXIMATELY EQUAL TO") - (2 78 "$B6a;wE*$KEy$7$$(B,$BF1Aj(B,ALMOST EQUAL TO") - (2 79 "$B>.$5$$$+Bg$-$$(B,LESS-THAN OR GREATER-THAN") - (2 80 "$BBg$-$$$+>.$5$$(B,GREATER-THAN OR LESS-THAN") - (2 81 "$BF1Ey(B,LEFT RIGHT ARROW") - (2 90 "$B%J%A%e%i%k(B,MUSIC NATURAL SIGN") - (2 91 "$BO"$3$&(B($B7e(B)$BIU$-H,J,2;Id(B,BEAMED EIGHTH NOTES") - (2 92 "$BO"$3$&(B($B7e(B)$BIU$-==O;J,2;Id(B,BEAMED SIXTEENTH NOTES") - (2 93 "$B;MJ,2;Id(B,QUARTER NOTE") - (3 1 "$B1&8~;03Q(B,WHITE RIGHT-POINTING TRIANGLE") - (3 2 "$B1&8~9u;03Q(B,BLACK RIGHT-POINTING TRIANGLE") - (3 3 "$B:88~;03Q(B,WHITE LEFT-POINTING TRIANGLE") - (3 4 "$B:88~9u;03Q(B,BLACK LEFT-POINTING TRIANGLE") - (3 5 "$B1&>e8~Lp0u(B,NORTH EAST ARROW") - (3 6 "$B1&2<8~Lp0u(B,SOUTH EAST ARROW") - (3 7 "$B:8>e8~Lp0u(B,NORTH WEST ARROW") - (3 8 "$B:82<8~Lp0u(B,SOUTH WEST ARROW") - (3 9 "$B1&Lp0u:8Lp0u(B,RIGHTWARDS ARROW OVER LEFTWARDS ARROW") - (3 10 "$B1&8~GrLp0u(B,RIGHTWARDS WHITE ARROW") - (3 11 "$B:88~GrLp0u(B,LEFTWARDS WHITE ARROW") - (3 12 "$B>e8~GrLp0u(B,UPWARDS WHITE ARROW") - (3 13 "$B2<8~GrLp0u(B,DOWNWARDS WHITE ARROW") - (3 14 "$B6J$,$jLp0u>e$,$k(B,ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS") - (3 15 "$B6J$,$jLp0u2<$,$k(B,ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS") - (3 26 "$B4]Cf9u(B,CIRCLED BULLET") - (3 27 "$BL>$&(B,HIRAGANA LETTER VU") - (4 85 "$B>.=q$-J?2>L>$+(B,HIRAGANA LETTER SMALL KA") - (4 86 "$B>.=q$-J?2>L>$1(B,HIRAGANA LETTER SMALL KE") - (4 87 "$BH>ByE@IU$-J?2>L>$+(B,[HIRAGANA LETTER BIDAKUON NGA]") - (4 88 "$BH>ByE@IU$-J?2>L>$-(B,[HIRAGANA LETTER BIDAKUON NGI]") - (4 89 "$BH>ByE@IU$-J?2>L>$/(B,[HIRAGANA LETTER BIDAKUON NGU]") - (4 90 "$BH>ByE@IU$-J?2>L>$1(B,[HIRAGANA LETTER BIDAKUON NGE]") - (4 91 "$BH>ByE@IU$-J?2>L>$3(B,[HIRAGANA LETTER BIDAKUON NGO]") - (5 87 "$BH>ByE@IU$-JR2>L>%+(B,[KATAKANA LETTER BIDAKUON NGA]") - (5 88 "$BH>ByE@IU$-JR2>L>%-(B,[KATAKANA LETTER BIDAKUON NGI]") - (5 89 "$BH>ByE@IU$-JR2>L>%/(B,[KATAKANA LETTER BIDAKUON NGU]") - (5 90 "$BH>ByE@IU$-JR2>L>%1(B,[KATAKANA LETTER BIDAKUON NGE]") - (5 91 "$BH>ByE@IU$-JR2>L>%3(B,[KATAKANA LETTER BIDAKUON NGO]") - (5 92 "$BH>ByE@IU$-JR2>L>%;(B,[KATAKANA LETTER AINU CE]") - (5 93 "$BH>ByE@IU$-JR2>L>%D(B,[KATAKANA LETTER AINU TU]") - (5 94 "$BH>ByE@IU$-JR2>L>%H(B,[KATAKANA LETTER AINU TO]") - (6 25 "$B%9%Z!<%I(B($BGr(B),WHITE SPADE SUIT") - (6 26 "$B%9%Z!<%I(B,BLACK SPADE SUIT") - (6 27 "$B%@%$%d(B($BGr(B),WHITE DIAMOND SUIT") - (6 28 "$B%@%$%d(B,BLACK DIAMOND SUIT") - (6 29 "$B%O!<%H(B($BGr(B),WHITE HEART SUIT") - (6 30 "$B%O!<%H(B,BLACK HEART SUIT") - (6 31 "$B%/%i%V(B($BGr(B),WHITE CLUB SUIT") - (6 32 "$B%/%i%V(B,BLACK CLUB SUIT") - (6 57 "$B%.%j%7%">.J8;z%U%!%$%J%k(BSIGMA,GREEK SMALL LETTER FINAL SIGMA") - (6 58 "$BFs=E4](B1,DOUBLE CIRCLED DIGIT ONE") - (6 59 "$BFs=E4](B2,DOUBLE CIRCLED DIGIT TWO") - (6 60 "$BFs=E4](B3,DOUBLE CIRCLED DIGIT THREE") - (6 61 "$BFs=E4](B4,DOUBLE CIRCLED DIGIT FOUR") - (6 62 "$BFs=E4](B5,DOUBLE CIRCLED DIGIT FIVE") - (6 63 "$BFs=E4](B6,DOUBLE CIRCLED DIGIT SIX") - (6 64 "$BFs=E4](B7,DOUBLE CIRCLED DIGIT SEVEN") - (6 65 "$BFs=E4](B8,DOUBLE CIRCLED DIGIT EIGHT") - (6 66 "$BFs=E4](B9,DOUBLE CIRCLED DIGIT NINE") - (6 67 "$BFs=E4](B10,DOUBLE CIRCLED NUMBER TEN") - (6 68 "$BGr>-4}6p(B,WHITE SHOGI PIECE") - (6 69 "$B9u>-4}6p(B,BLACK SHOGI PIECE") - (6 70 "$BM9JX%^!<%/(B,POSTAL MARK FACE") - (6 71 "$BEEOC%^!<%/(B,BLACK TELEPHONE") - (6 72 "$B@2%^!<%/(B,BLACK SUN WITH RAYS") - (6 73 "$BF^%^!<%/(B,CLOUD") - (6 74 "$B1+%^!<%/(B,UMBRELLA") - (6 75 "$B@c%^!<%/(B,SNOWMAN") - (6 76 "$B29@t%^!<%/(B,HOT SPRINGS") - (6 77 "$BJ?9T;MJU7A(B,WHITE PARALLELOGRAM") - (6 78 "$B>.=q$-JR2>L>%/(B,KATAKANA LETTER SMALL KU") - (6 79 "$B>.=q$-JR2>L>%7(B,KATAKANA LETTER SMALL SI") - (6 80 "$B>.=q$-JR2>L>%9(B,KATAKANA LETTER SMALL SU") - (6 81 "$B>.=q$-JR2>L>%H(B,KATAKANA LETTER SMALL TO") - (6 82 "$B>.=q$-JR2>L>%L(B,KATAKANA LETTER SMALL NU") - (6 83 "$B>.=q$-JR2>L>%O(B,KATAKANA LETTER SMALL HA") - (6 84 "$B>.=q$-JR2>L>%R(B,KATAKANA LETTER SMALL HI") - (6 85 "$B>.=q$-JR2>L>%U(B,KATAKANA LETTER SMALL HU") - (6 86 "$B>.=q$-JR2>L>%X(B,KATAKANA LETTER SMALL HE") - (6 87 "$B>.=q$-JR2>L>%[(B,KATAKANA LETTER SMALL HO") - (6 88 "$B>.=q$-H>ByE@IU$-JR2>L>%U(B,[KATAKANA LETTER AINU P]") - (6 89 "$B>.=q$-JR2>L>%`(B,KATAKANA LETTER SMALL MU") - (6 90 "$B>.=q$-JR2>L>%i(B,KATAKANA LETTER SMALL RA") - (6 91 "$B>.=q$-JR2>L>%j(B,KATAKANA LETTER SMALL RI") - (6 92 "$B>.=q$-JR2>L>%k(B,KATAKANA LETTER SMALL RU") - (6 93 "$B>.=q$-JR2>L>%l(B,KATAKANA LETTER SMALL RE") - (6 94 "$B>.=q$-JR2>L>%m(B,KATAKANA LETTER SMALL RO") - (7 34 "$B:8>e3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT") - (7 35 "$B:82<3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT") - (7 36 "$B4]IU$-=D@~AGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE") - (7 37 "$B4]IU$->e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE") - (7 38 "$B4]IU$-2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE") - (7 39 "$B;03QIU$-=D@~AGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE") - (7 40 "$B;03QIU$->e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE") - (7 41 "$B;03QIU$-2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE") - (7 42 "$BGHIU$-=D@~AGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL WITH WAVE") - (7 43 "$BGHIU$->e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE") - (7 44 "$BGHIU$-2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE") - (7 45 "$B>e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL") - (7 46 "$B2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL") - (7 47 "$B1&>e3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT") - (7 48 "$B1&2<3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT") - (7 82 "$BByE@IU$-JR2>L>%o(B,KATAKANA LETTER VA") - (7 83 "$BByE@IU$-JR2>L>%p(B,KATAKANA LETTER VI") - (7 84 "$BByE@IU$-JR2>L>%q(B,KATAKANA LETTER VE") - (7 85 "$BByE@IU$-JR2>L>%r(B,KATAKANA LETTER VO") - (7 86 "$B>.$5$$$+Ey$7$$$+Bg$-$$(B,LESS-THAN EQUAL TO OR GREATER-THAN") - (7 87 "$BBg$-$$$+Ey$7$$$+>.$5$$(B,GREATER-THAN EQUAL TO OR LESS-THAN") - (7 88 "3$BJ,$N(B1,VULGAR FRACTION ONE THIRD") - (7 89 "3$BJ,$N(B2,VULGAR FRACTION TWO THIRDS") - (7 90 "5$BJ,$N(B1,VULGAR FRACTION ONE FIFTH") - (7 91 "$B%A%'%C%/%^!<%/(B,CHECK MARK") - (7 92 "$B%3%^%s%I5-9f(B,PLACE OF INTEREST SIGN") - (7 93 "$B6uGr5-9f(B,OPEN BOX") - (7 94 "$B%j%?!<%s5-9f(B,RETURN SYMBOL") - (8 33 "$B4](B21,CIRCLED NUMBER TWENTY ONE") - (8 34 "$B4](B22,CIRCLED NUMBER TWENTY TWO") - (8 35 "$B4](B23,CIRCLED NUMBER TWENTY THREE") - (8 36 "$B4](B24,CIRCLED NUMBER TWENTY FOUR") - (8 37 "$B4](B25,CIRCLED NUMBER TWENTY FIVE") - (8 38 "$B4](B26,CIRCLED NUMBER TWENTY SIX") - (8 39 "$B4](B27,CIRCLED NUMBER TWENTY SEVEN") - (8 40 "$B4](B28,CIRCLED NUMBER TWENTY EIGHT") - (8 41 "$B4](B29,CIRCLED NUMBER TWENTY NINE") - (8 42 "$B4](B30,CIRCLED NUMBER THIRTY") - (8 43 "$B4](B31,CIRCLED NUMBER THIRTY ONE") - (8 44 "$B4](B32,CIRCLED NUMBER THIRTY TWO") - (8 45 "$B4](B33,CIRCLED NUMBER THIRTY THREE") - (8 46 "$B4](B34,CIRCLED NUMBER THIRTY FOUR") - (8 47 "$B4](B35,CIRCLED NUMBER THIRTY FIVE") - (8 48 "$B4](B36,CIRCLED NUMBER THIRTY SIX") - (8 49 "$B4](B37,CIRCLED NUMBER THIRTY SEVEN") - (8 50 "$B4](B38,CIRCLED NUMBER THIRTY EIGHT") - (8 51 "$B4](B39,CIRCLED NUMBER THIRTY NINE") - (8 52 "$B4](B40,CIRCLED NUMBER FORTY") - (8 53 "$B4](B41,CIRCLED NUMBER FORTY ONE") - (8 54 "$B4](B42,CIRCLED NUMBER FORTY TWO") - (8 55 "$B4](B43,CIRCLED NUMBER FORTY THREE") - (8 56 "$B4](B44,CIRCLED NUMBER FORTY FOUR") - (8 57 "$B4](B45,CIRCLED NUMBER FORTY FIVE") - (8 58 "$B4](B46,CIRCLED NUMBER FORTY SIX") - (8 59 "$B4](B47,CIRCLED NUMBER FORTY SEVEN") - (8 60 "$B4](B48,CIRCLED NUMBER FORTY EIGHT") - (8 61 "$B4](B49,CIRCLED NUMBER FORTY NINE") - (8 62 "$B4](B50,CIRCLED NUMBER FIFTY") - (8 71 "$B:8H>9u4](B,CIRCLE WITH LEFT HALF BLACK") - (8 72 "$B1&H>9u4](B,CIRCLE WITH RIGHT HALF BLACK") - (8 73 "$B29u4](B,CIRCLE WITH LOWER HALF BLACK") - (8 74 "$B>eH>9u4](B,CIRCLE WITH UPPER HALF BLACK") - (8 75 "$B46C2IdFs$D(B,DOUBLE EXCLAMATION MARK") - (8 76 "$B5?LdIdFs$D(B,DOUBLE QUESTION MARK") - (8 77 "$B5?LdId46C2Id(B,QUESTION EXCLAMATION MARK") - (8 78 "$B46C2Id5?LdId(B,EXCLAMATION QUESTION MARK") - (8 79 "$B%-%c%m%sIU$-(BA,LATIN CAPITAL LETTER A WITH CARON") - (8 80 "$B%-%c%m%sIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH CARON") - (8 81 "$B%-%c%m%sIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH CARON") - (8 82 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BM,LATIN CAPITAL LETTER M WITH ACUTE") - (8 83 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BM$B>.J8;z(B,LATIN SMALL LETTER M WITH ACUTE") - (8 84 "$B%0%l!<%V%"%/%;%s%HIU$-(BN,LATIN CAPITAL LETTER N WITH GRAVE") - (8 85 "$B%0%l!<%V%"%/%;%s%HIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH GRAVE") - (8 86 "$B%-%c%m%sIU$-(BO,LATIN CAPITAL LETTER O WITH CARON") - (8 87 "$B%-%c%m%sIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH CARON") - (8 88 "$B%-%c%m%sIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH CARON") - (8 89 "$B%^%/%m%s$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON") - (8 90 "$B%"%-%e!<%H%"%/%;%s%H$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE") - (8 91 "$B%-%c%m%s$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND CARON") - (8 92 "$B%0%l!<%V%"%/%;%s%H$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE") - (9 1 "$B%f!<%m5-9f(B,EURO SIGN") - (9 2 "$B%N!<%V%l!<%/%9%Z!<%9(B,NO-BREAK SPACE") - (9 3 "$B5U46C2Id(B,INVERTED EXCLAMATION MARK") - (9 4 "$BITFCDjDL2_5-9f(B,CURRENCY SIGN") - (9 5 "$BGKCG@~(B,BROKEN BAR") - (9 6 "$BCx:n8"I=<(5-9f(B,COPYRIGHT SIGN") - (9 7 "$B=w@-=x?tI8<1(B,FEMININE ORDINAL INDICATOR") - (9 8 "$B;O$aFs=E;33g8L0zMQ5-9f(B,$B;O$a%.%e%a(B,LEFT-POINTING DOUBLE ANGLE QUOTATION MARK") - (9 9 "$B%=%U%H%O%$%U%s(B,SOFT HYPHEN") - (9 10 "$BEPO?>&I85-9f(B,REGISTERED SIGN") - (9 11 "$B%^%/%m%s(B,MACRON") - (9 12 "$B>eIU$-(B2,SUPERSCRIPT TWO") - (9 13 "$B>eIU$-(B3,SUPERSCRIPT THREE") - (9 14 "$BCfE@(B($B%i%F%s(B),MIDDLE DOT") - (9 15 "$B%;%G%#%i(B,CEDILLA") - (9 16 "$B>eIU$-(B1,SUPERSCRIPT ONE") - (9 17 "$BCK@-=x?tI8<1(B,MASCULINE ORDINAL INDICATOR") - (9 18 "$B=*$o$jFs=E;33g8L0zMQ5-9f(B,$B=*$o$j%.%e%a(B,RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK") - (9 19 "4$BJ,$N(B1,VULGAR FRACTION ONE QUARTER") - (9 20 "2$BJ,$N(B1,VULGAR FRACTION ONE HALF") - (9 21 "4$BJ,$N(B3,VULGAR FRACTION THREE QUARTERS") - (9 22 "$B5U5?LdId(B,INVERTED QUESTION MARK") - (9 23 "$B%0%l!<%V%"%/%;%s%HIU$-(BA,LATIN CAPITAL LETTER A WITH GRAVE") - (9 24 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BA,LATIN CAPITAL LETTER A WITH ACUTE") - (9 25 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BA,LATIN CAPITAL LETTER A WITH CIRCUMFLEX") - (9 26 "$B%A%k%IIU$-(BA,LATIN CAPITAL LETTER A WITH TILDE") - (9 27 "$B%@%$%(%l%7%9IU$-(BA,LATIN CAPITAL LETTER A WITH DIAERESIS") - (9 28 "$B>e%j%s%0IU$-(BA,LATIN CAPITAL LETTER A WITH RING ABOVE") + (2 15 "アポストロフィ,APOSTROPHE") + (2 16 "引用符,クォーテーションマーク,QUOTATION MARK") + (2 17 "ハイフンマイナス,HYPHEN-MINUS") + (2 18 "チルド,TILDE") + (2 19 "くの字点上,VERTICAL KANA REPEAT MARK UPPER HALF") + (2 20 "くの字点上(濁点),VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF") + (2 21 "くの字点下,VERTICAL KANA REPEAT MARK LOWER HALF") + (2 22 "二の字点,ゆすり点,VERTICAL IDEOGRAPHIC ITERATION MARK") + (2 23 "ます記号,MASU MARK") + (2 24 "コト,KATAKANA DIGRAPH KOTO") + (2 25 "より,HIRAGANA DIGRAPH YORI") + (2 34 "部分集合の否定,NOT A SUBSET OF") + (2 35 "部分集合の否定(逆方向),NOT A SUPERSET OF") + (2 36 "真部分集合2,SUBSET OF WITH NOT EQUAL TO") + (2 37 "真部分集合2(逆方向),SUPERSET OF WITH NOT EQUAL TO") + (2 38 "要素の否定,元の否定,NOT AN ELEMENT OF") + (2 39 "空集合,EMPTY SET") + (2 40 "射影的関係,PROJECTIVE") + (2 41 "背景的関係,PERSPECTIVE") + (2 49 "直和,CIRCLED PLUS") + (2 50 "丸付きマイナス,CIRCLED MINUS") + (2 51 "テンソル積,CIRCLED TIMES") + (2 52 "平行,PARALLEL TO") + (2 53 "平行の否定,NOT PARALLEL TO") + (2 54 "始め二重パーレン,始め二重括弧,FULLWIDTH LEFT WHITE PARENTHESIS") + (2 55 "終わり二重パーレン,終わり二重括弧,FULLWIDTH RIGHT WHITE PARENTHESIS") + (2 56 "始め二重きっこう(亀甲)括弧,LEFT WHITE TORTOISE SHELL BRACKET") + (2 57 "終わり二重きっこう(亀甲)括弧,RIGHT WHITE TORTOISE SHELL BRACKET") + (2 58 "始めすみ付き括弧(白),LEFT WHITE LENTICULAR BRACKET") + (2 59 "終わりすみ付き括弧(白),RIGHT WHITE LENTICULAR BRACKET") + (2 75 "合同否定,NOT IDENTICAL TO") + (2 76 "漸進的に等しい,ホモトープ,ASYMPTOTICALLY EQUAL TO") + (2 77 "同形,APPROXIMATELY EQUAL TO") + (2 78 "近似的に等しい,同相,ALMOST EQUAL TO") + (2 79 "小さいか大きい,LESS-THAN OR GREATER-THAN") + (2 80 "大きいか小さい,GREATER-THAN OR LESS-THAN") + (2 81 "同等,LEFT RIGHT ARROW") + (2 90 "ナチュラル,MUSIC NATURAL SIGN") + (2 91 "連こう(桁)付き八分音符,BEAMED EIGHTH NOTES") + (2 92 "連こう(桁)付き十六分音符,BEAMED SIXTEENTH NOTES") + (2 93 "四分音符,QUARTER NOTE") + (3 1 "右向三角,WHITE RIGHT-POINTING TRIANGLE") + (3 2 "右向黒三角,BLACK RIGHT-POINTING TRIANGLE") + (3 3 "左向三角,WHITE LEFT-POINTING TRIANGLE") + (3 4 "左向黒三角,BLACK LEFT-POINTING TRIANGLE") + (3 5 "右上向矢印,NORTH EAST ARROW") + (3 6 "右下向矢印,SOUTH EAST ARROW") + (3 7 "左上向矢印,NORTH WEST ARROW") + (3 8 "左下向矢印,SOUTH WEST ARROW") + (3 9 "右矢印左矢印,RIGHTWARDS ARROW OVER LEFTWARDS ARROW") + (3 10 "右向白矢印,RIGHTWARDS WHITE ARROW") + (3 11 "左向白矢印,LEFTWARDS WHITE ARROW") + (3 12 "上向白矢印,UPWARDS WHITE ARROW") + (3 13 "下向白矢印,DOWNWARDS WHITE ARROW") + (3 14 "曲がり矢印上がる,ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS") + (3 15 "曲がり矢印下がる,ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS") + (3 26 "丸中黒,CIRCLED BULLET") + (3 27 "蛇の目,FISHEYE") + (3 28 "歌記号,いおり(庵)点,PART ALTERNATION MARK") + (3 29 "白ゴマ,WHITE SESAME DOT") + (3 30 "ゴマ,SESAME DOT") + (3 31 "白ビュレット,WHITE BULLET") + (3 32 "ビュレット,BULLET") + (3 59 "負又は正符号,MINUS-OR-PLUS SIGN") + (3 60 "アレフ,ALEF SYMBOL") + (3 61 "エイチバー,PLANCK CONSTANT OVER TWO PI") + (3 62 "HP,ホースパワー(馬力),SQUARE HP") + (3 63 "リットル,SCRIPT SMALL L") + (3 64 "モー,INVERTED OHM SIGN") + (3 91 "二重ハイフン,二分二重ダッシュ,KATAKANA-HIRAGANA DOUBLE HYPHEN") + (3 92 "二分ダーシ,ダッシュ(二分),EN DASH") + (3 93 "2プラス,DOUBLE PLUS") + (3 94 "3プラス,TRIPLE PLUS") + (4 84 "濁点付き平仮名う,HIRAGANA LETTER VU") + (4 85 "小書き平仮名か,HIRAGANA LETTER SMALL KA") + (4 86 "小書き平仮名け,HIRAGANA LETTER SMALL KE") + (4 87 "半濁点付き平仮名か,[HIRAGANA LETTER BIDAKUON NGA]") + (4 88 "半濁点付き平仮名き,[HIRAGANA LETTER BIDAKUON NGI]") + (4 89 "半濁点付き平仮名く,[HIRAGANA LETTER BIDAKUON NGU]") + (4 90 "半濁点付き平仮名け,[HIRAGANA LETTER BIDAKUON NGE]") + (4 91 "半濁点付き平仮名こ,[HIRAGANA LETTER BIDAKUON NGO]") + (5 87 "半濁点付き片仮名カ,[KATAKANA LETTER BIDAKUON NGA]") + (5 88 "半濁点付き片仮名キ,[KATAKANA LETTER BIDAKUON NGI]") + (5 89 "半濁点付き片仮名ク,[KATAKANA LETTER BIDAKUON NGU]") + (5 90 "半濁点付き片仮名ケ,[KATAKANA LETTER BIDAKUON NGE]") + (5 91 "半濁点付き片仮名コ,[KATAKANA LETTER BIDAKUON NGO]") + (5 92 "半濁点付き片仮名セ,[KATAKANA LETTER AINU CE]") + (5 93 "半濁点付き片仮名ツ,[KATAKANA LETTER AINU TU]") + (5 94 "半濁点付き片仮名ト,[KATAKANA LETTER AINU TO]") + (6 25 "スペード(白),WHITE SPADE SUIT") + (6 26 "スペード,BLACK SPADE SUIT") + (6 27 "ダイヤ(白),WHITE DIAMOND SUIT") + (6 28 "ダイヤ,BLACK DIAMOND SUIT") + (6 29 "ハート(白),WHITE HEART SUIT") + (6 30 "ハート,BLACK HEART SUIT") + (6 31 "クラブ(白),WHITE CLUB SUIT") + (6 32 "クラブ,BLACK CLUB SUIT") + (6 57 "ギリシア小文字ファイナルSIGMA,GREEK SMALL LETTER FINAL SIGMA") + (6 58 "二重丸1,DOUBLE CIRCLED DIGIT ONE") + (6 59 "二重丸2,DOUBLE CIRCLED DIGIT TWO") + (6 60 "二重丸3,DOUBLE CIRCLED DIGIT THREE") + (6 61 "二重丸4,DOUBLE CIRCLED DIGIT FOUR") + (6 62 "二重丸5,DOUBLE CIRCLED DIGIT FIVE") + (6 63 "二重丸6,DOUBLE CIRCLED DIGIT SIX") + (6 64 "二重丸7,DOUBLE CIRCLED DIGIT SEVEN") + (6 65 "二重丸8,DOUBLE CIRCLED DIGIT EIGHT") + (6 66 "二重丸9,DOUBLE CIRCLED DIGIT NINE") + (6 67 "二重丸10,DOUBLE CIRCLED NUMBER TEN") + (6 68 "白将棋駒,WHITE SHOGI PIECE") + (6 69 "黒将棋駒,BLACK SHOGI PIECE") + (6 70 "郵便マーク,POSTAL MARK FACE") + (6 71 "電話マーク,BLACK TELEPHONE") + (6 72 "晴マーク,BLACK SUN WITH RAYS") + (6 73 "曇マーク,CLOUD") + (6 74 "雨マーク,UMBRELLA") + (6 75 "雪マーク,SNOWMAN") + (6 76 "温泉マーク,HOT SPRINGS") + (6 77 "平行四辺形,WHITE PARALLELOGRAM") + (6 78 "小書き片仮名ク,KATAKANA LETTER SMALL KU") + (6 79 "小書き片仮名シ,KATAKANA LETTER SMALL SI") + (6 80 "小書き片仮名ス,KATAKANA LETTER SMALL SU") + (6 81 "小書き片仮名ト,KATAKANA LETTER SMALL TO") + (6 82 "小書き片仮名ヌ,KATAKANA LETTER SMALL NU") + (6 83 "小書き片仮名ハ,KATAKANA LETTER SMALL HA") + (6 84 "小書き片仮名ヒ,KATAKANA LETTER SMALL HI") + (6 85 "小書き片仮名フ,KATAKANA LETTER SMALL HU") + (6 86 "小書き片仮名ヘ,KATAKANA LETTER SMALL HE") + (6 87 "小書き片仮名ホ,KATAKANA LETTER SMALL HO") + (6 88 "小書き半濁点付き片仮名フ,[KATAKANA LETTER AINU P]") + (6 89 "小書き片仮名ム,KATAKANA LETTER SMALL MU") + (6 90 "小書き片仮名ラ,KATAKANA LETTER SMALL RA") + (6 91 "小書き片仮名リ,KATAKANA LETTER SMALL RI") + (6 92 "小書き片仮名ル,KATAKANA LETTER SMALL RU") + (6 93 "小書き片仮名レ,KATAKANA LETTER SMALL RE") + (6 94 "小書き片仮名ロ,KATAKANA LETTER SMALL RO") + (7 34 "左上角素片,DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT") + (7 35 "左下角素片,DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT") + (7 36 "丸付き縦線素片,DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE") + (7 37 "丸付き上横縦線素片,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE") + (7 38 "丸付き下横縦線素片,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE") + (7 39 "三角付き縦線素片,DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE") + (7 40 "三角付き上横縦線素片,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE") + (7 41 "三角付き下横縦線素片,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE") + (7 42 "波付き縦線素片,DENTISTRY SYMBOL LIGHT VERTICAL WITH WAVE") + (7 43 "波付き上横縦線素片,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE") + (7 44 "波付き下横縦線素片,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE") + (7 45 "上横縦線素片,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL") + (7 46 "下横縦線素片,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL") + (7 47 "右上角素片,DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT") + (7 48 "右下角素片,DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT") + (7 82 "濁点付き片仮名ワ,KATAKANA LETTER VA") + (7 83 "濁点付き片仮名ヰ,KATAKANA LETTER VI") + (7 84 "濁点付き片仮名ヱ,KATAKANA LETTER VE") + (7 85 "濁点付き片仮名ヲ,KATAKANA LETTER VO") + (7 86 "小さいか等しいか大きい,LESS-THAN EQUAL TO OR GREATER-THAN") + (7 87 "大きいか等しいか小さい,GREATER-THAN EQUAL TO OR LESS-THAN") + (7 88 "3分の1,VULGAR FRACTION ONE THIRD") + (7 89 "3分の2,VULGAR FRACTION TWO THIRDS") + (7 90 "5分の1,VULGAR FRACTION ONE FIFTH") + (7 91 "チェックマーク,CHECK MARK") + (7 92 "コマンド記号,PLACE OF INTEREST SIGN") + (7 93 "空白記号,OPEN BOX") + (7 94 "リターン記号,RETURN SYMBOL") + (8 33 "丸21,CIRCLED NUMBER TWENTY ONE") + (8 34 "丸22,CIRCLED NUMBER TWENTY TWO") + (8 35 "丸23,CIRCLED NUMBER TWENTY THREE") + (8 36 "丸24,CIRCLED NUMBER TWENTY FOUR") + (8 37 "丸25,CIRCLED NUMBER TWENTY FIVE") + (8 38 "丸26,CIRCLED NUMBER TWENTY SIX") + (8 39 "丸27,CIRCLED NUMBER TWENTY SEVEN") + (8 40 "丸28,CIRCLED NUMBER TWENTY EIGHT") + (8 41 "丸29,CIRCLED NUMBER TWENTY NINE") + (8 42 "丸30,CIRCLED NUMBER THIRTY") + (8 43 "丸31,CIRCLED NUMBER THIRTY ONE") + (8 44 "丸32,CIRCLED NUMBER THIRTY TWO") + (8 45 "丸33,CIRCLED NUMBER THIRTY THREE") + (8 46 "丸34,CIRCLED NUMBER THIRTY FOUR") + (8 47 "丸35,CIRCLED NUMBER THIRTY FIVE") + (8 48 "丸36,CIRCLED NUMBER THIRTY SIX") + (8 49 "丸37,CIRCLED NUMBER THIRTY SEVEN") + (8 50 "丸38,CIRCLED NUMBER THIRTY EIGHT") + (8 51 "丸39,CIRCLED NUMBER THIRTY NINE") + (8 52 "丸40,CIRCLED NUMBER FORTY") + (8 53 "丸41,CIRCLED NUMBER FORTY ONE") + (8 54 "丸42,CIRCLED NUMBER FORTY TWO") + (8 55 "丸43,CIRCLED NUMBER FORTY THREE") + (8 56 "丸44,CIRCLED NUMBER FORTY FOUR") + (8 57 "丸45,CIRCLED NUMBER FORTY FIVE") + (8 58 "丸46,CIRCLED NUMBER FORTY SIX") + (8 59 "丸47,CIRCLED NUMBER FORTY SEVEN") + (8 60 "丸48,CIRCLED NUMBER FORTY EIGHT") + (8 61 "丸49,CIRCLED NUMBER FORTY NINE") + (8 62 "丸50,CIRCLED NUMBER FIFTY") + (8 71 "左半黒丸,CIRCLE WITH LEFT HALF BLACK") + (8 72 "右半黒丸,CIRCLE WITH RIGHT HALF BLACK") + (8 73 "下半黒丸,CIRCLE WITH LOWER HALF BLACK") + (8 74 "上半黒丸,CIRCLE WITH UPPER HALF BLACK") + (8 75 "感嘆符二つ,DOUBLE EXCLAMATION MARK") + (8 76 "疑問符二つ,DOUBLE QUESTION MARK") + (8 77 "疑問符感嘆符,QUESTION EXCLAMATION MARK") + (8 78 "感嘆符疑問符,EXCLAMATION QUESTION MARK") + (8 79 "キャロン付きA,LATIN CAPITAL LETTER A WITH CARON") + (8 80 "キャロン付きA小文字,LATIN SMALL LETTER A WITH CARON") + (8 81 "キャロン付きI小文字,LATIN SMALL LETTER I WITH CARON") + (8 82 "アキュートアクセント付きM,LATIN CAPITAL LETTER M WITH ACUTE") + (8 83 "アキュートアクセント付きM小文字,LATIN SMALL LETTER M WITH ACUTE") + (8 84 "グレーブアクセント付きN,LATIN CAPITAL LETTER N WITH GRAVE") + (8 85 "グレーブアクセント付きN小文字,LATIN SMALL LETTER N WITH GRAVE") + (8 86 "キャロン付きO,LATIN CAPITAL LETTER O WITH CARON") + (8 87 "キャロン付きO小文字,LATIN SMALL LETTER O WITH CARON") + (8 88 "キャロン付きU小文字,LATIN SMALL LETTER U WITH CARON") + (8 89 "マクロンとダイエレシス付きU小文字,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON") + (8 90 "アキュートアクセントとダイエレシス付きU小文字,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE") + (8 91 "キャロンとダイエレシス付きU小文字,LATIN SMALL LETTER U WITH DIAERESIS AND CARON") + (8 92 "グレーブアクセントとダイエレシス付きU小文字,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE") + (9 1 "ユーロ記号,EURO SIGN") + (9 2 "ノーブレークスペース,NO-BREAK SPACE") + (9 3 "逆感嘆符,INVERTED EXCLAMATION MARK") + (9 4 "不特定通貨記号,CURRENCY SIGN") + (9 5 "破断線,BROKEN BAR") + (9 6 "著作権表示記号,COPYRIGHT SIGN") + (9 7 "女性序数標識,FEMININE ORDINAL INDICATOR") + (9 8 "始め二重山括弧引用記号,始めギュメ,LEFT-POINTING DOUBLE ANGLE QUOTATION MARK") + (9 9 "ソフトハイフン,SOFT HYPHEN") + (9 10 "登録商標記号,REGISTERED SIGN") + (9 11 "マクロン,MACRON") + (9 12 "上付き2,SUPERSCRIPT TWO") + (9 13 "上付き3,SUPERSCRIPT THREE") + (9 14 "中点(ラテン),MIDDLE DOT") + (9 15 "セディラ,CEDILLA") + (9 16 "上付き1,SUPERSCRIPT ONE") + (9 17 "男性序数標識,MASCULINE ORDINAL INDICATOR") + (9 18 "終わり二重山括弧引用記号,終わりギュメ,RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK") + (9 19 "4分の1,VULGAR FRACTION ONE QUARTER") + (9 20 "2分の1,VULGAR FRACTION ONE HALF") + (9 21 "4分の3,VULGAR FRACTION THREE QUARTERS") + (9 22 "逆疑問符,INVERTED QUESTION MARK") + (9 23 "グレーブアクセント付きA,LATIN CAPITAL LETTER A WITH GRAVE") + (9 24 "アキュートアクセント付きA,LATIN CAPITAL LETTER A WITH ACUTE") + (9 25 "サーカムフレックスアクセント付きA,LATIN CAPITAL LETTER A WITH CIRCUMFLEX") + (9 26 "チルド付きA,LATIN CAPITAL LETTER A WITH TILDE") + (9 27 "ダイエレシス付きA,LATIN CAPITAL LETTER A WITH DIAERESIS") + (9 28 "上リング付きA,LATIN CAPITAL LETTER A WITH RING ABOVE") (9 29 "AE,LATIN CAPITAL LETTER AE") - (9 30 "$B%;%G%#%iIU$-(BC,LATIN CAPITAL LETTER C WITH CEDILLA") - (9 31 "$B%0%l!<%V%"%/%;%s%HIU$-(BE,LATIN CAPITAL LETTER E WITH GRAVE") - (9 32 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BE,LATIN CAPITAL LETTER E WITH ACUTE") - (9 33 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BE,LATIN CAPITAL LETTER E WITH CIRCUMFLEX") - (9 34 "$B%@%$%(%l%7%9IU$-(BE,LATIN CAPITAL LETTER E WITH DIAERESIS") - (9 35 "$B%0%l!<%V%"%/%;%s%HIU$-(BI,LATIN CAPITAL LETTER I WITH GRAVE") - (9 36 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BI,LATIN CAPITAL LETTER I WITH ACUTE") - (9 37 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BI,LATIN CAPITAL LETTER I WITH CIRCUMFLEX") - (9 38 "$B%@%$%(%l%7%9IU$-(BI,LATIN CAPITAL LETTER I WITH DIAERESIS") - (9 39 "$B%"%$%9%i%s%I8l(BETH,LATIN CAPITAL LETTER ETH(Icelandic)") - (9 40 "$B%A%k%IIU$-(BN,LATIN CAPITAL LETTER N WITH TILDE") - (9 41 "$B%0%l!<%V%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH GRAVE") - (9 42 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH ACUTE") - (9 43 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH CIRCUMFLEX") - (9 44 "$B%A%k%IIU$-(BO,LATIN CAPITAL LETTER O WITH TILDE") - (9 45 "$B%@%$%(%l%7%9IU$-(BO,LATIN CAPITAL LETTER O WITH DIAERESIS") - (9 46 "$B%9%H%m!<%/IU$-(BO,LATIN CAPITAL LETTER O WITH STROKE") - (9 47 "$B%0%l!<%V%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH GRAVE") - (9 48 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH ACUTE") - (9 49 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH CIRCUMFLEX") - (9 50 "$B%@%$%(%l%7%9IU$-(BU,LATIN CAPITAL LETTER U WITH DIAERESIS") - (9 51 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BY,LATIN CAPITAL LETTER Y WITH ACUTE") - (9 52 "$B%"%$%9%i%s%I8l(BTHORN,LATIN CAPITAL LETTER THORN(Icelandic)") - (9 53 "$B%I%$%D8l%(%9%D%'%C%H(B,LATIN SMALL LETTER SHARP S(German)") - (9 54 "$B%0%l!<%V%"%/%;%s%HIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH GRAVE") - (9 55 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH ACUTE") - (9 56 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH CIRCUMFLEX") - (9 57 "$B%A%k%IIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH TILDE") - (9 58 "$B%@%$%(%l%7%9IU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH DIAERESIS") - (9 59 "$B>e%j%s%0IU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH RING ABOVE") - (9 60 "AE$B>.J8;z(B,LATIN SMALL LETTER AE") - (9 61 "$B%;%G%#%iIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH CEDILLA") - (9 62 "$B%0%l!<%V%"%/%;%s%HIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH GRAVE") - (9 63 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH ACUTE") - (9 64 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH CIRCUMFLEX") - (9 65 "$B%@%$%(%l%7%9IU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH DIAERESIS") - (9 66 "$B%0%l!<%V%"%/%;%s%HIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH GRAVE") - (9 67 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH ACUTE") - (9 68 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH CIRCUMFLEX") - (9 69 "$B%@%$%(%l%7%9IU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH DIAERESIS") - (9 70 "$B%"%$%9%i%s%I8l(BETH$B>.J8;z(B,LATIN SMALL LETTER ETH(Icelandic)") - (9 71 "$B%A%k%IIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH TILDE") - (9 72 "$B%0%l!<%V%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH GRAVE") - (9 73 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH ACUTE") - (9 74 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH CIRCUMFLEX") - (9 75 "$B%A%k%IIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH TILDE") - (9 76 "$B%@%$%(%l%7%9IU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH DIAERESIS") - (9 77 "$B%9%H%m!<%/IU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH STROKE") - (9 78 "$B%0%l!<%V%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH GRAVE") - (9 79 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH ACUTE") - (9 80 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH CIRCUMFLEX") - (9 81 "$B%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS") - (9 82 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BY$B>.J8;z(B,LATIN SMALL LETTER Y WITH ACUTE") - (9 83 "$B%"%$%9%i%s%I8l(BTHORN$B>.J8;z(B,LATIN SMALL LETTER THORN(Icelandic)") - (9 84 "$B%@%$%(%l%7%9IU$-(BY$B>.J8;z(B,LATIN SMALL LETTER Y WITH DIAERESIS") - (9 85 "$B%^%/%m%sIU$-(BA,LATIN CAPITAL LETTER A WITH MACRON") - (9 86 "$B%^%/%m%sIU$-(BI,LATIN CAPITAL LETTER I WITH MACRON") - (9 87 "$B%^%/%m%sIU$-(BU,LATIN CAPITAL LETTER U WITH MACRON") - (9 88 "$B%^%/%m%sIU$-(BE,LATIN CAPITAL LETTER E WITH MACRON") - (9 89 "$B%^%/%m%sIU$-(BO,LATIN CAPITAL LETTER O WITH MACRON") - (9 90 "$B%^%/%m%sIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH MACRON") - (9 91 "$B%^%/%m%sIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH MACRON") - (9 92 "$B%^%/%m%sIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH MACRON") - (9 93 "$B%^%/%m%sIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH MACRON") - (9 94 "$B%^%/%m%sIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH MACRON") - (10 1 "$B%*%4%M%/IU$-(BA,LATIN CAPITAL LETTER A WITH OGONEK") - (10 2 "$B%V%j!<%V(B,BREVE") - (10 3 "$B%9%H%m!<%/IU$-(BL,LATIN CAPITAL LETTER L WITH STROKE") - (10 4 "$B%-%c%m%sIU$-(BL,LATIN CAPITAL LETTER L WITH CARON") - (10 5 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BS,LATIN CAPITAL LETTER S WITH ACUTE") - (10 6 "$B%-%c%m%sIU$-(BS,LATIN CAPITAL LETTER S WITH CARON") - (10 7 "$B%;%G%#%iIU$-(BS,LATIN CAPITAL LETTER S WITH CEDILLA") - (10 8 "$B%-%c%m%sIU$-(BT,LATIN CAPITAL LETTER T WITH CARON") - (10 9 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BZ,LATIN CAPITAL LETTER Z WITH ACUTE") - (10 10 "$B%-%c%m%sIU$-(BZ,LATIN CAPITAL LETTER Z WITH CARON") - (10 11 "$B>e%I%C%HIU$-(BZ,LATIN CAPITAL LETTER Z WITH DOT ABOVE") - (10 12 "$B%*%4%M%/IU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH OGONEK") - (10 13 "$B%*%4%M%/(B,OGONEK") - (10 14 "$B%9%H%m!<%/IU$-(BL$B>.J8;z(B,LATIN SMALL LETTER L WITH STROKE") - (10 15 "$B%-%c%m%sIU$-(BL$B>.J8;z(B,LATIN SMALL LETTER L WITH CARON") - (10 16 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH ACUTE") - (10 17 "$B%-%c%m%s(B,CARON(Mandarin Chinese third tone)") - (10 18 "$B%-%c%m%sIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH CARON") - (10 19 "$B%;%G%#%iIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH CEDILLA") - (10 20 "$B%-%c%m%sIU$-(BT$B>.J8;z(B,LATIN SMALL LETTER T WITH CARON") - (10 21 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BZ$B>.J8;z(B,LATIN SMALL LETTER Z WITH ACUTE") - (10 22 "$B%@%V%k%"%-%e!<%H%"%/%;%s%H(B,DOUBLE ACUTE ACCENT") - (10 23 "$B%-%c%m%sIU$-(BZ$B>.J8;z(B,LATIN SMALL LETTER Z WITH CARON") - (10 24 "$B>e%I%C%HIU$-(BZ$B>.J8;z(B,LATIN SMALL LETTER Z WITH DOT ABOVE") - (10 25 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BR,LATIN CAPITAL LETTER R WITH ACUTE") - (10 26 "$B%V%j!<%VIU$-(BA,LATIN CAPITAL LETTER A WITH BREVE") - (10 27 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BL,LATIN CAPITAL LETTER L WITH ACUTE") - (10 28 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BC,LATIN CAPITAL LETTER C WITH ACUTE") - (10 29 "$B%-%c%m%sIU$-(BC,LATIN CAPITAL LETTER C WITH CARON") - (10 30 "$B%*%4%M%/IU$-(BE,LATIN CAPITAL LETTER E WITH OGONEK") - (10 31 "$B%-%c%m%sIU$-(BE,LATIN CAPITAL LETTER E WITH CARON") - (10 32 "$B%-%c%m%sIU$-(BD,LATIN CAPITAL LETTER D WITH CARON") - (10 33 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BN,LATIN CAPITAL LETTER N WITH ACUTE") - (10 34 "$B%-%c%m%sIU$-(BN,LATIN CAPITAL LETTER N WITH CARON") - (10 35 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE") - (10 36 "$B%-%c%m%sIU$-(BR,LATIN CAPITAL LETTER R WITH CARON") - (10 37 "$B>e%j%s%0IU$-(BU,LATIN CAPITAL LETTER U WITH RING ABOVE") - (10 38 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE") - (10 39 "$B%;%G%#%iIU$-(BT,LATIN CAPITAL LETTER T WITH CEDILLA") - (10 40 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BR$B>.J8;z(B,LATIN SMALL LETTER R WITH ACUTE") - (10 41 "$B%V%j!<%VIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH BREVE") - (10 42 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BL$B>.J8;z(B,LATIN SMALL LETTER L WITH ACUTE") - (10 43 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH ACUTE") - (10 44 "$B%-%c%m%sIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH CARON") - (10 45 "$B%*%4%M%/IU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH OGONEK") - (10 46 "$B%-%c%m%sIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH CARON") - (10 47 "$B%-%c%m%sIU$-(BD$B>.J8;z(B,LATIN SMALL LETTER D WITH CARON") - (10 48 "$B%9%H%m!<%/IU$-(BD$B>.J8;z(B,LATIN SMALL LETTER D WITH STROKE") - (10 49 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH ACUTE") - (10 50 "$B%-%c%m%sIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH CARON") - (10 51 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH DOUBLE ACUTE") - (10 52 "$B%-%c%m%sIU$-(BR$B>.J8;z(B,LATIN SMALL LETTER R WITH CARON") - (10 53 "$B>e%j%s%0IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH RING ABOVE") - (10 54 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DOUBLE ACUTE") - (10 55 "$B%;%G%#%iIU$-(BT$B>.J8;z(B,LATIN SMALL LETTER T WITH CEDILLA") - (10 56 "$B>e%I%C%H(B,DOT ABOVE(Mandarin Chinese light tone)") - (10 57 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BC,LATIN CAPITAL LETTER C WITH CIRCUMFLEX") - (10 58 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BG,LATIN CAPITAL LETTER G WITH CIRCUMFLEX") - (10 59 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BH,LATIN CAPITAL LETTER H WITH CIRCUMFLEX") - (10 60 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BJ,LATIN CAPITAL LETTER J WITH CIRCUMFLEX") - (10 61 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BS,LATIN CAPITAL LETTER S WITH CIRCUMFLEX") - (10 62 "$B%V%j!<%VIU$-(BU,LATIN CAPITAL LETTER U WITH BREVE") - (10 63 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH CIRCUMFLEX") - (10 64 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BG$B>.J8;z(B,LATIN SMALL LETTER G WITH CIRCUMFLEX") - (10 65 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BH$B>.J8;z(B,LATIN SMALL LETTER H WITH CIRCUMFLEX") - (10 66 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BJ$B>.J8;z(B,LATIN SMALL LETTER J WITH CIRCUMFLEX") - (10 67 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH CIRCUMFLEX") - (10 68 "$B%V%j!<%VIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH BREVE") - (10 69 "$B%U%C%/IU$-(BM$B>.J8;z(B,$BM-@.J8;z(B,$BM-@.J8;z(B,$BM-@<;u7TCF$-2;(B,LATIN SMALL LETTER R WITH FISHHOOK") - (10 72 "ESH$B>.J8;z(B,$BL5@<8eIt;u7TK`;$2;(B,LATIN SMALL LETTER ESH") - (10 73 "EZH$B>.J8;z(B,$BM-@<8eIt;u7TK`;$2;(B,LATIN SMALL LETTER EZH") - (10 74 "$B%Y%k%HIU$-(BL$B>.J8;z(B,$BL5@<;u7TB&LLK`;$2;(B,LATIN SMALL LETTER L WITH BELT") - (10 75 "LEZH$B>.J8;z(B,$BM-@<;u7TB&LLK`;$2;(B,LATIN SMALL LETTER LEZH") - (10 76 "$B%?!<%s%I(BR$B>.J8;z(B,$BL5@<;u7T@\6a2;(B,LATIN SMALL LETTER TURNED R") - (10 77 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BT$B>.J8;z(B,$BL5@<$=$j@eGKNv2;(B,LATIN SMALL LETTER T WITH RETROFLEX HOOK") - (10 78 "$B%F!<%kIU$-(BD$B>.J8;z(B,$BM-@<$=$j@eGKNv2;(B,LATIN SMALL LETTER D WITH TAIL") - (10 79 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BN$B>.J8;z(B,$BM-@<$=$j@eI!2;(B,LATIN SMALL LETTER N WITH RETROFLEX HOOK") - (10 80 "$B%F!<%kIU$-(BR$B>.J8;z(B,$BM-@<$=$j@eCF$-2;(B,LATIN SMALL LETTER R WITH TAIL") - (10 81 "$B%U%C%/IU$-(BS$B>.J8;z(B,$BL5@<$=$j@eK`;$2;(B,LATIN SMALL LETTER S WITH HOOK") - (10 82 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BZ$B>.J8;z(B,$BM-@<$=$j@eK`;$2;(B,LATIN SMALL LETTER Z WITH RETROFLEX HOOK") - (10 83 "$B%U%C%/IU$-%?!<%s%I(BR$B>.J8;z(B,$BM-@<$=$j@e@\6a2;(B,LATIN SMALL LETTER TURNED R WITH HOOK") - (10 84 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BL$B>.J8;z(B,$BM-@<$=$j@eB&LL@\6a2;(B,LATIN SMALL LETTER L WITH RETROFLEX HOOK") - (10 85 "$B%9%H%m!<%/IU$-%I%C%H$J$7(BJ$B>.J8;z(B,$BM-@<9E8}38GKNv2;(B,LATIN SMALL LETTER DOTLESS J WITH STROKE") - (10 86 "$B:8%U%C%/IU$-(BN$B>.J8;z(B,$BM-@<9E8}38I!2;(B,LATIN SMALL LETTER N WITH LEFT HOOK") - (10 87 "$B%/%m%9%I%F!<%kIU$-(BJ$B>.J8;z(B,$BM-@<9E8}38K`;$2;(B,LATIN SMALL LETTER J WITH CROSSED-TAIL") - (10 88 "$B%?!<%s%I(BY$B>.J8;z(B,$BM-@<9E8}38B&LL@\6a2;(B,LATIN SMALL LETTER TURNED Y") - (10 89 "$B%9%/%j%W%H(BG$B>.J8;z(B,$BM-@.J8;z(B,$BM-@.J8;z(B,$BM-@.J8;z(B,$BL5@<0vF,K`;$2;(B,LATIN SMALL LETTER H WITH STROKE") - (10 94 "$B%j%P!<%9%I%0%m%C%?%k%9%H%C%W(B,$BM-@<0vF,K`;$2;(B,LATIN LETTER PHARYNGEAL VOICED FRICATIVE") - (11 1 "$B%0%m%C%?%k%9%H%C%W(B,$BL5@<@.J8;z(B,$BM-@<@?05[Ce2;(B,LATIN LETTER BILABIAL CLICK") - (11 4 "$B9E8}38;u7T5[Ce2;(B,LATIN LETTER ALVEOLAR CLICK") - (11 5 "$B%U%C%/IU$-(BB$B>.J8;z(B,$BM-@?0FbGK2;(B,LATIN SMALL LETTER B WITH HOOK") - (11 6 "$B%U%C%/IU$-(BD$B>.J8;z(B,$BM-@<;u7TFbGK2;(B,LATIN SMALL LETTER D WITH HOOK") - (11 7 "$B%U%C%/$H%9%H%m!<%/IU$-%I%C%H$J$7(BJ$B>.J8;z(B,$BM-@<9E8}38FbGK2;(B,LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK") - (11 8 "$B%U%C%/IU$-(BG$B>.J8;z(B,$BM-@.J8;z(B,$B1_?0A0@e9-!&CfCJJl2;(B,LATIN SMALL LIGATURE OE") - (11 11 "$B%j%,%A%c(BOE$BBgJ8;z(B,$B1_?0A0@e9-Jl2;(B,LATIN CAPITAL LIGATURE OE") - (11 12 "$B%9%H%m!<%/IU$-(BI$B>.J8;z(B,$BHs1_?0Cf@e69Jl2;(B,LATIN SMALL LETTER I WITH STROKE") - (11 13 "$B%P!.J8;z(B,$B1_?0Cf@e69Jl2;(B,LATIN SMALL LETTER U BAR") - (11 14 "$B%j%P!<%9%I(BE$B>.J8;z(B,$BHs1_?0Cf@e69!&CfCJJl2;(B,LATIN SMALL LETTER REVERSED E") - (11 15 "$B%P!.J8;z(B,$B1_?0Cf@e69!&CfCJJl2;(B,LATIN SMALL LETTER BARRED O") - (11 16 "SCHWA$B>.J8;z(B,$BHs1_?0Cf@eCf1{Jl2;(B,LATIN SMALL LETTER SCHWA") - (11 17 "$B%j%P!<%9%I%*!<%W%s(BE$B>.J8;z(B,$BHs1_?0Cf@e9-!&CfCJJl2;(B,LATIN SMALL LETTER REVERSED OPEN E") - (11 18 "$B%/%m!<%:%I%j%P!<%9%I%*!<%W%s(BE$B>.J8;z(B,$B1_?0Cf@e9-!&CfCJJl2;(B,LATIN SMALL LETTER CLOSED REVERSED OPEN E") - (11 19 "$B%?!<%s%I(BA$B>.J8;z(B,$BHs1_?0Cf@e69$a$N9-Jl2;(B,LATIN SMALL LETTER TURNED A") - (11 20 "$B%?!<%s%I(BM$B>.J8;z(B,$BHs1_?08e@e69Jl2;(B,LATIN SMALL LETTER TURNED M") - (11 21 "UPSILON$B>.J8;z(B,$B1_?08e@e9-$a$N69Jl2;(B,LATIN SMALL LETTER UPSILON") - (11 22 "$B%Y%S!<%,%s%^(B,$BHs1_?08e@e69CfCJJl2;(B,LATIN SMALL LETTER RAMS HORN") - (11 23 "$B%?!<%s%I(BV$B>.J8;z(B,$BHs1_?08e@e9-!&CfCJJl2;(B,LATIN SMALL LETTER TURNED V") - (11 24 "$B%*!<%W%s(BO$B>.J8;z(B,$B1_?08e@e9-!&CfCJJl2;(B,LATIN SMALL LETTER OPEN O") - (11 25 "$B%9%/%j%W%H(BA$B>.J8;z(B,$BHs1_?08e@e9-Jl2;(B,LATIN SMALL LETTER ALPHA") - (11 26 "$B%?!<%s%I(BALPHA$B>.J8;z(B,$B1_?08e@e9-Jl2;(B,LATIN SMALL LETTER TURNED ALPHA") - (11 27 "$B%?!<%s%I(BW$B>.J8;z(B,$BL5@?0!&Fp8}38K`;$2;(B,LATIN SMALL LETTER TURNED W") - (11 28 "$B%?!<%s%I(BH$B>.J8;z(B,$BM-@?0!&9E8}38@\6a2;(B,LATIN SMALL LETTER TURNED H") - (11 29 "$B%9%H%m!<%/IU$-%j%P!<%9%I%0%m%C%?%k%9%H%C%W(B,$BM-@<0vF,38K`;$2;(B,LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE") - (11 30 "$B%9%H%m!<%/IU$-%0%m%C%?%k%9%H%C%W(B,$B0vF,38GKNv2;(B,LATIN LETTER GLOTTAL STOP WITH STROKE") - (11 31 "$B%+!<%kIU$-(BC$B>.J8;z(B,$B;u7T!&9E8}38K`;$2;(B,LATIN SMALL LETTER C WITH CURL") - (11 32 "$B%+!<%kIU$-(BZ$B>.J8;z(B,$B;u7T!&9E8}38K`;$2;(B,LATIN SMALL LETTER Z WITH CURL") - (11 33 "$B%m%s%0%l%C%0IU$-%?!<%s%I(BR$B>.J8;z(B,$B;u7TB&LLCF$-2;(B,LATIN SMALL LETTER TURNED R WITH LONG LEG") - (11 34 "$B%U%C%/IU$-(BHENG$B>.J8;z(B,$BL5@<8eIt;u7TFp8}38K`;$2;(B,LATIN SMALL LETTER HENG WITH HOOK") - (11 35 "$B%U%C%/IU$-(BSCHWA,LATIN SMALL LETTER SCHWA WITH HOOK") - (11 36 "$B%0%l!<%V%"%/%;%s%HIU$-(BAE$B>.J8;z(B,[LATIN SMALL LETTER AE WITH GRAVE]") - (11 37 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BAE$B>.J8;z(B,LATIN SMALL LETTER AE WITH ACUTE") - (11 38 "$B%0%l!<%V%"%/%;%s%HIU$-%9%/%j%W%H(BA$B>.J8;z(B,GREEK SMALL LETTER ALPHA WITH VARIA") - (11 39 "$B%"%-%e!<%H%"%/%;%s%HIU$-%9%/%j%W%H(BA$B>.J8;z(B,GREEK SMALL LETTER ALPHA WITH OXIA") - (11 40 "$B%0%l!<%V%"%/%;%s%HIU$-%*!<%W%s(BO$B>.J8;z(B,[LATIN SMALL LETTER OPEN O WITH GRAVE]") - (11 41 "$B%"%-%e!<%H%"%/%;%s%HIU$-%*!<%W%s(BO$B>.J8;z(B,[LATIN SMALL LETTER OPEN O WITH ACUTE]") - (11 42 "$B%0%l!<%V%"%/%;%s%HIU$-%?!<%s%I(BV$B>.J8;z(B,[LATIN SMALL LETTER TURNED V WITH GRAVE]") - (11 43 "$B%"%-%e!<%H%"%/%;%s%HIU$-%?!<%s%I(BV$B>.J8;z(B,[LATIN SMALL LETTER TURNED V WITH ACUTE]") - (11 44 "$B%0%l!<%V%"%/%;%s%HIU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER SCHWA WITH GRAVE]") - (11 45 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER SCHWA WITH ACUTE]") - (11 46 "$B%0%l!<%V%"%/%;%s%H$H%U%C%/IU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE]") - (11 47 "$B%"%-%e!<%H%"%/%;%s%H$H%U%C%/IU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE]") - (11 48 "$B%0%l!<%V%"%/%;%s%HIU$-(BEPSILON$B>.J8;z(B,GREEK SMALL LETTER EPSILON WITH VARIA") - (11 49 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BEPSILON$B>.J8;z(B,GREEK SMALL LETTER EPSILON WITH OXIA") - (11 50 "$B%@%V%k%$%s%P!<%F%C%I%V%j!<%V(B($B9g@.2DG=(B),$BGK;$2;Kt$OFs=ED42;5-9f(B,COMBINING DOUBLE INVERTED BREVE") - (11 51 "$B>.=D@~(B,$BBh0l6/@*(B,MODIFIER LETTER VERTICAL LINE") - (11 52 "$B2<>.=D@~(B,$BBhFs6/@*(B,MODIFIER LETTER LOW VERTICAL LINE") - (11 53 "$BD9(B,MODIFIER LETTER TRIANGULAR COLON") - (11 54 "$BH>D9(B,MODIFIER LETTER HALF TRIANGULAR COLON") - (11 55 "$B%V%j!<%V(B($B9g@.2DG=(B),$BD6C;(B,COMBINING BREVE(Vrachy)") - (11 56 "$BO"7k$7$F$$$k(B,UNDERTIE(Enotikon)") - (11 57 "$B%@%V%k%"%-%e!<%H%"%/%;%s%H(B($B9g@.2DG=(B),$B@e>:D4(B,COMBINING CARON") - (11 63 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%H(B($B9g@.2DG=(B),$B@e>:D4(B,[RISING SYMBOL]") - (11 70 "$B@e(BX($B9g@.2DG=(B),$BCfCJCf@eJl2;2=(B,COMBINING X ABOVE") - (11 79 "$B2<=D@~(B($B9g@.2DG=(B),$B2;@ae%l%U%H%"%s%0%k(B($B9g@.2DG=(B),$B3+J|$,J9$3$($J$$(B,COMBINING LEFT ANGLE ABOVE") - (12 1 "$B9u4](B1,DINGBAT NEGATIVE CIRCLED DIGIT ONE") - (12 2 "$B9u4](B2,DINGBAT NEGATIVE CIRCLED DIGIT TWO") - (12 3 "$B9u4](B3,DINGBAT NEGATIVE CIRCLED DIGIT THREE") - (12 4 "$B9u4](B4,DINGBAT NEGATIVE CIRCLED DIGIT FOUR") - (12 5 "$B9u4](B5,DINGBAT NEGATIVE CIRCLED DIGIT FIVE") - (12 6 "$B9u4](B6,DINGBAT NEGATIVE CIRCLED DIGIT SIX") - (12 7 "$B9u4](B7,DINGBAT NEGATIVE CIRCLED DIGIT SEVEN") - (12 8 "$B9u4](B8,DINGBAT NEGATIVE CIRCLED DIGIT EIGHT") - (12 9 "$B9u4](B9,DINGBAT NEGATIVE CIRCLED DIGIT NINE") - (12 10 "$B9u4](B10,DINGBAT NEGATIVE CIRCLED NUMBER TEN") - (12 11 "$B9u4](B11,NEGATIVE CIRCLED NUMBER ELEVEN") - (12 12 "$B9u4](B12,NEGATIVE CIRCLED NUMBER TWELVE") - (12 13 "$B9u4](B13,NEGATIVE CIRCLED NUMBER THIRTEEN") - (12 14 "$B9u4](B14,NEGATIVE CIRCLED NUMBER FOURTEEN") - (12 15 "$B9u4](B15,NEGATIVE CIRCLED NUMBER FIFTEEN") - (12 16 "$B9u4](B16,NEGATIVE CIRCLED NUMBER SIXTEEN") - (12 17 "$B9u4](B17,NEGATIVE CIRCLED NUMBER SEVENTEEN") - (12 18 "$B9u4](B18,NEGATIVE CIRCLED NUMBER EIGHTEEN") - (12 19 "$B9u4](B19,NEGATIVE CIRCLED NUMBER NINETEEN") - (12 20 "$B9u4](B20,NEGATIVE CIRCLED NUMBER TWENTY") - (12 21 "$B%m!<%^?t;z(B1$B>.J8;z(B,SMALL ROMAN NUMERAL ONE") - (12 22 "$B%m!<%^?t;z(B2$B>.J8;z(B,SMALL ROMAN NUMERAL TWO") - (12 23 "$B%m!<%^?t;z(B3$B>.J8;z(B,SMALL ROMAN NUMERAL THREE") - (12 24 "$B%m!<%^?t;z(B4$B>.J8;z(B,SMALL ROMAN NUMERAL FOUR") - (12 25 "$B%m!<%^?t;z(B5$B>.J8;z(B,SMALL ROMAN NUMERAL FIVE") - (12 26 "$B%m!<%^?t;z(B6$B>.J8;z(B,SMALL ROMAN NUMERAL SIX") - (12 27 "$B%m!<%^?t;z(B7$B>.J8;z(B,SMALL ROMAN NUMERAL SEVEN") - (12 28 "$B%m!<%^?t;z(B8$B>.J8;z(B,SMALL ROMAN NUMERAL EIGHT") - (12 29 "$B%m!<%^?t;z(B9$B>.J8;z(B,SMALL ROMAN NUMERAL NINE") - (12 30 "$B%m!<%^?t;z(B10$B>.J8;z(B,SMALL ROMAN NUMERAL TEN") - (12 31 "$B%m!<%^?t;z(B11$B>.J8;z(B,SMALL ROMAN NUMERAL ELEVEN") - (12 32 "$B%m!<%^?t;z(B12$B>.J8;z(B,SMALL ROMAN NUMERAL TWELVE") - (12 33 "$B4](BA$B>.J8;z(B,CIRCLED LATIN SMALL LETTER A") - (12 34 "$B4](BB$B>.J8;z(B,CIRCLED LATIN SMALL LETTER B") - (12 35 "$B4](BC$B>.J8;z(B,CIRCLED LATIN SMALL LETTER C") - (12 36 "$B4](BD$B>.J8;z(B,CIRCLED LATIN SMALL LETTER D") - (12 37 "$B4](BE$B>.J8;z(B,CIRCLED LATIN SMALL LETTER E") - (12 38 "$B4](BF$B>.J8;z(B,CIRCLED LATIN SMALL LETTER F") - (12 39 "$B4](BG$B>.J8;z(B,CIRCLED LATIN SMALL LETTER G") - (12 40 "$B4](BH$B>.J8;z(B,CIRCLED LATIN SMALL LETTER H") - (12 41 "$B4](BI$B>.J8;z(B,CIRCLED LATIN SMALL LETTER I") - (12 42 "$B4](BJ$B>.J8;z(B,CIRCLED LATIN SMALL LETTER J") - (12 43 "$B4](BK$B>.J8;z(B,CIRCLED LATIN SMALL LETTER K") - (12 44 "$B4](BL$B>.J8;z(B,CIRCLED LATIN SMALL LETTER L") - (12 45 "$B4](BM$B>.J8;z(B,CIRCLED LATIN SMALL LETTER M") - (12 46 "$B4](BN$B>.J8;z(B,CIRCLED LATIN SMALL LETTER N") - (12 47 "$B4](BO$B>.J8;z(B,CIRCLED LATIN SMALL LETTER O") - (12 48 "$B4](BP$B>.J8;z(B,CIRCLED LATIN SMALL LETTER P") - (12 49 "$B4](BQ$B>.J8;z(B,CIRCLED LATIN SMALL LETTER Q") - (12 50 "$B4](BR$B>.J8;z(B,CIRCLED LATIN SMALL LETTER R") - (12 51 "$B4](BS$B>.J8;z(B,CIRCLED LATIN SMALL LETTER S") - (12 52 "$B4](BT$B>.J8;z(B,CIRCLED LATIN SMALL LETTER T") - (12 53 "$B4](BU$B>.J8;z(B,CIRCLED LATIN SMALL LETTER U") - (12 54 "$B4](BV$B>.J8;z(B,CIRCLED LATIN SMALL LETTER V") - (12 55 "$B4](BW$B>.J8;z(B,CIRCLED LATIN SMALL LETTER W") - (12 56 "$B4](BX$B>.J8;z(B,CIRCLED LATIN SMALL LETTER X") - (12 57 "$B4](BY$B>.J8;z(B,CIRCLED LATIN SMALL LETTER Y") - (12 58 "$B4](BZ$B>.J8;z(B,CIRCLED LATIN SMALL LETTER Z") - (12 59 "$B4]%"(B,CIRCLED KATAKANA A") - (12 60 "$B4]%$(B,CIRCLED KATAKANA I") - (12 61 "$B4]%&(B,CIRCLED KATAKANA U") - (12 62 "$B4]%((B,CIRCLED KATAKANA E") - (12 63 "$B4]%*(B,CIRCLED KATAKANA O") - (12 64 "$B4]%+(B,CIRCLED KATAKANA KA") - (12 65 "$B4]%-(B,CIRCLED KATAKANA KI") - (12 66 "$B4]%/(B,CIRCLED KATAKANA KU") - (12 67 "$B4]%1(B,CIRCLED KATAKANA KE") - (12 68 "$B4]%3(B,CIRCLED KATAKANA KO") - (12 69 "$B4]%5(B,CIRCLED KATAKANA SA") - (12 70 "$B4]%7(B,CIRCLED KATAKANA SI") - (12 71 "$B4]%9(B,CIRCLED KATAKANA SU") - (12 72 "$B4]%;(B,CIRCLED KATAKANA SE") - (12 73 "$B4]%=(B,CIRCLED KATAKANA SO") - (12 74 "$B4]%?(B,CIRCLED KATAKANA TA") - (12 75 "$B4]%A(B,CIRCLED KATAKANA TI") - (12 76 "$B4]%D(B,CIRCLED KATAKANA TU") - (12 77 "$B4]%F(B,CIRCLED KATAKANA TE") - (12 78 "$B4]%H(B,CIRCLED KATAKANA TO") - (12 79 "$B4]%m(B,CIRCLED KATAKANA RO") - (12 80 "$B4]%O(B,CIRCLED KATAKANA HA") - (12 81 "$B4]%K(B,CIRCLED KATAKANA NI") - (12 82 "$B4]%[(B,CIRCLED KATAKANA HO") - (12 83 "$B4]%X(B,CIRCLED KATAKANA HE") - (12 93 "$B%@%V%k%"%9%F(B,TWO ASTERISKS ALIGNED VERTICALLY") - (12 94 "$B%"%9%F%j%:%`(B,ASTERISM") - (13 1 "$B4](B1,CIRCLED DIGIT ONE") - (13 2 "$B4](B2,CIRCLED DIGIT TWO") - (13 3 "$B4](B3,CIRCLED DIGIT THREE") - (13 4 "$B4](B4,CIRCLED DIGIT FOUR") - (13 5 "$B4](B5,CIRCLED DIGIT FIVE") - (13 6 "$B4](B6,CIRCLED DIGIT SIX") - (13 7 "$B4](B7,CIRCLED DIGIT SEVEN") - (13 8 "$B4](B8,CIRCLED DIGIT EIGHT") - (13 9 "$B4](B9,CIRCLED DIGIT NINE") - (13 10 "$B4](B10,CIRCLED NUMBER TEN") - (13 11 "$B4](B11,CIRCLED NUMBER ELEVEN") - (13 12 "$B4](B12,CIRCLED NUMBER TWELVE") - (13 13 "$B4](B13,CIRCLED NUMBER THIRTEEN") - (13 14 "$B4](B14,CIRCLED NUMBER FOURTEEN") - (13 15 "$B4](B15,CIRCLED NUMBER FIFTEEN") - (13 16 "$B4](B16,CIRCLED NUMBER SIXTEEN") - (13 17 "$B4](B17,CIRCLED NUMBER SEVENTEEN") - (13 18 "$B4](B18,CIRCLED NUMBER EIGHTEEN") - (13 19 "$B4](B19,CIRCLED NUMBER NINETEEN") - (13 20 "$B4](B20,CIRCLED NUMBER TWENTY") - (13 21 "$B%m!<%^?t;z(B1,ROMAN NUMERAL ONE") - (13 22 "$B%m!<%^?t;z(B2,ROMAN NUMERAL TWO") - (13 23 "$B%m!<%^?t;z(B3,ROMAN NUMERAL THREE") - (13 24 "$B%m!<%^?t;z(B4,ROMAN NUMERAL FOUR") - (13 25 "$B%m!<%^?t;z(B5,ROMAN NUMERAL FIVE") - (13 26 "$B%m!<%^?t;z(B6,ROMAN NUMERAL SIX") - (13 27 "$B%m!<%^?t;z(B7,ROMAN NUMERAL SEVEN") - (13 28 "$B%m!<%^?t;z(B8,ROMAN NUMERAL EIGHT") - (13 29 "$B%m!<%^?t;z(B9,ROMAN NUMERAL NINE") - (13 30 "$B%m!<%^?t;z(B10,ROMAN NUMERAL TEN") - (13 31 "$B%m!<%^?t;z(B11,ROMAN NUMERAL ELEVEN") - (13 32 "$BA43Q%_%j(B,SQUARE MIRI") - (13 33 "$BA43Q%-%m(B,SQUARE KIRO") - (13 34 "$BA43Q%;%s%A(B,SQUARE SENTI") - (13 35 "$BA43Q%a!<%H%k(B,SQUARE MEETORU") - (13 36 "$BA43Q%0%i%`(B,SQUARE GURAMU") - (13 37 "$BA43Q%H%s(B,SQUARE TON") - (13 38 "$BA43Q%"!<%k(B,SQUARE AARU") - (13 39 "$BA43Q%X%/%?!<%k(B,SQUARE HEKUTAARU") - (13 40 "$BA43Q%j%C%H%k(B,SQUARE RITTORU") - (13 41 "$BA43Q%o%C%H(B,SQUARE WATTO") - (13 42 "$BA43Q%+%m%j!<(B,SQUARE KARORII") - (13 43 "$BA43Q%I%k(B,SQUARE DORU") - (13 44 "$BA43Q%;%s%H(B,SQUARE SENTO") - (13 45 "$BA43Q%Q!<%;%s%H(B,SQUARE PAASENTO") - (13 46 "$BA43Q%_%j%P!<%k(B,SQUARE MIRIBAARU") - (13 47 "$BA43Q%Z!<%8(B,SQUARE PEEZI") - (13 48 "$BA43Q(BMM,SQUARE MM") - (13 49 "$BA43Q(BCM,SQUARE CM") - (13 50 "$BA43Q(BKM,SQUARE KM") - (13 51 "$BA43Q(BMG,SQUARE MG") - (13 52 "$BA43Q(BKG,SQUARE KG") - (13 53 "$BA43Q(BCC,SQUARE CC") - (13 54 "$BA43Q(BM2,SQUARE M SQUARED") - (13 55 "$B%m!<%^?t;z(B12,ROMAN NUMERAL TWELVE") - (13 63 "$BA43Q859fJ?@.(B,SQUARE ERA NAME HEISEI") - (13 64 "$B;O$a%@%V%k%_%K%e!<%H(B,REVERSED DOUBLE PRIME QUOTATION MARK") - (13 65 "$B=*$o$j%@%V%k%_%K%e!<%H(B,LOW DOUBLE PRIME QUOTATION MARK") - (13 66 "$BA43Q(BNO,NUMERO SIGN") - (13 67 "$BA43Q(BKK,SQUARE KK") - (13 68 "$BA43Q(BTEL,TELEPHONE SIGN") - (13 69 "$B4]IU$->e(B,CIRCLED IDEOGRAPH HIGH") - (13 70 "$B4]IU$-Cf(B,CIRCLED IDEOGRAPH CENTRE") - (13 71 "$B4]IU$-2<(B,CIRCLED IDEOGRAPH LOW") - (13 72 "$B4]IU$-:8(B,CIRCLED IDEOGRAPH LEFT") - (13 73 "$B4]IU$-1&(B,CIRCLED IDEOGRAPH RIGHT") - (13 74 "$BA43Q3g8LIU$-3t(B,PARENTHESIZED IDEOGRAPH STOCK") - (13 75 "$BA43Q3g8LIU$-M-(B,PARENTHESIZED IDEOGRAPH HAVE") - (13 76 "$BA43Q3g8LIU$-Be(B,PARENTHESIZED IDEOGRAPH REPRESENT") - (13 77 "$BA43Q859fL@<#(B,SQUARE ERA NAME MEIZI") - (13 78 "$BA43Q859fBg@5(B,SQUARE ERA NAME TAISYOU") - (13 79 "$BA43Q859f>3Q(B,RIGHT ANGLE") - (13 89 "$BD>3Q;03Q(B,RIGHT TRIANGLE") - (13 93 "$B;M$DI)(B,BLACK DIAMOND MINUS WHITE X") - (13 94 "$B;X<(%^!<%/(B,WHITE RIGHT POINTING INDEX") - - (14 1 "2003$BDI(B") - (15 94 "2003$BDI2C(B") - (47 52 "2003$BDI2C(B") - (47 94 "2003$BDI2C(B") - (84 7 "2003$BDI2C(B") - (94 90 "2003$BDI2C(B") - (94 91 "2003$BDI2C(B") - (94 92 "2003$BDI2C(B") - (94 93 "2003$BDI2C(B") - (94 94 "2003$BDI2C(B")))) + (9 30 "セディラ付きC,LATIN CAPITAL LETTER C WITH CEDILLA") + (9 31 "グレーブアクセント付きE,LATIN CAPITAL LETTER E WITH GRAVE") + (9 32 "アキュートアクセント付きE,LATIN CAPITAL LETTER E WITH ACUTE") + (9 33 "サーカムフレックスアクセント付きE,LATIN CAPITAL LETTER E WITH CIRCUMFLEX") + (9 34 "ダイエレシス付きE,LATIN CAPITAL LETTER E WITH DIAERESIS") + (9 35 "グレーブアクセント付きI,LATIN CAPITAL LETTER I WITH GRAVE") + (9 36 "アキュートアクセント付きI,LATIN CAPITAL LETTER I WITH ACUTE") + (9 37 "サーカムフレックスアクセント付きI,LATIN CAPITAL LETTER I WITH CIRCUMFLEX") + (9 38 "ダイエレシス付きI,LATIN CAPITAL LETTER I WITH DIAERESIS") + (9 39 "アイスランド語ETH,LATIN CAPITAL LETTER ETH(Icelandic)") + (9 40 "チルド付きN,LATIN CAPITAL LETTER N WITH TILDE") + (9 41 "グレーブアクセント付きO,LATIN CAPITAL LETTER O WITH GRAVE") + (9 42 "アキュートアクセント付きO,LATIN CAPITAL LETTER O WITH ACUTE") + (9 43 "サーカムフレックスアクセント付きO,LATIN CAPITAL LETTER O WITH CIRCUMFLEX") + (9 44 "チルド付きO,LATIN CAPITAL LETTER O WITH TILDE") + (9 45 "ダイエレシス付きO,LATIN CAPITAL LETTER O WITH DIAERESIS") + (9 46 "ストローク付きO,LATIN CAPITAL LETTER O WITH STROKE") + (9 47 "グレーブアクセント付きU,LATIN CAPITAL LETTER U WITH GRAVE") + (9 48 "アキュートアクセント付きU,LATIN CAPITAL LETTER U WITH ACUTE") + (9 49 "サーカムフレックスアクセント付きU,LATIN CAPITAL LETTER U WITH CIRCUMFLEX") + (9 50 "ダイエレシス付きU,LATIN CAPITAL LETTER U WITH DIAERESIS") + (9 51 "アキュートアクセント付きY,LATIN CAPITAL LETTER Y WITH ACUTE") + (9 52 "アイスランド語THORN,LATIN CAPITAL LETTER THORN(Icelandic)") + (9 53 "ドイツ語エスツェット,LATIN SMALL LETTER SHARP S(German)") + (9 54 "グレーブアクセント付きA小文字,LATIN SMALL LETTER A WITH GRAVE") + (9 55 "アキュートアクセント付きA小文字,LATIN SMALL LETTER A WITH ACUTE") + (9 56 "サーカムフレックスアクセント付きA小文字,LATIN SMALL LETTER A WITH CIRCUMFLEX") + (9 57 "チルド付きA小文字,LATIN SMALL LETTER A WITH TILDE") + (9 58 "ダイエレシス付きA小文字,LATIN SMALL LETTER A WITH DIAERESIS") + (9 59 "上リング付きA小文字,LATIN SMALL LETTER A WITH RING ABOVE") + (9 60 "AE小文字,LATIN SMALL LETTER AE") + (9 61 "セディラ付きC小文字,LATIN SMALL LETTER C WITH CEDILLA") + (9 62 "グレーブアクセント付きE小文字,LATIN SMALL LETTER E WITH GRAVE") + (9 63 "アキュートアクセント付きE小文字,LATIN SMALL LETTER E WITH ACUTE") + (9 64 "サーカムフレックスアクセント付きE小文字,LATIN SMALL LETTER E WITH CIRCUMFLEX") + (9 65 "ダイエレシス付きE小文字,LATIN SMALL LETTER E WITH DIAERESIS") + (9 66 "グレーブアクセント付きI小文字,LATIN SMALL LETTER I WITH GRAVE") + (9 67 "アキュートアクセント付きI小文字,LATIN SMALL LETTER I WITH ACUTE") + (9 68 "サーカムフレックスアクセント付きI小文字,LATIN SMALL LETTER I WITH CIRCUMFLEX") + (9 69 "ダイエレシス付きI小文字,LATIN SMALL LETTER I WITH DIAERESIS") + (9 70 "アイスランド語ETH小文字,LATIN SMALL LETTER ETH(Icelandic)") + (9 71 "チルド付きN小文字,LATIN SMALL LETTER N WITH TILDE") + (9 72 "グレーブアクセント付きO小文字,LATIN SMALL LETTER O WITH GRAVE") + (9 73 "アキュートアクセント付きO小文字,LATIN SMALL LETTER O WITH ACUTE") + (9 74 "サーカムフレックスアクセント付きO小文字,LATIN SMALL LETTER O WITH CIRCUMFLEX") + (9 75 "チルド付きO小文字,LATIN SMALL LETTER O WITH TILDE") + (9 76 "ダイエレシス付きO小文字,LATIN SMALL LETTER O WITH DIAERESIS") + (9 77 "ストローク付きO小文字,LATIN SMALL LETTER O WITH STROKE") + (9 78 "グレーブアクセント付きU小文字,LATIN SMALL LETTER U WITH GRAVE") + (9 79 "アキュートアクセント付きU小文字,LATIN SMALL LETTER U WITH ACUTE") + (9 80 "サーカムフレックスアクセント付きU小文字,LATIN SMALL LETTER U WITH CIRCUMFLEX") + (9 81 "ダイエレシス付きU小文字,LATIN SMALL LETTER U WITH DIAERESIS") + (9 82 "アキュートアクセント付きY小文字,LATIN SMALL LETTER Y WITH ACUTE") + (9 83 "アイスランド語THORN小文字,LATIN SMALL LETTER THORN(Icelandic)") + (9 84 "ダイエレシス付きY小文字,LATIN SMALL LETTER Y WITH DIAERESIS") + (9 85 "マクロン付きA,LATIN CAPITAL LETTER A WITH MACRON") + (9 86 "マクロン付きI,LATIN CAPITAL LETTER I WITH MACRON") + (9 87 "マクロン付きU,LATIN CAPITAL LETTER U WITH MACRON") + (9 88 "マクロン付きE,LATIN CAPITAL LETTER E WITH MACRON") + (9 89 "マクロン付きO,LATIN CAPITAL LETTER O WITH MACRON") + (9 90 "マクロン付きA小文字,LATIN SMALL LETTER A WITH MACRON") + (9 91 "マクロン付きI小文字,LATIN SMALL LETTER I WITH MACRON") + (9 92 "マクロン付きU小文字,LATIN SMALL LETTER U WITH MACRON") + (9 93 "マクロン付きE小文字,LATIN SMALL LETTER E WITH MACRON") + (9 94 "マクロン付きO小文字,LATIN SMALL LETTER O WITH MACRON") + (10 1 "オゴネク付きA,LATIN CAPITAL LETTER A WITH OGONEK") + (10 2 "ブリーブ,BREVE") + (10 3 "ストローク付きL,LATIN CAPITAL LETTER L WITH STROKE") + (10 4 "キャロン付きL,LATIN CAPITAL LETTER L WITH CARON") + (10 5 "アキュートアクセント付きS,LATIN CAPITAL LETTER S WITH ACUTE") + (10 6 "キャロン付きS,LATIN CAPITAL LETTER S WITH CARON") + (10 7 "セディラ付きS,LATIN CAPITAL LETTER S WITH CEDILLA") + (10 8 "キャロン付きT,LATIN CAPITAL LETTER T WITH CARON") + (10 9 "アキュートアクセント付きZ,LATIN CAPITAL LETTER Z WITH ACUTE") + (10 10 "キャロン付きZ,LATIN CAPITAL LETTER Z WITH CARON") + (10 11 "上ドット付きZ,LATIN CAPITAL LETTER Z WITH DOT ABOVE") + (10 12 "オゴネク付きA小文字,LATIN SMALL LETTER A WITH OGONEK") + (10 13 "オゴネク,OGONEK") + (10 14 "ストローク付きL小文字,LATIN SMALL LETTER L WITH STROKE") + (10 15 "キャロン付きL小文字,LATIN SMALL LETTER L WITH CARON") + (10 16 "アキュートアクセント付きS小文字,LATIN SMALL LETTER S WITH ACUTE") + (10 17 "キャロン,CARON(Mandarin Chinese third tone)") + (10 18 "キャロン付きS小文字,LATIN SMALL LETTER S WITH CARON") + (10 19 "セディラ付きS小文字,LATIN SMALL LETTER S WITH CEDILLA") + (10 20 "キャロン付きT小文字,LATIN SMALL LETTER T WITH CARON") + (10 21 "アキュートアクセント付きZ小文字,LATIN SMALL LETTER Z WITH ACUTE") + (10 22 "ダブルアキュートアクセント,DOUBLE ACUTE ACCENT") + (10 23 "キャロン付きZ小文字,LATIN SMALL LETTER Z WITH CARON") + (10 24 "上ドット付きZ小文字,LATIN SMALL LETTER Z WITH DOT ABOVE") + (10 25 "アキュートアクセント付きR,LATIN CAPITAL LETTER R WITH ACUTE") + (10 26 "ブリーブ付きA,LATIN CAPITAL LETTER A WITH BREVE") + (10 27 "アキュートアクセント付きL,LATIN CAPITAL LETTER L WITH ACUTE") + (10 28 "アキュートアクセント付きC,LATIN CAPITAL LETTER C WITH ACUTE") + (10 29 "キャロン付きC,LATIN CAPITAL LETTER C WITH CARON") + (10 30 "オゴネク付きE,LATIN CAPITAL LETTER E WITH OGONEK") + (10 31 "キャロン付きE,LATIN CAPITAL LETTER E WITH CARON") + (10 32 "キャロン付きD,LATIN CAPITAL LETTER D WITH CARON") + (10 33 "アキュートアクセント付きN,LATIN CAPITAL LETTER N WITH ACUTE") + (10 34 "キャロン付きN,LATIN CAPITAL LETTER N WITH CARON") + (10 35 "ダブルアキュートアクセント付きO,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE") + (10 36 "キャロン付きR,LATIN CAPITAL LETTER R WITH CARON") + (10 37 "上リング付きU,LATIN CAPITAL LETTER U WITH RING ABOVE") + (10 38 "ダブルアキュートアクセント付きU,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE") + (10 39 "セディラ付きT,LATIN CAPITAL LETTER T WITH CEDILLA") + (10 40 "アキュートアクセント付きR小文字,LATIN SMALL LETTER R WITH ACUTE") + (10 41 "ブリーブ付きA小文字,LATIN SMALL LETTER A WITH BREVE") + (10 42 "アキュートアクセント付きL小文字,LATIN SMALL LETTER L WITH ACUTE") + (10 43 "アキュートアクセント付きC小文字,LATIN SMALL LETTER C WITH ACUTE") + (10 44 "キャロン付きC小文字,LATIN SMALL LETTER C WITH CARON") + (10 45 "オゴネク付きE小文字,LATIN SMALL LETTER E WITH OGONEK") + (10 46 "キャロン付きE小文字,LATIN SMALL LETTER E WITH CARON") + (10 47 "キャロン付きD小文字,LATIN SMALL LETTER D WITH CARON") + (10 48 "ストローク付きD小文字,LATIN SMALL LETTER D WITH STROKE") + (10 49 "アキュートアクセント付きN小文字,LATIN SMALL LETTER N WITH ACUTE") + (10 50 "キャロン付きN小文字,LATIN SMALL LETTER N WITH CARON") + (10 51 "ダブルアキュートアクセント付きO小文字,LATIN SMALL LETTER O WITH DOUBLE ACUTE") + (10 52 "キャロン付きR小文字,LATIN SMALL LETTER R WITH CARON") + (10 53 "上リング付きU小文字,LATIN SMALL LETTER U WITH RING ABOVE") + (10 54 "ダブルアキュートアクセント付きU小文字,LATIN SMALL LETTER U WITH DOUBLE ACUTE") + (10 55 "セディラ付きT小文字,LATIN SMALL LETTER T WITH CEDILLA") + (10 56 "上ドット,DOT ABOVE(Mandarin Chinese light tone)") + (10 57 "サーカムフレックスアクセント付きC,LATIN CAPITAL LETTER C WITH CIRCUMFLEX") + (10 58 "サーカムフレックスアクセント付きG,LATIN CAPITAL LETTER G WITH CIRCUMFLEX") + (10 59 "サーカムフレックスアクセント付きH,LATIN CAPITAL LETTER H WITH CIRCUMFLEX") + (10 60 "サーカムフレックスアクセント付きJ,LATIN CAPITAL LETTER J WITH CIRCUMFLEX") + (10 61 "サーカムフレックスアクセント付きS,LATIN CAPITAL LETTER S WITH CIRCUMFLEX") + (10 62 "ブリーブ付きU,LATIN CAPITAL LETTER U WITH BREVE") + (10 63 "サーカムフレックスアクセント付きC小文字,LATIN SMALL LETTER C WITH CIRCUMFLEX") + (10 64 "サーカムフレックスアクセント付きG小文字,LATIN SMALL LETTER G WITH CIRCUMFLEX") + (10 65 "サーカムフレックスアクセント付きH小文字,LATIN SMALL LETTER H WITH CIRCUMFLEX") + (10 66 "サーカムフレックスアクセント付きJ小文字,LATIN SMALL LETTER J WITH CIRCUMFLEX") + (10 67 "サーカムフレックスアクセント付きS小文字,LATIN SMALL LETTER S WITH CIRCUMFLEX") + (10 68 "ブリーブ付きU小文字,LATIN SMALL LETTER U WITH BREVE") + (10 69 "フック付きM小文字,有声唇歯鼻音,LATIN SMALL LETTER M WITH HOOK") + (10 70 "フック付きV小文字,有声唇歯接近音,LATIN SMALL LETTER V WITH HOOK") + (10 71 "フィッシュフック付きR小文字,有声歯茎弾き音,LATIN SMALL LETTER R WITH FISHHOOK") + (10 72 "ESH小文字,無声後部歯茎摩擦音,LATIN SMALL LETTER ESH") + (10 73 "EZH小文字,有声後部歯茎摩擦音,LATIN SMALL LETTER EZH") + (10 74 "ベルト付きL小文字,無声歯茎側面摩擦音,LATIN SMALL LETTER L WITH BELT") + (10 75 "LEZH小文字,有声歯茎側面摩擦音,LATIN SMALL LETTER LEZH") + (10 76 "ターンドR小文字,無声歯茎接近音,LATIN SMALL LETTER TURNED R") + (10 77 "レトロフレックスフック付きT小文字,無声そり舌破裂音,LATIN SMALL LETTER T WITH RETROFLEX HOOK") + (10 78 "テール付きD小文字,有声そり舌破裂音,LATIN SMALL LETTER D WITH TAIL") + (10 79 "レトロフレックスフック付きN小文字,有声そり舌鼻音,LATIN SMALL LETTER N WITH RETROFLEX HOOK") + (10 80 "テール付きR小文字,有声そり舌弾き音,LATIN SMALL LETTER R WITH TAIL") + (10 81 "フック付きS小文字,無声そり舌摩擦音,LATIN SMALL LETTER S WITH HOOK") + (10 82 "レトロフレックスフック付きZ小文字,有声そり舌摩擦音,LATIN SMALL LETTER Z WITH RETROFLEX HOOK") + (10 83 "フック付きターンドR小文字,有声そり舌接近音,LATIN SMALL LETTER TURNED R WITH HOOK") + (10 84 "レトロフレックスフック付きL小文字,有声そり舌側面接近音,LATIN SMALL LETTER L WITH RETROFLEX HOOK") + (10 85 "ストローク付きドットなしJ小文字,有声硬口蓋破裂音,LATIN SMALL LETTER DOTLESS J WITH STROKE") + (10 86 "左フック付きN小文字,有声硬口蓋鼻音,LATIN SMALL LETTER N WITH LEFT HOOK") + (10 87 "クロスドテール付きJ小文字,有声硬口蓋摩擦音,LATIN SMALL LETTER J WITH CROSSED-TAIL") + (10 88 "ターンドY小文字,有声硬口蓋側面接近音,LATIN SMALL LETTER TURNED Y") + (10 89 "スクリプトG小文字,有声軟口蓋破裂音,LATIN SMALL LETTER SCRIPT G") + (10 90 "ENG小文字,有声軟口蓋鼻音,LATIN SMALL LETTER ENG(Sami)") + (10 91 "ロングレッグ付きターンドM小文字,有声軟口蓋接近音,LATIN SMALL LETTER TURNED M WITH LONG LEG") + (10 92 "インバーテッドRスモールキャピタル,有声口蓋垂摩擦音,LATIN LETTER SMALL CAPITAL INVERTED R") + (10 93 "ストローク付きH小文字,無声咽頭摩擦音,LATIN SMALL LETTER H WITH STROKE") + (10 94 "リバースドグロッタルストップ,有声咽頭摩擦音,LATIN LETTER PHARYNGEAL VOICED FRICATIVE") + (11 1 "グロッタルストップ,無声声門破裂音,LATIN LETTER GLOTTAL STOP") + (11 2 "フック付きH小文字,有声声門摩擦音,LATIN SMALL LETTER H WITH HOOK") + (11 3 "両唇吸着音,LATIN LETTER BILABIAL CLICK") + (11 4 "硬口蓋歯茎吸着音,LATIN LETTER ALVEOLAR CLICK") + (11 5 "フック付きB小文字,有声両唇内破音,LATIN SMALL LETTER B WITH HOOK") + (11 6 "フック付きD小文字,有声歯茎内破音,LATIN SMALL LETTER D WITH HOOK") + (11 7 "フックとストローク付きドットなしJ小文字,有声硬口蓋内破音,LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK") + (11 8 "フック付きG小文字,有声軟口蓋内破音,LATIN SMALL LETTER G WITH HOOK") + (11 9 "フック付きG大文字,有声口蓋垂内破音,LATIN CAPITAL LETTER G WITH HOOK") + (11 10 "リガチャOE小文字,円唇前舌広・中段母音,LATIN SMALL LIGATURE OE") + (11 11 "リガチャOE大文字,円唇前舌広母音,LATIN CAPITAL LIGATURE OE") + (11 12 "ストローク付きI小文字,非円唇中舌狭母音,LATIN SMALL LETTER I WITH STROKE") + (11 13 "バー付きU小文字,円唇中舌狭母音,LATIN SMALL LETTER U BAR") + (11 14 "リバースドE小文字,非円唇中舌狭・中段母音,LATIN SMALL LETTER REVERSED E") + (11 15 "バー付きO小文字,円唇中舌狭・中段母音,LATIN SMALL LETTER BARRED O") + (11 16 "SCHWA小文字,非円唇中舌中央母音,LATIN SMALL LETTER SCHWA") + (11 17 "リバースドオープンE小文字,非円唇中舌広・中段母音,LATIN SMALL LETTER REVERSED OPEN E") + (11 18 "クローズドリバースドオープンE小文字,円唇中舌広・中段母音,LATIN SMALL LETTER CLOSED REVERSED OPEN E") + (11 19 "ターンドA小文字,非円唇中舌狭めの広母音,LATIN SMALL LETTER TURNED A") + (11 20 "ターンドM小文字,非円唇後舌狭母音,LATIN SMALL LETTER TURNED M") + (11 21 "UPSILON小文字,円唇後舌広めの狭母音,LATIN SMALL LETTER UPSILON") + (11 22 "ベビーガンマ,非円唇後舌狭中段母音,LATIN SMALL LETTER RAMS HORN") + (11 23 "ターンドV小文字,非円唇後舌広・中段母音,LATIN SMALL LETTER TURNED V") + (11 24 "オープンO小文字,円唇後舌広・中段母音,LATIN SMALL LETTER OPEN O") + (11 25 "スクリプトA小文字,非円唇後舌広母音,LATIN SMALL LETTER ALPHA") + (11 26 "ターンドALPHA小文字,円唇後舌広母音,LATIN SMALL LETTER TURNED ALPHA") + (11 27 "ターンドW小文字,無声両唇・軟口蓋摩擦音,LATIN SMALL LETTER TURNED W") + (11 28 "ターンドH小文字,有声両唇・硬口蓋接近音,LATIN SMALL LETTER TURNED H") + (11 29 "ストローク付きリバースドグロッタルストップ,有声咽頭蓋摩擦音,LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE") + (11 30 "ストローク付きグロッタルストップ,咽頭蓋破裂音,LATIN LETTER GLOTTAL STOP WITH STROKE") + (11 31 "カール付きC小文字,歯茎・硬口蓋摩擦音,LATIN SMALL LETTER C WITH CURL") + (11 32 "カール付きZ小文字,歯茎・硬口蓋摩擦音,LATIN SMALL LETTER Z WITH CURL") + (11 33 "ロングレッグ付きターンドR小文字,歯茎側面弾き音,LATIN SMALL LETTER TURNED R WITH LONG LEG") + (11 34 "フック付きHENG小文字,無声後部歯茎軟口蓋摩擦音,LATIN SMALL LETTER HENG WITH HOOK") + (11 35 "フック付きSCHWA,LATIN SMALL LETTER SCHWA WITH HOOK") + (11 36 "グレーブアクセント付きAE小文字,[LATIN SMALL LETTER AE WITH GRAVE]") + (11 37 "アキュートアクセント付きAE小文字,LATIN SMALL LETTER AE WITH ACUTE") + (11 38 "グレーブアクセント付きスクリプトA小文字,GREEK SMALL LETTER ALPHA WITH VARIA") + (11 39 "アキュートアクセント付きスクリプトA小文字,GREEK SMALL LETTER ALPHA WITH OXIA") + (11 40 "グレーブアクセント付きオープンO小文字,[LATIN SMALL LETTER OPEN O WITH GRAVE]") + (11 41 "アキュートアクセント付きオープンO小文字,[LATIN SMALL LETTER OPEN O WITH ACUTE]") + (11 42 "グレーブアクセント付きターンドV小文字,[LATIN SMALL LETTER TURNED V WITH GRAVE]") + (11 43 "アキュートアクセント付きターンドV小文字,[LATIN SMALL LETTER TURNED V WITH ACUTE]") + (11 44 "グレーブアクセント付きSCHWA小文字,[LATIN SMALL LETTER SCHWA WITH GRAVE]") + (11 45 "アキュートアクセント付きSCHWA小文字,[LATIN SMALL LETTER SCHWA WITH ACUTE]") + (11 46 "グレーブアクセントとフック付きSCHWA小文字,[LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE]") + (11 47 "アキュートアクセントとフック付きSCHWA小文字,[LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE]") + (11 48 "グレーブアクセント付きEPSILON小文字,GREEK SMALL LETTER EPSILON WITH VARIA") + (11 49 "アキュートアクセント付きEPSILON小文字,GREEK SMALL LETTER EPSILON WITH OXIA") + (11 50 "ダブルインバーテッドブリーブ(合成可能),破擦音又は二重調音記号,COMBINING DOUBLE INVERTED BREVE") + (11 51 "小縦線,第一強勢,MODIFIER LETTER VERTICAL LINE") + (11 52 "下小縦線,第二強勢,MODIFIER LETTER LOW VERTICAL LINE") + (11 53 "長,MODIFIER LETTER TRIANGULAR COLON") + (11 54 "半長,MODIFIER LETTER HALF TRIANGULAR COLON") + (11 55 "ブリーブ(合成可能),超短,COMBINING BREVE(Vrachy)") + (11 56 "連結している,UNDERTIE(Enotikon)") + (11 57 "ダブルアキュートアクセント(合成可能),声調超高,COMBINING DOUBLE ACUTE ACCENT") + (11 58 "アキュートアクセント(合成可能),声調高,COMBINING ACUTE ACCENT(Oxia)") + (11 59 "マクロン(合成可能),声調中,COMBINING MACRON") + (11 60 "グレーブアクセント(合成可能),声調低,COMBINING GRAVE ACCENT(Varia)") + (11 61 "ダブルグレーブアクセント(合成可能),声調超低,COMBINING DOUBLE GRAVE ACCENT") + (11 62 "キャロン(合成可能),声調上昇調,COMBINING CARON") + (11 63 "サーカムフレックスアクセント(合成可能),声調下降調,COMBINING CIRCUMFLEX ACCENT") + (11 64 "声調記号超高,MODIFIER LETTER EXTRA-HIGH TONE BAR") + (11 65 "声調記号高,MODIFIER LETTER HIGH TONE BAR") + (11 66 "声調記号中,MODIFIER LETTER MID TONE BAR") + (11 67 "声調記号低,MODIFIER LETTER LOW TONE BAR") + (11 68 "声調記号超低,MODIFIER LETTER EXTRA-LOW TONE BAR") + (11 69 "声調記号上昇調,[RISING SYMBOL]") + (11 70 "声調記号下降調,[FALLING SYMBOL]") + (11 71 "下リング(合成可能),無声,COMBINING RING BELOW") + (11 72 "下キャロン(合成可能),有声,COMBINING CARON BELOW") + (11 73 "下ライトハーフリング(合成可能),より円唇性の強い,COMBINING RIGHT HALF RING BELOW") + (11 74 "下レフトハーフリング(合成可能),より円唇性の弱い,COMBINING LEFT HALF RING BELOW") + (11 75 "下プラス(合成可能),前寄りの,COMBINING PLUS SIGN BELOW") + (11 76 "下マイナス(合成可能),後ろ寄りの,COMBINING MINUS SIGN BELOW") + (11 77 "ダイエレシス(合成可能),中舌母音化,COMBINING DIAERESIS(Dialytika)") + (11 78 "上X(合成可能),中段中舌母音化,COMBINING X ABOVE") + (11 79 "下縦線(合成可能),音節主音的,COMBINING VERTICAL LINE BELOW") + (11 80 "下インバーテッドブリーブ(合成可能),音節副音的,COMBINING INVERTED BREVE BELOW") + (11 81 "rの音色,MODIFIER LETTER RHOTIC HOOK") + (11 82 "下ダイエレシス(合成可能),かすれ音,COMBINING DIAERESIS BELOW") + (11 83 "下チルド(合成可能),きしみ音,COMBINING TILDE BELOW") + (11 84 "下シーガル(合成可能),舌先端唇音,COMBINING SEAGULL BELOW") + (11 85 "チルドオーバレイ(合成可能),軟口蓋化あるいは咽頭化,COMBINING TILDE OVERLAY") + (11 86 "下アップタック(合成可能),高舌の,COMBINING UP TACK BELOW") + (11 87 "下ダウンタック(合成可能),低舌の,COMBINING DOWN TACK BELOW") + (11 88 "下レフトタック(合成可能),前方舌根性,COMBINING LEFT TACK BELOW") + (11 89 "下ライトタック(合成可能),後方舌根性,COMBINING RIGHT TACK BELOW") + (11 90 "下ブリッジ(合成可能),歯,COMBINING BRIDGE BELOW") + (11 91 "下インバーテッドブリッジ(合成可能),舌先的,COMBINING INVERTED BRIDGE BELOW") + (11 92 "下スクエア(合成可能),舌端的,COMBINING SQUARE BELOW") + (11 93 "チルド(合成可能),鼻音化,COMBINING TILDE") + (11 94 "上レフトアングル(合成可能),開放が聞こえない,COMBINING LEFT ANGLE ABOVE") + (12 1 "黒丸1,DINGBAT NEGATIVE CIRCLED DIGIT ONE") + (12 2 "黒丸2,DINGBAT NEGATIVE CIRCLED DIGIT TWO") + (12 3 "黒丸3,DINGBAT NEGATIVE CIRCLED DIGIT THREE") + (12 4 "黒丸4,DINGBAT NEGATIVE CIRCLED DIGIT FOUR") + (12 5 "黒丸5,DINGBAT NEGATIVE CIRCLED DIGIT FIVE") + (12 6 "黒丸6,DINGBAT NEGATIVE CIRCLED DIGIT SIX") + (12 7 "黒丸7,DINGBAT NEGATIVE CIRCLED DIGIT SEVEN") + (12 8 "黒丸8,DINGBAT NEGATIVE CIRCLED DIGIT EIGHT") + (12 9 "黒丸9,DINGBAT NEGATIVE CIRCLED DIGIT NINE") + (12 10 "黒丸10,DINGBAT NEGATIVE CIRCLED NUMBER TEN") + (12 11 "黒丸11,NEGATIVE CIRCLED NUMBER ELEVEN") + (12 12 "黒丸12,NEGATIVE CIRCLED NUMBER TWELVE") + (12 13 "黒丸13,NEGATIVE CIRCLED NUMBER THIRTEEN") + (12 14 "黒丸14,NEGATIVE CIRCLED NUMBER FOURTEEN") + (12 15 "黒丸15,NEGATIVE CIRCLED NUMBER FIFTEEN") + (12 16 "黒丸16,NEGATIVE CIRCLED NUMBER SIXTEEN") + (12 17 "黒丸17,NEGATIVE CIRCLED NUMBER SEVENTEEN") + (12 18 "黒丸18,NEGATIVE CIRCLED NUMBER EIGHTEEN") + (12 19 "黒丸19,NEGATIVE CIRCLED NUMBER NINETEEN") + (12 20 "黒丸20,NEGATIVE CIRCLED NUMBER TWENTY") + (12 21 "ローマ数字1小文字,SMALL ROMAN NUMERAL ONE") + (12 22 "ローマ数字2小文字,SMALL ROMAN NUMERAL TWO") + (12 23 "ローマ数字3小文字,SMALL ROMAN NUMERAL THREE") + (12 24 "ローマ数字4小文字,SMALL ROMAN NUMERAL FOUR") + (12 25 "ローマ数字5小文字,SMALL ROMAN NUMERAL FIVE") + (12 26 "ローマ数字6小文字,SMALL ROMAN NUMERAL SIX") + (12 27 "ローマ数字7小文字,SMALL ROMAN NUMERAL SEVEN") + (12 28 "ローマ数字8小文字,SMALL ROMAN NUMERAL EIGHT") + (12 29 "ローマ数字9小文字,SMALL ROMAN NUMERAL NINE") + (12 30 "ローマ数字10小文字,SMALL ROMAN NUMERAL TEN") + (12 31 "ローマ数字11小文字,SMALL ROMAN NUMERAL ELEVEN") + (12 32 "ローマ数字12小文字,SMALL ROMAN NUMERAL TWELVE") + (12 33 "丸A小文字,CIRCLED LATIN SMALL LETTER A") + (12 34 "丸B小文字,CIRCLED LATIN SMALL LETTER B") + (12 35 "丸C小文字,CIRCLED LATIN SMALL LETTER C") + (12 36 "丸D小文字,CIRCLED LATIN SMALL LETTER D") + (12 37 "丸E小文字,CIRCLED LATIN SMALL LETTER E") + (12 38 "丸F小文字,CIRCLED LATIN SMALL LETTER F") + (12 39 "丸G小文字,CIRCLED LATIN SMALL LETTER G") + (12 40 "丸H小文字,CIRCLED LATIN SMALL LETTER H") + (12 41 "丸I小文字,CIRCLED LATIN SMALL LETTER I") + (12 42 "丸J小文字,CIRCLED LATIN SMALL LETTER J") + (12 43 "丸K小文字,CIRCLED LATIN SMALL LETTER K") + (12 44 "丸L小文字,CIRCLED LATIN SMALL LETTER L") + (12 45 "丸M小文字,CIRCLED LATIN SMALL LETTER M") + (12 46 "丸N小文字,CIRCLED LATIN SMALL LETTER N") + (12 47 "丸O小文字,CIRCLED LATIN SMALL LETTER O") + (12 48 "丸P小文字,CIRCLED LATIN SMALL LETTER P") + (12 49 "丸Q小文字,CIRCLED LATIN SMALL LETTER Q") + (12 50 "丸R小文字,CIRCLED LATIN SMALL LETTER R") + (12 51 "丸S小文字,CIRCLED LATIN SMALL LETTER S") + (12 52 "丸T小文字,CIRCLED LATIN SMALL LETTER T") + (12 53 "丸U小文字,CIRCLED LATIN SMALL LETTER U") + (12 54 "丸V小文字,CIRCLED LATIN SMALL LETTER V") + (12 55 "丸W小文字,CIRCLED LATIN SMALL LETTER W") + (12 56 "丸X小文字,CIRCLED LATIN SMALL LETTER X") + (12 57 "丸Y小文字,CIRCLED LATIN SMALL LETTER Y") + (12 58 "丸Z小文字,CIRCLED LATIN SMALL LETTER Z") + (12 59 "丸ア,CIRCLED KATAKANA A") + (12 60 "丸イ,CIRCLED KATAKANA I") + (12 61 "丸ウ,CIRCLED KATAKANA U") + (12 62 "丸エ,CIRCLED KATAKANA E") + (12 63 "丸オ,CIRCLED KATAKANA O") + (12 64 "丸カ,CIRCLED KATAKANA KA") + (12 65 "丸キ,CIRCLED KATAKANA KI") + (12 66 "丸ク,CIRCLED KATAKANA KU") + (12 67 "丸ケ,CIRCLED KATAKANA KE") + (12 68 "丸コ,CIRCLED KATAKANA KO") + (12 69 "丸サ,CIRCLED KATAKANA SA") + (12 70 "丸シ,CIRCLED KATAKANA SI") + (12 71 "丸ス,CIRCLED KATAKANA SU") + (12 72 "丸セ,CIRCLED KATAKANA SE") + (12 73 "丸ソ,CIRCLED KATAKANA SO") + (12 74 "丸タ,CIRCLED KATAKANA TA") + (12 75 "丸チ,CIRCLED KATAKANA TI") + (12 76 "丸ツ,CIRCLED KATAKANA TU") + (12 77 "丸テ,CIRCLED KATAKANA TE") + (12 78 "丸ト,CIRCLED KATAKANA TO") + (12 79 "丸ロ,CIRCLED KATAKANA RO") + (12 80 "丸ハ,CIRCLED KATAKANA HA") + (12 81 "丸ニ,CIRCLED KATAKANA NI") + (12 82 "丸ホ,CIRCLED KATAKANA HO") + (12 83 "丸ヘ,CIRCLED KATAKANA HE") + (12 93 "ダブルアステ,TWO ASTERISKS ALIGNED VERTICALLY") + (12 94 "アステリズム,ASTERISM") + (13 1 "丸1,CIRCLED DIGIT ONE") + (13 2 "丸2,CIRCLED DIGIT TWO") + (13 3 "丸3,CIRCLED DIGIT THREE") + (13 4 "丸4,CIRCLED DIGIT FOUR") + (13 5 "丸5,CIRCLED DIGIT FIVE") + (13 6 "丸6,CIRCLED DIGIT SIX") + (13 7 "丸7,CIRCLED DIGIT SEVEN") + (13 8 "丸8,CIRCLED DIGIT EIGHT") + (13 9 "丸9,CIRCLED DIGIT NINE") + (13 10 "丸10,CIRCLED NUMBER TEN") + (13 11 "丸11,CIRCLED NUMBER ELEVEN") + (13 12 "丸12,CIRCLED NUMBER TWELVE") + (13 13 "丸13,CIRCLED NUMBER THIRTEEN") + (13 14 "丸14,CIRCLED NUMBER FOURTEEN") + (13 15 "丸15,CIRCLED NUMBER FIFTEEN") + (13 16 "丸16,CIRCLED NUMBER SIXTEEN") + (13 17 "丸17,CIRCLED NUMBER SEVENTEEN") + (13 18 "丸18,CIRCLED NUMBER EIGHTEEN") + (13 19 "丸19,CIRCLED NUMBER NINETEEN") + (13 20 "丸20,CIRCLED NUMBER TWENTY") + (13 21 "ローマ数字1,ROMAN NUMERAL ONE") + (13 22 "ローマ数字2,ROMAN NUMERAL TWO") + (13 23 "ローマ数字3,ROMAN NUMERAL THREE") + (13 24 "ローマ数字4,ROMAN NUMERAL FOUR") + (13 25 "ローマ数字5,ROMAN NUMERAL FIVE") + (13 26 "ローマ数字6,ROMAN NUMERAL SIX") + (13 27 "ローマ数字7,ROMAN NUMERAL SEVEN") + (13 28 "ローマ数字8,ROMAN NUMERAL EIGHT") + (13 29 "ローマ数字9,ROMAN NUMERAL NINE") + (13 30 "ローマ数字10,ROMAN NUMERAL TEN") + (13 31 "ローマ数字11,ROMAN NUMERAL ELEVEN") + (13 32 "全角ミリ,SQUARE MIRI") + (13 33 "全角キロ,SQUARE KIRO") + (13 34 "全角センチ,SQUARE SENTI") + (13 35 "全角メートル,SQUARE MEETORU") + (13 36 "全角グラム,SQUARE GURAMU") + (13 37 "全角トン,SQUARE TON") + (13 38 "全角アール,SQUARE AARU") + (13 39 "全角ヘクタール,SQUARE HEKUTAARU") + (13 40 "全角リットル,SQUARE RITTORU") + (13 41 "全角ワット,SQUARE WATTO") + (13 42 "全角カロリー,SQUARE KARORII") + (13 43 "全角ドル,SQUARE DORU") + (13 44 "全角セント,SQUARE SENTO") + (13 45 "全角パーセント,SQUARE PAASENTO") + (13 46 "全角ミリバール,SQUARE MIRIBAARU") + (13 47 "全角ページ,SQUARE PEEZI") + (13 48 "全角MM,SQUARE MM") + (13 49 "全角CM,SQUARE CM") + (13 50 "全角KM,SQUARE KM") + (13 51 "全角MG,SQUARE MG") + (13 52 "全角KG,SQUARE KG") + (13 53 "全角CC,SQUARE CC") + (13 54 "全角M2,SQUARE M SQUARED") + (13 55 "ローマ数字12,ROMAN NUMERAL TWELVE") + (13 63 "全角元号平成,SQUARE ERA NAME HEISEI") + (13 64 "始めダブルミニュート,REVERSED DOUBLE PRIME QUOTATION MARK") + (13 65 "終わりダブルミニュート,LOW DOUBLE PRIME QUOTATION MARK") + (13 66 "全角NO,NUMERO SIGN") + (13 67 "全角KK,SQUARE KK") + (13 68 "全角TEL,TELEPHONE SIGN") + (13 69 "丸付き上,CIRCLED IDEOGRAPH HIGH") + (13 70 "丸付き中,CIRCLED IDEOGRAPH CENTRE") + (13 71 "丸付き下,CIRCLED IDEOGRAPH LOW") + (13 72 "丸付き左,CIRCLED IDEOGRAPH LEFT") + (13 73 "丸付き右,CIRCLED IDEOGRAPH RIGHT") + (13 74 "全角括弧付き株,PARENTHESIZED IDEOGRAPH STOCK") + (13 75 "全角括弧付き有,PARENTHESIZED IDEOGRAPH HAVE") + (13 76 "全角括弧付き代,PARENTHESIZED IDEOGRAPH REPRESENT") + (13 77 "全角元号明治,SQUARE ERA NAME MEIZI") + (13 78 "全角元号大正,SQUARE ERA NAME TAISYOU") + (13 79 "全角元号昭和,SQUARE ERA NAME SYOUWA") + (13 83 "経路積分記号,CONTOUR INTEGRAL") + (13 88 "ファクトリアル,直角,RIGHT ANGLE") + (13 89 "直角三角,RIGHT TRIANGLE") + (13 93 "四つ菱,BLACK DIAMOND MINUS WHITE X") + (13 94 "指示マーク,WHITE RIGHT POINTING INDEX") + + (14 1 "2003追") + (15 94 "2003追加") + (47 52 "2003追加") + (47 94 "2003追加") + (84 7 "2003追加") + (94 90 "2003追加") + (94 91 "2003追加") + (94 92 "2003追加") + (94 93 "2003追加") + (94 94 "2003追加")))) (dolist (x l) (aset skk-tankan-annotation-table (make-char 'japanese-jisx0213-1 (+ 32 (car x)) (+ 32 (nth 1 x))) diff --git a/skk-tut.el b/skk-tut.el index b5239e5e..123f147f 100644 --- a/skk-tut.el +++ b/skk-tut.el @@ -54,16 +54,16 @@ (skk-create-file . around) (skk-save-jisyo-original . around) (skk-get-jisyo-buffer . around)) - "SKK $B%A%e!<%H%j%"%k$G(B advice $B$,IU$1$i$l$k4X?t$H(B advice class $B$N%(!<%j%9%H!#(B") + "SKK チュートリアルで advice が付けられる関数と advice class のエーリスト。") -(defvar skktut-question-numbers nil "SKK $B%A%e!<%H%j%"%k$NLdBj?t!#(B") +(defvar skktut-question-numbers nil "SKK チュートリアルの問題数。") (defconst skktut-tut-jisyo "~/skk-tut-jisyo" - "SKK $B%A%e!<%H%j%"%kMQ$N<-=q!#(B") + "SKK チュートリアル用の辞書。") (defconst skktut-init-variables-alist '((skk-cursor-abbrev-color . "royalblue") - (skk-abbrev-mode-string . " a$B$"(B") + (skk-abbrev-mode-string . " aあ") (skk-allow-spaces-newlines-and-tabs . t) (skk-auto-fill-mode-hook . nil) (skk-auto-insert-paren . nil) @@ -95,14 +95,14 @@ . (if (skk-tut-nicola-p) '("\C-p") '("\C-p" "x"))) - (skk-hiragana-mode-string . " $B$+$J(B") + (skk-hiragana-mode-string . " かな") (skk-init-file . "") (skk-input-by-code-menu-keys1 . '(?a ?s ?d ?f ?g ?h ?q ?w ?e ?r ?t ?y)) (skk-input-by-code-menu-keys2 . '(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?t ?y ?u)) (skk-japanese-message-and-error . nil) (skk-cursor-jisx0208-latin-color . "gold") - (skk-jisx0208-latin-mode-string . " $BA41Q(B") + (skk-jisx0208-latin-mode-string . " 全英") (skk-jisx0208-latin-vector . skk-default-jisx0208-latin-vector) (skk-jisyo . "~/skk-tut-jisyo") (skk-jisyo-save-count . nil) @@ -116,12 +116,12 @@ "^h\\([bcdfghjklmnpqrstvwxz]\\)$" skk-prefix) (member (char-to-string (preceding-char)) - '("$B$*(B" "$B%*(B"))) - (cons '("$B%*(B" . "$B$*(B") (match-string 1 skk-prefix)))))) - (skk-katakana-mode-string . " $B%+%J(B") + '("お" "オ"))) + (cons '("オ" . "お") (match-string 1 skk-prefix)))))) + (skk-katakana-mode-string . " カナ") (skk-kcode-load-hook . nil) (skk-keep-record . nil) - (skk-kuten-touten-alist . '((jp . ("$B!#(B" . "$B!"(B")))) + (skk-kuten-touten-alist . '((jp . ("。" . "、")))) (skk-kutouten-type . 'jp) (skk-cursor-latin-color . "ivory4") (skk-latin-mode-string . " SKK") @@ -136,131 +136,131 @@ . 'skk-public-jisyo-has-entry-p-original) (skk-rom-kana-base-rule-list . - '(("a" nil ("$B%"(B" . "$B$"(B")) ("bb" "b" ("$B%C(B" . "$B$C(B")) - ("ba" nil ("$B%P(B" . "$B$P(B")) ("be" nil ("$B%Y(B" . "$B$Y(B")) - ("bi" nil ("$B%S(B" . "$B$S(B")) ("bo" nil ("$B%\(B" . "$B$\(B")) - ("bu" nil ("$B%V(B" . "$B$V(B")) ("bya" nil ("$B%S%c(B" . "$B$S$c(B")) - ("bye" nil ("$B%S%'(B" . "$B$S$'(B")) ("byi" nil ("$B%S%#(B" . "$B$S$#(B")) - ("byo" nil ("$B%S%g(B" . "$B$S$g(B")) ("byu" nil ("$B%S%e(B" . "$B$S$e(B")) - ("cc" "c" ("$B%C(B" . "$B$C(B")) ("cha" nil ("$B%A%c(B" . "$B$A$c(B")) - ("che" nil ("$B%A%'(B" . "$B$A$'(B")) ("chi" nil ("$B%A(B" . "$B$A(B")) - ("cho" nil ("$B%A%g(B" . "$B$A$g(B")) ("chu" nil ("$B%A%e(B" . "$B$A$e(B")) - ("cya" nil ("$B%A%c(B" . "$B$A$c(B")) ("cye" nil ("$B%A%'(B" . "$B$A$'(B")) - ("cyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("cyo" nil ("$B%A%g(B" . "$B$A$g(B")) - ("cyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("dd" "d" ("$B%C(B" . "$B$C(B")) - ("da" nil ("$B%@(B" . "$B$@(B")) ("de" nil ("$B%G(B" . "$B$G(B")) - ("dha" nil ("$B%G%c(B" . "$B$G$c(B")) ("dhe" nil ("$B%G%'(B" . "$B$G$'(B")) - ("dhi" nil ("$B%G%#(B" . "$B$G$#(B")) ("dho" nil ("$B%G%g(B" . "$B$G$g(B")) - ("dhu" nil ("$B%G%e(B" . "$B$G$e(B")) ("di" nil ("$B%B(B" . "$B$B(B")) - ("do" nil ("$B%I(B" . "$B$I(B")) ("du" nil ("$B%E(B" . "$B$E(B")) - ("dya" nil ("$B%B%c(B" . "$B$B$c(B")) ("dye" nil ("$B%B%'(B" . "$B$B$'(B")) - ("dyi" nil ("$B%B%#(B" . "$B$B$#(B")) ("dyo" nil ("$B%B%g(B" . "$B$B$g(B")) - ("dyu" nil ("$B%B%e(B" . "$B$B$e(B")) ("e" nil ("$B%((B" . "$B$((B")) - ("ff" "f" ("$B%C(B" . "$B$C(B")) ("fa" nil ("$B%U%!(B" . "$B$U$!(B")) - ("fe" nil ("$B%U%'(B" . "$B$U$'(B")) ("fi" nil ("$B%U%#(B" . "$B$U$#(B")) - ("fo" nil ("$B%U%)(B" . "$B$U$)(B")) ("fu" nil ("$B%U(B" . "$B$U(B")) - ("fya" nil ("$B%U%c(B" . "$B$U$c(B")) ("fye" nil ("$B%U%'(B" . "$B$U$'(B")) - ("fyi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fyo" nil ("$B%U%g(B" . "$B$U$g(B")) - ("fyu" nil ("$B%U%e(B" . "$B$U$e(B")) ("gg" "g" ("$B%C(B" . "$B$C(B")) - ("ga" nil ("$B%,(B" . "$B$,(B")) ("ge" nil ("$B%2(B" . "$B$2(B")) - ("gi" nil ("$B%.(B" . "$B$.(B")) ("go" nil ("$B%4(B" . "$B$4(B")) - ("gu" nil ("$B%0(B" . "$B$0(B")) ("gya" nil ("$B%.%c(B" . "$B$.$c(B")) - ("gye" nil ("$B%.%'(B" . "$B$.$'(B")) ("gyi" nil ("$B%.%#(B" . "$B$.$#(B")) - ("gyo" nil ("$B%.%g(B" . "$B$.$g(B")) ("gyu" nil ("$B%.%e(B" . "$B$.$e(B")) - ;;("h" "" ("$B%*(B" . "$B$*(B")) - ("ha" nil ("$B%O(B" . "$B$O(B")) ("he" nil ("$B%X(B" . "$B$X(B")) - ("hi" nil ("$B%R(B" . "$B$R(B")) ("ho" nil ("$B%[(B" . "$B$[(B")) - ("hu" nil ("$B%U(B" . "$B$U(B")) ("hya" nil ("$B%R%c(B" . "$B$R$c(B")) - ("hye" nil ("$B%R%'(B" . "$B$R$'(B")) ("hyi" nil ("$B%R%#(B" . "$B$R$#(B")) - ("hyo" nil ("$B%R%g(B" . "$B$R$g(B")) ("hyu" nil ("$B%R%e(B" . "$B$R$e(B")) - ("i" nil ("$B%$(B" . "$B$$(B")) ("jj" "j" ("$B%C(B" . "$B$C(B")) - ("ja" nil ("$B%8%c(B" . "$B$8$c(B")) ("je" nil ("$B%8%'(B" . "$B$8$'(B")) - ("ji" nil ("$B%8(B" . "$B$8(B")) ("jo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("ju" nil ("$B%8%e(B" . "$B$8$e(B")) ("jya" nil ("$B%8%c(B" . "$B$8$c(B")) - ("jye" nil ("$B%8%'(B" . "$B$8$'(B")) ("jyi" nil ("$B%8%#(B" . "$B$8$#(B")) - ("jyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("jyu" nil ("$B%8%e(B" . "$B$8$e(B")) - ("kk" "k" ("$B%C(B" . "$B$C(B")) ("ka" nil ("$B%+(B" . "$B$+(B")) - ("ke" nil ("$B%1(B" . "$B$1(B")) ("ki" nil ("$B%-(B" . "$B$-(B")) - ("ko" nil ("$B%3(B" . "$B$3(B")) ("ku" nil ("$B%/(B" . "$B$/(B")) - ("kya" nil ("$B%-%c(B" . "$B$-$c(B")) ("kye" nil ("$B%-%'(B" . "$B$-$'(B")) - ("kyi" nil ("$B%-%#(B" . "$B$-$#(B")) ("kyo" nil ("$B%-%g(B" . "$B$-$g(B")) - ("kyu" nil ("$B%-%e(B" . "$B$-$e(B")) ("mm" "c" ("$B%C(B" . "$B$C(B")) - ("ma" nil ("$B%^(B" . "$B$^(B")) ("me" nil ("$B%a(B" . "$B$a(B")) - ("mi" nil ("$B%_(B" . "$B$_(B")) ("mo" nil ("$B%b(B" . "$B$b(B")) - ("mu" nil ("$B%`(B" . "$B$`(B")) ("mya" nil ("$B%_%c(B" . "$B$_$c(B")) - ("mye" nil ("$B%_%'(B" . "$B$_$'(B")) ("myi" nil ("$B%_%#(B" . "$B$_$#(B")) - ("myo" nil ("$B%_%g(B" . "$B$_$g(B")) ("myu" nil ("$B%_%e(B" . "$B$_$e(B")) - ("n" nil ("$B%s(B" . "$B$s(B")) ("n'" nil ("$B%s(B" . "$B$s(B")) - ("na" nil ("$B%J(B" . "$B$J(B")) ("ne" nil ("$B%M(B" . "$B$M(B")) - ("ni" nil ("$B%K(B" . "$B$K(B")) ("nn" nil ("$B%s(B" . "$B$s(B")) - ("no" nil ("$B%N(B" . "$B$N(B")) ("nu" nil ("$B%L(B" . "$B$L(B")) - ("nya" nil ("$B%K%c(B" . "$B$K$c(B")) ("nye" nil ("$B%K%'(B" . "$B$K$'(B")) - ("nyi" nil ("$B%K%#(B" . "$B$K$#(B")) ("nyo" nil ("$B%K%g(B" . "$B$K$g(B")) - ("nyu" nil ("$B%K%e(B" . "$B$K$e(B")) ("o" nil ("$B%*(B" . "$B$*(B")) - ("pp" "p" ("$B%C(B" . "$B$C(B")) ("pa" nil ("$B%Q(B" . "$B$Q(B")) - ("pe" nil ("$B%Z(B" . "$B$Z(B")) ("pi" nil ("$B%T(B" . "$B$T(B")) - ("po" nil ("$B%](B" . "$B$](B")) ("pu" nil ("$B%W(B" . "$B$W(B")) - ("pya" nil ("$B%T%c(B" . "$B$T$c(B")) ("pye" nil ("$B%T%'(B" . "$B$T$'(B")) - ("pyi" nil ("$B%T%#(B" . "$B$T$#(B")) ("pyo" nil ("$B%T%g(B" . "$B$T$g(B")) - ("pyu" nil ("$B%T%e(B" . "$B$T$e(B")) ("rr" "r" ("$B%C(B" . "$B$C(B")) - ("ra" nil ("$B%i(B" . "$B$i(B")) ("re" nil ("$B%l(B" . "$B$l(B")) - ("ri" nil ("$B%j(B" . "$B$j(B")) ("ro" nil ("$B%m(B" . "$B$m(B")) - ("ru" nil ("$B%k(B" . "$B$k(B")) ("rya" nil ("$B%j%c(B" . "$B$j$c(B")) - ("rye" nil ("$B%j%'(B" . "$B$j$'(B")) ("ryi" nil ("$B%j%#(B" . "$B$j$#(B")) - ("ryo" nil ("$B%j%g(B" . "$B$j$g(B")) ("ryu" nil ("$B%j%e(B" . "$B$j$e(B")) - ("ss" "s" ("$B%C(B" . "$B$C(B")) ("sa" nil ("$B%5(B" . "$B$5(B")) - ("se" nil ("$B%;(B" . "$B$;(B")) ("sha" nil ("$B%7%c(B" . "$B$7$c(B")) - ("she" nil ("$B%7%'(B" . "$B$7$'(B")) ("shi" nil ("$B%7(B" . "$B$7(B")) - ("sho" nil ("$B%7%g(B" . "$B$7$g(B")) ("shu" nil ("$B%7%e(B" . "$B$7$e(B")) - ("si" nil ("$B%7(B" . "$B$7(B")) ("so" nil ("$B%=(B" . "$B$=(B")) - ("su" nil ("$B%9(B" . "$B$9(B")) ("sya" nil ("$B%7%c(B" . "$B$7$c(B")) - ("sye" nil ("$B%7%'(B" . "$B$7$'(B")) ("syi" nil ("$B%7%#(B" . "$B$7$#(B")) - ("syo" nil ("$B%7%g(B" . "$B$7$g(B")) ("syu" nil ("$B%7%e(B" . "$B$7$e(B")) - ("tt" "t" ("$B%C(B" . "$B$C(B")) ("ta" nil ("$B%?(B" . "$B$?(B")) - ("te" nil ("$B%F(B" . "$B$F(B")) ("tha" nil ("$B%F%!(B" . "$B$F$!(B")) - ("the" nil ("$B%F%'(B" . "$B$F$'(B")) ("thi" nil ("$B%F%#(B" . "$B$F$#(B")) - ("tho" nil ("$B%F%g(B" . "$B$F$g(B")) ("thu" nil ("$B%F%e(B" . "$B$F$e(B")) - ("ti" nil ("$B%A(B" . "$B$A(B")) ("to" nil ("$B%H(B" . "$B$H(B")) - ("tsu" nil ("$B%D(B" . "$B$D(B")) ("tu" nil ("$B%D(B" . "$B$D(B")) - ("tya" nil ("$B%A%c(B" . "$B$A$c(B")) ("tye" nil ("$B%A%'(B" . "$B$A$'(B")) - ("tyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("tyo" nil ("$B%A%g(B" . "$B$A$g(B")) - ("tyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("u" nil ("$B%&(B" . "$B$&(B")) - ("vv" "v" ("$B%C(B" . "$B$C(B")) ("va" nil ("$B%t%!(B" . "$B$&!+$!(B")) - ("ve" nil ("$B%t%'(B" . "$B$&!+$'(B")) ("vi" nil ("$B%t%#(B" . "$B$&!+$#(B")) - ("vo" nil ("$B%t%)(B" . "$B$&!+$)(B")) ("vu" nil ("$B%t(B" . "$B$&!+(B")) - ("ww" "w" ("$B%C(B" . "$B$C(B")) ("wa" nil ("$B%o(B" . "$B$o(B")) - ("we" nil ("$B%&%'(B" . "$B$&$'(B")) ("wi" nil ("$B%&%#(B" . "$B$&$#(B")) - ("wo" nil ("$B%r(B" . "$B$r(B")) ("wu" nil ("$B%&(B" . "$B$&(B")) - ("xx" "x" ("$B%C(B" . "$B$C(B")) ("xa" nil ("$B%!(B" . "$B$!(B")) - ("xe" nil ("$B%'(B" . "$B$'(B")) ("xi" nil ("$B%#(B" . "$B$#(B")) - ("xka" nil ("$B%u(B" . "$B$+(B")) ("xke" nil ("$B%v(B" . "$B$1(B")) - ("xo" nil ("$B%)(B" . "$B$)(B")) ("xtsu" nil ("$B%C(B" . "$B$C(B")) - ("xtu" nil ("$B%C(B" . "$B$C(B")) ("xu" nil ("$B%%(B" . "$B$%(B")) - ("xwa" nil ("$B%n(B" . "$B$n(B")) ("xwe" nil ("$B%q(B" . "$B$q(B")) - ("xwi" nil ("$B%p(B" . "$B$p(B")) ("xya" nil ("$B%c(B" . "$B$c(B")) - ("xyo" nil ("$B%g(B" . "$B$g(B")) ("xyu" nil ("$B%e(B" . "$B$e(B")) - ("yy" "y" ("$B%C(B" . "$B$C(B")) ("ya" nil ("$B%d(B" . "$B$d(B")) - ("ye" nil ("$B%$%'(B" . "$B$$$'(B")) ("yo" nil ("$B%h(B" . "$B$h(B")) - ("yu" nil ("$B%f(B" . "$B$f(B")) ("zz" "z" ("$B%C(B" . "$B$C(B")) - ("z," nil "$B!E(B") ("z-" nil "$B!A(B") ("z." nil "$B!D(B") - ("z/" nil "$B!&(B") ("z[" nil "$B!X(B") ("z]" nil "$B!Y(B") - ("za" nil ("$B%6(B" . "$B$6(B")) ("ze" nil ("$B%<(B" . "$B$<(B")) - ("zh" nil "$B"+(B") ("zi" nil ("$B%8(B" . "$B$8(B")) - ("zj" nil "$B"-(B") ("zk" nil "$B",(B") ("zl" nil "$B"*(B") - ("zo" nil ("$B%>(B" . "$B$>(B")) ("zu" nil ("$B%:(B" . "$B$:(B")) - ("zya" nil ("$B%8%c(B" . "$B$8$c(B")) ("zye" nil ("$B%8%'(B" . "$B$8$'(B")) - ("zyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("zyo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("zyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("." nil skk-current-kuten) - ("," nil skk-current-touten) ("-" nil "$B!<(B") - (":" nil "$B!'(B") (";" nil "$B!((B") ("?" nil "$B!)(B") - ("[" nil "$B!V(B") ("]" nil "$B!W(B") ("l" nil skk-latin-mode) + '(("a" nil ("ア" . "あ")) ("bb" "b" ("ッ" . "っ")) + ("ba" nil ("バ" . "ば")) ("be" nil ("ベ" . "べ")) + ("bi" nil ("ビ" . "び")) ("bo" nil ("ボ" . "ぼ")) + ("bu" nil ("ブ" . "ぶ")) ("bya" nil ("ビャ" . "びゃ")) + ("bye" nil ("ビェ" . "びぇ")) ("byi" nil ("ビィ" . "びぃ")) + ("byo" nil ("ビョ" . "びょ")) ("byu" nil ("ビュ" . "びゅ")) + ("cc" "c" ("ッ" . "っ")) ("cha" nil ("チャ" . "ちゃ")) + ("che" nil ("チェ" . "ちぇ")) ("chi" nil ("チ" . "ち")) + ("cho" nil ("チョ" . "ちょ")) ("chu" nil ("チュ" . "ちゅ")) + ("cya" nil ("チャ" . "ちゃ")) ("cye" nil ("チェ" . "ちぇ")) + ("cyi" nil ("チィ" . "ちぃ")) ("cyo" nil ("チョ" . "ちょ")) + ("cyu" nil ("チュ" . "ちゅ")) ("dd" "d" ("ッ" . "っ")) + ("da" nil ("ダ" . "だ")) ("de" nil ("デ" . "で")) + ("dha" nil ("デャ" . "でゃ")) ("dhe" nil ("デェ" . "でぇ")) + ("dhi" nil ("ディ" . "でぃ")) ("dho" nil ("デョ" . "でょ")) + ("dhu" nil ("デュ" . "でゅ")) ("di" nil ("ヂ" . "ぢ")) + ("do" nil ("ド" . "ど")) ("du" nil ("ヅ" . "づ")) + ("dya" nil ("ヂャ" . "ぢゃ")) ("dye" nil ("ヂェ" . "ぢぇ")) + ("dyi" nil ("ヂィ" . "ぢぃ")) ("dyo" nil ("ヂョ" . "ぢょ")) + ("dyu" nil ("ヂュ" . "ぢゅ")) ("e" nil ("エ" . "え")) + ("ff" "f" ("ッ" . "っ")) ("fa" nil ("ファ" . "ふぁ")) + ("fe" nil ("フェ" . "ふぇ")) ("fi" nil ("フィ" . "ふぃ")) + ("fo" nil ("フォ" . "ふぉ")) ("fu" nil ("フ" . "ふ")) + ("fya" nil ("フャ" . "ふゃ")) ("fye" nil ("フェ" . "ふぇ")) + ("fyi" nil ("フィ" . "ふぃ")) ("fyo" nil ("フョ" . "ふょ")) + ("fyu" nil ("フュ" . "ふゅ")) ("gg" "g" ("ッ" . "っ")) + ("ga" nil ("ガ" . "が")) ("ge" nil ("ゲ" . "げ")) + ("gi" nil ("ギ" . "ぎ")) ("go" nil ("ゴ" . "ご")) + ("gu" nil ("グ" . "ぐ")) ("gya" nil ("ギャ" . "ぎゃ")) + ("gye" nil ("ギェ" . "ぎぇ")) ("gyi" nil ("ギィ" . "ぎぃ")) + ("gyo" nil ("ギョ" . "ぎょ")) ("gyu" nil ("ギュ" . "ぎゅ")) + ;;("h" "" ("オ" . "お")) + ("ha" nil ("ハ" . "は")) ("he" nil ("ヘ" . "へ")) + ("hi" nil ("ヒ" . "ひ")) ("ho" nil ("ホ" . "ほ")) + ("hu" nil ("フ" . "ふ")) ("hya" nil ("ヒャ" . "ひゃ")) + ("hye" nil ("ヒェ" . "ひぇ")) ("hyi" nil ("ヒィ" . "ひぃ")) + ("hyo" nil ("ヒョ" . "ひょ")) ("hyu" nil ("ヒュ" . "ひゅ")) + ("i" nil ("イ" . "い")) ("jj" "j" ("ッ" . "っ")) + ("ja" nil ("ジャ" . "じゃ")) ("je" nil ("ジェ" . "じぇ")) + ("ji" nil ("ジ" . "じ")) ("jo" nil ("ジョ" . "じょ")) + ("ju" nil ("ジュ" . "じゅ")) ("jya" nil ("ジャ" . "じゃ")) + ("jye" nil ("ジェ" . "じぇ")) ("jyi" nil ("ジィ" . "じぃ")) + ("jyo" nil ("ジョ" . "じょ")) ("jyu" nil ("ジュ" . "じゅ")) + ("kk" "k" ("ッ" . "っ")) ("ka" nil ("カ" . "か")) + ("ke" nil ("ケ" . "け")) ("ki" nil ("キ" . "き")) + ("ko" nil ("コ" . "こ")) ("ku" nil ("ク" . "く")) + ("kya" nil ("キャ" . "きゃ")) ("kye" nil ("キェ" . "きぇ")) + ("kyi" nil ("キィ" . "きぃ")) ("kyo" nil ("キョ" . "きょ")) + ("kyu" nil ("キュ" . "きゅ")) ("mm" "c" ("ッ" . "っ")) + ("ma" nil ("マ" . "ま")) ("me" nil ("メ" . "め")) + ("mi" nil ("ミ" . "み")) ("mo" nil ("モ" . "も")) + ("mu" nil ("ム" . "む")) ("mya" nil ("ミャ" . "みゃ")) + ("mye" nil ("ミェ" . "みぇ")) ("myi" nil ("ミィ" . "みぃ")) + ("myo" nil ("ミョ" . "みょ")) ("myu" nil ("ミュ" . "みゅ")) + ("n" nil ("ン" . "ん")) ("n'" nil ("ン" . "ん")) + ("na" nil ("ナ" . "な")) ("ne" nil ("ネ" . "ね")) + ("ni" nil ("ニ" . "に")) ("nn" nil ("ン" . "ん")) + ("no" nil ("ノ" . "の")) ("nu" nil ("ヌ" . "ぬ")) + ("nya" nil ("ニャ" . "にゃ")) ("nye" nil ("ニェ" . "にぇ")) + ("nyi" nil ("ニィ" . "にぃ")) ("nyo" nil ("ニョ" . "にょ")) + ("nyu" nil ("ニュ" . "にゅ")) ("o" nil ("オ" . "お")) + ("pp" "p" ("ッ" . "っ")) ("pa" nil ("パ" . "ぱ")) + ("pe" nil ("ペ" . "ぺ")) ("pi" nil ("ピ" . "ぴ")) + ("po" nil ("ポ" . "ぽ")) ("pu" nil ("プ" . "ぷ")) + ("pya" nil ("ピャ" . "ぴゃ")) ("pye" nil ("ピェ" . "ぴぇ")) + ("pyi" nil ("ピィ" . "ぴぃ")) ("pyo" nil ("ピョ" . "ぴょ")) + ("pyu" nil ("ピュ" . "ぴゅ")) ("rr" "r" ("ッ" . "っ")) + ("ra" nil ("ラ" . "ら")) ("re" nil ("レ" . "れ")) + ("ri" nil ("リ" . "り")) ("ro" nil ("ロ" . "ろ")) + ("ru" nil ("ル" . "る")) ("rya" nil ("リャ" . "りゃ")) + ("rye" nil ("リェ" . "りぇ")) ("ryi" nil ("リィ" . "りぃ")) + ("ryo" nil ("リョ" . "りょ")) ("ryu" nil ("リュ" . "りゅ")) + ("ss" "s" ("ッ" . "っ")) ("sa" nil ("サ" . "さ")) + ("se" nil ("セ" . "せ")) ("sha" nil ("シャ" . "しゃ")) + ("she" nil ("シェ" . "しぇ")) ("shi" nil ("シ" . "し")) + ("sho" nil ("ショ" . "しょ")) ("shu" nil ("シュ" . "しゅ")) + ("si" nil ("シ" . "し")) ("so" nil ("ソ" . "そ")) + ("su" nil ("ス" . "す")) ("sya" nil ("シャ" . "しゃ")) + ("sye" nil ("シェ" . "しぇ")) ("syi" nil ("シィ" . "しぃ")) + ("syo" nil ("ショ" . "しょ")) ("syu" nil ("シュ" . "しゅ")) + ("tt" "t" ("ッ" . "っ")) ("ta" nil ("タ" . "た")) + ("te" nil ("テ" . "て")) ("tha" nil ("テァ" . "てぁ")) + ("the" nil ("テェ" . "てぇ")) ("thi" nil ("ティ" . "てぃ")) + ("tho" nil ("テョ" . "てょ")) ("thu" nil ("テュ" . "てゅ")) + ("ti" nil ("チ" . "ち")) ("to" nil ("ト" . "と")) + ("tsu" nil ("ツ" . "つ")) ("tu" nil ("ツ" . "つ")) + ("tya" nil ("チャ" . "ちゃ")) ("tye" nil ("チェ" . "ちぇ")) + ("tyi" nil ("チィ" . "ちぃ")) ("tyo" nil ("チョ" . "ちょ")) + ("tyu" nil ("チュ" . "ちゅ")) ("u" nil ("ウ" . "う")) + ("vv" "v" ("ッ" . "っ")) ("va" nil ("ヴァ" . "う゛ぁ")) + ("ve" nil ("ヴェ" . "う゛ぇ")) ("vi" nil ("ヴィ" . "う゛ぃ")) + ("vo" nil ("ヴォ" . "う゛ぉ")) ("vu" nil ("ヴ" . "う゛")) + ("ww" "w" ("ッ" . "っ")) ("wa" nil ("ワ" . "わ")) + ("we" nil ("ウェ" . "うぇ")) ("wi" nil ("ウィ" . "うぃ")) + ("wo" nil ("ヲ" . "を")) ("wu" nil ("ウ" . "う")) + ("xx" "x" ("ッ" . "っ")) ("xa" nil ("ァ" . "ぁ")) + ("xe" nil ("ェ" . "ぇ")) ("xi" nil ("ィ" . "ぃ")) + ("xka" nil ("ヵ" . "か")) ("xke" nil ("ヶ" . "け")) + ("xo" nil ("ォ" . "ぉ")) ("xtsu" nil ("ッ" . "っ")) + ("xtu" nil ("ッ" . "っ")) ("xu" nil ("ゥ" . "ぅ")) + ("xwa" nil ("ヮ" . "ゎ")) ("xwe" nil ("ヱ" . "ゑ")) + ("xwi" nil ("ヰ" . "ゐ")) ("xya" nil ("ャ" . "ゃ")) + ("xyo" nil ("ョ" . "ょ")) ("xyu" nil ("ュ" . "ゅ")) + ("yy" "y" ("ッ" . "っ")) ("ya" nil ("ヤ" . "や")) + ("ye" nil ("イェ" . "いぇ")) ("yo" nil ("ヨ" . "よ")) + ("yu" nil ("ユ" . "ゆ")) ("zz" "z" ("ッ" . "っ")) + ("z," nil "‥") ("z-" nil "~") ("z." nil "…") + ("z/" nil "・") ("z[" nil "『") ("z]" nil "』") + ("za" nil ("ザ" . "ざ")) ("ze" nil ("ゼ" . "ぜ")) + ("zh" nil "←") ("zi" nil ("ジ" . "じ")) + ("zj" nil "↓") ("zk" nil "↑") ("zl" nil "→") + ("zo" nil ("ゾ" . "ぞ")) ("zu" nil ("ズ" . "ず")) + ("zya" nil ("ジャ" . "じゃ")) ("zye" nil ("ジェ" . "じぇ")) + ("zyi" nil ("ジィ" . "じぃ")) ("zyo" nil ("ジョ" . "じょ")) + ("zyu" nil ("ジュ" . "じゅ")) ("." nil skk-current-kuten) + ("," nil skk-current-touten) ("-" nil "ー") + (":" nil ":") (";" nil ";") ("?" nil "?") + ("[" nil "「") ("]" nil "」") ("l" nil skk-latin-mode) ("q" nil skk-toggle-characters) ("L" nil skk-jisx0208-latin-mode) ("Q" nil skk-set-henkan-point-subr) ("X" nil skk-purge-from-jisyo) ("/" nil skk-abbrev-mode) ("$" nil skk-display-code-for-char-at-point) ("\C-j" nil skk-kakutei) ("@" nil skk-today) ("\\" nil skk-input-by-code-or-menu))) - (skk-rom-kana-rule-list . '(("hh" "h" ("$B%C(B" . "$B$C(B")))) + (skk-rom-kana-rule-list . '(("hh" "h" ("ッ" . "っ")))) (skk-save-jisyo-function . 'skk-save-jisyo-original) (skk-search-excluding-word-pattern-function . nil) (skk-search-prog-list . '((skk-search-jisyo-buf @@ -311,29 +311,29 @@ skk-kanagaki-rule-tree (skk-compile-rule-list skk-rom-kana-base-rule-list skk-rom-kana-rule-list)))) - "skk.el $B$N%f!<%6!!#(B -$B%G%#%l%/%H%jL>$O4^$^$J$$!#(B") + "NICOLA-DDSKK のためのチュートリアルファイル名。 +ディレクトリ名は含まない。") (defvar skktut-japanese-tut nil - "Non-nil $B$G$"$l$P!"%A%e!<%H%j%"%k$,F|K\8l$G$"$k$3$H$r<($9!#(B") -(defvar skktut-right-answer nil "$B@52r$NJ8;zNs!#(B") -(defvar skktut-question-count 1 "$B%A%e!<%H%j%"%k$N8=:_$NLdBjHV9f!#(B") -(defvar skktut-tutorial-end nil "$B%A%e!<%H%j%"%k$N=*N;$r<($9%U%i%0!#(B") + "Non-nil であれば、チュートリアルが日本語であることを示す。") +(defvar skktut-right-answer nil "正解の文字列。") +(defvar skktut-question-count 1 "チュートリアルの現在の問題番号。") +(defvar skktut-tutorial-end nil "チュートリアルの終了を示すフラグ。") (defvar skktut-working-buffer " *skk-tutorial*") -(defvar skktut-question-buffer "*$BLd(B*") -(defvar skktut-answer-buffer "*$BEz(B*") +(defvar skktut-question-buffer "*問*") +(defvar skktut-answer-buffer "*答*") (defvar skktut-jisyo-buffer " *skk-tut-jisyo*") (defvar skktut-original-window-configuration nil) (defvar skktut-working-window-configuration nil) (defvar skktut-original-local-map nil) (defvar skktut-skk-mode-on nil - "Non-nil $B$J$i!"(Btutorial $B$r5/F0;~$K(B SKK $B$,4{$K5/F0$5$l$F$$$?$3$H$r<($9!#(B") + "Non-nil なら、tutorial を起動時に SKK が既に起動されていたことを示す。") (defvar skktut-latin-mode-map nil - "SKK $B%A%e!<%H%j%"%k(B ASCII $B%b!<%I%-!<%^%C%W!#(B") + "SKK チュートリアル ASCII モードキーマップ。") (unless skktut-latin-mode-map (let ((map (make-sparse-keymap))) @@ -341,7 +341,7 @@ (setq skktut-latin-mode-map map))) (defvar skktut-j-mode-map nil - "SKK $B%A%e!<%H%j%"%k$+$J(B/$B%+%J%b!<%I%-!<%^%C%W!#(B") + "SKK チュートリアルかな/カナモードキーマップ。") (unless skktut-j-mode-map (let ((map (make-sparse-keymap)) @@ -352,7 +352,7 @@ (setq skktut-j-mode-map map))) (defvar skktut-jisx0208-latin-mode-map nil - "SKK $B%A%e!<%H%j%"%kA43Q1Q?t;z%b!<%I%-!<%^%C%W!#(B") + "SKK チュートリアル全角英数字モードキーマップ。") (unless skktut-jisx0208-latin-mode-map (let ((map (make-sparse-keymap)) @@ -365,7 +365,7 @@ (setq skktut-jisx0208-latin-mode-map map))) (defvar skktut-abbrev-mode-map nil - "SKK $B%A%e!<%H%j%"%k(B Abbrev $B%b!<%I%-!<%^%C%W!#(B") + "SKK チュートリアル Abbrev モードキーマップ。") (unless skktut-abbrev-mode-map (let ((map (make-sparse-keymap))) @@ -379,16 +379,16 @@ ;; -- macros (defmacro skktut-message (japanese english &rest arg) - ;; skktut-japanese-tut $B$,(B non-nil $B$@$C$?$i(B JAPANESE $B$r(B nil $B$G$"$l$P(B ENGLISH - ;; $B$r%(%3!<%(%j%"$KI=<($9$k!#(B - ;; ARG $B$O(B message $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B + ;; skktut-japanese-tut が non-nil だったら JAPANESE を nil であれば ENGLISH + ;; をエコーエリアに表示する。 + ;; ARG は message 関数の第2引数以降の引数として渡される。 (append `(message (if skktut-japanese-tut ,japanese ,english)) arg)) (defmacro skktut-error (japanese english &rest arg) - ;; skktut-japanese-tut $B$,(B non-nil $B$@$C$?$i(B JAPANESE $B$r(B nil $B$G$"$l$P(B ENGLISH - ;; $B$r%(%3!<%(%j%"$KI=<($7!"%(%i!<$rH/@8$5$;$k!#(B - ;; ARG $B$O(B error $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B + ;; skktut-japanese-tut が non-nil だったら JAPANESE を nil であれば ENGLISH + ;; をエコーエリアに表示し、エラーを発生させる。 + ;; ARG は error 関数の第2引数以降の引数として渡される。 (append `(error (if skktut-japanese-tut ,japanese ,english)) arg)) @@ -401,30 +401,30 @@ (defadvice skk-save-jisyo-original (around skktut-ad disable)) (defadvice skk-abbrev-mode (before skktut-ad disable) - "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" + "SKK チュートリアル用アドバイス付。" (when (> 12 skktut-question-count) - (skktut-error "$B$3$N%-!<$O$^$@;H$($^$;$s(B" + (skktut-error "このキーはまだ使えません" "Cannot use this key yet"))) (defadvice skk-insert (before skktut-ad disable) - "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" + "SKK チュートリアル用アドバイス付。" (when (and (memq last-command-event skk-set-henkan-point-key) (> 12 skktut-question-count)) - (skktut-error "$B$+$J(B/$B%+%J%b!<%I$G$O!"1QBgJ8;z$O$^$@;H$($^$;$s(B" + (skktut-error "かな/カナモードでは、英大文字はまだ使えません" "Cannot use upper case character in kana/katakana mode"))) (defadvice skk-kakutei (before skktut-ad disable) - "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" + "SKK チュートリアル用アドバイス付。" (when (and (called-interactively-p 'interactive) (= skktut-question-count 1)) - (skktut-error "$B$3$N%-!<$O$^$@;H$($^$;$s(B" + (skktut-error "このキーはまだ使えません" "Cannot use this key yet"))) (defadvice skk-mode (before skktut-ad disable) - "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" + "SKK チュートリアル用アドバイス付。" (when (and (called-interactively-p 'interactive) (= skktut-question-count 1)) - (skktut-error "$B$3$N%-!<$O$^$@;H$($^$;$s(B" + (skktut-error "このキーはまだ使えません" "Cannot use this key yet"))) (defadvice skk-get-jisyo-buffer (around skktut-ad disable) @@ -457,12 +457,12 @@ You can select English version by \\[universal-argument] \\[skk-tutorial]." (interactive "P") ;; (unless skk-mode-invoked - ;; SKK $B$r5/F0$;$:$K$$$-$J$j(B - ;; skk-tutorial $B$r$9!#(B -\\[universal-argument] \\[skk-tutorial-again] $B$9$k$HD>$A$K$d$jD>$9!#(B" + "ユーザの同意があれば SKK チュートリアルを最初からやり直す。 +\\[universal-argument] \\[skk-tutorial-again] すると直ちにやり直す。" (interactive "P") (when (or now (skktut-yes-or-no-p - "$B:G=i$+$i(B Tutorial $B$r$d$jD>$7$^$9!#$h$m$7$$$G$9$M!)(B " + "最初から Tutorial をやり直します。よろしいですね? " "Quit tutorial and start from question 1 again? ")) (skk-tutorial-quit 'now) (skk-tutorial))) (defun skk-tutorial-quit (&optional now) - "$B%f!<%6$NF10U$,$"$k>l9g(B SKK $B%A%e!<%H%j%"%k$r$d$a$k!#(B -\\[universal-argument] \\[skk-tutorial-quit] $B$9$k$HD>$A$K$d$a$k!#(B" + "ユーザの同意がある場合 SKK チュートリアルをやめる。 +\\[universal-argument] \\[skk-tutorial-quit] すると直ちにやめる。" (interactive "P") (when (or now (skktut-yes-or-no-p - "$BK\Ev$K%A%e!<%H%j%"%k$r$d$a$^$9$+!)(B " + "本当にチュートリアルをやめますか? " "Really quit tutorial? ")) (let ((inhibit-quit t)) (delete-other-windows) - ;; $B:FEY%A%e!<%H%j%"%k$r;H$($k$h$&$K!"FbItJQ?t$r=i4|2=$7$F$*$/!#(B + ;; 再度チュートリアルを使えるように、内部変数を初期化しておく。 (setq skktut-japanese-tut nil skktut-question-count 1 skktut-right-answer nil @@ -553,8 +553,8 @@ You can select English version by \\[universal-argument] \\[skk-tutorial]." (kill-buffer skktut-answer-buffer) (kill-buffer skktut-question-buffer) (set-window-configuration skktut-original-window-configuration) - ;; $B%A%e!<%H%j%"%k5/F0D>A0$K3+$$$F$$$?%P%C%U%!$G!"(Bskk-mode $B$r5/F0$7$F(B - ;; $B$$$?$i!"$=$N>uBV$K$7$F!"%A%e!<%H%j%"%k$r=*N;$9$k!#(B + ;; チュートリアル起動直前に開いていたバッファで、skk-mode を起動して + ;; いたら、その状態にして、チュートリアルを終了する。 (unless skktut-skk-mode-on (skk-mode -1))))) @@ -576,7 +576,7 @@ You can select English version by \\[universal-argument] \\[skk-tutorial]." (setq user-ans (substring user-ans (match-end 0)))) (if (not (string= skktut-right-answer user-ans)) (progn - (skktut-message "$BEz$,0c$$$^$9!#$b$&0lEY$d$C$F$_$F2<$5$$(B" + (skktut-message "答が違います。もう一度やってみて下さい" "Wrong. Try again") (ding)) (setq skktut-question-count (1+ skktut-question-count)) @@ -691,67 +691,67 @@ You can select English version by \\[universal-argument] \\[skk-tutorial]." (setq case-fold-search nil) (insert "\ ;; okuri-ari entries. -$B$[$C(Bs /$BM_(B/ -$B$D$+(Bt /$B;H(B/ -$B$?$C(Bs /$BC#(B/ -$B$7(Bt /$BCN(B/ -$B$&$4(Bk /$BF0(B/ +ほっs /欲/ +つかt /使/ +たっs /達/ +しt /知/ +うごk /動/ ;; okuri-nasi entries. -Cyrillic /$B'!(B/$B'"(B/$B'#(B/$B'$(B/$B'%(B/$B'&(B/$B''(B/$B'((B/$B')(B/$B'*(B/$B'+(B/$B',(B/$B'-(B/$B'.(B/$B'/(B/$B'0(B/$B'1(B/$B'2(B/$B'3(B/$B'4(B/$B'5(B/$B'6(B/\ -$B'7(B/$B'8(B/$B'9(B/$B':(B/$B';(B/$B'<(B/$B'=(B/$B'>(B/$B'?(B/$B'@(B/$B'A(B/ -Greek /$B&!(B/$B&"(B/$B&#(B/$B&$(B/$B&%(B/$B&&(B/$B&'(B/$B&((B/$B&)(B/$B&*(B/$B&+(B/$B&,(B/$B&-(B/$B&.(B/$B&/(B/$B&0(B/$B&1(B/$B&2(B/$B&3(B/$B&4(B/$B&5(B/$B&6(B/$B&7(B/\ -$B&8(B/ -cyrillic /$B'Q(B/$B'R(B/$B'S(B/$B'T(B/$B'U(B/$B'V(B/$B'W(B/$B'X(B/$B'Y(B/$B'Z(B/$B'[(B/$B'\(B/$B'](B/$B'^(B/$B'_(B/$B'`(B/$B'a(B/$B'b(B/$B'c(B/$B'd(B/$B'e(B/$B'f(B/\ -$B'g(B/$B'h(B/$B'i(B/$B'j(B/$B'k(B/$B'l(B/$B'm(B/$B'n(B/$B'o(B/$B'p(B/$B'q(B/ -greek /$B&A(B/$B&B(B/$B&C(B/$B&D(B/$B&E(B/$B&F(B/$B&G(B/$B&H(B/$B&I(B/$B&J(B/$B&K(B/$B&L(B/$B&M(B/$B&N(B/$B&O(B/$B&P(B/$B&Q(B/$B&R(B/$B&S(B/$B&T(B/$B&U(B/$B&V(B/$B&W(B/\ -$B&X(B/ -tutorial /$B%A%e!<%H%j%"%k(B/ -$B$$$A(B /$B0l(B/ -$B$$$A$*$/(B /$B0l2/(B/ -$B$*$*$5$+(B /$BBg:e(B/ -$B$*$/(B /$B2/(B/ -$B$+$J(B /$B2>L>(B/ -$B$+$s$8(B /$B4A;z(B/$B44;v(B/$B4F;v(B/ -$B$,$/(B /$B3X(B/ -$B$,$/$7$e$&(B /$B3X=,(B/ -$B$-(B /$B4p(B/$B5-(B/$B5$(B/$BLZ(B/$B5"(B/ -$B$-$4$&(B /$B5-9f(B/$B!&(B/$B!+(B/$B!,(B/$B!-(B/$B!.(B/$B!/(B/$B!1(B/$B!3(B/$B!4(B/$B!5(B/$B!6(B/$B!7(B/$B!8(B/$B!9(B/$B!:(B/$B!;(B/$B!=(B/$B!>(B/$B!B(B/$B!D(B/$B!E(B/\ -$B!H(B/$B!I(B/$B!L(B/$B!M(B/$B!R(B/$B!S(B/$B!T(B/$B!U(B/$B!X(B/$B!Y(B/$B!Z(B/$B![(B/$B!^(B/$B!_(B/$B!`(B/$B!b(B/$B!e(B/$B!f(B/$B!g(B/$B!h(B/$B!i(B/$B!j(B/$B!k(B/$B!l(B/$B!m(B/$B!n(B/\ -$B!o(B/$B!q(B/$B!r(B/$B!x(B/$B!y(B/$B!z(B/$B!{(B/$B!|(B/$B!}(B/$B!~(B/$B"!(B/$B""(B/$B"#(B/$B"$(B/$B"%(B/$B"&(B/$B"'(B/$B"((B/$B")(B/$B"*(B/$B"+(B/$B",(B/$B"-(B/$B".(B/ -$B$-$g$&$H(B /$B5~ET(B/ -$B$3$&(B /$B8}(B/ -$B$3$&$Y(B /$B?@8M(B/ -$B$4(B /$B8^(B/$B8_(B/$B8`(B/$B8a(B/$B8b(B/$B8c(B/$B8d(B/$B8e(B/$B8f(B/$B8g(B/$B8h(B/$B8i(B/$B8j(B/$B8k(B/$B8l(B/$B8m(B/$B8n(B/$B8o(B/ -$B$5$$(B /$B:Y(B/$B:G(B/$B:F(B/ -$B$5$$$7$g(B /$B:G=i(B/ -$B$5$$$H$&(B /$B:XF#(B/ -$B$5$H$&(B /$B:4F#(B/ -$B$7$e$&(B /$B=,(B/$B=*(B/ -$B$7$e$&$j$g$&(B /$B=*N;(B/ -$B$7$g(B /$B=q(B/ -$B$8(B /$B<-(B/$B;z(B/ -$B$8$7$g(B /$B<-=q(B/$BCO=j(B/ -$B$8$s(B /$B?M(B/ -$B$8$s$3$&(B /$B?M8}(B/ -$B$;$s(B /$BA*(B/$B@v(B/ -$B$;$s$?$/(B /$BA*Br(B/$B@vBu(B/ -$B$=$&(B /$BAv(B/ -$B$@$$(B /$BBg(B/$BBh(B/$BBe(B/ -$B$?$/(B /$BBr(B/$BBu(B/ -$B$F$-(B /$BE*(B/$BE((B/$BE)(B/$BE,(B/$BE&(B/ -$B$H$&(B /$BEl(B/$BEP(B/ -$B$H$&$[$/(B /$BElKL(B/ -$B$H$&$m$/(B /$BEPO?(B/ -$B$I$&(B /$BF0(B/ -$B$K$e$&$j$g$/(B /$BF~NO(B/ -$B$R$3$&$-(B /$BHt9T5!(B/ -$B$X$s$+$s(B /$BJQ49(B/ -$B$[$/(B /$BKL(B/ -$B$_$g$&(B /$BL>(B/ -$B$_$g$&$8(B /$BL>;z(B/ -$B$h$&$$(B /$BMF0W(B/$BMQ0U(B/ -$B$j$g$&(B /$BN;(B/ -$B$m$/(B /$BO?(B/ +Cyrillic /А/Б/В/Г/Д/Е/Ё/Ж/З/И/Й/К/Л/М/Н/О/П/Р/С/Т/У/Ф/\ +Х/Ц/Ч/Ш/Щ/Ъ/Ы/Ь/Э/Ю/Я/ +Greek /Α/Β/Γ/Δ/Ε/Ζ/Η/Θ/Ι/Κ/Λ/Μ/Ν/Ξ/Ο/Π/Ρ/Σ/Τ/Υ/Φ/Χ/Ψ/\ +Ω/ +cyrillic /а/б/в/г/д/е/ё/ж/з/и/й/к/л/м/н/о/п/р/с/т/у/ф/\ +х/ц/ч/ш/щ/ъ/ы/ь/э/ю/я/ +greek /α/β/γ/δ/ε/ζ/η/θ/ι/κ/λ/μ/ν/ξ/ο/π/ρ/σ/τ/υ/φ/χ/ψ/\ +ω/ +tutorial /チュートリアル/ +いち /一/ +いちおく /一億/ +おおさか /大阪/ +おく /億/ +かな /仮名/ +かんじ /漢字/幹事/監事/ +がく /学/ +がくしゅう /学習/ +き /基/記/気/木/帰/ +きごう /記号/・/゛/゜/´/`/¨/ ̄/ヽ/ヾ/ゝ/ゞ/〃/仝/々/〆/〇/―/‐/∥/…/‥/\ +“/”/〔/〕/〈/〉/《/》/『/』/【/】/±/×/÷/≠/≦/≧/∞/∴/♂/♀/°/′/″/℃/\ +¥/¢/£/§/☆/★/○/●/◎/◇/◆/□/■/△/▲/▽/▼/※/〒/→/←/↑/↓/〓/ +きょうと /京都/ +こう /口/ +こうべ /神戸/ +ご /五/互/伍/午/呉/吾/娯/後/御/悟/梧/檎/瑚/碁/語/誤/護/醐/ +さい /細/最/再/ +さいしょ /最初/ +さいとう /斎藤/ +さとう /佐藤/ +しゅう /習/終/ +しゅうりょう /終了/ +しょ /書/ +じ /辞/字/ +じしょ /辞書/地所/ +じん /人/ +じんこう /人口/ +せん /選/洗/ +せんたく /選択/洗濯/ +そう /走/ +だい /大/第/代/ +たく /択/濯/ +てき /的/敵/滴/適/摘/ +とう /東/登/ +とうほく /東北/ +とうろく /登録/ +どう /動/ +にゅうりょく /入力/ +ひこうき /飛行機/ +へんかん /変換/ +ほく /北/ +みょう /名/ +みょうじ /名字/ +ようい /容易/用意/ +りょう /了/ +ろく /録/ ") (skk-setup-jisyo-buffer))) @@ -796,8 +796,8 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (with-current-buffer (get-buffer-create skktut-answer-buffer) ;; users may use undo. ;; (buffer-disable-undo (current-buffer)) - ;; skktut-answer-buffer $B$N(B skk.el $B$NJQ?t$r%P%C%U%!%m!<%+%k2=$7!"=i4|2=$9(B - ;; $B$k!#(B + ;; skktut-answer-buffer の skk.el の変数をバッファローカル化し、初期化す + ;; る。 (skktut-localize-and-init-variables) (local-set-key "\C-xq" 'skk-tutorial-quit) (local-set-key "\C-xt" 'skk-tutorial-again) @@ -807,8 +807,8 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (skktut-next-answer-buffer))) (defun skktut-localize-and-init-variables () - ;; $B%f!<%6!<$,(B skk.el $B$NJQ?t$r%+%9%?%^%$%:$7$F$$$k2DG=@-$,$"$k$N$G!"%+%l%s%H(B - ;; $B%P%C%U%!$N(B skk.el $B$NJQ?t$r%P%C%U%!%m!<%+%k2=$7!"=i4|2=$9$k!#(B + ;; ユーザーが skk.el の変数をカスタマイズしている可能性があるので、カレント + ;; バッファの skk.el の変数をバッファローカル化し、初期化する。 (let ((alist skktut-init-variables-alist) v) (dolist (cell alist) @@ -823,9 +823,9 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (erase-buffer))) (defun skktut-colored () - ;; face $B$r(B Text Property $B$K$7$F$*$/$H%F%-%9%H$r%3%T!<$7$?$H$-$K0l=o$K%3%T!<$G(B - ;; $B$-$k$N$G9%ET9g!#(B - (while (re-search-forward "$B"'(B\\([^$B![(B $B$!(B-$B$s%!(B-$B%s(B]+\\)" nil t nil) + ;; face を Text Property にしておくとテキストをコピーしたときに一緒にコピーで + ;; きるので好都合。 + (while (re-search-forward "▼\\([^】 ぁ-んァ-ン]+\\)" nil t nil) (put-text-property (match-beginning 1) (match-end 1) 'face 'highlight)) (goto-char (point-min)) @@ -877,11 +877,11 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (substitute-command-keys (if skktut-japanese-tut (concat - "* $BEz$,$G$-$?$i(B" next "\n" - "* $BESCf$G$d$a$k$K$O(B" quit "\n" + "* 答ができたら" next "\n" + "* 途中でやめるには" quit "\n" (if (/= skktut-question-count skktut-question-numbers) - (concat "* $B%9%-%C%W$9$k$K$O(B" skip "\n")) - "* $B!ZLd![$r%9%/%m!<%k$9$k$K$O(B" sow) + (concat "* スキップするには" skip "\n")) + "* 【問】をスクロールするには" sow) (concat "* For next question" next "\n" "* to quit " quit "\n" @@ -924,12 +924,12 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (let (buffer-read-only) (insert str) (setq mode-line-buffer-identification - (concat "$B#S#K#K%A%e!<%H%j%"%k(B: $B!NLd(B " + (concat "SKKチュートリアル: [問 " (number-to-string page) - "$B!O(B $B!J;D$j(B " + "] (残り " (number-to-string (- skktut-question-numbers page)) - "$BLd!K(B")) + "問)")) (set-buffer-modified-p nil) (force-mode-line-update 'all)))))))) @@ -941,10 +941,10 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (let (p) (widen) (search-forward "\n>> ") - (when (re-search-forward "$B!V(B.*$B!W(B" (line-end-position) t) + (when (re-search-forward "「.*」" (line-end-position) t) (delete-region (match-beginning 0) (match-end 0))) (setq p (point)) - (insert (concat "$B!V$-$g$&$O!"(B" (skk-current-date) "$B$G$9!#!W(B")) + (insert (concat "「きょうは、" (skk-current-date) "です。」")) (narrow-to-region (point-min) (point)) (when skk-tut-use-face (put-text-property p (point) 'face skk-tut-question-face)))))) @@ -960,13 +960,13 @@ tutorial /$B%A%e!<%H%j%"%k(B/ (format (if skktut-japanese-tut "\ -SKK $B%A%e!<%H%j%"%k$O$3$l$G=*$j$G$9!#(B +SKK チュートリアルはこれで終りです。 -%s $B$K4X$9$k $B%-!<$r2!$7$F$/$@$5$$!#(B" +!! 最後に キーを押してください。" "\ Now we end the SKK tutorial. @@ -989,7 +989,7 @@ https://github.com/skk-dev (ignore-errors (let* ((event (read-event)) (char (event-to-character event))) - (skktut-message " $B%-!<$r2!$7$F$/$@$5$$(B" + (skktut-message " キーを押してください" "Hit key") (if (and char (eq ?\C-m char)) (setq skktut-tutorial-end t))))) diff --git a/skk-vars.el b/skk-vars.el index 36b261d7..306a94b6 100644 --- a/skk-vars.el +++ b/skk-vars.el @@ -43,19 +43,19 @@ (let ((frames (frame-list)) val) (while (and (not val) frames) - ;; $BJQ?t(B window-system $B$O(B frame local $BCM$r;}$D!#(B - ;; $BNc$($P(B window system $B$H(B "emacsclient -nw" $B$NJ;MQ;~$J$I(B - ;; $B$$$:$l$+$N(B frame $B$,(B window system $B2<$GF0$$$F$$$k$3$H$r(B - ;; $B3NG'$9$k!#(B + ;; 変数 window-system は frame local 値を持つ。 + ;; 例えば window system と "emacsclient -nw" の併用時など + ;; いずれかの frame が window system 下で動いていることを + ;; 確認する。 (setq val (window-system (car frames)) frames (cdr frames))) val)) (defun skk-jisyo (&optional coding) - "CODING $B$,(B nil $B$G$"$l$P!"8D?M<-=q$N(B PATH $B$rJV$9(B ($BJQ?t(B `skk-jisyo' $B$,J8;zNs$G(B -$B$"$l$P$=$NCM$r!"%3%s%9%;%k$G$"$l$P(B car $B$rJV$9(B). -CODING $B$,(B non-nil $B$G$"$l$P!"8D?M<-=q$KE,MQ$5$l$k(B CODING $B$rJV$9(B ($BJQ?t(B `skk-jisyo' $B$,(B -$BJ8;zNs$G$"$l$PJQ?t(B `skk-jisyo-code' $B$NCM$r!"%3%s%9%;%k$G$"$l$P(B cdr $B$rJV$9(B)." + "CODING が nil であれば、個人辞書の PATH を返す (変数 `skk-jisyo' が文字列で +あればその値を、コンスセルであれば car を返す). +CODING が non-nil であれば、個人辞書に適用される CODING を返す (変数 `skk-jisyo' が +文字列であれば変数 `skk-jisyo-code' の値を、コンスセルであれば cdr を返す)." (let ((p (if (consp skk-jisyo) (car skk-jisyo) skk-jisyo)) (c (if (consp skk-jisyo) (cdr skk-jisyo) skk-jisyo-code))) (if coding c p))) @@ -73,163 +73,163 @@ CODING $B$,(B non-nil $B$G$"$l$P!"8D?M<-=q$KE,MQ$5$l$k(B CODING $B$rJV$9(B ;;;; Custom group definitions -(defgroup skk nil "$BF|K\8lF~NO%7%9%F%`(B SKK $B$N%+%9%?%^%$%:(B" +(defgroup skk nil "日本語入力システム SKK のカスタマイズ" :group 'mule :group 'applications) ;;; by function -(defgroup skk-basic nil "SKK $B4pK\$N@_Dj(B" +(defgroup skk-basic nil "SKK 基本の設定" :prefix "skk-" :group 'skk) -(defgroup skk-dictionary nil "SKK $B<-=q$N@_Dj(B" +(defgroup skk-dictionary nil "SKK 辞書の設定" :prefix "skk-" :group 'skk) -(defgroup skk-private nil "SKK $B8D?M<-=q$N$$$m$$$m(B" +(defgroup skk-misc nil "SKK その他いろいろ" :prefix "skk-" :group 'skk) -(defgroup skk-visual nil "SKK $B$N8+$?L\$r%+%9%?%^%$%:(B" +(defgroup skk-visual nil "SKK の見た目をカスタマイズ" :prefix "skk-" :group 'skk) ;;; by filename -(defgroup skk-annotation nil "SKK $B%"%N%F!<%7%g%sI=<((B/$BJT=8$N@_Dj(B" +(defgroup skk-annotation nil "SKK アノテーション表示/編集の設定" :prefix "skk-annotation-" :group 'skk) -(defgroup skk-auto nil "SKK $B<+F0Aw$j$,$J5!G=$N@_Dj(B" +(defgroup skk-auto nil "SKK 自動送りがな機能の設定" :prefix "skk-" :group 'skk) -(defgroup skk-cdb nil "SKK CDB $B<-=q8!:w5!G=$N@_Dj(B" +(defgroup skk-cdb nil "SKK CDB 辞書検索機能の設定" :prefix "skk-" :group 'skk) -(defgroup skk-comp nil "SKK $BJd405!G=$N@_Dj(B" +(defgroup skk-comp nil "SKK 補完機能の設定" :prefix "skk-" :group 'skk) -(defgroup skk-server-completion nil "$B<-=q%5!<%PJd405!G=$K4X$9$k@_Dj(B" +(defgroup skk-server-completion nil "辞書サーバ補完機能に関する設定" :group 'skk) -(defgroup skk-cursor nil "SKK $B%+!<%=%k@)8f$N@_Dj(B" +(defgroup skk-cursor nil "SKK カーソル制御の設定" :prefix "skk-cursor-" :group 'skk) -(defgroup skk-dcomp nil "SKK $BF0E*Jd40$N@_Dj(B" +(defgroup skk-dcomp nil "SKK 動的補完の設定" :prefix "skk-dcomp-" :group 'skk) -(defgroup skk-gadget nil "SKK $B3Q%+%J(B) $B4XO"$N@_Dj(B" +(defgroup skk-jisx0201 nil "SKK JIS X 0201 (おもに半角カナ) 関連の設定" :prefix "skk-jisx0201-" :group 'skk) -(defgroup skk-jisx0213 nil "SKK JIS X 0213 $B4XO"$N@_Dj(B" +(defgroup skk-jisx0213 nil "SKK JIS X 0213 関連の設定" :group 'skk) -(defgroup skk-jisyo-edit-mode nil "SKK $B$N<-=qJT=85!G=$N@_Dj(B" +(defgroup skk-jisyo-edit-mode nil "SKK の辞書編集機能の設定" :prefix "skk-" :group 'skk) -(defgroup skk-kakasi nil "SKK $B$+$i(B kakasi $B$r;H$&@_Dj(B" +(defgroup skk-kakasi nil "SKK から kakasi を使う設定" :prefix "skk-" :group 'skk) -(defgroup skk-kcode nil "SKK $BJ8;z%3!<%I$r07$&@_Dj(B" +(defgroup skk-kcode nil "SKK 文字コードを扱う設定" :prefix "skk-" :group 'skk) -(defgroup skk-look nil "SKK $B$+$i(B look $B%3%^%s%I$rMxMQ$9$k@_Dj(B" +(defgroup skk-look nil "SKK から look コマンドを利用する設定" :prefix "skk-look-" :group 'skk) -(defgroup skk-lookup nil "SKK $B$+$i(B Lookup $B%Q%C%1!<%8$rMxMQ$9$k@_Dj(B" +(defgroup skk-lookup nil "SKK から Lookup パッケージを利用する設定" :prefix "skk-lookup-" :group 'skk) -(defgroup skk-num nil "SKK $B$G?t;z$r07$&$?$a$N@_Dj(B" +(defgroup skk-num nil "SKK で数字を扱うための設定" :prefix "skk-num-" :group 'skk) -(defgroup skk-server nil "$B<-=q%5!<%P$H$NDL?.$K4X$9$k@_Dj(B" +(defgroup skk-server nil "辞書サーバとの通信に関する設定" :prefix "skk-server-" :group 'skk) -(defgroup skk-sticky nil "SKK $BJQ490LCV;XDjJ}<0$N@_Dj(B" +(defgroup skk-sticky nil "SKK 変換位置指定方式の設定" :prefix "skk-sticky-" :group 'skk) -(defgroup skk-study nil "SKK $B3X=,5!G=$N@_Dj(B" +(defgroup skk-study nil "SKK 学習機能の設定" :prefix "skk-study-" :group 'skk) -(defgroup skk-tankan nil "SKK $BC14A;zJQ495!G=$N@_Dj(B" +(defgroup skk-tankan nil "SKK 単漢字変換機能の設定" :prefix "skk-tankan-" :group 'skk) -(defgroup skk-tooltip nil "SKK $B%D!<%k%F%#%C%WI=<($N@_Dj(B" +(defgroup skk-tooltip nil "SKK ツールティップ表示の設定" :prefix "skk-tooltip-" :group 'skk) -(defgroup skk-tut nil "SKK $B%A%e!<%H%j%"%k$N@_Dj(B" +(defgroup skk-tut nil "SKK チュートリアルの設定" :prefix "skk-tut-" :group 'skk) -(defgroup skk-viper nil "SKK/Viper $B4XO"$N@_Dj(B" +(defgroup skk-viper nil "SKK/Viper 関連の設定" :prefix "skk-viper-" :group 'skk) -(defgroup skk-act nil "SKK $B$G3HD%%m!<%^;zF~NO(B ACT $B$r;H$&@_Dj(B" +(defgroup skk-act nil "SKK で拡張ローマ字入力 ACT を使う設定" :prefix "skk-act-" :group 'skk-input-enhanced) -(defgroup skk-azik nil "SKK $B$G3HD%%m!<%^;zF~NO(B AZIK $B$r;H$&@_Dj(B" +(defgroup skk-azik nil "SKK で拡張ローマ字入力 AZIK を使う設定" :prefix "skk-azik-" :group 'skk-input-enhanced) -(defgroup skk-kanagaki nil "SKK $B$+$JF~NO$N@_Dj(B" +(defgroup skk-kanagaki nil "SKK かな入力の設定" :prefix "skk-kanagaki-" :group 'skk-input-enhanced) -(defgroup skk-nicola nil "SKK $B?F;X%7%U%HF~NO$N@_Dj(B" +(defgroup skk-nicola nil "SKK 親指シフト入力の設定" :prefix "skk-nicola-" :group 'skk-kanagaki) @@ -264,76 +264,76 @@ CODING $B$,(B non-nil $B$G$"$l$P!"8D?M<-=q$KE,MQ$5$l$k(B CODING $B$rJV$9(B 'light)))) (t nil))) - "*SKK $B$NI8=`$N%U%'%$%9?'$r7h$a$k$?$a$NGX7J?'$K4X$9$k>pJs!#(B -$BI8=`$G$O(B `frame-background-mode' $B$r@_Dj$7$F$$$k>l9g$O$=$l$K=>$$!"(B -$B@_Dj$7$F$$$J$$>l9g$OFH<+$NJ}K!$G(B `light' $B$+(B `dark' $B$+$r7h$a$k!#(B -$B$?$@$7!"%?!<%_%J%k$G(B Emacs $B$rMxMQ$7$F$$$k>l9g$OH=Dj$G$-$:!"(B -$B%f!<%6$N0U?^$H9g$o$J$$$+$b$7$l$J$$$N$G!"$3$N%*%W%7%g%s$+(B -`frame-background-mode' $B$r$"$i$+$8$a@_Dj$7$F$*$/$3$H$,K>$^$7$$!#(B -$B$3$N%*%W%7%g%s$O(B ~/.skk $B$K@_Dj$7$F$bH?1G$5$l$J$$!#(B~/.emacs.d/init.el $B$+(B -\\[customize] $B$K$F!"(BSKK $B$,FI$_9~$^$l$kA0$K@_Dj$9$k$3$H$,I,MW!#(B" + "*SKK の標準のフェイス色を決めるための背景色に関する情報。 +標準では `frame-background-mode' を設定している場合はそれに従い、 +設定していない場合は独自の方法で `light' か `dark' かを決める。 +ただし、ターミナルで Emacs を利用している場合は判定できず、 +ユーザの意図と合わないかもしれないので、このオプションか +`frame-background-mode' をあらかじめ設定しておくことが望ましい。 +このオプションは ~/.skk に設定しても反映されない。~/.emacs.d/init.el か +\\[customize] にて、SKK が読み込まれる前に設定することが必要。" :type '(choice (const dark) (const light) - (const :tag "$B<+F0$G7h$a$k(B" nil)) + (const :tag "自動で決める" nil)) :group 'skk-basic :group 'skk-visual) ;;; skk.el related. (defcustom skk-user-directory nil - "*SKK $B$N@_Dj%U%!%$%k$J$I$rCV$/%G%#%l%/%H%jL>!#(B -$B3Fl9g$K@_Dj$9$k!#(B + "*SKK の設定ファイルなどを置くディレクトリ名。 +各種設定ファイルをひとつのディレクトリにまとめたい場合に設定する。 - ($BNc(B) (setq skk-user-directory \"~/.ddskk\") + (例) (setq skk-user-directory \"~/.ddskk\") " - :type '(radio (directory :tag "$B%G%#%l%/%H%jL>(B" "~/.ddskk") - (const :tag "$B@_Dj$7$J$$(B" nil)) + :type '(radio (directory :tag "ディレクトリ名" "~/.ddskk") + (const :tag "設定しない" nil)) :group 'skk-basic) (defcustom skk-init-file (if skk-user-directory (expand-file-name "init" skk-user-directory) (convert-standard-filename "~/.skk")) - "*SKK $B$N=i4|@_Dj$r5-=R$9$k%U%!%$%kL>!#(BSKK $B$r5/F0$7$?:G=i$N0lEY$@$1FI$_(B -$B9~$^$l$k!#$3$N%U%!%$%k$K5-=R$9$kBe$o$j$K(B ~/.emacs.d/init.el $B$K(B SKK $B$N3Fl9g$O(B \\[skk-restart] $B$G$OH?1G$5$l$J$$!#(B + "*SKK の初期設定を記述するファイル名。SKK を起動した最初の一度だけ読み +込まれる。このファイルに記述する代わりに ~/.emacs.d/init.el に SKK の各種初期設定を +記述することも可能だが、後者の場合は \\[skk-restart] では反映されない。 -~/.emacs.d/init.el $B$G(B $BJQ?t(B `skk-byte-compile-init-file' $B$r@_Dj$9$k$3$H$G(B `skk-init-file' $B$r(B -$B<+F0E*$K%P%$%H%3%s%Q%$%k$9$k$3$H$b2DG=!#(B" +~/.emacs.d/init.el で 変数 `skk-byte-compile-init-file' を設定することで `skk-init-file' を +自動的にバイトコンパイルすることも可能。" ;;"*Name of the SKK initialization file. ;;From skk.el 9.x on all customization may be done in ~/.emacs." - :type '(file :tag "$B%U%!%$%kL>(B") + :type '(file :tag "ファイル名") :group 'skk-basic) (defcustom skk-japanese-message-and-error nil - "*Non-nil $B$G$"$l$P!"(BSKK $B$N%a%C%;!<%8$H%(%i!<$rF|K\8l$GI=<($9$k!#(B -nil $B$G$"$l$P!"1Q8l$GI=<($9$k!#(B" + "*Non-nil であれば、SKK のメッセージとエラーを日本語で表示する。 +nil であれば、英語で表示する。" :type 'boolean :group 'skk-basic) (defcustom skk-version-codename-ja nil - "*Non-nil $B$G$"$l$P!"4X?t(B `skk-version' $B$G$N%3!<%I%M!<%`$rF|K\8l$GI=<($9$k!#(B" + "*Non-nil であれば、関数 `skk-version' でのコードネームを日本語で表示する。" :type 'boolean :group 'skk-basic) (defcustom skk-jisyo-fix-order nil - "*Non-nil $B$G$"$l$P!"3NDj$N:]$K8D?M<-=q$NF12;8l$N=g=x$rJQ99$;$:!"(B -$B8D?M<-=q$K?75,DI2C$9$k:]$O4{=P8l$N8e$KDI2C$9$k!#(B" + "*Non-nil であれば、確定の際に個人辞書の同音語の順序を変更せず、 +個人辞書に新規追加する際は既出語の後に追加する。" :type 'boolean :group 'skk-dictionary) (defcustom skk-kakutei-jisyo nil - ;; $B%=!<%H$5$l$F$$$kI,MW$,$"$k$+$I$&$+$O@_Djl9g$K$O!"(B + ;; ソートされている必要があるかどうかは設定次第だが、そこまで説明するのは面倒 + ;; (FILE . CODE) の形式もいけるはず (そのような設定のしかたは良くない?) + "*「確定変換」で検索する辞書。 +見出し語は、ソートされていなければならない。 +Non-nil であれば、指定された辞書をバッファに読み込み、検索を行う。 +各見出し語の最初のエントリで確定される。 +確定アンドゥ時には 2 番目以降のエントリも利用できるが、 +この仕様は変更される可能性もあり、また確定辞書の本質と無関係である。 + +関数 `skk-search-kakutei-jisyo-file' の引数として使用される。 +確定変換機能を利用する場合には、 (skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t) -$B$N$h$&$JMWAG$r(B `skk-search-prog-list' $B$N@hF,$KG[CV$9$k$3$H!#(B" +のような要素を `skk-search-prog-list' の先頭に配置すること。" ;; "*The first dictionary to be searched. ;;If non-nil, and this variable is used as a component of ;;`skk-search-prog-list', the indicated dictionary is read into a @@ -343,22 +343,22 @@ Non-nil $B$G$"$l$P!";XDj$5$l$?<-=q$r%P%C%U%!$KFI$_9~$_!"8!:w$r9T$&!#(B ;;present the second and following entries are ignored. ;;By setting the value of `skk-search-prog-list' the dictionaries ;;searched and the order of search can be changed." - :type '(radio (file :tag "$B<-=q%U%!%$%kL>(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + :type '(radio (file :tag "辞書ファイル名") + (const :tag "指定しない" nil)) :group 'skk-dictionary) (defcustom skk-initial-search-jisyo nil - ;; $B%=!<%H$5$l$F$$$kI,MW$,$"$k$+$I$&$+$O@_Dj(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + :type '(radio (file :tag "辞書ファイル名") + (const :tag "指定しない" nil)) :group 'skk-dictionary) (defcustom skk-large-jisyo nil - ;; (FILE . CODE) $B$N7A<0$b$$$1$k$O$:(B - "*$B8D?M<-=q$N8!:w$N8e$K8!:w$9$k<-=q!#(B -$B8+=P$78l$O!"%=!<%H$5$l$F$$$J$1$l$P$J$i$J$$!#(B -Non-nil $B$G$"$l$P!";XDj$5$l$?<-=q$r8!:w$N$?$a%P%C%U%!$KFI$_9~$_!"8!:w$r9T$&!#(B" - :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" + ;; (FILE . CODE) の形式もいけるはず + "*個人辞書の検索の後に検索する辞書。 +見出し語は、ソートされていなければならない。 +Non-nil であれば、指定された辞書を検索のためバッファに読み込み、検索を行う。" + :type `(radio (file :tag "辞書ファイル名" ,(or (locate-file "skk/SKK-JISYO.L" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK-JISYO.L" (list data-directory)) "")) - (const :tag "$B;XDj$7$J$$(B" nil)) + (const :tag "指定しない" nil)) :group 'skk-dictionary) (defcustom skk-aux-large-jisyo nil - ;; (FILE . CODE) $B$N7A<0$b$$$1$k$O$:(B - "*$B<-=q%5!<%P$,;H$($J$$;~$K!"Be$o$j$K8!:w$9$k<-=q!#(B -$B8+=P$78l$O!"%=!<%H$5$l$F$$$J$1$l$P$J$i$J$$!#(B -Non-nil $B$G$"$l$P!"<-=q%5!<%P$,(B active $B$G$J$$;~$K!"(B -$B;XDj$5$l$?<-=q$r%P%C%U%!$KFI$_9~$_!"8!:w$r9T$&!#(B" - :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" + ;; (FILE . CODE) の形式もいけるはず + "*辞書サーバが使えない時に、代わりに検索する辞書。 +見出し語は、ソートされていなければならない。 +Non-nil であれば、辞書サーバが active でない時に、 +指定された辞書をバッファに読み込み、検索を行う。" + :type `(radio (file :tag "辞書ファイル名" ,(or (locate-file "skk/SKK-JISYO.L" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK-JISYO.L" (list data-directory)) "")) - (const :tag "$B;XDj$7$J$$(B" nil)) + (const :tag "指定しない" nil)) :group 'skk-dictionary :group 'skk-server) (defcustom skk-inhibit-ja-dic-search nil - "*$B!V(BGNU Emacs $BIUB0$N<-=q$rMQ$$$?8!:w!W$N6X;_$r;X<($9$k%*%W%7%g%s!#(B -GNU Emacs $B$K$O(B SKK-JISYO.L $B$r85$KJQ49$5$l$?(B ja-dic.el $B$H$$$&<-=q$,IUB0$9$k!#(B -$B$3$l$rMQ$$$FDL>o$N$+$J4A;zJQ49(B ($BAw$j$"$j!"Aw$j$J$7!"@\F,<-!"@\Hx<-(B) $B$,2DG=(B -$B$G$"$k(B ($B$?$@$7(B SKK-JISYO.L $B$K$h$k1Q?tJQ49!"?tCMJQ49$J$I$O$G$-$J$$(B)$B!#(B -DDSKK 14.2 $B$h$j!V(Bja-dic.el $B8!:w5!G=(B `skk-search-ja-dic'$B!W$,DI2C$5$l$?!#(B -$B$3$N(B `skk-search-ja-dic' $B$O!"(B `skk-large-jisyo'$B!"(B`skk-aux-large-jisyo'$B!"(B -`skk-cdb-large-jisyo' $B5Z$S(B `skk-server-host' $B$NA4$F$,L58z$J>l9g$KM-8z$H$J$k(B -$B$,!"$"$i$f$k>lLL$G6X;_$7$?$$>l9g$O!"$3$NJQ?t$r(B Non-nil $B$K@_Dj$9$k!#(B" + "*「GNU Emacs 付属の辞書を用いた検索」の禁止を指示するオプション。 +GNU Emacs には SKK-JISYO.L を元に変換された ja-dic.el という辞書が付属する。 +これを用いて通常のかな漢字変換 (送りあり、送りなし、接頭辞、接尾辞) が可能 +である (ただし SKK-JISYO.L による英数変換、数値変換などはできない)。 +DDSKK 14.2 より「ja-dic.el 検索機能 `skk-search-ja-dic'」が追加された。 +この `skk-search-ja-dic' は、 `skk-large-jisyo'、`skk-aux-large-jisyo'、 +`skk-cdb-large-jisyo' 及び `skk-server-host' の全てが無効な場合に有効となる +が、あらゆる場面で禁止したい場合は、この変数を Non-nil に設定する。" :type 'boolean :group 'skk-dictionary) (defcustom skk-extra-jisyo-file-list nil - "*$B%a%$%s<-=q$NB>$K8!:w$9$k<-=q$N%j%9%H$r;XDj$9$k!#(B -$B$$$:$l$N<-=q$b!"8+=P$78l$O%=!<%H$5$l$F$$$J$1$l$P$J$i$J$$!#(B + "*メイン辞書の他に検索する辞書のリストを指定する。 +いずれの辞書も、見出し語はソートされていなければならない。 (setq skk-extra-jisyo-file-list (list \\='(\"/usr/share/skk/SKK-JISYO.JIS3_4\" . euc-jisx0213) \"/usr/share/skk/SKK-JISYO.zipcode\")) -SKK $B<-=q$K$O(B SKK OpenLab $B$GG[I[$7$F$$$k$b$N!"Bh;0$K8!:w$7$?$$<-=q$N%U%!%$%kL>$N(B -$B%j%9%H$r;XDj$9$k!#%U%!%$%kL>$NBe$o$j$K!"%U%!%$%kL>$H%3!<%I7O$N%Z%"$r;XDj$9$k(B -$B$3$H$b$G$-$k!#<-=q$O;XDj$5$l$?=g$K8!:w$5$l$k!#(B" - :type '(repeat (file :tag "$B<-=q%U%!%$%kL>(B")) +SKK 辞書には SKK OpenLab で配布しているもの、第三者によるものなど多数あるが、 +メイン辞書 (SKK-JISYO.L や辞書サーバなど) の他に検索したい辞書のファイル名の +リストを指定する。ファイル名の代わりに、ファイル名とコード系のペアを指定する +こともできる。辞書は指定された順に検索される。" + :type '(repeat (file :tag "辞書ファイル名")) :group 'skk-dictionary) (defcustom skk-itaiji-jisyo nil - "$B0[BN;z<-=q(B `SKK-JISYO.itaiji', `SKK-JISYO.itaiji.JIS3_4' $B$X$N%Q%9$r;XDj$9$k!#(B" - :type '(radio (file :tag "$B<-=q%U%!%$%kL>(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "異体字辞書 `SKK-JISYO.itaiji', `SKK-JISYO.itaiji.JIS3_4' へのパスを指定する。" + :type '(radio (file :tag "辞書ファイル名") + (const :tag "指定しない" nil)) :group 'skk-dictionary) (defcustom skk-search-prog-list @@ -449,100 +449,100 @@ SKK $B<-=q$K$O(B SKK OpenLab $B$GG[I[$7$F$$$k$b$N!"Bh;0]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B + "*検索関数、検索対象の辞書を決定するためのリスト。 -$B$3$NJQ?t$NCM$r2A$9$k$3$H$K$h$C$F$+$J4A;zJQ49$r]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-1 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-1 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-2 nil - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-2 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-2 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-3 nil - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-3 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-3 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-4 nil - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-4 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-4 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-5 '((skk-search-tankanji)) - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-5 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-5 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-6 '((skk-search-identity)) - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-6 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-6 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-7 '((skk-search-katakana)) - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-7 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-7 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-8 '((skk-search-hankaku-katakana)) - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-8 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-8 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-9 '((skk-search-jisx0208-romaji)) - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-9 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-9 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-search-prog-list-0 '((skk-search-romaji)) - "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -C-0 SPC $B$G;HMQ$5$l$k(B" - :type '(repeat (sexp :tag "S$B<0(B")) + "*検索関数、検索対象の辞書を決定するためのリスト。 +C-0 SPC で使用される" + :type '(repeat (sexp :tag "S式")) :group 'skk-dictionary) (defcustom skk-count-jisyo-candidates-function 'skk-count-jisyo-candidates-original - "*`skk-count-jisyo-candidates' $B$G;HMQ$9$k4X?t!#(B" + "*`skk-count-jisyo-candidates' で使用する関数。" :type 'function :group 'skk-dictionary) (defcustom skk-public-jisyo-to-be-searched-function 'skk-public-jisyo-to-be-searched-original - "*`skk-public-jisyo-has-word-p' $B$G;HMQ$9$k4X?t!#(B" + "*`skk-public-jisyo-has-word-p' で使用する関数。" :type 'function :group 'skk-dictionary) (defcustom skk-jisyo (if skk-user-directory (expand-file-name "jisyo" skk-user-directory) (convert-standard-filename "~/.skk-jisyo")) - "*SKK $B$N8D?M<-=q!#(B" - :type '(radio (file :tag "$B<-=q%U%!%$%kL>(B") - (cons :tag "`skk-jisyo-code' $B$H0[$J$kJ8;z%3!<%I$r;HMQ$9$k>l9g(B" + "*SKK の個人辞書。" + :type '(radio (file :tag "辞書ファイル名") + (cons :tag "`skk-jisyo-code' と異なる文字コードを使用する場合" (file :tag "PATH/TO/FILE") (coding-system :tag "CODING-SYSTEM-NAME"))) :group 'skk-private) @@ -551,388 +551,388 @@ C-0 SPC $B$G;HMQ$5$l$k(B" (expand-file-name "jisyo.bak" skk-user-directory) (convert-standard-filename "~/.skk-jisyo.BAK")) - "*SKK $B$N8D?M<-=q$N%P%C%/%"%C%W%U%!%$%k!#(B" - :type '(file :tag "$B<-=q%U%!%$%kL>(B") + "*SKK の個人辞書のバックアップファイル。" + :type '(file :tag "辞書ファイル名") :group 'skk-private) (defcustom skk-jisyo-code nil - ;; $B8=:_$N$r;XDj$9$k!#(B -$BJ8;zNs(B \"euc\", \"ujis\", \"sjis\", \"jis\" $B$N;XDj$bN(B" + (radio :tag "コードの通称" (const "euc") (const "ujis") (const "sjis") (const "jis")) - (const :tag "$B;XDj$7$J$$(B" nil)) + (const :tag "指定しない" nil)) :group 'skk-private) (defcustom skk-share-private-jisyo nil "\ -*Non-nil $B$G$"$l$P!"8D?M<-=q$r99?7$9$k:]$K!VJ#?t$N(B SKK $B%W%m%;%9$,FCDj$N8D(B -$B?M<-=q$r6&M-$7$F$$$k!W$r9MN8$7$?>e$G=hM}$r9T$&!#(B -SKK $B5/F08e$K$3$NJQ?t$NCM$rJQ99$7$?>l9g$O(B \\[skk-restart] $B$GH?1G$5$;$k;v!#(B" +*Non-nil であれば、個人辞書を更新する際に「複数の SKK プロセスが特定の個 +人辞書を共有している」を考慮した上で処理を行う。 +SKK 起動後にこの変数の値を変更した場合は \\[skk-restart] で反映させる事。" :type 'boolean :group 'skk-basic :group 'skk-private) (defcustom skk-jisyo-save-count 50 - "*$B?tCM$G$"$l$P!"$=$N2s?t$@$18D?M<-=q$,99?7$5$l$?$H$-$K<+F0E*$K%;!<%V$9$k!#(B -nil $B$G$"$l$P!"8D?M<-=q$N%*!<%H%;!<%V$r9T$o$J$$!#(B -SKK $B5/F08e$G!"JQ?t(B `skk-share-private-jisyo' $B$,(B non-nil $B$J>l9g(B -$B$K(B `skk-jisyo-save-count' $B$NCM$rJQ99$7$?>l9g$O(B -\\[skk-restart] $B$GH?1G$5$;$k;v!#(B" - :type '(radio (integer :tag "$B@0?t(B" 50) - (const :tag "$B;XDj$7$J$$(B" nil)) + "*数値であれば、その回数だけ個人辞書が更新されたときに自動的にセーブする。 +nil であれば、個人辞書のオートセーブを行わない。 +SKK 起動後で、変数 `skk-share-private-jisyo' が non-nil な場合 +に `skk-jisyo-save-count' の値を変更した場合は +\\[skk-restart] で反映させる事。" + :type '(radio (integer :tag "整数" 50) + (const :tag "指定しない" nil)) :group 'skk-private) (defcustom skk-count-private-jisyo-candidates-exactly nil - "*Non-nil $B$G$"$l$P!"(BEmacs $B$r=*N;$9$k$H$-$K(B `skk-record-file' $B$KJ]B8$5$l(B -$B$kE}7W>pJs$N!V8l?t!W$r@53N$K?t$($k!#(B -nil $B$G$"$l$P!"(B1 $B9T$KJ#?t$N8uJd$,$"$C$F$b(B 1 $B8uJd$H$7$F?t$($k!#(B" + "*Non-nil であれば、Emacs を終了するときに `skk-record-file' に保存され +る統計情報の「語数」を正確に数える。 +nil であれば、1 行に複数の候補があっても 1 候補として数える。" :type 'boolean :group 'skk-private) (defcustom skk-compare-jisyo-size-when-saving t - "*Non-nil $B$G$"$l$P!"(B`skk-jisyo' $B$N%;!<%V;~$K%U%!%$%k%5%$%:$r%A%'%C%/$9$k!#(B -$BA02s%;!<%V$7$?(B `skk-jisyo' $B$H:#2s%;!<%V$7$h$&$H$9$k<-=q$H$N%5%$%:$rHf3S$7!"(B -$B8er7o!W$r;XDj$9$k!#(B -$B$3$NJQ?t$K$O!"0z?t#18D$N4X?t!JKt$O4X?t$N%j%9%H!K$rBeF~$9$k!#(B -$BBeF~$7$?4X?t$O!"3NDj$7$?J8;zNs$r0z?t$K(B `skk-update-jisyo-p' $BFb$G(B `funcall' $B$5$l$k!#(B -$B$3$NJQ?t$N%G%U%)%k%H$O(B nil $B$G$"$k$?$a!"4X?t(B `skk-update-jisyo-p' $B$O(B t $B$rJV$9!#(B + "*「“個人辞書に取り込まない文字列のパターン”を検索する条件」を指定する。 +この変数には、引数1個の関数(又は関数のリスト)を代入する。 +代入した関数は、確定した文字列を引数に `skk-update-jisyo-p' 内で `funcall' される。 +この変数のデフォルトは nil であるため、関数 `skk-update-jisyo-p' は t を返す。 -$B4pK\E*$K!"$3$NJQ?t$O%U%C%/JQ?t$G$"$j!"$=$NCM$r@_Dj$7$?$$>l9g$K$O(B `add-hook' -$B$GDI2C$9$k$+(B `remove-hook' $B$G:o=|$9$k!#(B +基本的に、この変数はフック変数であり、その値を設定したい場合には `add-hook' +で追加するか `remove-hook' で削除する。 -SKK $B$G$O!"$+$J4A;zJQ49!&3NDj$r9T$C$?J8;zNs$OA4$F8D?M<-=q$KpJs$rH$9$k$3$H$,$G$-$k!#(B" + "*個人辞書の更新終了時にコールされる関数。 +HENKAN-BUFFER, MIDASI, OKURIGANA, WORD, PURGE の 5 引数を伴なってコールされる。 +この関数は、辞書バッファでコールされるので、変換を行ったバッファローカルな +情報を取り出したいときは、HENKAN-BUFFER を利用する。 +`skk-kakutei-initialize' がコールされる前にこの関数がコールされるので、最後の +確定に関するフラグ類は、この関数の中から参照することができる。" :type '(list symbol) :group 'skk-private) (defcustom skk-learn-combined-word nil - "*$B@\F,<-!"@\Hx<-$NF~NO$N7k2L$r<+F0E*$K3X=,$9$k$+$I$&$+$r@_Dj$9$k!#(B -Non-nil $B$J$i$P!"@\F,<-$^$?$O@\Hx<-F~NO$N:]!"@\F,<-$^$?$O@\Hx<-$H7k9g$7$?(B -$B8l$r<+F0E*$K3X=,$9$k!#(B" + "*接頭辞、接尾辞の入力の結果を自動的に学習するかどうかを設定する。 +Non-nil ならば、接頭辞または接尾辞入力の際、接頭辞または接尾辞と結合した +語を自動的に学習する。" :type 'boolean :group 'skk-private) (defcustom skk-save-jisyo-instantly nil - "*non-nil $B$G$"$l$P!"C18lEPO?!JC18l:o=|!K$NETEY!"8D?M<-=q$rJ]B8$9$k!#(B" + "*non-nil であれば、単語登録(単語削除)の都度、個人辞書を保存する。" :type 'boolean :group 'skk-private) (defvar skk-jisyo-updated nil - "`skk-henkan-in-minibuff' ($BC18lEPO?(B) $B$5$l$l$P(B t $B$H$J$k!#(B -`skk-update-jisyo' $B$G;2>H$7$F$$$k!#(B") + "`skk-henkan-in-minibuff' (単語登録) されれば t となる。 +`skk-update-jisyo' で参照している。") (defcustom skk-rom-kana-base-rule-list - '(("a" nil ("$B%"(B" . "$B$"(B")) - ("bb" "b" ("$B%C(B" . "$B$C(B")) - ("ba" nil ("$B%P(B" . "$B$P(B")) - ("be" nil ("$B%Y(B" . "$B$Y(B")) - ("bi" nil ("$B%S(B" . "$B$S(B")) - ("bo" nil ("$B%\(B" . "$B$\(B")) - ("bu" nil ("$B%V(B" . "$B$V(B")) - ("bya" nil ("$B%S%c(B" . "$B$S$c(B")) - ("bye" nil ("$B%S%'(B" . "$B$S$'(B")) - ("byi" nil ("$B%S%#(B" . "$B$S$#(B")) - ("byo" nil ("$B%S%g(B" . "$B$S$g(B")) - ("byu" nil ("$B%S%e(B" . "$B$S$e(B")) - ("cc" "c" ("$B%C(B" . "$B$C(B")) - ("cha" nil ("$B%A%c(B" . "$B$A$c(B")) - ("che" nil ("$B%A%'(B" . "$B$A$'(B")) - ("chi" nil ("$B%A(B" . "$B$A(B")) - ("cho" nil ("$B%A%g(B" . "$B$A$g(B")) - ("chu" nil ("$B%A%e(B" . "$B$A$e(B")) - ("cya" nil ("$B%A%c(B" . "$B$A$c(B")) - ("cye" nil ("$B%A%'(B" . "$B$A$'(B")) - ("cyi" nil ("$B%A%#(B" . "$B$A$#(B")) - ("cyo" nil ("$B%A%g(B" . "$B$A$g(B")) - ("cyu" nil ("$B%A%e(B" . "$B$A$e(B")) - ("dd" "d" ("$B%C(B" . "$B$C(B")) - ("da" nil ("$B%@(B" . "$B$@(B")) - ("de" nil ("$B%G(B" . "$B$G(B")) - ("dha" nil ("$B%G%c(B" . "$B$G$c(B")) - ("dhe" nil ("$B%G%'(B" . "$B$G$'(B")) - ("dhi" nil ("$B%G%#(B" . "$B$G$#(B")) - ("dho" nil ("$B%G%g(B" . "$B$G$g(B")) - ("dhu" nil ("$B%G%e(B" . "$B$G$e(B")) - ("di" nil ("$B%B(B" . "$B$B(B")) - ("do" nil ("$B%I(B" . "$B$I(B")) - ("du" nil ("$B%E(B" . "$B$E(B")) - ("dya" nil ("$B%B%c(B" . "$B$B$c(B")) - ("dye" nil ("$B%B%'(B" . "$B$B$'(B")) - ("dyi" nil ("$B%B%#(B" . "$B$B$#(B")) - ("dyo" nil ("$B%B%g(B" . "$B$B$g(B")) - ("dyu" nil ("$B%B%e(B" . "$B$B$e(B")) - ("e" nil ("$B%((B" . "$B$((B")) - ("ff" "f" ("$B%C(B" . "$B$C(B")) - ("fa" nil ("$B%U%!(B" . "$B$U$!(B")) - ("fe" nil ("$B%U%'(B" . "$B$U$'(B")) - ("fi" nil ("$B%U%#(B" . "$B$U$#(B")) - ("fo" nil ("$B%U%)(B" . "$B$U$)(B")) - ("fu" nil ("$B%U(B" . "$B$U(B")) - ("fya" nil ("$B%U%c(B" . "$B$U$c(B")) - ("fye" nil ("$B%U%'(B" . "$B$U$'(B")) - ("fyi" nil ("$B%U%#(B" . "$B$U$#(B")) - ("fyo" nil ("$B%U%g(B" . "$B$U$g(B")) - ("fyu" nil ("$B%U%e(B" . "$B$U$e(B")) - ("gg" "g" ("$B%C(B" . "$B$C(B")) - ("ga" nil ("$B%,(B" . "$B$,(B")) - ("ge" nil ("$B%2(B" . "$B$2(B")) - ("gi" nil ("$B%.(B" . "$B$.(B")) - ("go" nil ("$B%4(B" . "$B$4(B")) - ("gu" nil ("$B%0(B" . "$B$0(B")) - ("gya" nil ("$B%.%c(B" . "$B$.$c(B")) - ("gye" nil ("$B%.%'(B" . "$B$.$'(B")) - ("gyi" nil ("$B%.%#(B" . "$B$.$#(B")) - ("gyo" nil ("$B%.%g(B" . "$B$.$g(B")) - ("gyu" nil ("$B%.%e(B" . "$B$.$e(B")) - ;;("h" "" ("$B%*(B" . "$B$*(B")) - ("ha" nil ("$B%O(B" . "$B$O(B")) - ("he" nil ("$B%X(B" . "$B$X(B")) - ("hi" nil ("$B%R(B" . "$B$R(B")) - ("ho" nil ("$B%[(B" . "$B$[(B")) - ("hu" nil ("$B%U(B" . "$B$U(B")) - ("hya" nil ("$B%R%c(B" . "$B$R$c(B")) - ("hye" nil ("$B%R%'(B" . "$B$R$'(B")) - ("hyi" nil ("$B%R%#(B" . "$B$R$#(B")) - ("hyo" nil ("$B%R%g(B" . "$B$R$g(B")) - ("hyu" nil ("$B%R%e(B" . "$B$R$e(B")) - ("i" nil ("$B%$(B" . "$B$$(B")) - ("jj" "j" ("$B%C(B" . "$B$C(B")) - ("ja" nil ("$B%8%c(B" . "$B$8$c(B")) - ("je" nil ("$B%8%'(B" . "$B$8$'(B")) - ("ji" nil ("$B%8(B" . "$B$8(B")) - ("jo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("ju" nil ("$B%8%e(B" . "$B$8$e(B")) - ("jya" nil ("$B%8%c(B" . "$B$8$c(B")) - ("jye" nil ("$B%8%'(B" . "$B$8$'(B")) - ("jyi" nil ("$B%8%#(B" . "$B$8$#(B")) - ("jyo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("jyu" nil ("$B%8%e(B" . "$B$8$e(B")) - ("kk" "k" ("$B%C(B" . "$B$C(B")) - ("ka" nil ("$B%+(B" . "$B$+(B")) - ("ke" nil ("$B%1(B" . "$B$1(B")) - ("ki" nil ("$B%-(B" . "$B$-(B")) - ("ko" nil ("$B%3(B" . "$B$3(B")) - ("ku" nil ("$B%/(B" . "$B$/(B")) - ("kya" nil ("$B%-%c(B" . "$B$-$c(B")) - ("kye" nil ("$B%-%'(B" . "$B$-$'(B")) - ("kyi" nil ("$B%-%#(B" . "$B$-$#(B")) - ("kyo" nil ("$B%-%g(B" . "$B$-$g(B")) - ("kyu" nil ("$B%-%e(B" . "$B$-$e(B")) - ("ma" nil ("$B%^(B" . "$B$^(B")) - ("me" nil ("$B%a(B" . "$B$a(B")) - ("mi" nil ("$B%_(B" . "$B$_(B")) - ("mo" nil ("$B%b(B" . "$B$b(B")) - ("mu" nil ("$B%`(B" . "$B$`(B")) - ("mya" nil ("$B%_%c(B" . "$B$_$c(B")) - ("mye" nil ("$B%_%'(B" . "$B$_$'(B")) - ("myi" nil ("$B%_%#(B" . "$B$_$#(B")) - ("myo" nil ("$B%_%g(B" . "$B$_$g(B")) - ("myu" nil ("$B%_%e(B" . "$B$_$e(B")) - ("n" nil ("$B%s(B" . "$B$s(B")) - ("n'" nil ("$B%s(B" . "$B$s(B")) - ("na" nil ("$B%J(B" . "$B$J(B")) - ("ne" nil ("$B%M(B" . "$B$M(B")) - ("ni" nil ("$B%K(B" . "$B$K(B")) - ("nn" nil ("$B%s(B" . "$B$s(B")) - ("no" nil ("$B%N(B" . "$B$N(B")) - ("nu" nil ("$B%L(B" . "$B$L(B")) - ("nya" nil ("$B%K%c(B" . "$B$K$c(B")) - ("nye" nil ("$B%K%'(B" . "$B$K$'(B")) - ("nyi" nil ("$B%K%#(B" . "$B$K$#(B")) - ("nyo" nil ("$B%K%g(B" . "$B$K$g(B")) - ("nyu" nil ("$B%K%e(B" . "$B$K$e(B")) - ("o" nil ("$B%*(B" . "$B$*(B")) - ("pp" "p" ("$B%C(B" . "$B$C(B")) - ("pa" nil ("$B%Q(B" . "$B$Q(B")) - ("pe" nil ("$B%Z(B" . "$B$Z(B")) - ("pi" nil ("$B%T(B" . "$B$T(B")) - ("po" nil ("$B%](B" . "$B$](B")) - ("pu" nil ("$B%W(B" . "$B$W(B")) - ("pya" nil ("$B%T%c(B" . "$B$T$c(B")) - ("pye" nil ("$B%T%'(B" . "$B$T$'(B")) - ("pyi" nil ("$B%T%#(B" . "$B$T$#(B")) - ("pyo" nil ("$B%T%g(B" . "$B$T$g(B")) - ("pyu" nil ("$B%T%e(B" . "$B$T$e(B")) - ("rr" "r" ("$B%C(B" . "$B$C(B")) - ("ra" nil ("$B%i(B" . "$B$i(B")) - ("re" nil ("$B%l(B" . "$B$l(B")) - ("ri" nil ("$B%j(B" . "$B$j(B")) - ("ro" nil ("$B%m(B" . "$B$m(B")) - ("ru" nil ("$B%k(B" . "$B$k(B")) - ("rya" nil ("$B%j%c(B" . "$B$j$c(B")) - ("rye" nil ("$B%j%'(B" . "$B$j$'(B")) - ("ryi" nil ("$B%j%#(B" . "$B$j$#(B")) - ("ryo" nil ("$B%j%g(B" . "$B$j$g(B")) - ("ryu" nil ("$B%j%e(B" . "$B$j$e(B")) - ("ss" "s" ("$B%C(B" . "$B$C(B")) - ("sa" nil ("$B%5(B" . "$B$5(B")) - ("se" nil ("$B%;(B" . "$B$;(B")) - ("sha" nil ("$B%7%c(B" . "$B$7$c(B")) - ("she" nil ("$B%7%'(B" . "$B$7$'(B")) - ("shi" nil ("$B%7(B" . "$B$7(B")) - ("sho" nil ("$B%7%g(B" . "$B$7$g(B")) - ("shu" nil ("$B%7%e(B" . "$B$7$e(B")) - ("si" nil ("$B%7(B" . "$B$7(B")) - ("so" nil ("$B%=(B" . "$B$=(B")) - ("su" nil ("$B%9(B" . "$B$9(B")) - ("sya" nil ("$B%7%c(B" . "$B$7$c(B")) - ("sye" nil ("$B%7%'(B" . "$B$7$'(B")) - ("syi" nil ("$B%7%#(B" . "$B$7$#(B")) - ("syo" nil ("$B%7%g(B" . "$B$7$g(B")) - ("syu" nil ("$B%7%e(B" . "$B$7$e(B")) - ("tt" "t" ("$B%C(B" . "$B$C(B")) - ("ta" nil ("$B%?(B" . "$B$?(B")) - ("te" nil ("$B%F(B" . "$B$F(B")) - ("tha" nil ("$B%F%!(B" . "$B$F$!(B")) - ("the" nil ("$B%F%'(B" . "$B$F$'(B")) - ("thi" nil ("$B%F%#(B" . "$B$F$#(B")) - ("tho" nil ("$B%F%g(B" . "$B$F$g(B")) - ("thu" nil ("$B%F%e(B" . "$B$F$e(B")) - ("ti" nil ("$B%A(B" . "$B$A(B")) - ("to" nil ("$B%H(B" . "$B$H(B")) - ("tsu" nil ("$B%D(B" . "$B$D(B")) - ("tu" nil ("$B%D(B" . "$B$D(B")) - ("tya" nil ("$B%A%c(B" . "$B$A$c(B")) - ("tye" nil ("$B%A%'(B" . "$B$A$'(B")) - ("tyi" nil ("$B%A%#(B" . "$B$A$#(B")) - ("tyo" nil ("$B%A%g(B" . "$B$A$g(B")) - ("tyu" nil ("$B%A%e(B" . "$B$A$e(B")) - ("u" nil ("$B%&(B" . "$B$&(B")) - ("vv" "v" ("$B%C(B" . "$B$C(B")) - ("va" nil ("$B%t%!(B" . "$B$&!+$!(B")) - ("ve" nil ("$B%t%'(B" . "$B$&!+$'(B")) - ("vi" nil ("$B%t%#(B" . "$B$&!+$#(B")) - ("vo" nil ("$B%t%)(B" . "$B$&!+$)(B")) - ("vu" nil ("$B%t(B" . "$B$&!+(B")) - ("ww" "w" ("$B%C(B" . "$B$C(B")) - ("wa" nil ("$B%o(B" . "$B$o(B")) - ("we" nil ("$B%&%'(B" . "$B$&$'(B")) - ("wi" nil ("$B%&%#(B" . "$B$&$#(B")) - ("wo" nil ("$B%r(B" . "$B$r(B")) - ("wu" nil ("$B%&(B" . "$B$&(B")) - ("xx" "x" ("$B%C(B" . "$B$C(B")) - ("xa" nil ("$B%!(B" . "$B$!(B")) - ("xe" nil ("$B%'(B" . "$B$'(B")) - ("xi" nil ("$B%#(B" . "$B$#(B")) - ("xka" nil ("$B%u(B" . "$B$+(B")) - ("xke" nil ("$B%v(B" . "$B$1(B")) - ("xo" nil ("$B%)(B" . "$B$)(B")) - ("xtsu" nil ("$B%C(B" . "$B$C(B")) - ("xtu" nil ("$B%C(B" . "$B$C(B")) - ("xu" nil ("$B%%(B" . "$B$%(B")) - ("xwa" nil ("$B%n(B" . "$B$n(B")) - ("xwe" nil ("$B%q(B" . "$B$q(B")) - ("xwi" nil ("$B%p(B" . "$B$p(B")) - ("xya" nil ("$B%c(B" . "$B$c(B")) - ("xyo" nil ("$B%g(B" . "$B$g(B")) - ("xyu" nil ("$B%e(B" . "$B$e(B")) - ("yy" "y" ("$B%C(B" . "$B$C(B")) - ("ya" nil ("$B%d(B" . "$B$d(B")) - ("ye" nil ("$B%$%'(B" . "$B$$$'(B")) - ("yo" nil ("$B%h(B" . "$B$h(B")) - ("yu" nil ("$B%f(B" . "$B$f(B")) - ("zz" "z" ("$B%C(B" . "$B$C(B")) - ("z " nil "$B!!(B") - ("z*" nil "$B"((B") - ("z," nil "$B!E(B") - ("z-" nil "$B!A(B") - ("z." nil "$B!D(B") - ("z/" nil "$B!&(B") - ("z0" nil "$B!{(B") - ("z:" nil "$(O!,(B") - ("z;" nil "$(O!+(B") - ("z@" nil "$B!}(B") - ("z[" nil "$B!X(B") - ("z]" nil "$B!Y(B") - ("z{" nil "$B!Z(B") - ("z}" nil "$B![(B") - ("z(" nil "$B!J(B") - ("z)" nil "$B!K(B") - ("za" nil ("$B%6(B" . "$B$6(B")) - ("ze" nil ("$B%<(B" . "$B$<(B")) - ("zh" nil "$B"+(B") - ("zi" nil ("$B%8(B" . "$B$8(B")) - ("zj" nil "$B"-(B") - ("zk" nil "$B",(B") - ("zl" nil "$B"*(B") - ("zL" nil "$B"M(B") - ("zn" nil "$B!<(B") - ("zo" nil ("$B%>(B" . "$B$>(B")) - ("zu" nil ("$B%:(B" . "$B$:(B")) - ("zya" nil ("$B%8%c(B" . "$B$8$c(B")) - ("zye" nil ("$B%8%'(B" . "$B$8$'(B")) - ("zyi" nil ("$B%8%#(B" . "$B$8$#(B")) - ("zyo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("zyu" nil ("$B%8%e(B" . "$B$8$e(B")) + '(("a" nil ("ア" . "あ")) + ("bb" "b" ("ッ" . "っ")) + ("ba" nil ("バ" . "ば")) + ("be" nil ("ベ" . "べ")) + ("bi" nil ("ビ" . "び")) + ("bo" nil ("ボ" . "ぼ")) + ("bu" nil ("ブ" . "ぶ")) + ("bya" nil ("ビャ" . "びゃ")) + ("bye" nil ("ビェ" . "びぇ")) + ("byi" nil ("ビィ" . "びぃ")) + ("byo" nil ("ビョ" . "びょ")) + ("byu" nil ("ビュ" . "びゅ")) + ("cc" "c" ("ッ" . "っ")) + ("cha" nil ("チャ" . "ちゃ")) + ("che" nil ("チェ" . "ちぇ")) + ("chi" nil ("チ" . "ち")) + ("cho" nil ("チョ" . "ちょ")) + ("chu" nil ("チュ" . "ちゅ")) + ("cya" nil ("チャ" . "ちゃ")) + ("cye" nil ("チェ" . "ちぇ")) + ("cyi" nil ("チィ" . "ちぃ")) + ("cyo" nil ("チョ" . "ちょ")) + ("cyu" nil ("チュ" . "ちゅ")) + ("dd" "d" ("ッ" . "っ")) + ("da" nil ("ダ" . "だ")) + ("de" nil ("デ" . "で")) + ("dha" nil ("デャ" . "でゃ")) + ("dhe" nil ("デェ" . "でぇ")) + ("dhi" nil ("ディ" . "でぃ")) + ("dho" nil ("デョ" . "でょ")) + ("dhu" nil ("デュ" . "でゅ")) + ("di" nil ("ヂ" . "ぢ")) + ("do" nil ("ド" . "ど")) + ("du" nil ("ヅ" . "づ")) + ("dya" nil ("ヂャ" . "ぢゃ")) + ("dye" nil ("ヂェ" . "ぢぇ")) + ("dyi" nil ("ヂィ" . "ぢぃ")) + ("dyo" nil ("ヂョ" . "ぢょ")) + ("dyu" nil ("ヂュ" . "ぢゅ")) + ("e" nil ("エ" . "え")) + ("ff" "f" ("ッ" . "っ")) + ("fa" nil ("ファ" . "ふぁ")) + ("fe" nil ("フェ" . "ふぇ")) + ("fi" nil ("フィ" . "ふぃ")) + ("fo" nil ("フォ" . "ふぉ")) + ("fu" nil ("フ" . "ふ")) + ("fya" nil ("フャ" . "ふゃ")) + ("fye" nil ("フェ" . "ふぇ")) + ("fyi" nil ("フィ" . "ふぃ")) + ("fyo" nil ("フョ" . "ふょ")) + ("fyu" nil ("フュ" . "ふゅ")) + ("gg" "g" ("ッ" . "っ")) + ("ga" nil ("ガ" . "が")) + ("ge" nil ("ゲ" . "げ")) + ("gi" nil ("ギ" . "ぎ")) + ("go" nil ("ゴ" . "ご")) + ("gu" nil ("グ" . "ぐ")) + ("gya" nil ("ギャ" . "ぎゃ")) + ("gye" nil ("ギェ" . "ぎぇ")) + ("gyi" nil ("ギィ" . "ぎぃ")) + ("gyo" nil ("ギョ" . "ぎょ")) + ("gyu" nil ("ギュ" . "ぎゅ")) + ;;("h" "" ("オ" . "お")) + ("ha" nil ("ハ" . "は")) + ("he" nil ("ヘ" . "へ")) + ("hi" nil ("ヒ" . "ひ")) + ("ho" nil ("ホ" . "ほ")) + ("hu" nil ("フ" . "ふ")) + ("hya" nil ("ヒャ" . "ひゃ")) + ("hye" nil ("ヒェ" . "ひぇ")) + ("hyi" nil ("ヒィ" . "ひぃ")) + ("hyo" nil ("ヒョ" . "ひょ")) + ("hyu" nil ("ヒュ" . "ひゅ")) + ("i" nil ("イ" . "い")) + ("jj" "j" ("ッ" . "っ")) + ("ja" nil ("ジャ" . "じゃ")) + ("je" nil ("ジェ" . "じぇ")) + ("ji" nil ("ジ" . "じ")) + ("jo" nil ("ジョ" . "じょ")) + ("ju" nil ("ジュ" . "じゅ")) + ("jya" nil ("ジャ" . "じゃ")) + ("jye" nil ("ジェ" . "じぇ")) + ("jyi" nil ("ジィ" . "じぃ")) + ("jyo" nil ("ジョ" . "じょ")) + ("jyu" nil ("ジュ" . "じゅ")) + ("kk" "k" ("ッ" . "っ")) + ("ka" nil ("カ" . "か")) + ("ke" nil ("ケ" . "け")) + ("ki" nil ("キ" . "き")) + ("ko" nil ("コ" . "こ")) + ("ku" nil ("ク" . "く")) + ("kya" nil ("キャ" . "きゃ")) + ("kye" nil ("キェ" . "きぇ")) + ("kyi" nil ("キィ" . "きぃ")) + ("kyo" nil ("キョ" . "きょ")) + ("kyu" nil ("キュ" . "きゅ")) + ("ma" nil ("マ" . "ま")) + ("me" nil ("メ" . "め")) + ("mi" nil ("ミ" . "み")) + ("mo" nil ("モ" . "も")) + ("mu" nil ("ム" . "む")) + ("mya" nil ("ミャ" . "みゃ")) + ("mye" nil ("ミェ" . "みぇ")) + ("myi" nil ("ミィ" . "みぃ")) + ("myo" nil ("ミョ" . "みょ")) + ("myu" nil ("ミュ" . "みゅ")) + ("n" nil ("ン" . "ん")) + ("n'" nil ("ン" . "ん")) + ("na" nil ("ナ" . "な")) + ("ne" nil ("ネ" . "ね")) + ("ni" nil ("ニ" . "に")) + ("nn" nil ("ン" . "ん")) + ("no" nil ("ノ" . "の")) + ("nu" nil ("ヌ" . "ぬ")) + ("nya" nil ("ニャ" . "にゃ")) + ("nye" nil ("ニェ" . "にぇ")) + ("nyi" nil ("ニィ" . "にぃ")) + ("nyo" nil ("ニョ" . "にょ")) + ("nyu" nil ("ニュ" . "にゅ")) + ("o" nil ("オ" . "お")) + ("pp" "p" ("ッ" . "っ")) + ("pa" nil ("パ" . "ぱ")) + ("pe" nil ("ペ" . "ぺ")) + ("pi" nil ("ピ" . "ぴ")) + ("po" nil ("ポ" . "ぽ")) + ("pu" nil ("プ" . "ぷ")) + ("pya" nil ("ピャ" . "ぴゃ")) + ("pye" nil ("ピェ" . "ぴぇ")) + ("pyi" nil ("ピィ" . "ぴぃ")) + ("pyo" nil ("ピョ" . "ぴょ")) + ("pyu" nil ("ピュ" . "ぴゅ")) + ("rr" "r" ("ッ" . "っ")) + ("ra" nil ("ラ" . "ら")) + ("re" nil ("レ" . "れ")) + ("ri" nil ("リ" . "り")) + ("ro" nil ("ロ" . "ろ")) + ("ru" nil ("ル" . "る")) + ("rya" nil ("リャ" . "りゃ")) + ("rye" nil ("リェ" . "りぇ")) + ("ryi" nil ("リィ" . "りぃ")) + ("ryo" nil ("リョ" . "りょ")) + ("ryu" nil ("リュ" . "りゅ")) + ("ss" "s" ("ッ" . "っ")) + ("sa" nil ("サ" . "さ")) + ("se" nil ("セ" . "せ")) + ("sha" nil ("シャ" . "しゃ")) + ("she" nil ("シェ" . "しぇ")) + ("shi" nil ("シ" . "し")) + ("sho" nil ("ショ" . "しょ")) + ("shu" nil ("シュ" . "しゅ")) + ("si" nil ("シ" . "し")) + ("so" nil ("ソ" . "そ")) + ("su" nil ("ス" . "す")) + ("sya" nil ("シャ" . "しゃ")) + ("sye" nil ("シェ" . "しぇ")) + ("syi" nil ("シィ" . "しぃ")) + ("syo" nil ("ショ" . "しょ")) + ("syu" nil ("シュ" . "しゅ")) + ("tt" "t" ("ッ" . "っ")) + ("ta" nil ("タ" . "た")) + ("te" nil ("テ" . "て")) + ("tha" nil ("テァ" . "てぁ")) + ("the" nil ("テェ" . "てぇ")) + ("thi" nil ("ティ" . "てぃ")) + ("tho" nil ("テョ" . "てょ")) + ("thu" nil ("テュ" . "てゅ")) + ("ti" nil ("チ" . "ち")) + ("to" nil ("ト" . "と")) + ("tsu" nil ("ツ" . "つ")) + ("tu" nil ("ツ" . "つ")) + ("tya" nil ("チャ" . "ちゃ")) + ("tye" nil ("チェ" . "ちぇ")) + ("tyi" nil ("チィ" . "ちぃ")) + ("tyo" nil ("チョ" . "ちょ")) + ("tyu" nil ("チュ" . "ちゅ")) + ("u" nil ("ウ" . "う")) + ("vv" "v" ("ッ" . "っ")) + ("va" nil ("ヴァ" . "う゛ぁ")) + ("ve" nil ("ヴェ" . "う゛ぇ")) + ("vi" nil ("ヴィ" . "う゛ぃ")) + ("vo" nil ("ヴォ" . "う゛ぉ")) + ("vu" nil ("ヴ" . "う゛")) + ("ww" "w" ("ッ" . "っ")) + ("wa" nil ("ワ" . "わ")) + ("we" nil ("ウェ" . "うぇ")) + ("wi" nil ("ウィ" . "うぃ")) + ("wo" nil ("ヲ" . "を")) + ("wu" nil ("ウ" . "う")) + ("xx" "x" ("ッ" . "っ")) + ("xa" nil ("ァ" . "ぁ")) + ("xe" nil ("ェ" . "ぇ")) + ("xi" nil ("ィ" . "ぃ")) + ("xka" nil ("ヵ" . "か")) + ("xke" nil ("ヶ" . "け")) + ("xo" nil ("ォ" . "ぉ")) + ("xtsu" nil ("ッ" . "っ")) + ("xtu" nil ("ッ" . "っ")) + ("xu" nil ("ゥ" . "ぅ")) + ("xwa" nil ("ヮ" . "ゎ")) + ("xwe" nil ("ヱ" . "ゑ")) + ("xwi" nil ("ヰ" . "ゐ")) + ("xya" nil ("ャ" . "ゃ")) + ("xyo" nil ("ョ" . "ょ")) + ("xyu" nil ("ュ" . "ゅ")) + ("yy" "y" ("ッ" . "っ")) + ("ya" nil ("ヤ" . "や")) + ("ye" nil ("イェ" . "いぇ")) + ("yo" nil ("ヨ" . "よ")) + ("yu" nil ("ユ" . "ゆ")) + ("zz" "z" ("ッ" . "っ")) + ("z " nil " ") + ("z*" nil "※") + ("z," nil "‥") + ("z-" nil "~") + ("z." nil "…") + ("z/" nil "・") + ("z0" nil "○") + ("z:" nil "O!,") + ("z;" nil "O!+") + ("z@" nil "◎") + ("z[" nil "『") + ("z]" nil "』") + ("z{" nil "【") + ("z}" nil "】") + ("z(" nil "(") + ("z)" nil ")") + ("za" nil ("ザ" . "ざ")) + ("ze" nil ("ゼ" . "ぜ")) + ("zh" nil "←") + ("zi" nil ("ジ" . "じ")) + ("zj" nil "↓") + ("zk" nil "↑") + ("zl" nil "→") + ("zL" nil "⇒") + ("zn" nil "ー") + ("zo" nil ("ゾ" . "ぞ")) + ("zu" nil ("ズ" . "ず")) + ("zya" nil ("ジャ" . "じゃ")) + ("zye" nil ("ジェ" . "じぇ")) + ("zyi" nil ("ジィ" . "じぃ")) + ("zyo" nil ("ジョ" . "じょ")) + ("zyu" nil ("ジュ" . "じゅ")) ("." nil skk-auto-kutouten) ("," nil skk-auto-kutouten) ("-" nil skk-auto-kutouten) - (":" nil "$B!'(B") - (";" nil "$B!((B") - ("?" nil "$B!)(B") - ("[" nil "$B!V(B") - ("]" nil "$B!W(B") + (":" nil ":") + (";" nil ";") + ("?" nil "?") + ("[" nil "「") + ("]" nil "」") ("l" nil skk-latin-mode) ("q" nil skk-toggle-characters) ("L" nil skk-jisx0208-latin-mode) @@ -949,174 +949,174 @@ Non-nil $B$J$i$P!"@\F,<-$^$?$O@\Hx<-F~NO$N:]!"@\F,<-$^$?$O@\Hx<-$H7k9g$7$?(B ;;("\M-\040" nil skk-comp-start-henkan); M-SPC ;;("\M-\121" nil skk-backward-and-set-henkan-point); M-Q ) - ;; $B%3%s%9%?%s%H$K$7$F$7$^$o$J$$$N$O!"%m!<%^;zF~NO$H$OA4$/JL$N@_Dj$r(B - ;; $B$9$k?M$b$$$k$+$i$G$9!#(B - "*$B%-!uBVA+0\5,B'$N%j%9%H!#(B + ;; コンスタントにしてしまわないのは、ローマ字入力とは全く別の設定を + ;; する人もいるからです。 + "*キー入力をいかに処理するかを表す、状態遷移規則のリスト。 -$B%j%9%H$N3FMWAG$O!"$=$l$>$l$,0l$D$N5,B'$G$"$j!"2<5-$N7A<0$rK~$?$7$F$$$J$1$l$P(B -$B$J$i$J$$!#(B +リストの各要素は、それぞれが一つの規則であり、下記の形式を満たしていなければ +ならない。 (INPUT-STATE NEXT-STATE OUTPUT) -SKK $B$O(B INPUT-STATE $B$r8!=P$9$k$H!"(BOUTPUT $B$r%P%C%U%!$KA^F~$7!"B3$$$F(B -NEXT-STATE $B$K>uBV$r0\$7$?$&$($G!"F~NOBT$A>uBV$H$J$k!#(B +SKK は INPUT-STATE を検出すると、OUTPUT をバッファに挿入し、続いて +NEXT-STATE に状態を移したうえで、入力待ち状態となる。 -$BNc$($P!"(B +例えば、 - (\"a\" nil (\"$B%"(B\" . \"$B$"(B\")) - (\"ki\" nil (\"$B%-(B\" . \"$B$-(B\")) - (\"tt\" \"t\" (\"$B%C(B\" . \"$B$C(B\")) - (\"nn\" nil (\"$B%s(B\" . \"$B$s(B\")) - (\"n'\" nil (\"$B%s(B\" . \"$B$s(B\")) + (\"a\" nil (\"ア\" . \"あ\")) + (\"ki\" nil (\"キ\" . \"き\")) + (\"tt\" \"t\" (\"ッ\" . \"っ\")) + (\"nn\" nil (\"ン\" . \"ん\")) + (\"n'\" nil (\"ン\" . \"ん\")) -$B>e5-$N5,B'$O!"$=$l$>$l!"(B +上記の規則は、それぞれ、 - a => $B$"(B - ki => $B$-(B - tt => $B$C(Bt - nn => $B$s(B - n' => $B$s(B + a => あ + ki => き + tt => っt + nn => ん + n' => ん -$B$3$N$h$&$K>uBV$,0\$jJQ$o$k$3$H$r0UL#$9$k!#(B +このように状態が移り変わることを意味する。 -INPUT-STATE $B5Z$S(B NEXT-STATE $B$O!"DL>o(B US-ASCII $BJ8;z$+$i@.$kJ8;zNs$rMQ$$$k!#(B -$B$?$@$7!"FCJL$J>l9g$K$O(B INPUT-STATE $B$K$=$l0J30$NJ8;zNs$r;XDj$9$k$3$H$,$"$k!#(B +INPUT-STATE 及び NEXT-STATE は、通常 US-ASCII 文字から成る文字列を用いる。 +ただし、特別な場合には INPUT-STATE にそれ以外の文字列を指定することがある。 -OUTPUT $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B +OUTPUT には、以下の 3つの形式を指定できる。 -$BJ8;zNs(B -- $B$+$J%b!<%I!"%+%J%b!<%I$H$b!"$3$l$,A^F~$5$l$k!#(B -$BJ8;zNs$HJ8;zNs$N%;%k(B ($B%I%C%H%Z%"(B) - -- $B$+$J%b!<%I$K$*$$$F$O(B CDR $B$N!"%+%J%b!<%I$K$*$$$F$O(B CAR $B$NJ8;zNs$,!"(B - $B$=$l$>$lA^F~$5$l$k!#(B -$B4X?tL>%7%s%\%k(B - -- $B4X?t$rJ}$N5,B'$rMx(B -$BMQ$9$k$,!"(B `skk-rom-kana-rule-list' $B$NJ}$,M%@h$5$l$k!#=>$C$F%f!<%6$,FH<+$N5,(B -$BB'$r@_Dj$7$?$$>l9g$K$O!"(B`skk-rom-kana-rule-list' $B$NJ}$r;H$&$N$,$h$$!#(B" +同様の規則を表す変数に `skk-rom-kana-rule-list' がある。SKK は両方の規則を利 +用するが、 `skk-rom-kana-rule-list' の方が優先される。従ってユーザが独自の規 +則を設定したい場合には、`skk-rom-kana-rule-list' の方を使うのがよい。" :type '(repeat - (list :tag "$B%k!<%k(B" - (radio :tag "1 $BF~NO(B" - (string :tag "$BJ8;zNs(B") - (symbol :tag "$BJQ?tL>(B")) - (radio :tag "2 $BuBV(B" - (string :tag "$BJ8;zNs(B") - (const :tag "nil ($B6u$N>uBV(B)" nil)) - (radio :tag "3 $B=PNO(B" - (function :tag "$B4X?t$G$-$a$k(B") - (string :tag "$BJ8;zNs(B") - (cons :tag "$BJ8;zNs$NAH(B" - (string :tag "3-1 $B%+%?%+%J(B") - (string :tag "3-2 $B$R$i$,$J(B"))))) + (list :tag "ルール" + (radio :tag "1 入力" + (string :tag "文字列") + (symbol :tag "変数名")) + (radio :tag "2 次の状態" + (string :tag "文字列") + (const :tag "nil (空の状態)" nil)) + (radio :tag "3 出力" + (function :tag "関数できめる") + (string :tag "文字列") + (cons :tag "文字列の組" + (string :tag "3-1 カタカナ") + (string :tag "3-2 ひらがな"))))) :group 'skk-input-basic) (defcustom skk-rom-kana-rule-list - '(;; $B%f!<%6!<$N9%$_$G@_Dj$,J,$l$=$&$JMWAG$O!"(B - ;; skk-rom-kana-base-rule-list $B$+$i$3$A$i$X0\$7$^$7$g$&(B...$B!#(B - ("hh" "h" ("$B%C(B" . "$B$C(B")) - ;; when you may want to insert $B!V$,$s$^!W(Bby "gamma"... - ("mm" "m" ("$B%s(B" . "$B$s(B"))) - "*$B>uBVA+0\5,B'$N%j%9%H$G!"%f!<%6$NDI2C@_DjMQ$NJQ?t!#(B + '(;; ユーザーの好みで設定が分れそうな要素は、 + ;; skk-rom-kana-base-rule-list からこちらへ移しましょう...。 + ("hh" "h" ("ッ" . "っ")) + ;; when you may want to insert 「がんま」by "gamma"... + ("mm" "m" ("ン" . "ん"))) + "*状態遷移規則のリストで、ユーザの追加設定用の変数。 -$B$3$NJQ?t$O!"(B`skk-rom-kana-base-rule-list' $B$HF1MM$N=q<0$rK~$?$9I,MW$,$"$k!#(B +この変数は、`skk-rom-kana-base-rule-list' と同様の書式を満たす必要がある。 -SKK $B$O5/F0;~$K$3$N(B 2 $BJQ?t$rJT=8$7$F(B `skk-rule-tree' $B$r:n@.$9$k$,!"(B -`skk-rom-kana-rule-list' $B$N5,B'$O(B `skk-rom-kana-base-rule-list' $B$N5,B'$h$j$b(B -$BM%@h$5$l$k!#(B +SKK は起動時にこの 2 変数を編集して `skk-rule-tree' を作成するが、 +`skk-rom-kana-rule-list' の規則は `skk-rom-kana-base-rule-list' の規則よりも +優先される。 -$B%j%9%H$N3FMWAG$O!"$=$l$>$l$,0l$D$N5,B'$G$"$j!"2<5-$N7A<0$rK~$?$7$F$$$J$1$l$P(B -$B$J$i$J$$!#(B +リストの各要素は、それぞれが一つの規則であり、下記の形式を満たしていなければ +ならない。 (INPUT-STATE NEXT-STATE OUTPUT) -SKK $B$O(B INPUT-STATE $B$r8!=P$9$k$H!"(BOUTPUT $B$r%P%C%U%!$KA^F~$7!"B3$$$F(B -NEXT-STATE $B$K>uBV$r0\$7$?$&$($G!"F~NOBT$A>uBV$H$J$k!#(B +SKK は INPUT-STATE を検出すると、OUTPUT をバッファに挿入し、続いて +NEXT-STATE に状態を移したうえで、入力待ち状態となる。 -$B>\$7$/$O!"(B`skk-rom-kana-base-rule-list' $B$N@bL@$r;2>H$N$3$H!#(B +詳しくは、`skk-rom-kana-base-rule-list' の説明を参照のこと。 -$B%f!<%6$O!"DI2C$7$?$$5,B'$r!"Nc$($P(B +ユーザは、追加したい規則を、例えば (setq skk-rom-kana-rule-list \\='( - (\"hh\" \"h\" (\"$B%C(B\" . \"$B$C(B\")) - (\"@\" nil \"$B!w(B\") + (\"hh\" \"h\" (\"ッ\" . \"っ\")) + (\"@\" nil \"@\") ...)) -$B>e5-$N$h$&$K(B `~/.emacs.d/init.el' $B$^$?$O(B `skk-init-file' $B$K$F@_Dj$9$k$3$H$,$G$-$k!#(B +上記のように `~/.emacs.d/init.el' または `skk-init-file' にて設定することができる。 -$B$3$NJQ?t$O!"I8=`$G$O(B +この変数は、標準では - (\"hh\" \"h\" (\"$B%C(B\" . \"$B$C(B\")) + (\"hh\" \"h\" (\"ッ\" . \"っ\")) -$B$N@_Dj$,$5$l$F$$$k!#$3$N5,B'$K=>$&$H!"(B +の設定がされている。この規則に従うと、 - ohhonn => $B$*$C$[$s(B - ohhira => $B$*$C$R$i(B + ohhonn => おっほん + ohhira => おっひら -$B$N$h$&$KA^F~$5$l$k!#$b$7$3$l$r(B +のように挿入される。もしこれを - ohhonn => $B$*$*$[$s(B - ohhira => $B$*$*$R$i(B + ohhonn => おおほん + ohhira => おおひら -$B$N$h$&$KJQ99$7$?$1$l$P!"$3$N@_Dj(B +のように変更したければ、この設定 - (\"hh\" \"h\" (\"$B%C(B\" . \"$B$C(B\")) + (\"hh\" \"h\" (\"ッ\" . \"っ\")) -$B$r:o=|$9$k!#(B +を削除する。 -$B$^$?!"(B`@' $B$G(B `skk-today' ($BEvF|$NF|IU$NF~NO(B) $B$r5/F0$9$kBe$j$K(B `$B!w(B' $B$rF~(B -$BNO$7$?$$>l9g$O!"(B`skk-rom-kana-rule-list' $B$K(B +また、`@' で `skk-today' (当日の日付の入力) を起動する代りに `@' を入 +力したい場合は、`skk-rom-kana-rule-list' に - (\"@\" nil \"$B!w(B\") + (\"@\" nil \"@\") -$B$H$$$&MWAG$r2C$($k!#(B +という要素を加える。 -$B$b$7!"(BSKK $B$r5/F0$7$?8e$G(B `skk-rom-kana-rule-list' $B$rJQ99$7$?>l9g!"$=$N@_(B -$BDj$rH?1G$5$;$k$K$O(B \\[skk-restart] $B$r(B")) - (radio :tag "2 $BuBV(B" - (string :tag "$BJ8;zNs(B") - (const :tag "nil ($B6u$N>uBV(B)" nil)) - (radio :tag "3 $B=PNO(B" - (function :tag "$B4X?t$G$-$a$k(B") - (string :tag "$BJ8;zNs(B") - (cons :tag "$BJ8;zNs$NAH(B" - (string :tag "3-1 $B%+%?%+%J(B") - (string :tag "3-2 $B$R$i$,$J(B"))))) + (list :tag "ルール" + (radio :tag "1 入力" + (string :tag "文字列") + (symbol :tag "変数名")) + (radio :tag "2 次の状態" + (string :tag "文字列") + (const :tag "nil (空の状態)" nil)) + (radio :tag "3 出力" + (function :tag "関数できめる") + (string :tag "文字列") + (cons :tag "文字列の組" + (string :tag "3-1 カタカナ") + (string :tag "3-2 ひらがな"))))) :group 'skk-input-basic) (defcustom skk-kana-input-search-function (lambda () (save-match-data (and (string-match "^h\\([bcdfghjklmnpqrstvwxz]\\)$" skk-prefix) - (member (char-to-string (preceding-char)) '("$B$*(B" "$B%*(B")) - (cons '("$B%*(B" . "$B$*(B") (match-string 1 skk-prefix))))) - "*$B%k!<%k%j%9%H$NCf$K5-$;$J$$JQ49%k!<%k$r=hM}$9$k4X?t!#(B -`skk-rom-kana-base-rule-list' $B$H(B `skk-rom-kana-rule-list' $B$NMWAG$rA4$F8!:w(B -$B$7$?8e$K%3!<%k$5$l$k!#0z?t$O$J$$!#(B + (member (char-to-string (preceding-char)) '("お" "オ")) + (cons '("オ" . "お") (match-string 1 skk-prefix))))) + "*ルールリストの中に記せない変換ルールを処理する関数。 +`skk-rom-kana-base-rule-list' と `skk-rom-kana-rule-list' の要素を全て検索 +した後にコールされる。引数はない。 - ($B8=:_$NF~NO$KBP$9$k=PNO(B . \"$BB3$/(B unfixed prefix\") + (現在の入力に対する出力 . \"続く unfixed prefix\") -$B$H$$$&%;%k$rJV$9!#=PNO$NH$N$3$H!#(B +というセルを返す。出力の種類については `skk-rom-kana-base-rule-list' を +参照のこと。 -$B%G%U%)%k%H$G$O!"(B\"$B$*(B\" $B$N8e$N(B \"h\" + $B;R2;$NF~NO$r(B \"$B$*$*(B\" + $BB3$/;R2;(B -$B=hM}MQ$N(B unfixed prefix $B$KJQ49$7$F$$$k!#(B" +デフォルトでは、\"お\" の後の \"h\" + 子音の入力を \"おお\" + 続く子音 +処理用の unfixed prefix に変換している。" :type 'function :group 'skk-input-basic) (defcustom skk-downcase-alist nil - "*$BJQ49%-!<(B ($BBgJ8;z%m!<%^;z(B) $B$N>.J8;z$X$NJQ495,B'$rI=$o$9O"A[%j%9%H!#(B -$BJQ49%-!<$NF~NO$r3+;O$9$k:]!"(BSKK $B$G$OBgJ8;z$GF~NO$r9T$&$N$G!"(B -`skk-set-henkan-point' $B$NCf$G$3$l$r>.J8;z$KJQ49$9$k!#$3$NO"A[(B -$B%j%9%H$KBgJ8;z(B -> $B>.J8;z$NJQ49%k!<%k$r=q$$$F$*$/$3$H$G!"%-!l9g$O!"C1$K(B -downcase $B$5$l$k!#(B" + "*変換キー (大文字ローマ字) の小文字への変換規則を表わす連想リスト。 +変換キーの入力を開始する際、SKK では大文字で入力を行うので、 +`skk-set-henkan-point' の中でこれを小文字に変換する。この連想 +リストに大文字 -> 小文字の変換ルールを書いておくことで、キー入力をカス +タマイズすることができる。この連想リストが空リストの場合は、単に +downcase される。" :type '(repeat (cons character character)) :group 'skk-input-basic) @@ -1125,146 +1125,146 @@ downcase $B$5$l$k!#(B" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - "$B!!(B" "$B!*(B" "$B!I(B" "$B!t(B" "$B!p(B" "$B!s(B" "$B!u(B" "$B!G(B" - "$B!J(B" "$B!K(B" "$B!v(B" "$B!\(B" "$B!$(B" "$B!](B" "$B!%(B" "$B!?(B" - "$B#0(B" "$B#1(B" "$B#2(B" "$B#3(B" "$B#4(B" "$B#5(B" "$B#6(B" "$B#7(B" - "$B#8(B" "$B#9(B" "$B!'(B" "$B!((B" "$B!c(B" "$B!a(B" "$B!d(B" "$B!)(B" - "$B!w(B" "$B#A(B" "$B#B(B" "$B#C(B" "$B#D(B" "$B#E(B" "$B#F(B" "$B#G(B" - "$B#H(B" "$B#I(B" "$B#J(B" "$B#K(B" "$B#L(B" "$B#M(B" "$B#N(B" "$B#O(B" - "$B#P(B" "$B#Q(B" "$B#R(B" "$B#S(B" "$B#T(B" "$B#U(B" "$B#V(B" "$B#W(B" - "$B#X(B" "$B#Y(B" "$B#Z(B" "$B!N(B" "$B!@(B" "$B!O(B" "$B!0(B" "$B!2(B" - "$B!F(B" "$B#a(B" "$B#b(B" "$B#c(B" "$B#d(B" "$B#e(B" "$B#f(B" "$B#g(B" - "$B#h(B" "$B#i(B" "$B#j(B" "$B#k(B" "$B#l(B" "$B#m(B" "$B#n(B" "$B#o(B" - "$B#p(B" "$B#q(B" "$B#r(B" "$B#s(B" "$B#t(B" "$B#u(B" "$B#v(B" "$B#w(B" - "$B#x(B" "$B#y(B" "$B#z(B" "$B!P(B" "$B!C(B" "$B!Q(B" "$B!A(B" nil] - "*`skk-jisx0208-latin-insert' $B$G;2>H$5$l$kJ8;z%F!<%V%k!#(B -$B%-!<$KBP1~$9$k0LCV$KJ8;zNs$,$"$l$P!"A41Q%b!<%I$G3:Ev$N%-!<$r2!$9$3$H$G!"BP1~$9(B -$B$kJ8;z$,A^F~$5$l$k!#(B -$BNc$($P!"%9%Z!<%9%-!<$KBP1~$7$F!"H>3Q%9%Z!<%9$rA^F~$5$;$k$h$&$KJQ99$7$?$1$l$P!"(B -skk.el $B$N%m!<%I8e(B ($B$b$7$/$O(B `skk-load-hook' $B$rMxMQ$7$F(B)$B!"(B + " " "!" "”" "#" "$" "%" "&" "’" + "(" ")" "*" "+" "," "-" "." "/" + "0" "1" "2" "3" "4" "5" "6" "7" + "8" "9" ":" ";" "<" "=" ">" "?" + "@" "A" "B" "C" "D" "E" "F" "G" + "H" "I" "J" "K" "L" "M" "N" "O" + "P" "Q" "R" "S" "T" "U" "V" "W" + "X" "Y" "Z" "[" "\" "]" "^" "_" + "‘" "a" "b" "c" "d" "e" "f" "g" + "h" "i" "j" "k" "l" "m" "n" "o" + "p" "q" "r" "s" "t" "u" "v" "w" + "x" "y" "z" "{" "|" "}" "~" nil] + "*`skk-jisx0208-latin-insert' で参照される文字テーブル。 +キーに対応する位置に文字列があれば、全英モードで該当のキーを押すことで、対応す +る文字が挿入される。 +例えば、スペースキーに対応して、半角スペースを挿入させるように変更したければ、 +skk.el のロード後 (もしくは `skk-load-hook' を利用して)、 (aset skk-jisx0208-latin-vector 32 \" \") -$B$H$9$k$+!"$b$7$/$O!"(B`skk-jisx0208-latin-vector' $B$N(B 32 $BHVL\(B (0 $BHV$+$i?t$($F(B) - $B$NCM$r(B \" \"$B$H$9$k$h$&$J(B `skk-jisx0208-latin-vector' $B$rD>@\=q$-!"(Bsetq $B$G(B -$BBeF~$9$k!#(B32 $B$O!"(B? ($BH>3Q%9%Z!<%9$N(B char type) $B$rI>2A$7$?$H$-$NCM!#(B" +とするか、もしくは、`skk-jisx0208-latin-vector' の 32 番目 (0 番から数えて) + の値を \" \"とするような `skk-jisx0208-latin-vector' を直接書き、setq で +代入する。32 は、? (半角スペースの char type) を評価したときの値。" :type 'sexp :group 'skk-input-basic) (defcustom skk-special-midashi-char-list '(?> ?< ??) - "*$B@\F,<-!"@\Hx<-$NF~NO$r;XDj$9$kJ8;z$N%j%9%H!#(B" + "*接頭辞、接尾辞の入力を指定する文字のリスト。" ;; "*List of characters for entering prefixes and suffixes." :type '(repeat character) :group 'skk-input-basic) (defcustom skk-kuten-touten-alist - '((jp . ("$B!#(B" . "$B!"(B")) - (en . ("$B!%(B" . "$B!$(B")) - (jp-en . ("$B!#(B" . "$B!$(B")) - (en-jp . ("$B!%(B" . "$B!"(B"))) - "*$B6gE@$HFIE@$NO"A[%j%9%H!#(B -$B3FMWAG$N7A<0$O!"(B - - ($B%7%s%\%k(B . ($B6gE@$rI=$o$9J8;zNs(B . $BFIE@$rI=$o$9J8;zNs(B)) - -$B$H$$$&(B cons cell$B!#%7%s%\%k$NItJ,$O!"(B`jp' $B$b$7$/$O(B `en' $B!#(B -\\[skk-toggle-kutouten] $B$O!"$3$l$r%H%0%k$G@Z$j49$($k!#(B -$B%G%U%)%k%H$N6gFIE@$N%?%$%W$O!"JQ?t(B `skk-kutouten-type' $B$G;XDj$9$k!#(B" - :type '(repeat (cons (radio :tag "$BAH$N$J$^$((B" + '((jp . ("。" . "、")) + (en . ("." . ",")) + (jp-en . ("。" . ",")) + (en-jp . ("." . "、"))) + "*句点と読点の連想リスト。 +各要素の形式は、 + + (シンボル . (句点を表わす文字列 . 読点を表わす文字列)) + +という cons cell。シンボルの部分は、`jp' もしくは `en' 。 +\\[skk-toggle-kutouten] は、これをトグルで切り換える。 +デフォルトの句読点のタイプは、変数 `skk-kutouten-type' で指定する。" + :type '(repeat (cons (radio :tag "組のなまえ" (const jp) (const en) (const jp-en) (const en-jp)) - (cons :tag "$B6gFIE@$NAH(B" - (string :tag "$B6gE@(B" "$B!#(B") - (string :tag "$BFIE@(B" "$B!"(B")))) + (cons :tag "句読点の組" + (string :tag "句点" "。") + (string :tag "読点" "、")))) :group 'skk-input-basic) (defcustom skk-kutouten-type 'jp - "*$BI8=`$N6gFIE@$N%?%$%W!#(B -$B$3$NJQ?t$NCM$K;XDj$G$-$k%7%s%\%k$H6gFIE@$NAH$H$NBP1~$O0J2<$NDL$j!#(B + "*標準の句読点のタイプ。 +この変数の値に指定できるシンボルと句読点の組との対応は以下の通り。 - `jp': $B!V!#!W!V!"!W(B - `en': $B!V!%!W!V!$!W(B - `jp-en': $B!V!#!W!V!$!W(B - `en-jp': $B!V!%!W!V!"!W(B + `jp': 「。」「、」 + `en': 「.」「,」 + `jp-en': 「。」「,」 + `en-jp': 「.」「、」 -$B$3$NJQ?t$K$O%3%s%9!&%;%k$r;XDj$9$k$3$H$b2DG=!#$=$N>l9g$O(B +この変数にはコンス・セルを指定することも可能。その場合は - ($B6gE@$r<($9J8;zNs(B . $BFIE@$r<($9J8;zNs(B) + (句点を示す文字列 . 読点を示す文字列) -$B$N$h$&$K;XDj$9$k!#(B +のように指定する。 -$B$3$NJQ?t$O(B `skk-use-kana-keyboard' $B$,(B non-nil $B$J$i$PL58z$G$"$k!#(B +この変数は `skk-use-kana-keyboard' が non-nil ならば無効である。 -$B$3$NJQ?t$O(B `setq' $B$9$k$H%P%C%U%!%m!<%+%k2=$5$l$k$?$a!"%0%m!<%P%k$K(B -$BCM$r@_Dj$7$?$$>l9g$O(B `setq-default' $B$rMQ$$$k$3$H$,?d>)$5$l$k!#(B" +この変数は `setq' するとバッファローカル化されるため、グローバルに +値を設定したい場合は `setq-default' を用いることが推奨される。" :type '(radio (const jp) (const en) (const jp-en) (const en-jp) - (cons :tag "$BG$0U$NAH(B" - (string :tag "$B6gE@(B" "$B!#(B") - (string :tag "$BFIE@(B" "$B!"(B"))) + (cons :tag "任意の組" + (string :tag "句点" "。") + (string :tag "読点" "、"))) :group 'skk-input-basic) (make-variable-buffer-local 'skk-kutouten-type) ;;;###autoload (put 'skk-kutouten-type 'safe-local-variable 'symbolp) (defcustom skk-use-auto-kutouten nil - "*Non-nil $B$G$"$l$P!"$+$J%b!<%I$K$*$1$kD92;(B($B!<(B)$B!"6gE@(B($B!#(B)$BKt$OFIE@(B($B!"(B)$B$NF0:n$r(B -$BJQ99$9$k!#(BASCII $B?t;z$ND>8e$G$"$l$P!"D92;(B($B!<(B)$B$O(B `-' $B$X!"6gE@(B($B!#(B)$B$O(B `.' $B$X!"(B -$BFIE@(B($B!"(B)$B$O(B `,' $B$X$HJQ99$7!"(BJISX0208($BA43Q(B)$B?t;z$ND>8e$G$"$l$P!"D92;(B($B!<(B)$B$O(B `$B!](B' $B$X!"(B -$B6gE@(B($B!#(B)$B$O(B `$B!%(B' $B$X!"FIE@(B($B!"(B)$B$O(B `$B!$(B' $B$X$HJQ99$9$k!#(B" + "*Non-nil であれば、かなモードにおける長音(ー)、句点(。)又は読点(、)の動作を +変更する。ASCII 数字の直後であれば、長音(ー)は `-' へ、句点(。)は `.' へ、 +読点(、)は `,' へと変更し、JISX0208(全角)数字の直後であれば、長音(ー)は `-' へ、 +句点(。)は `.' へ、読点(、)は `,' へと変更する。" :type 'boolean :group 'skk-input-basic) (defcustom skk-auto-insert-paren nil - "*Non-nil $B$G$"$l$P!"3g8L$HJD3g8L$r$^$H$a$FA^F~$9$k!#(B -$BNc$($P!"(B\"$B!V(B\" $B$rF~NO$7$?$H$-$K(B \"$B!W(B\" $B$r<+F0E*$KA^F~$7!"N>$+$.3g8L$N4V$K(B -$B%+!<%=%k$r0\F0$9$k!#(B -$BA^F~$9$kJ8;zNs$O!"(B`skk-auto-paren-string-alist' $B$G;XDj$9$k!#(B" + "*Non-nil であれば、括弧と閉括弧をまとめて挿入する。 +例えば、\"「\" を入力したときに \"」\" を自動的に挿入し、両かぎ括弧の間に +カーソルを移動する。 +挿入する文字列は、`skk-auto-paren-string-alist' で指定する。" :type 'boolean :group 'skk-basic :group 'skk-input-basic) (defcustom skk-auto-paren-string-alist - '(("$B!V(B" . "$B!W(B") ("$B!X(B" . "$B!Y(B") ("(" . ")") ("$B!J(B" . "$B!K(B") - ("{" . "}")("$B!P(B" . "$B!Q(B") ("$B!R(B" . "$B!S(B") ("$B!T(B" . "$B!U(B") - ("[" . "]") ("$B!N(B" . "$B!O(B") ("$B!L(B" . "$B!M(B") ("$B!Z(B" . "$B![(B") - ("\"" . "\"")("$B!H(B" . "$B!I(B") ("`" . "'") - ;;("<" . ">") ;; skk-special-midashi-char-list $B$NCf$K$"$kJ8;z!#(B + '(("「" . "」") ("『" . "』") ("(" . ")") ("(" . ")") + ("{" . "}")("{" . "}") ("〈" . "〉") ("《" . "》") + ("[" . "]") ("[" . "]") ("〔" . "〕") ("【" . "】") + ("\"" . "\"")("“" . "”") ("`" . "'") + ;;("<" . ">") ;; skk-special-midashi-char-list の中にある文字。 ) - "*$B<+F0E*$KBP$K$J$kJ8;zNs$rF~NO$9$k$?$a$NO"A[%j%9%H!#(B -`skk-auto-insert-paren' $B$,(B non-nil $B$N>l9g!"(Bcar $B$NJ8;zNs$,A^F~$5$l$?$H$-(B -$B$K(B cdr $B$NJ8;zNs$r<+F0E*$KA^F~$7!"%+!<%=%k$O$=$N(B 2 $B$D$NJ8;z$N4V$K0\F0$9$k!#(B -`skk-special-midashi-char-list' $B$NMWAG$K$J$C$F$$$kJ8;z$O!"(B -`skk-auto-paren-string-alist' $B$K4^$a$F$b:o=|$5$l$k!#(B" + "*自動的に対になる文字列を入力するための連想リスト。 +`skk-auto-insert-paren' が non-nil の場合、car の文字列が挿入されたとき +に cdr の文字列を自動的に挿入し、カーソルはその 2 つの文字の間に移動する。 +`skk-special-midashi-char-list' の要素になっている文字は、 +`skk-auto-paren-string-alist' に含めても削除される。" :type '(repeat (cons string string)) :group 'skk-input-basic) (defcustom skk-use-auto-enclose-pair-of-region nil - "*Non-nil $B$G$"$l$P!"%j!<%8%g%s$,M-8z$J>uBV$G(B `skk-auto-insert-paren' $B$re$N@0?t$G$"$kI,MW!#(B" + "*`skk-henkan-show-candidates' を呼び出すまでの `skk-start-henkan-char' を打鍵する回数。 +2 以上の整数である必要。" :type 'integer :group 'skk-henkan) (defcustom skk-previous-candidate-keys (list "x" "\C-p") - "*`skk-previous-candidate' $B$r3dEv$F$k%-!$lFCJL$J5!G=$K3d$jEv(B -$B$F$i$l$F$$$k$N$G!"$3$N%j%9%H$NCf$K$O4^$a$J$$$3$H!#(B" + "*メニュー形式で候補を選択するときの選択キーのリスト。 +\"x\", \" \" 及び \"C-g\" 以外の 7 の倍数個のキー (char type) を含む必要があ +る。\"x\", \" \" 及び \"C-g\" は候補選択時にそれぞれ特別な機能に割り当 +てられているので、このリストの中には含めないこと。" :type '(repeat character) :group 'skk-henkan) @@ -1296,12 +1296,12 @@ skk.el $B$N%m!<%I8e(B ($B$b$7$/$O(B `skk-load-hook' $B$rMxMQ$7$F(B)$B!"( (:inherit default)) (((class grayscale)) (:inherit default))) - "*$BA*Br%-!<$N(B face $BB0@-!#(B" + "*選択キーの face 属性。" :group 'skk-henkan :group 'skk-visual) (defcustom skk-henkan-rest-indicator nil - "*Non-nil $B$G$"$l$P(B \[$B;D$j(B 99++\] $B$NI=<($r1&4s$;G[CV$9$k!#(B" + "*Non-nil であれば \[残り 99++\] の表示を右寄せ配置する。" :type 'boolean :group 'skk-henkan :group 'skk-visual) @@ -1315,69 +1315,69 @@ skk.el $B$N%m!<%I8e(B ($B$b$7$/$O(B `skk-load-hook' $B$rMxMQ$7$F(B)$B!"( (:inherit default)) (((class grayscale)) (:inherit default))) - "*\[$B;D$j(B 99++\] $B$N(B face $BB0@-!#(B" + "*\[残り 99++\] の face 属性。" :group 'skk-henkan :group 'skk-visual) (defcustom skk-auto-start-henkan t - "*$BC18l$dJ8@a$N6h@Z$j$r<($9J8;z$NBG80$K$h$j<+F0E*$KJQ49$r3+;O$9$k!#(B -`skk-auto-start-henkan-keyword-list' $B$K$h$jC18l$dJ8@a$N6h@Z$j$r<($9J8;z$r(B -$B;XDj$9$k!#(B" + "*単語や文節の区切りを示す文字の打鍵により自動的に変換を開始する。 +`skk-auto-start-henkan-keyword-list' により単語や文節の区切りを示す文字を +指定する。" :type 'boolean :group 'skk-henkan) (defcustom skk-auto-start-henkan-keyword-list - '("$B$r(B" "$B!"(B" "$B!#(B" "$B!%(B" "$B!$(B" "$B!)(B" "$B!W(B" "$B!*(B" "$B!((B" "$B!'(B" ")" ";" ":" - "$B!K(B" "$B!I(B" "$B![(B" "$B!Y(B" "$B!U(B" "$B!S(B" "$B!Q(B" "$B!O(B" "$B!M(B" "}" "]" "?" "." + '("を" "、" "。" "." "," "?" "」" "!" ";" ":" ")" ";" ":" + ")" "”" "】" "』" "》" "〉" "}" "]" "〕" "}" "]" "?" "." "," "!") - ;; $B$"$^$j%-!<%o!<%I$,B?$/$J$k$H!"DL>o$NJQ49$r:$Fq$K$9$k!)(B - "*$B<+F0JQ49$r3+;O$9$k%-!<%o!<%I!#(B -`skk-auto-start-henkan' $B$,(B non-nil $B$N$H$-!"$3$N%j%9%H$NMWAG$NJ8;z$rBG80(B -$B$9$k$H!"(BSPC (`skk-start-henkan-char') $B$r2!$7$?$+$N$h$&$KJQ49$r3+;O$7$F(B -$B"'%b!<%I$KF~$k!#(B" + ;; あまりキーワードが多くなると、通常の変換を困難にする? + "*自動変換を開始するキーワード。 +`skk-auto-start-henkan' が non-nil のとき、このリストの要素の文字を打鍵 +すると、SPC (`skk-start-henkan-char') を押したかのように変換を開始して +▼モードに入る。" :type '(repeat string) :group 'skk-henkan) (defcustom skk-force-registration-mode-char ?. - "*$B6/@)E*$K<-=qEPO?%b!<%I$KF~$k%-!<%-%c%i%/%?!#(B -$B%(%3!<%(%j%"$G8uJd$rI=<($7$F$$$k$H$-$K$3$NJQ?t$GDj5A$7$?%-!<%-%c%i%/%?$r(B -$B%?%$%W$9$k$H!"6/@)E*$K<-=qEPO?%b!<%I$KF~$j$^$9!#(B" + "*強制的に辞書登録モードに入るキーキャラクタ。 +エコーエリアで候補を表示しているときにこの変数で定義したキーキャラクタを +タイプすると、強制的に辞書登録モードに入ります。" :type 'character :group 'skk-henkan) (defcustom skk-show-candidates-toggle-display-place-char ?\C-f - "*$B8uJdI=<(0lMw$N0LCV$r%(%3!<%(%j%"$H%P%C%U%!$H$G@Z$jBX$($k%-!<%-%c%i%/%?!#(B" + "*候補表示一覧の位置をエコーエリアとバッファとで切り替えるキーキャラクタ。" :type 'character :group 'skk-henkan) (defcustom skk-backward-and-set-henkan-point-char ?\321 ; M-Q - "*$B%]%$%s%H$rLa$7$F"&%b!<%I$KF~$k%-!<%-%c%i%/%?!#(B" + "*ポイントを戻して▽モードに入るキーキャラクタ。" :type 'character :group 'skk-henkan) (defcustom skk-show-inline nil - "*Non-nil $B$G$"$l$P!"JQ498uJd$r%$%s%i%$%sI=<($9$k!#(B -`vertical' $B$G$"$l$P!"=DJ}8~$K%$%s%i%$%sI=<($9$k!J(BXEmacs $B$G$OF0:n$7$J$$!K!#(B" - :type '(radio (const :tag "$BM-8z(B" t) - (const :tag "$BM-8z(B ($B=DI=<((B)" vertical) - (const :tag "$BL58z(B" nil)) + "*Non-nil であれば、変換候補をインライン表示する。 +`vertical' であれば、縦方向にインライン表示する(XEmacs では動作しない)。" + :type '(radio (const :tag "有効" t) + (const :tag "有効 (縦表示)" vertical) + (const :tag "無効" nil)) :group 'skk-basic :group 'skk-henkan) (defcustom skk-inline-show-face 'underline - "*$B%$%s%i%$%sI=<($9$kJQ498uJd$rAu>~$9$k%U%'%$%9$r;XDj$9$kJQ?t!#(B -$B8uJdJ8;zNs$N%U%'%$%9B0@-$r$=$N$^$^;H$$$?$$>l9g$O(B nil $B$K@_Dj$9$k!#(B" - :type '(radio (face :tag "$B%U%'%$%9$r;XDj(B") - (const :tag "$B8uJdJ8;zNs$N%U%'%$%9B0@-$r$=$N$^$^;HMQ(B" nil)) + "*インライン表示する変換候補を装飾するフェイスを指定する変数。 +候補文字列のフェイス属性をそのまま使いたい場合は nil に設定する。" + :type '(radio (face :tag "フェイスを指定") + (const :tag "候補文字列のフェイス属性をそのまま使用" nil)) :group 'skk-visual) (defcustom skk-inline-show-background-color (if (eq skk-background-mode 'light) "beige" "gray15") - "*$B%$%s%i%$%sI=<($9$kJQ498uJd$NGX7J?'$r;XDj$9$kJQ?t!#(B -`skk-inline-show-face' $B$^$?$O(B `skk-treat-candidate-appearance-function' $B$G(B -$BGX7J?'$,;XDj$5$l$F$$$J$$J8;z$KBP$7$F$N$_:nMQ$9$k!#(B" + "*インライン表示する変換候補の背景色を指定する変数。 +`skk-inline-show-face' または `skk-treat-candidate-appearance-function' で +背景色が指定されていない文字に対してのみ作用する。" :type 'string :group 'skk-visual) @@ -1385,45 +1385,45 @@ skk.el $B$N%m!<%I8e(B ($B$b$7$/$O(B `skk-load-hook' $B$rMxMQ$7$F(B)$B!"( (if (eq skk-background-mode 'light) "wheat" "gray20") - "*$B%$%s%i%$%sI=<($9$kJQ498uJd$NGX7J?'(B($B4q?t%i%$%s(B)$B$r;XDj$9$kJQ?t!#(B -`skk-inline-show-face' $B$^$?$O(B `skk-treat-candidate-appearance-function' $B$G(B -$BGX7J?'$,;XDj$5$l$F$$$J$$J8;z$KBP$7$F$N$_:nMQ$9$k!#(B" + "*インライン表示する変換候補の背景色(奇数ライン)を指定する変数。 +`skk-inline-show-face' または `skk-treat-candidate-appearance-function' で +背景色が指定されていない文字に対してのみ作用する。" :type 'string :group 'skk-visual) (defcustom skk-search-end-function nil - "*$BC18l8!:w=*N;;~$K%3!<%k$5$l$k4X?t!#(B -$B$3$N4X?t$rMxMQ$7$F8!:w$7$?C18l$NM%@h=g0L$rJQ99$9$k$J$I$N:n6H$,2DG=!#(B -HENKAN-BUFFER, MIDASI, OKURIGANA, ENTRY $B$N(B 4 $B0z?t$rH<$J$C$F%3!<%k$5$l$k!#(B -$B2C9)$7$?(B ENTRY $B$rJV$9$3$H!#(B -$B$3$N4X?t$O!"<-=q%P%C%U%!$G%3!<%k$5$l$k$N$G!"JQ49$r9T$C$?%P%C%U%!%m!<%+%k$J(B -$B>pJs$r \"$B2>L>(B\" - -$B$3$NCM$,(B nil $B$G$"$l$P!":G=i$N%9%Z!<%9$G8+=P$78l$r@Z$j5M$a$F$7$^$$!"0J9_$N%9%Z!<(B -$B%9!"%?%V!"2~9T$OL5;k$5$l$k!#(B -$B$3$NCM$O!"(B`skk-toggle-characters' $B5Z$S(B `skk-backward-and-set-henkan-point' $B$NF0(B -$B:n$K1F6A$9$k!#(B" + "*Non-nil であれば、見出し語の中のスペース、タブ、改行を取り除いて変換 +できる。例えば、下記のように途中に改行が入っている見出し語でも変換が可能 +である。 + + \"▽か + な\" + -> \"仮名\" + +この値が nil であれば、最初のスペースで見出し語を切り詰めてしまい、以降のスペー +ス、タブ、改行は無視される。 +この値は、`skk-toggle-characters' 及び `skk-backward-and-set-henkan-point' の動 +作に影響する。" :type 'boolean :group 'skk-henkan) (defcustom skk-delete-okuri-when-quit nil - "*Non-nil $B$G$"$l$PJQ49Cf$N(B \\[keyboard-quit] $B$GAw$j2>L>$r>C$7$F"&%b!<%I(B -$B$KF~$k!#(B - $BNc!K(B \"$B"&$J(B*$B$/(B -> $B"'5c$/(B -> \\[keyboard-quit] ->$B"&$J(B\" + "*Non-nil であれば変換中の \\[keyboard-quit] で送り仮名を消して▽モード +に入る。 + 例) \"▽な*く -> ▼泣く -> \\[keyboard-quit] ->▽な\" -nil $B$G$"$l$P!"Aw$j2>L>$r4^$a$?8+=P$78l$r$=$N$^$^;D$7$F"&%b!<%I$KF~$k!#(B - $BNc!K(B \"$B"&$J(B*$B$/(B -> $B"'5c$/(B -> \\[keyboard-quit] -> $B"&$J$/(B\"" +nil であれば、送り仮名を含めた見出し語をそのまま残して▽モードに入る。 + 例) \"▽な*く -> ▼泣く -> \\[keyboard-quit] -> ▽なく\"" :type 'boolean :group 'skk-henkan) @@ -1432,60 +1432,60 @@ nil $B$G$"$l$P!"Aw$j2>L>$r4^$a$?8+=P$78l$r$=$N$^$^;D$7$F"&%b!<%I$KF~$k!#(B "DDSKK 16.2") (defcustom skk-henkan-number-to-display-candidates 7 - "*$BJQ498uJd$rI=<($9$k8D?t!#(B" + "*変換候補を表示する個数。" :type 'integer :group 'skk-henkan) (defcustom skk-show-candidates-always-pop-to-buffer nil - "*$B$3$NJQ?t$,(B non-nil $B$G$"$l$P!">o$K(B\"*$B8uJd(B*\"$B%P%C%U%!$r:n@=$7$F!"JQ498uJd0lMw(B -$B$r@lMQ%&%#%s%I%&$KI=<($9$k!#(B -nil $B$G$"$l$P!"8uJd0lMw$r%(%3!<%(%j%"$KI=<($9$k!#$?$@$7!"8uJd0lMw$NJ8;zNs$ND9$5$,(B -$B%U%l!<%`$N2#I}$K<}$^$i$J$$>l9g$O!"(B\"*$B8uJd(B*\"$B%P%C%U%!$r:n@=(B(pop-to-buffer)$B$7$F@l(B -$BMQ$N%&%#%s%I%&$GI=<($9$k!#(B" + "*この変数が non-nil であれば、常に\"*候補*\"バッファを作製して、変換候補一覧 +を専用ウィンドウに表示する。 +nil であれば、候補一覧をエコーエリアに表示する。ただし、候補一覧の文字列の長さが +フレームの横幅に収まらない場合は、\"*候補*\"バッファを作製(pop-to-buffer)して専 +用のウィンドウで表示する。" :type 'boolean :group 'skk-henkan) (defcustom skk-candidate-buffer-background-color nil - "*\"*$B8uJd(B*$B%P%C%U%!(B\"$B$NGX7J?'!#(B" - :type '(radio (string :tag "$B?'$NL>A0(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "*\"*候補*バッファ\"の背景色。" + :type '(radio (string :tag "色の名前") + (const :tag "指定しない" nil)) :group 'skk-henkan :group 'skk-visual) (defcustom skk-candidate-buffer-background-color-odd nil - "*\"*$B8uJd(B*$B%P%C%U%!(B\"$B$NGX7J?'!J4q?t%i%$%s!K!#(B" - :type '(radio (string :tag "$B?'$NL>A0(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "*\"*候補*バッファ\"の背景色(奇数ライン)。" + :type '(radio (string :tag "色の名前") + (const :tag "指定しない" nil)) :group 'skk-henkan :group 'skk-visual) (defcustom skk-search-katakana nil - "*$B$+$J$rC1=c$K%+%?%+%JJQ49$7$?8uJd$rI=<($9$k$+$I$&$+$r7h$a$k%*%W%7%g%s!#(B -nil $B$J$i$P4^$a$J$$!#(Bt $B$J$i$PA43Q%+%J8uJd$r4^$a$k!#(B -`jisx0201-kana' $B$J$i$PA43Q$K2C$($FH>3Q%+%J8uJd$b4^$a$k!#(B -$B$3$N5!G=$O0lHLE*$J(B FEP $B$N;H$$>!3Q%+%J$b4^$a$k(B" jisx0201-kana)) + "*かなを単純にカタカナ変換した候補を表示するかどうかを決めるオプション。 +nil ならば含めない。t ならば全角カナ候補を含める。 +`jisx0201-kana' ならば全角に加えて半角カナ候補も含める。 +この機能は一般的な FEP の使い勝手に近付けたいユーザー、個人辞書を育てたい +ユーザー向けに提供される。" + :type '(radio (const :tag "この機能を無効にする" nil) + (const :tag "全角カナのみ" t) + (const :tag "半角カナも含める" jisx0201-kana)) :group 'skk-henkan) (defcustom skk-search-sagyo-henkaku nil - "*$B4J0W$J%5JQF0;lJQ495!G=$rM-8z$K$9$k$+$I$&$+7h$a$k%*%W%7%g%s!#(B -nil $B$J$i$P!"Aw$j2>L>$,(B \"$B$5(B\" \"$B$7(B\" \"$B$9(B\" \"$B$;(B\" $B$N$$$:$l$+$N;~$K(B -$BAw$j$J$78uJd$,JQ498uJd$K8=$l$k!#(B -anything $B$K@_Dj$9$k$H!"Aw$j2>L>$,2?$G$"$C$F$bAw$j$J$78uJd$rAw$j$"$jJQ49$K(B -$BMQ$$$k!#$3$N>l9g!"Aw$j2>L>$H$$$&$h$j$b!"G$0U$N4A;z$H$+$J$N@Z$jBX$(0LCV$r(B -$B;XDj$9$k$h$&$JF~NO$K$J$k!#(B -$B$3$N5!G=$OIT@53N$J=PNO$r$9$k2DG=@-$KCm0U$9$kI,MW$,$"$k$,!"8D?M<-=q$r0i$F$?$$(B -$B%f!<%6!<8~$1$KDs6!$5$l$k!#(B" - :type '(radio (const :tag "$B$3$N5!G=$rL58z$K$9$k(B" nil) - (const :tag "$B4J0W%5JQF0;lJQ49$r$9$k(B" t) - (const :tag "$B$3$N5!G=$rG$0U$NAw$j$"$jJQ49$K3HD%$9$k(B" anything)) + "*簡易なサ変動詞変換機能を有効にするかどうか決めるオプション。 +nil ならば、送り仮名が \"さ\" \"し\" \"す\" \"せ\" のいずれかの時に +送りなし候補が変換候補に現れる。 +anything に設定すると、送り仮名が何であっても送りなし候補を送りあり変換に +用いる。この場合、送り仮名というよりも、任意の漢字とかなの切り替え位置を +指定するような入力になる。 +この機能は不正確な出力をする可能性に注意する必要があるが、個人辞書を育てたい +ユーザー向けに提供される。" + :type '(radio (const :tag "この機能を無効にする" nil) + (const :tag "簡易サ変動詞変換をする" t) + (const :tag "この機能を任意の送りあり変換に拡張する" anything)) :group 'skk-henkan) (defcustom skk-kakutei-key "\C-j" - "*$B4A;zJQ49$N3NDjF0:n$r9T$&%-!L>$,2?$G$"$C$F$bAw$j$J$78uJd$rAw$j$"$jJQ49$K(B :group 'skk-kakutei) (defcustom skk-kakutei-early t - "*Non-nil $B$G$"$l$P(B `skk-insert' $B$,8F$P$l$?$H$-$K8=:_$N8uJd$r3NDj$9$k!#(B -$BNc$($P!"(B + "*Non-nil であれば `skk-insert' が呼ばれたときに現在の候補を確定する。 +例えば、 - \"$B"&$+$/$F$$(B -> $B"'3NDj(B -> $B3NDj(Bs -> $B3NDj$9(B\" + \"▽かくてい -> ▼確定 -> 確定s -> 確定す\" -$B$N$h$&$KJQ498e!"!V$9!W$N(B prefix $B$G$"$k(B \"s\" $B$rF~NO$7$?;~E@$G3NDj$9$k!#(B -nil $B$G$"$l$P!"Nc$($P(B +のように変換後、「す」の prefix である \"s\" を入力した時点で確定する。 +nil であれば、例えば - \"$B"&$+$/$F$$(B -> $B"'3NDj(B -> $B"'3NDj(Bs -> $B"'3NDj$9$k(B -> $B3NDj$9$k!#(B\" + \"▽かくてい -> ▼確定 -> ▼確定s -> ▼確定する -> 確定する。\" -$B$N$h$&$K(B `skk-kakutei' $B$rD>@\!"4V@\$K%3!<%k$9$k$^$G(B ($B6gFIE@$rF~NO$7$?$j!"(B -$B?7$?$J"&%b!<%I$KF~$C$?$j$9$k$H4V@\E*$K(B `skk-kakutei' $B$r%3!<%k$9$k(B) $B$O!"3NDj(B -$B$7$J$$$N$G!"$=$N4V$O!"JQ498uJd$rA*$SD>$9$3$H$J$I$,2DG=!#(B +のように `skk-kakutei' を直接、間接にコールするまで (句読点を入力したり、 +新たな▽モードに入ったりすると間接的に `skk-kakutei' をコールする) は、確定 +しないので、その間は、変換候補を選び直すことなどが可能。 -$B$3$N%*%W%7%g%sMxMQ;~$O!"(B`skk-process-okuri-early' $B$NCM$O(B nil $B$G$J$1$l$P(B -$B$J$i$J$$!#(B" +このオプション利用時は、`skk-process-okuri-early' の値は nil でなければ +ならない。" :type 'boolean :group 'skk-basic :group 'skk-kakutei) (defcustom skk-egg-like-newline nil - "*Non-nil $B$G$"$l$P!""'%b!<%I$G(B RET $B$r%?%$%W$7$F$b3NDj$N$_9T$$!"2~9T$7$J$$!#(B" + "*Non-nil であれば、▼モードで RET をタイプしても確定のみ行い、改行しない。" :type 'boolean :group 'skk-basic :group 'skk-kakutei) (defcustom skk-delete-implies-kakutei t - "*Non-nil $B$G$"$l$P!""'%b!<%I$G(B BS $B$r2!$9$H!"A0$N0lJ8;z$r:o=|$73NDj$9$k!#(B -nil $B$G$"$l$P!"0l$DA0$N8uJd$rI=<($9$k!#(B -$B%7%s%\%k(B `dont-update' $B$G$"$l$P!"8D?M<-=q$r99?7$7$J$$!#(B + "*Non-nil であれば、▼モードで BS を押すと、前の一文字を削除し確定する。 +nil であれば、一つ前の候補を表示する。 +シンボル `dont-update' であれば、個人辞書を更新しない。 -$B$J$*!"$3$NJQ?t$NCM$K$+$+$o$i$:!"8uJd0lMw$rI=<($7$F$$$k$H$-$N(B BS $BBG80$O(B -$BA08uJd(B($B72(B)$B$NI=<($K$J$k!#(B" +なお、この変数の値にかかわらず、候補一覧を表示しているときの BS 打鍵は +前候補(群)の表示になる。" :type '(radio (const t) (const dont-update) (const nil)) @@ -1533,62 +1533,62 @@ nil $B$G$"$l$P!"0l$DA0$N8uJd$rI=<($9$k!#(B :group 'skk-kakutei) (defcustom skk-kakutei-when-unique-candidate nil - "*Non-nil $B$G$"$l$P!"JQ498uJd$,0l$D$7$+$J$$$H$-3NDjJQ49$9$k!#(B - -$B$3$NCM$,(B t $B$G$"$l$P$I$NJQ49%b!<%I$G$b3NDjJQ49$9$k!#(B -`okuri-ari', `okuri-nasi', `abbrev' $B$N$$$:$l$+$rMWAG$H$9$k%j%9%H$G(B -$B$"$l$P!"JQ49%b!<%I$,$=$N>r7o$K9gCW$7$?>l9g$N$_3NDjJQ49$9$k!#(B - -$B8uJd$,B>$KL5$$;v$r3NG'$9$k$?$a!"(B`skk-search-prog-list' $B$NFbMFl9g(B -`skk-kakutei-search-prog-limit' $B$r@_Dj$9$k$3$H$G8!:wBP>]$r@)8B$9$k(B -$B$3$H$b2DG=!#(B" - :type '(radio (const :tag "$B>o$KM-8z(B" t) - (set :tag "$BM-8z$K$9$kJQ49%b!<%I(B" - (const :tag "$BAw$jM-$jJQ49(B" okuri-ari) - (const :tag "$BAw$jL5$7JQ49(B" okuri-nasi) - (const :tag "abbrev $BJQ49(B" abbrev)) - (const :tag "$BL58z(B" nil)) + "*Non-nil であれば、変換候補が一つしかないとき確定変換する。 + +この値が t であればどの変換モードでも確定変換する。 +`okuri-ari', `okuri-nasi', `abbrev' のいずれかを要素とするリストで +あれば、変換モードがその条件に合致した場合のみ確定変換する。 + +候補が他に無い事を確認するため、`skk-search-prog-list' の内容次第 +でレスポンスが悪くなる可能性がある。その場合 +`skk-kakutei-search-prog-limit' を設定することで検索対象を制限する +ことも可能。" + :type '(radio (const :tag "常に有効" t) + (set :tag "有効にする変換モード" + (const :tag "送り有り変換" okuri-ari) + (const :tag "送り無し変換" okuri-nasi) + (const :tag "abbrev 変換" abbrev)) + (const :tag "無効" nil)) :group 'skk-kakutei) (defcustom skk-kakutei-search-prog-limit nil - "*$BJ#?t<-=q$K$h$k3NDjJQ49$K$*$$$F!"8!:wBP>]$H$9$k<-=q$r@)8B$9$k!#(B + "*複数辞書による確定変換において、検索対象とする辞書を制限する。 -$B$3$l$,?tCM$G$"$l$P!"8!:wBP>]$r(B `skk-search-prog-list' $B$N@hF,$+$i$3(B -$B$N8D?t$^$G$N<-=q$K@)8B$9$k!#(B -$B$=$l0J30$G$"$l$PL5@)8B$KA4$F$N<-=q$rBP>]$H$9$k!#(B +これが数値であれば、検索対象を `skk-search-prog-list' の先頭からこ +の個数までの辞書に制限する。 +それ以外であれば無制限に全ての辞書を対象とする。 -`skk-kakutei-when-unique-candidate' $B$,(B non-nil $B$N$H$-$N$_M-8z!#(B" - :type '(radio (integer :tag "$BBP>]$H$9$k<-=q$N?t(B") - (const :tag "$B@)8B$7$J$$(B" nil)) +`skk-kakutei-when-unique-candidate' が non-nil のときのみ有効。" + :type '(radio (integer :tag "対象とする辞書の数") + (const :tag "制限しない" nil)) :group 'skk-kakutei) (defcustom skk-kakutei-end-function nil - "*$B3NDj;~$K%3!<%k$5$l$k4X?t!#(B -`skk-kakutei-initialize' $B$,%3!<%k$5$l$kA0$K$3$N4X?t$,%3!<%k$5$l$k$N$G!"(B -$B:G8e$N3NDj$K4X$9$k%U%i%0N`$O!"$3$N4X?t$NCf$+$i;2>H$9$k$3$H$,$G$-$k!#(B" - :type '(radio (function :tag "$B4X?t(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "*確定時にコールされる関数。 +`skk-kakutei-initialize' がコールされる前にこの関数がコールされるので、 +最後の確定に関するフラグ類は、この関数の中から参照することができる。" + :type '(radio (function :tag "関数") + (const :tag "指定しない" nil)) :group 'skk-kakutei) (defcustom skk-henkan-okuri-strictly nil - "*Non-nil $B$G$"$l$P!"8+=P$78l$HAw$j2>L>$,0lCW$7$?$H$-$@$18uJd$H$7$F=PNO$9$k!#(B -$BNc$($P!"2<5-$N$h$&$J<-=q%(%s%H%j$,(B `skk-jisyo' ($B8D?M<-=q(B) $B$K$"$C$?(B -$B>l9g$K(B + "*Non-nil であれば、見出し語と送り仮名が一致したときだけ候補として出力する。 +例えば、下記のような辞書エントリが `skk-jisyo' (個人辞書) にあった +場合に - \"$B$*$*(Bk /$BBg(B/$BB?(B/[$B$/(B/$BB?(B/]/[$B$-(B/$BBg(B/]/\" + \"おおk /大/多/[く/多/]/[き/大/]/\" -\"$B"&$*$*(B*$B$/(B\" $B$rJQ49$7$?$H$-!"(B\"$BB?$/(B\" $B$N$_$r=PNO$7!"(B\"$BBg$/(B\" $B$r=PNO$7$J$$!#(B +\"▽おお*く\" を変換したとき、\"多く\" のみを出力し、\"大く\" を出力しない。 -SKK-JISYO.[SML] $B$NAw$j2>L>%(%s%H%j$O>e5-$N7A<0$K$J$C$F$$$J$$$N$G!"(B`skk-jisyo' - $B$NAw$j$"$j$N<-=q%(%s%H%j$,$3$N7A<0$N$b$N$r$"$^$j4^$s$G$$$J$$>l9g$O!"$3$N(B -$B%*%W%7%g%s$r(B on $B$K$9$k$3$H$G!"$9$0$KC18lEPO?$KF~$C$F$7$^$&$N$GCm0U$9$k$3$H!#(B +SKK-JISYO.[SML] の送り仮名エントリは上記の形式になっていないので、`skk-jisyo' + の送りありの辞書エントリがこの形式のものをあまり含んでいない場合は、この +オプションを on にすることで、すぐに単語登録に入ってしまうので注意すること。 -`skk-process-okuri-early' $B$NCM$,(B nil $B$J$i$P!">e5-$N7A<0$G(B `skk-jisyo' $B$,(B -$B:n$i$l$k!#(B +`skk-process-okuri-early' の値が nil ならば、上記の形式で `skk-jisyo' が +作られる。 -$B2<5-$N<0$rI>2A$9$k$3$H$G!"C18lEPO?$KF~$C$?$H$-$@$1(B -$B0l;~E*$K$3$N%*%W%7%g%s$rL58z$K$9$k$3$H$,$G$-$k!#(B +下記の式を評価することで、単語登録に入ったときだけ +一時的にこのオプションを無効にすることができる。 (add-hook \\='minibuffer-setup-hook (function @@ -1609,99 +1609,99 @@ SKK-JISYO.[SML] $B$NAw$j2>L>%(%s%H%j$O>e5-$N7A<0$K$J$C$F$$$J$$$N$G!"(B`skk-jis (put \\='skk-henkan-okuri-strictly \\='temporary-nil nil) (setq skk-henkan-okuri-strictly t)))))) -$B$3$N%*%W%7%g%sMxMQ;~$O!"(B`skk-process-okuri-early' $B$NCM$O(B nil $B$G$J$1$l$P(B -$B$J$i$J$$!#(B" +このオプション利用時は、`skk-process-okuri-early' の値は nil でなければ +ならない。" :type 'boolean :group 'skk-basic :group 'skk-okurigana) (defcustom skk-henkan-strict-okuri-precedence nil - "*Non-nil $B$G$"$l$P!"8+=P$78l$HAw$j2>L>$,0lCW$7$?8uJd$rM%@h$7$FI=<($9$k!#(B -$BNc$($P!"2<5-$N$h$&$J<-=q%(%s%H%j$,(B `skk-jisyo' ($B8D?M<-=q(B) $B$K$"$C$?(B -$B>l9g$K(B + "*Non-nil であれば、見出し語と送り仮名が一致した候補を優先して表示する。 +例えば、下記のような辞書エントリが `skk-jisyo' (個人辞書) にあった +場合に - \"$B$*$*(Bk /$BBg(B/$BB?(B/[$B$/(B/$BB?(B/]/[$B$-(B/$BBg(B/]/\" + \"おおk /大/多/[く/多/]/[き/大/]/\" -\"$B"&$*$*(B*$B$/(B\" $B$rJQ49$7$?$H$-!"$^$:(B\"$BB?$/(B\" $B$r=PNO$7!"(B -$BL>$N%m!<%^;z%W%l%U%#%C%/%9F~NO;~E@$GJQ49$r3+;O$9$k!#(B -$BNc$($P!"(B + "*Non-nil であれば送り仮名のローマ字プレフィックス入力時点で変換を開始する。 +例えば、 - \"UgoK -> $B"'F0(Bk\"$B!#(B + \"UgoK -> ▼動k\"。 -$BAw$j2>L>$,J,$i$J$$$^$^JQ49$7$F$$$k$3$H$K$J$k$N$G!"(B`skk-jisyo' $B$,Aw$j2>L>$K(B -$BBP1~$7$?7A$K@.D9$7$J$$!#$D$^$j(B +送り仮名が分らないまま変換していることになるので、`skk-jisyo' が送り仮名に +対応した形に成長しない。つまり - \"$B$&$4(Bk /$BF0(B/\" + \"うごk /動/\" -$B$N$h$&$J7ABV$N$^$^$H$J$k!#$?$@$7!"4{$K(B +のような形態のままとなる。ただし、既に - \"$B$&$4(Bk /$BF0(B/[$B$/(B/$BF0(B/]/[$B$+(B/$BF0(B/]/[$B$1(B/$BF0(B/]/[$B$-(B/$BF0(B/]/[$B$3(B/$BF0(B/]/\" + \"うごk /動/[く/動/]/[か/動/]/[け/動/]/[き/動/]/[こ/動/]/\" -$B$N$h$&$J%(%s%H%j$,(B `skk-jisyo' $B$K$"$l$P!"$=$l$rGK2u$7$J$$!#(B +のようなエントリが `skk-jisyo' にあれば、それを破壊しない。 -nil $B$G$"$l$P!"Aw$j2>L>$NF~NO$,40N;$7$?;~E@$GJQ49$,3+;O$9$k!#Nc$($P!"(B +nil であれば、送り仮名の入力が完了した時点で変換が開始する。例えば、 - \"UgoK -> $B"&$&$4(B*k\", \"UgoKu -> $B"'F0$/(B\" + \"UgoK -> ▽うご*k\", \"UgoKu -> ▼動く\" -$B$3$N%*%W%7%g%s$r(B on $B$K$7$F(B `skk-mode' $B$r5/F0$9$k$H!"N>N)$G$-$J$$%*%W%7%g%s(B -$B$G$"$k(B `skk-kakutei-early', `skk-auto-okuri-process' $B5Z$S(B -`skk-henkan-okuri-strictly' $B$O(B nil $B$K%;%C%H$5$l$k!#(B" +このオプションを on にして `skk-mode' を起動すると、両立できないオプション +である `skk-kakutei-early', `skk-auto-okuri-process' 及び +`skk-henkan-okuri-strictly' は nil にセットされる。" :type 'boolean :group 'skk-okurigana) (defcustom skk-check-okurigana-on-touroku nil - "*Non-nil $B$G$"$l$P!"Aw$j$"$j$NEPO?;~$K!"M>7W$J2>L>$r%A%'%C%/$9$k!#(B + "*Non-nil であれば、送りありの登録時に、余計な仮名をチェックする。 -$BNc$($P!"(B +例えば、 - \"$B$H$S$@(B*$B$9(B $BHt$S=P(B\" + \"とびだ*す 飛び出\" -$B$HEPO?$9$k$N$,@5$7$$$K$b$+$+$o$i$:!"%f!<%6$,(B +と登録するのが正しいにもかかわらず、ユーザが - \"$B$H$S$@(B*$B$9(B $BHt$S=P$9(B\" + \"とびだ*す 飛び出す\" -$B$G$&$C$+$j(B [RET] $B$r2!$7$F$7$^$C$?$H$-$K!":G8e$N!V$9!W$,Aw$j2>L>$G$"$k$+$I$&$+(B -$BD4$Y$k!#(B +でうっかり [RET] を押してしまったときに、最後の「す」が送り仮名であるかどうか +調べる。 -$B$3$NJQ?t$O0J2<$NCM$r$H$jF@$k!#4{DjCM$O(B nil$B!#(B +この変数は以下の値をとり得る。既定値は nil。 -ask -- $B%f!<%6$K3NG'$r5a$a!"Aw$j2>L>$HG'$a$i$l$l$P$3$l$r!L>$rH=CG$7$F:o=|$7$F$+$iEPO?$9$k!#(B -nil -- $B0l@ZAw$j2>L>$N%A%'%C%/$r$;$:!"A4BN$rC18l$H$7$FEPO?$9$k!#$3$l$O(B SKK $BK\(B - $BMh$NF0:n$G$"$k!#(B" - :type '(radio (const :tag "$B%f!<%6$K3NG'$9$k(B" ask) - (const :tag "$B<+F0E*$K=hM}$9$k(B" auto) - (const :tag "$B%A%'%C%/$7$J$$(B" nil)) +ask -- ユーザに確認を求め、送り仮名と認められればこれを取り除いてから登録す + る。 +auto -- ユーザに確認を求めず、勝手に送り仮名を判断して削除してから登録する。 +nil -- 一切送り仮名のチェックをせず、全体を単語として登録する。これは SKK 本 + 来の動作である。" + :type '(radio (const :tag "ユーザに確認する" ask) + (const :tag "自動的に処理する" auto) + (const :tag "チェックしない" nil)) :group 'skk-basic :group 'skk-okurigana :group 'skk-private) (defcustom skk-okuri-char-alist nil - "*$BAw$j2>L>(B prefix $B$rJQ49$9$k%k!<%k$r5-=R$9$kO"A[%j%9%H!#(B -car $B$K!Vl9g$N$_$G$"$k!#(B +この規則が使われるのは、`skk-process-okuri-early' が non-nil の場合のみである。 -$BNc$($P!"$+9T$NAw$j2>L>F~NO$K(B \"c\" $B$N(B prefix $B$r;H$&$N$G$"$l$P!"(B +例えば、か行の送り仮名入力に \"c\" の prefix を使うのであれば、 (setq skk-okuri-char-alist \\='((\"c\" . \"k\"))) -$B$N$h$&$K=q$/!#(B" +のように書く。" :type '(repeat (cons string string)) :group 'skk-okurigana) @@ -1710,57 +1710,57 @@ car $B$K!VpJs$r<}$a$k!#(B" + "*変換及び個人辞書に関する統計を取るファイル。 +個人辞書を保存した日時、単語の登録数、確定した回数、確定率、全体の語数の +情報を収める。" :type 'file :group 'skk-misc) (defcustom skk-byte-compile-init-file nil - "*Non-nil $B$G$"$l$P!"(B`skk-mode' $B5/F0;~$K(B `skk-init-file' $B$r%P%$%H%3%s%Q%$%k$9$k!#(B -$B@53N$K8@$&$H!"(B + "*Non-nil であれば、`skk-mode' 起動時に `skk-init-file' をバイトコンパイルする。 +正確に言うと、 - (1)`skk-init-file' $B$r%P%$%H%3%s%Q%$%k$7$?%U%!%$%k$,$J$$$+!"(B - (2)`skk-init-file' $B$H$=$N%P%$%H%3%s%Q%$%k:Q%U%!%$%k$rHf3S$7$F!"A0C$9!#(B +に `skk-init-file' をバイトコンパイルする。 +nil であれば、`skk-init-file' とそのバイトコンパイル済みファイルを比較して +`skk-init-file' の方が新しいときは、そのバイトコンパイル済ファイルを消す。 -$B$3$NJQ?t$O(B ~/.emacs.d/init.el $B$G@_Dj$9$k$3$H!#(B" +この変数は ~/.emacs.d/init.el で設定すること。" :type 'boolean :group 'skk-misc) (defcustom skk-read-from-minibuffer-function nil "\ -*$B<-=qEPO?%b!<%I$KF~$C$?$H$-$N%W%m%s%W%H$KI=<($9$k=i4|CM$rDs6!$9$k4X?t!#(B -$B$3$N4X?t$OJ8;zNs$rJV$5$J$1$l$P$J$i$J$$!#(B -$B4X?t(B `read-from-minibuffer' $B$N0z?t(B INITIAL-CONTENTS $B$K3:Ev$9$k!#(B +*辞書登録モードに入ったときのプロンプトに表示する初期値を提供する関数。 +この関数は文字列を返さなければならない。 +関数 `read-from-minibuffer' の引数 INITIAL-CONTENTS に該当する。 -`skk-henkan-key' $B$r$=$N$^$^=i4|CM$H$7$FMxMQ$7$?$$$H$-$O!"(B +`skk-henkan-key' をそのまま初期値として利用したいときは、 (setq skk-read-from-minibuffer-function (lambda () skk-henkan-key)) -$B$H;XDj$9$k!#(B" - :type '(radio (function :tag "$B4X?t(B") - (const :tag "$B;XDj$7$J$$(B" nil)) +と指定する。" + :type '(radio (function :tag "関数") + (const :tag "指定しない" nil)) :group 'skk-misc) (defface skk-jisyo-registration-badge-face @@ -1772,24 +1772,24 @@ nil $B$G$"$l$P!"(B`skk-init-file' $B$H$=$N%P%$%H%3%s%Q%$%k:Q$_%U%!%$%k$rHf3S$ (:inherit default :inverse-video t)) (((class grayscale)) (:inherit default :inverse-video t))) - "*$B"-<-=qEPO?Cf"-$KE,MQ$9$k%U%'%$%9!#(B" + "*↓辞書登録中↓に適用するフェイス。" :group 'skk-visual) ;;;###autoload (defcustom skk-preload nil - "*Non-nil $B$J$i$P!"(BEmacs $B5/F0;~$K(B SKK $B%W%m%0%i%`$H<-=q$NFI$_9~$_$r:Q$^$;$k!#(B -Emacs $B$N5/F0$=$N$b$N$OCY$/$J$k$,!"(BDDSKK $B$N=i2s5/F0$rAa$/$9$k$3$H$,$G$-$k!#(B" + "*Non-nil ならば、Emacs 起動時に SKK プログラムと辞書の読み込みを済ませる。 +Emacs の起動そのものは遅くなるが、DDSKK の初回起動を早くすることができる。" :type 'boolean :group 'skk-misc) (defcustom skk-undo-kakutei-word-only nil - "*Non-nil $B$G$"$l$P(B $B"&%b!<%I$H"'%b!<%I;~$N%"%s%I%%>pJs$r5-O?$7$J$$!#(B" + "*Non-nil であれば ▽モードと▼モード時のアンドゥ情報を記録しない。" :type 'boolean :group 'skk-misc) (defcustom skk-undo-kakutei-return-previous-point nil - "*Non-nil $B$G$"$l$P!"3NDj%"%s%I%%=hM}$,40N;$7$?8e$K!"3NDj%"%s%I%%=hM}$N(B -$BD>A0$N0LCV$K%+!<%=%k$rLa$9!#(B" + "*Non-nil であれば、確定アンドゥ処理が完了した後に、確定アンドゥ処理の +直前の位置にカーソルを戻す。" :type 'boolean :group 'skk-misc) @@ -1803,23 +1803,23 @@ Emacs $B$N5/F0$=$N$b$N$OCY$/$J$k$,!"(BDDSKK $B$N=i2s5/F0$rAa$/$9$k$3$H$,$G$-$ (stringp (symbol-value 'gtk-version-string)) (string< "2.0" (symbol-value 'gtk-version-string)))) (equal current-language-environment "Japanese")) "\ -*Non-nil $B$G$"$l$P%a%K%e!<%P!<$rF|K\8l$GI=<($9$k!#(B" +*Non-nil であればメニューバーを日本語で表示する。" :type 'boolean :group 'skk-misc) (defcustom skk-verbose nil - "*Non-nil $B$G$"$l$P!"F~NOCf!?JQ49Cf$K%(%3!<%(%j%"$K>iD9$J%a%C%;!<%8$rI=<($9$k!#(B" + "*Non-nil であれば、入力中/変換中にエコーエリアに冗長なメッセージを表示する。" :type 'boolean :group 'skk-misc) (defcustom skk-verbose-wait 1.5 - "*$B>iD9$J%a%C%;!<%8$rI=<($9$k$^$G$NBT$A;~4V(B ($BIC(B)$B!#(B" + "*冗長なメッセージを表示するまでの待ち時間 (秒)。" :type 'number :group 'skk-misc) (defcustom skk-verbose-message-interval 5.0 - "*$B>iD9$J%a%C%;!<%8$,J#?t$"$k>l9g!"#1$D$"$?$jI=<(;~4V(B ($BIC(B)$B!#(B -$B$3$N;~4V$,7P2a$7$?$iiD9$J%a%C%;!<%8$N(B {$B%"%N%F!<%7%g%s(B} $B$H(B {$B$I$l$r;2>H(B?} $B$KE,MQ$9$k(B -$B%U%'%$%9!#(B" + "*▼モードの冗長なメッセージの {アノテーション} と {どれを参照?} に適用する +フェイス。" :group 'skk-visual) (defface skk-verbose-kbd-face @@ -1845,31 +1845,31 @@ Emacs $B$N5/F0$=$N$b$N$OCY$/$J$k$,!"(BDDSKK $B$N=i2s5/F0$rAa$/$9$k$3$H$,$G$-$ (:inherit default :foreground "Cyan")) (((class grayscale)) (:inherit default :foreground "LightGray"))) - "*$B>iD9$J%a%C%;!<%8$NA`:n%-!iD9$J%a%C%;!<%8$NFbMF!#(B -$BI8=`$G$O<+F0@_Dj$9$k!#(B" - :type '(radio (string :tag "$BFbMF$r;XDj(B") - (const :tag "$B<+F0@_Dj(B" nil)) + "*▽モードで表示する冗長なメッセージの内容。 +標準では自動設定する。" + :type '(radio (string :tag "内容を指定") + (const :tag "自動設定" nil)) :group 'skk-misc) (defcustom skk-j-mode-function-key-usage nil - "*$B%-!<%\!<%I>e$N(B F1 $B!A(B F10 $B%-!<$N;H$$J}$r;XDj$9$k!#(B -`conversion' $B$J$i$P!"(B`skk-search-prog-list-1' $B!A(B `skk-search-prog-list-0' $B$r(B -$B$K!"(B`skk-auto-fill-mode-hook', `skk-load-hook', `skk-init-file' $B$G$b(B -$B%+%9%?%^%$%:$,2DG=!#(B" + "*skk-mode に入るたびに呼ばれるフック。 +他に、`skk-auto-fill-mode-hook', `skk-load-hook', `skk-init-file' でも +カスタマイズが可能。" ;; "*Hook run at SKK startup. This hook is also run ;;in skk-auto-fill-mode after skk-auto-fill-mode-hook. ;;skk-auto-fill-mode-hook, skk-load-hook, skk-init-file may also be used @@ -1878,67 +1878,67 @@ nil $B$J$i$P<+F0@_Dj$O$7$J$$(B ($B<+J,$G9%$-$J@_Dj$,$G$-$k(B)$B!#(B" :group 'skk-misc) (defcustom skk-auto-fill-mode-hook nil - "*`skk-auto-fill-mode' $B$r5/F0$7$?$H$-$N%U%C%/!#(B -$BB>$K!"(B`skk-mode-hook', `skk-load-hook', `skk-init-file' $B$G$b%+%9%?%^%$%:$,(B -$B2DG=!#(B" + "*`skk-auto-fill-mode' を起動したときのフック。 +他に、`skk-mode-hook', `skk-load-hook', `skk-init-file' でもカスタマイズが +可能。" ;; "*Hook run at startup of skk-auto-fill-mode. - ;;skk-mode-hook$B!"(Bskk-load-hook, skk-init-file may also be used for + ;;skk-mode-hook、skk-load-hook, skk-init-file may also be used for ;;customization." :type 'hook :group 'skk-misc) (defcustom skk-load-hook nil - "*skk.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B -$BB>$K!"(B`skk-mode-hook', `skk-auto-fill-mode-hook', `skk-init-file' $B$G$b%+%9%?(B -$B%^%$%:$,2DG=!#(B" + "*skk.el をロードした後にコールされるフック。 +他に、`skk-mode-hook', `skk-auto-fill-mode-hook', `skk-init-file' でもカスタ +マイズが可能。" ;; "*Hook run when SKK is loaded. - ;;skk-auto-fill-mode-hook$B!"(Bskk-mode-hook, skk-init-file may also be used + ;;skk-auto-fill-mode-hook、skk-mode-hook, skk-init-file may also be used ;;for customization." :type 'hook :group 'skk-misc) (defcustom skk-status-indicator 'left - "*SKK $B$N>uBV$r%b!<%I%i%$%s$N$I$N0LCV$KI=<($9$k$+$r7h$a$k!#(B -left $B$G$"$l$P:8C<$KI=<($9$k!#(B -$B$5$b$J$1$l$P%^%$%J!<%b!<%I$H$7$F$NI=<(K!$ro;~I=<($9$k!#(B -$BI=<($9$k(B SKK $B%"%$%3%s$N2hA|$O(B `skk-icon' $B$G;XDj$9$k!#(B" + "*Non-nil であれば、モードラインに SKK のアイコンを常時表示する。 +表示する SKK アイコンの画像は `skk-icon' で指定する。" :type 'boolean :set (lambda (symbol value) (prog1 @@ -1975,7 +1975,7 @@ left $B$G$"$l$P:8C<$KI=<($9$k!#(B :group 'skk-visual) (defcustom skk-echo t - "*Non-nil $B$G$"$l$P!"2>L>J8;z$N%W%l%U%#%C%/%9$rI=<($9$k!#(B" + "*Non-nil であれば、仮名文字のプレフィックスを表示する。" :type 'boolean :group 'skk-visual) @@ -1983,25 +1983,25 @@ left $B$G$"$l$P:8C<$KI=<($9$k!#(B (fboundp 'selected-frame) ; XEmacs does not have this. (fboundp 'frame-face-alist)) - "*Non-nil $B$G$"$l$P!"(BEmacs $B$N(B face $B$N5!G=$r;HMQ$7$FJQ498uJd$r%O%$%i%$%HI=<($9$k!#(B" + "*Non-nil であれば、Emacs の face の機能を使用して変換候補をハイライト表示する。" :type 'boolean :group 'skk-basic :group 'skk-visual) ;; should use defface? however, can I use defface for highlight? (defcustom skk-henkan-face 'skk-henkan-face-default - "*$BJQ498uJd$N(B face $BB0@-!#(B`skk-use-face' $B$,(B non-nil $B$N$H$-$N$_M-8z!#(B -Emacs $BI8=`$N%U%'%$%9$N$[$+!"?7$?$K(B face $B$r:n$C$F;XDj$9$k$3$H$b2DG=!#(B -$B?7$?$J(B face $B$r:n$C$F;XDj$9$k$K$O!"(B + "*変換候補の face 属性。`skk-use-face' が non-nil のときのみ有効。 +Emacs 標準のフェイスのほか、新たに face を作って指定することも可能。 +新たな face を作って指定するには、 (setq skk-henkan-face (skk-make-face \\='DimGray/PeachPuff1)) -$B$N$h$&$K(B skk-make-face() $B$rMxMQ$9$k$N$,l9g$O!"(B`skk-make-face' $B$G(B -$B$OBP1~$G$-$J$$$N$G!"(BEmacs $B$N(B hilit19.el $B$N(B `hilit-lookup-face-create' $B$J$I$rMxMQ$9$k!#(B -$B?'$rIU$1$k>l9g$NG[?'$O!"(Bcanna.el $B$N(B `canna:attribute-alist' $B$,NI$$Nc$+$b$7$l$J$$!#(B +のように skk-make-face() を利用するのが手軽。 +foreground と background の色指定だけでない凝った face を作る場合は、`skk-make-face' で +は対応できないので、Emacs の hilit19.el の `hilit-lookup-face-create' などを利用する。 +色を付ける場合の配色は、canna.el の `canna:attribute-alist' が良い例かもしれない。 -$B$3$NJQ?t$h$j$b(B `skk-treat-candidate-appearance-function' $B$N@_Dj$,M%@h$5$l$k!#(B" +この変数よりも `skk-treat-candidate-appearance-function' の設定が優先される。" :type 'face :group 'skk-visual) @@ -2013,7 +2013,7 @@ foreground $B$H(B background $B$N?';XDj$@$1$G$J$$6E$C$?(B face $B$r:n$k>l9g (((class color) (background dark)) (:foreground "white" :background "darkolivegreen")) (((class grayscale)) (:underline t))) - "*$BI8=`$NJQ498uJd$N(B face $BB0@-!#(B" + "*標準の変換候補の face 属性。" :group 'skk-visual) (when (and skk-use-face @@ -2025,47 +2025,47 @@ foreground $B$H(B background $B$N?';XDj$@$1$G$J$$6E$C$?(B face $B$r:n$k>l9g (set-face-background 'skk-henkan-face-default "darkseagreen2")) (defcustom skk-henkan-overlay-priority 600 - "*$BJQ49$7$?8uJd$K=E$M$k(B overlay $B$N(B priority$B!#(B -$BNc$($P!"(BViper $B$G(B R $B%3%^%s%I$K$h$j(B replace $B$r9T$&$H$-$K!"(B -`viper-replace-overlay' $B$H$$$&(B priority 400 $B$N(B overlay $B$r=E$M$i$l$k$,!"(B -`skk-henkan-overlay-priority' $B$N%G%U%)%k%HCM$O$3$N(B overlay $B$h$j(B -priority $B$,9b$$$N$G!"M%@h$7$FI=<($5$l$k!#(B" + "*変換した候補に重ねる overlay の priority。 +例えば、Viper で R コマンドにより replace を行うときに、 +`viper-replace-overlay' という priority 400 の overlay を重ねられるが、 +`skk-henkan-overlay-priority' のデフォルト値はこの overlay より +priority が高いので、優先して表示される。" :type 'integer :group 'skk-visual) (defcustom skk-treat-candidate-appearance-function nil - "*$B8uJd$NI=<($rAu>~$9$k$?$a$N4X?t$r;XDj$9$kJQ?t!#(B -$B%f!<%6$O8uJd$H$J$k$Y$-J8;zNs$KBP$7$F!"$=$NCmr7o$rK~$?$9I,MW$,$"$k!#(B + "*候補の表示を装飾するための関数を指定する変数。 +ユーザは候補となるべき文字列に対して、その注釈(アノテーション)も含めて +ほぼ任意の加工を施すことができる。この関数は以下の条件を満たす必要がある。 -1. $B0z?t$r#2$Do$NJQ49;~!"(Bnon-nil $B$N;~$O8uJd0lMwI=<(;~$rI=$9(B - $B$b$N$H$7$F07$&$3$H!#(B -4. $BJV$jCM$O0J2<$N$$$:$l$+$H$9$k$3$H!#(B - a. $BJ8;zNs(B - $B$3$N>l9g!"$3$NJ8;zNs$O8uJd$H%"%N%F!<%7%g%s$rN>J}4^$_$&$k$b$N$H$7$F=h(B - $BM}$5$l$k!#(B +1. 引数を2つ取ること。 +2. 第1引数は文字列として扱うこと。これは加工前の文字列に相当する。 +3. 第2引数が nil の時は通常の変換時、non-nil の時は候補一覧表示時を表す + ものとして扱うこと。 +4. 返り値は以下のいずれかとすること。 + a. 文字列 + この場合、この文字列は候補とアノテーションを両方含みうるものとして処 + 理される。 - b. cons cell ($B8uJd(B . $B%"%N%F!<%7%g%s(B) - $B$3$N>l9g!"8uJd$O$b$&%"%N%F!<%7%g%s$r4^$^$J$$$b$N$H$7$F=hM}$5$l$k!#(B - $B%"%N%F!<%7%g%s$K$D$$$F$O@hF,$,(B \";\" $B$+$I$&$+$rD4$Y$?>e$G=hM}$5$l$k!#(B + b. cons cell (候補 . アノテーション) + この場合、候補はもうアノテーションを含まないものとして処理される。 + アノテーションについては先頭が \";\" かどうかを調べた上で処理される。 - c. cons cell ($B8uJd(B . ($B%;%Q%l!<%?(B . $B%"%N%F!<%7%g%s(B)) - $B$3$N>l9g!"8uJd$O$b$&%"%N%F!<%7%g%s$r4^$^$J$$$b$N$H$7$F=hM}$5$l$k!#(B - $B%;%Q%l!<%?$ODL>o$N(B \";\" $B$NBe$o$j$KMxMQ$5$l$k!#%"%N%F!<%7%g%s$O$b$&(B - $B%;%Q%l!<%?$r4^$^$J$$$b$N$H$7$F=hM}$5$l$k!#(B + c. cons cell (候補 . (セパレータ . アノテーション)) + この場合、候補はもうアノテーションを含まないものとして処理される。 + セパレータは通常の \";\" の代わりに利用される。アノテーションはもう + セパレータを含まないものとして処理される。 -$B$3$N4X?t$O0J2<$N>l9g$K8F$P$l$k!#(B +この関数は以下の場合に呼ばれる。 -o $BDL>o$NJQ49F0:n$NETEY(B - $B$3$N>l9g$O!"8uJd$O%P%C%U%!$K!"%"%N%F!<%7%g%s$O%(%3!<%(%j%"$J$I!J%f!<%6(B - $B$N@_Dj$K$h$C$F0[$J$k>l=j!K$KI=<($5$l$k!#%;%Q%l!<%?$OI=<($5$l$J$$!#(B +o 通常の変換動作の都度 + この場合は、候補はバッファに、アノテーションはエコーエリアなど(ユーザ + の設定によって異なる場所)に表示される。セパレータは表示されない。 -o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$k(B) - $B$3$N>l9g$O!"8uJd!"%;%Q%l!<%?!"%"%N%F!<%7%g%s$N3FJ8;zNs$,I=<($5$l$k!#(B +o 候補一覧を表示するとき (候補の文字列の後ろにアノテーションが付加される) + この場合は、候補、セパレータ、アノテーションの各文字列が表示される。 - ($B@_DjNc(B) + (設定例) (setq skk-treat-candidate-appearance-function (lambda (candidate listing-p) @@ -2083,17 +2083,17 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ candidate)) " - :type '(radio (const :tag "$B@_Dj%5%s%W%k(B1" skk-treat-candidate-sample1) - (const :tag "$B@_Dj%5%s%W%k(B2" skk-treat-candidate-sample2) - (const :tag "$B;XDj$7$J$$(B" nil) - (function :tag "$BG$0U$N4X?t(B")) + :type '(radio (const :tag "設定サンプル1" skk-treat-candidate-sample1) + (const :tag "設定サンプル2" skk-treat-candidate-sample2) + (const :tag "指定しない" nil) + (function :tag "任意の関数")) :group 'skk-annotation :group 'skk-visual) (defface skk-treat-default '((((class color) (background light)) (:foreground "black")) (((class color) (background dark)) (:foreground "white"))) - "$BGX7J$J$7$NC1=c$J(B face$B!#(B`default' $B$NBe$o$j$K;H$&!#(B" + "背景なしの単純な face。`default' の代わりに使う。" :group 'skk-visual) ;;; -- Internal constants and variables of skk.el @@ -2102,7 +2102,7 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ ("ujis" . euc-jis-2004) ("sjis". japanese-shift-jis-2004) ("jis" . iso-2022-jp-3)) - "coding-system $B$NJ8;zNsI=8=$H!"%7%s%\%kI=8=$NO"A[%j%9%H!#(B") + "coding-system の文字列表現と、シンボル表現の連想リスト。") (defconst skk-kana-rom-vector ["x" "a" "x" "i" "x" "u" "x" "e" "x" "o" "k" "g" "k" "g" "k" "g" @@ -2111,24 +2111,24 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ "p" "h" "b" "p" "h" "b" "p" "h" "b" "p" "h" "b" "p" "m" "m" "m" "m" "m" "x" "y" "x" "y" "x" "y" "r" "r" "r" "r" "r" "x" "w" "x" "x" "w" "n"] - "$B$+$JJ8;z$+$i%m!<%^;z$X$NJQ49%k!<%k!#(B -$B2<5-$N3:Ev$9$k$+$JJ8;z$r$=$NJ8;z$N%m!<%^;z%W%l%U%#%C%/%9$G8=$o$7$?$b$N!#(B - $B$!(B $B$"(B $B$#(B $B$$(B $B$%(B $B$&(B $B$'(B $B$((B $B$)(B $B$*(B $B$+(B $B$,(B $B$-(B $B$.(B $B$/(B $B$0(B - $B$1(B $B$2(B $B$3(B $B$4(B $B$5(B $B$6(B $B$7(B $B$8(B $B$9(B $B$:(B $B$;(B $B$<(B $B$=(B $B$>(B $B$?(B $B$@(B - $B$A(B $B$B(B $B$C(B $B$D(B $B$E(B $B$F(B $B$G(B $B$H(B $B$I(B $B$J(B $B$K(B $B$L(B $B$M(B $B$N(B $B$O(B $B$P(B - $B$Q(B $B$R(B $B$S(B $B$T(B $B$U(B $B$V(B $B$W(B $B$X(B $B$Y(B $B$Z(B $B$[(B $B$\(B $B$](B $B$^(B $B$_(B $B$`(B - $B$a(B $B$b(B $B$c(B $B$d(B $B$e(B $B$f(B $B$g(B $B$h(B $B$i(B $B$j(B $B$k(B $B$l(B $B$m(B $B$n(B $B$o(B $B$p(B - $B$q(B $B$r(B $B$s(B" + "かな文字からローマ字への変換ルール。 +下記の該当するかな文字をその文字のローマ字プレフィックスで現わしたもの。 + ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く ぐ + け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ + ち ぢ っ つ づ て で と ど な に ぬ ね の は ば + ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ ま み む + め も ゃ や ゅ ゆ ょ よ ら り る れ ろ ゎ わ ゐ + ゑ を ん" ;; (length skk-kana-rom-vector) ;; --> 83 - ;; (setq kana '("$B$!(B" "$B$"(B" "$B$#(B" "$B$$(B" "$B$%(B" "$B$&(B" "$B$'(B" "$B$((B" "$B$)(B" "$B$*(B" - ;; "$B$+(B" "$B$,(B" "$B$-(B" "$B$.(B" "$B$/(B" "$B$0(B" "$B$1(B" "$B$2(B" "$B$3(B" "$B$4(B" - ;; "$B$5(B" "$B$6(B" "$B$7(B" "$B$8(B" "$B$9(B" "$B$:(B" "$B$;(B" "$B$<(B" "$B$=(B" "$B$>(B" - ;; "$B$?(B" "$B$@(B" "$B$A(B" "$B$B(B" "$B$C(B" "$B$D(B" "$B$E(B" "$B$F(B" "$B$G(B" "$B$H(B" "$B$I(B" - ;; "$B$J(B" "$B$K(B" "$B$L(B" "$B$M(B" "$B$N(B" "$B$O(B" "$B$P(B" "$B$Q(B" "$B$R(B" "$B$S(B" "$B$T(B" - ;; "$B$U(B" "$B$V(B" "$B$W(B" "$B$X(B" "$B$Y(B" "$B$Z(B" "$B$[(B" "$B$\(B" "$B$](B" - ;; "$B$^(B" "$B$_(B" "$B$`(B" "$B$a(B" "$B$b(B" "$B$c(B" "$B$d(B" "$B$e(B" "$B$f(B" "$B$g(B" "$B$h(B" - ;; "$B$i(B" "$B$j(B" "$B$k(B" "$B$l(B" "$B$m(B" "$B$n(B" "$B$o(B" "$B$p(B" "$B$q(B" "$B$r(B" "$B$s(B")) + ;; (setq kana '("ぁ" "あ" "ぃ" "い" "ぅ" "う" "ぇ" "え" "ぉ" "お" + ;; "か" "が" "き" "ぎ" "く" "ぐ" "け" "げ" "こ" "ご" + ;; "さ" "ざ" "し" "じ" "す" "ず" "せ" "ぜ" "そ" "ぞ" + ;; "た" "だ" "ち" "ぢ" "っ" "つ" "づ" "て" "で" "と" "ど" + ;; "な" "に" "ぬ" "ね" "の" "は" "ば" "ぱ" "ひ" "び" "ぴ" + ;; "ふ" "ぶ" "ぷ" "へ" "べ" "ぺ" "ほ" "ぼ" "ぽ" + ;; "ま" "み" "む" "め" "も" "ゃ" "や" "ゅ" "ゆ" "ょ" "よ" + ;; "ら" "り" "る" "れ" "ろ" "ゎ" "わ" "ゐ" "ゑ" "を" "ん")) ;; (length kana) ;; --> 83 ;; (mapcar (lambda (s) (- (char-octet (string-to-char s) 1) 33)) @@ -2141,29 +2141,29 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ (defconst skk-default-jisx0208-latin-vector ;; note that skk-jisx0208-latin-vector is a user variable. - ;; skk.el $B%m!<%IA0$K(B ~/.emacs.d/init.el $B$J$I$G!"(Bskk-jisx0208-latin-vector $B$NJL$NCM$r%f!<(B - ;; $B%6!<$,D>@\=q$$$?$j!"(Bskk.el $B%m!<%I8e$K$3$NCM$r(B aset $B$GD>@\$$$8$C$?$j$7$J(B - ;; $B$1$l$P(B default-value $B$G(B skk-jisx0208-latin-vector $B$K%"%/%;%9$9$k$3$H$G(B - ;; skk-default-jisx0208-latin-vector $B$NCM$rJ];}$9$k$3$H$b$G$-$h$&$,!"$=$l$O(B - ;; $BK>$a$J$$(B...$B!#(B + ;; skk.el ロード前に ~/.emacs.d/init.el などで、skk-jisx0208-latin-vector の別の値をユー + ;; ザーが直接書いたり、skk.el ロード後にこの値を aset で直接いじったりしな + ;; ければ default-value で skk-jisx0208-latin-vector にアクセスすることで + ;; skk-default-jisx0208-latin-vector の値を保持することもできようが、それは + ;; 望めない...。 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - "$B!!(B" "$B!*(B" "$B!I(B" "$B!t(B" "$B!p(B" "$B!s(B" "$B!u(B" "$B!G(B" - "$B!J(B" "$B!K(B" "$B!v(B" "$B!\(B" "$B!$(B" "$B!](B" "$B!%(B" "$B!?(B" - "$B#0(B" "$B#1(B" "$B#2(B" "$B#3(B" "$B#4(B" "$B#5(B" "$B#6(B" "$B#7(B" - "$B#8(B" "$B#9(B" "$B!'(B" "$B!((B" "$B!c(B" "$B!a(B" "$B!d(B" "$B!)(B" - "$B!w(B" "$B#A(B" "$B#B(B" "$B#C(B" "$B#D(B" "$B#E(B" "$B#F(B" "$B#G(B" - "$B#H(B" "$B#I(B" "$B#J(B" "$B#K(B" "$B#L(B" "$B#M(B" "$B#N(B" "$B#O(B" - "$B#P(B" "$B#Q(B" "$B#R(B" "$B#S(B" "$B#T(B" "$B#U(B" "$B#V(B" "$B#W(B" - "$B#X(B" "$B#Y(B" "$B#Z(B" "$B!N(B" "$B!@(B" "$B!O(B" "$B!0(B" "$B!2(B" - "$B!F(B" "$B#a(B" "$B#b(B" "$B#c(B" "$B#d(B" "$B#e(B" "$B#f(B" "$B#g(B" - "$B#h(B" "$B#i(B" "$B#j(B" "$B#k(B" "$B#l(B" "$B#m(B" "$B#n(B" "$B#o(B" - "$B#p(B" "$B#q(B" "$B#r(B" "$B#s(B" "$B#t(B" "$B#u(B" "$B#v(B" "$B#w(B" - "$B#x(B" "$B#y(B" "$B#z(B" "$B!P(B" "$B!C(B" "$B!Q(B" "$B!A(B" nil] - "`skk-jisx0208-latin-region' $B$G;2>H$9$kJ8;z%F!<%V%k!#(B -\"ascii\" -> \"$B#a#s#c#i#i(B\" $B$N$h$&$JA43QJ8;z$XJQ49$9$k:]$KMxMQ$9$k!#(B") + " " "!" "”" "#" "$" "%" "&" "’" + "(" ")" "*" "+" "," "-" "." "/" + "0" "1" "2" "3" "4" "5" "6" "7" + "8" "9" ":" ";" "<" "=" ">" "?" + "@" "A" "B" "C" "D" "E" "F" "G" + "H" "I" "J" "K" "L" "M" "N" "O" + "P" "Q" "R" "S" "T" "U" "V" "W" + "X" "Y" "Z" "[" "\" "]" "^" "_" + "‘" "a" "b" "c" "d" "e" "f" "g" + "h" "i" "j" "k" "l" "m" "n" "o" + "p" "q" "r" "s" "t" "u" "v" "w" + "x" "y" "z" "{" "|" "}" "~" nil] + "`skk-jisx0208-latin-region' で参照する文字テーブル。 +\"ascii\" -> \"ascii\" のような全角文字へ変換する際に利用する。") (defconst skk-kana-cleanup-command-list '(skk-undo @@ -2194,62 +2194,62 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ (?\r . "\\r") (?\" . "\\\"") (?\\ . "\\\\")) - "$B<-=q%(%s%H%jFb$K4^$a$F$O$J$i$J$$J8;z$rCV$-JQ$($k$?$a$NO"A[%j%9%H!#(B -`;' $B$O!"Cpl9g$@$1CV49$9$k!#(B") + "辞書エントリ内に含めてはならない文字を置き変えるための連想リスト。 +`;' は、註釈と関係ない場合だけ置換する。") (defvar skk-charset-list nil - "SKK $B$,07$&J8;z=89g$N%j%9%H!#(BSKK $B=i2s5/F0;~$K(B GNU Emacs 23 $B0J>e$G$"$l$P@_Dj$5$l$k!#(B") + "SKK が扱う文字集合のリスト。SKK 初回起動時に GNU Emacs 23 以上であれば設定される。") (defvar skk-emacs-id nil - "$BJ#?t$N(B emacs $B%W%m%;%9$r<1JL$9$kJ8;zNs!#(B -$B$R$H$D$N8D?M<-=q%U%!%$%k$rJ#?t$N(B emacs $B>e$G5/F0$7$F$$$k(B SKK $B$G6&M-$9$k$H(B -$B$-$K;2>H$9$k!#(B") + "複数の emacs プロセスを識別する文字列。 +ひとつの個人辞書ファイルを複数の emacs 上で起動している SKK で共有すると +きに参照する。") (defvar skk-jisyo-update-vector nil - "`skk-share-private-jisyo' $BM-8z;~$K<-=q%P%C%U%!99?7>pJs$rJ];}$9$k(B vector. -$BD9$5$O(B `skk-jisyo-save-count' $B$h$jD9$/$J$k$h$&$K@_Dj$7$F$$$k!#(B -$B<-=q%P%C%U%!99?7$N5-O?$rJ]B8$7!"<-=q%P%C%U%!$r<-=q%U%!%$%k$K%;!<%V$9$k$H$-$K!"(B -$BB>$N(B SKK $B$,<-=q%U%!%$%k$K:G6a%"%/%;%9$7$F$$$k$H$-$K$O!"<-=q%U%!%$%k$r%P%C%U%!(B -$B$KFI$_9~$s$G$+$i!"(B`skk-jisyo-update-vector' $B$rMQ$$$F%P%C%U%!$r99?7D>$7!"$=$N(B -$B7k2L$r%U%!%$%k$K%;!<%V$9$k!#(B") + "`skk-share-private-jisyo' 有効時に辞書バッファ更新情報を保持する vector. +長さは `skk-jisyo-save-count' より長くなるように設定している。 +辞書バッファ更新の記録を保存し、辞書バッファを辞書ファイルにセーブするときに、 +他の SKK が辞書ファイルに最近アクセスしているときには、辞書ファイルをバッファ +に読み込んでから、`skk-jisyo-update-vector' を用いてバッファを更新直し、その +結果をファイルにセーブする。") (defvar skk-rule-tree nil - "$B%m!<%^;z(B -> $B$+$JJQ49$N>uBVA+0\5,B'$rI=$9%D%j!<$N=i4|>uBV!#(B -$B:G=i$K(B `skk-mode' $B$r5/F0$7$?$H$-$K(B `skk-rom-kana-base-rule-list' $B$H(B -`skk-rom-kana-rule-list' $B$+$iLZ$N7A$K%3%s%Q%$%k$5$l$k!#(B -\\[skk-restart] $B$K$h$C$F$b:F%3%s%Q%$%k$5$l$k!#(B") + "ローマ字 -> かな変換の状態遷移規則を表すツリーの初期状態。 +最初に `skk-mode' を起動したときに `skk-rom-kana-base-rule-list' と +`skk-rom-kana-rule-list' から木の形にコンパイルされる。 +\\[skk-restart] によっても再コンパイルされる。") (defvar skk-insert-new-word-function nil - "$B8uJd$rA^F~$7$?$H$-$K(B `funcall' $B$5$l$k4X?t$rJ]B8$9$kJQ?t!#(B") + "候補を挿入したときに `funcall' される関数を保存する変数。") (defvar skk-mode-invoked nil - "Non-nil $B$G$"$l$P!"(BEmacs $B$r5/F08e4{$K(B `skk-mode' $B$r5/F0$7$?$3$H$r<($9!#(B") + "Non-nil であれば、Emacs を起動後既に `skk-mode' を起動したことを示す。") (defvar skk-kakutei-count 0 - "$BJQ498uJd$r3NDj$7$?%+%&%s%H$rJ];}$9$kJQ?t!#(B -`skk-record-file' $B$N(B \"$B3NDj(B:\" $B9`L\$N%+%&%s%?!e$H$J$C$?$H$-$K8D?M<-=q$,(B -$B%*!<%H%;!<%V$5$l$k!#(B -$B8D?M<-=q$,%;!<%V$5$l$k$H%$%K%7%c%i%$%:$5$l$k!#(B") + "個人辞書を更新した回数。 +この変数の数値が `skk-jisyo-save-count' 以上となったときに個人辞書が +オートセーブされる。 +個人辞書がセーブされるとイニシャライズされる。") (defvar skk-kakutei-history nil - "$BAw$j$J$7$G3NDj$5$l$?8+=P$78l!&8uJd$NMzNr!#(B + "送りなしで確定された見出し語・候補の履歴。 - (\"$B$_$@$7$4(B\" \"$B8+=P$78l(B\" buffer) + (\"みだしご\" \"見出し語\" buffer) - $B$H$$$&7A<0$N%j%9%H!#(B") + という形式のリスト。") (defvar skk-minibuffer-origin-mode nil - "$BF~NO%b!<%I$rI=$o$9%7%s%\%k!#(B -$BM-8z$JCM$O!"(B`hiragana', `katakana', `abbrev', `latin', `jisx0208-latin' -$B$b$7$/$O(B nil $B$N$$$:$l$+!#(B") + "入力モードを表わすシンボル。 +有効な値は、`hiragana', `katakana', `abbrev', `latin', `jisx0208-latin' +もしくは nil のいずれか。") (defvar skk-menu nil) @@ -2263,18 +2263,18 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ (defvar skk-inline-overlays nil) (defvar skk-latin-mode-map nil - "*$B%"%9%-!<%b!<%I$N%-!<%^%C%W!#(B") + "*アスキーモードのキーマップ。") (defvar skk-j-mode-map nil - "*$B$+$J%b!<%I$N%-!<%^%C%W!#(B") + "*かなモードのキーマップ。") (defvar skk-jisx0208-latin-mode-map nil - "*$BA41Q%b!<%I$N%-!<%^%C%W!#(B") + "*全英モードのキーマップ。") (defvar skk-abbrev-mode-map nil - "*SKK abbrev $B%b!<%I$N%-!<%^%C%W!#(B") + "*SKK abbrev モードのキーマップ。") (defvar skk-henkan-in-minibuff-nest-level nil) (defvar skk-menu-items - ;; SKK $B%a%K%e!<$NDj5A!#(B + ;; SKK メニューの定義。 '("SKK" ("Convert Region and Echo" ("Gyakubiki" @@ -2359,195 +2359,195 @@ o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$ ;; ---- buffer local variables -;; <$B%U%i%0N`(B> +;; <フラグ類> ;;(skk-deflocalvar skk-current-henkan-data ;; '(;; global variables -;; ;; $B%P%C%U%!%m!<%+%kJQ?t$N%G%U%)%k%HCM$r@_Dj$9$k$H!"$3$l$rD>@\=q49$($7$?(B -;; ;; $B$H$-$KB>$N%P%C%U%!$+$i8+$($kCM$bJQ$o$C$F$7$^$&!#(Bglobal $B$J%U%i%0$O$3$l(B -;; ;; $B$rMxMQ$7$F%G%U%)%k%HCM$rM?$($F$*$/!#(B +;; ;; バッファローカル変数のデフォルト値を設定すると、これを直接書換えした +;; ;; ときに他のバッファから見える値も変わってしまう。global なフラグはこれ +;; ;; を利用してデフォルト値を与えておく。 -;; ;; Emacs $B$r5/F08e4{$K(B skk-mode $B$r5/F0$7$?$3$H$r<($9(B +;; ;; Emacs を起動後既に skk-mode を起動したことを示す ;; (invoked . nil) -;; ;; skk-isearch $B4X?t$r%3!<%k$9$k$?$a$N%U%i%0(B +;; ;; skk-isearch 関数をコールするためのフラグ ;; (isearch-message . nil) -;; ;; $BJQ498uJd$r3NDj$7$?%+%&%s%H$rJ];}$9$kJQ?t(B +;; ;; 変換候補を確定したカウントを保持する変数 ;; (kakutei-count . 0) -;; ;;$BF~NO%b!<%I$rI=$o$9%7%s%\%k(B +;; ;;入力モードを表わすシンボル ;; (minibuffer-origin-mode . nil) -;; ;; $B<-=qEPO?$7$?%+%&%s%H$rJ];}$9$kJQ?t(B +;; ;; 辞書登録したカウントを保持する変数 ;; (touroku-count . 0) -;; ;; $B<-=q$r99?7$7$?2s?t(B +;; ;; 辞書を更新した回数 ;; (update-jisyo-count . 0) ;; ;; buffer-local variables. -;; ;; `skk-search-prog-list' $B$N8=:_$NCM$rJ]B8$9$k%j%9%H(B +;; ;; `skk-search-prog-list' の現在の値を保存するリスト ;; ;; (current-search-prog-list . nil) -;; ;; $B%_%K%P%C%U%!$G8uJd$rL>ItJ,(B +;; ;; 現在の変換の送り仮名部分 ;; ;; (henkan-okurigana . nil) -;; ;; $B"&%b!<%I(B ($BJQ49BP>]$NJ8;zNs7hDj$N$?$a$N%b!<%I(B) $B$G$"$k$3$H$r<($9(B +;; ;; ▽モード (変換対象の文字列決定のためのモード) であることを示す ;; ;; (henkan-on . nil) -;; ;; $BJQ493+;O%]%$%s%H$r<($9%^!<%+!<(B +;; ;; 変換開始ポイントを示すマーカー ;; ;; (henkan-start-point . nil) -;; ;; $B3NDj$7$FNI$$8uJd$r8+$D$1$?>uBV$G$"$k$3$H$r;X$9(B +;; ;; 確定して良い候補を見つけた状態であることを指す ;; ;; (kakutei-flag . nil) -;; ;; $B$+$JJ8;z$N3+;O%]%$%s%H$r<($9%^!<%+!<(B +;; ;; かな文字の開始ポイントを示すマーカー ;; ;; (kana-start-point . nil) -;; ;; $BF~NO%b!<%I$,%+%J%b!<%I$G$"$k$3$H$r<($9(B +;; ;; 入力モードがカナモードであることを示す ;; ;; (katakana . nil) -;; ;; $B<-=q$NAw$jM-$j%(%s%H%j$N=*N;E@$r<($9%P%C%U%!%]%$%s%H(B +;; ;; 辞書の送り有りエントリの終了点を示すバッファポイント ;; ;; (okuri-ari-max . nil) -;; ;; $B<-=q$NAw$jM-$j%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H(B +;; ;; 辞書の送り有りエントリの開始点を示すバッファポイント ;; ;; (okuri-ari-min . nil) -;; ;; $BJQ49$9$Y$-8l$NAw$j2>L>$NItJ,$N%W%l%U%#%C%/%9(B +;; ;; 変換すべき語の送り仮名の部分のプレフィックス ;; ;; (okuri-char . nil) -;; ;; `skk-henkan-list' $B$N%$%s%G%/%9$G<+F0Aw$j=hM}!"$b$7$/$O%5JQ8!:w$G(B -;; ;; $B8!:w$7$?:G8e$N8uJd$r;X$9$b$N(B +;; ;; `skk-henkan-list' のインデクスで自動送り処理、もしくはサ変検索で +;; ;; 検索した最後の候補を指すもの ;; ;; (okuri-index-max . -1) -;; ;; `skk-henkan-list' $B$N%$%s%G%/%9$G<+F0Aw$j=hM}!"$b$7$/$O%5JQ8!:w$G(B -;; ;; $B8!:w$7$?:G=i$N8uJd$r;X$9$b$N(B +;; ;; `skk-henkan-list' のインデクスで自動送り処理、もしくはサ変検索で +;; ;; 検索した最初の候補を指すもの ;; ;; (okuri-index-min . -1) -;; ;; $B<-=q$NAw$j$J$7%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H(B +;; ;; 辞書の送りなしエントリの開始点を示すバッファポイント ;; ;; (okuri-nasi-min . nil) -;; ;; $BAw$j2>L>ItJ,$,F~NOCf$G$"$k$3$H$r<($9(B +;; ;; 送り仮名部分が入力中であることを示す ;; ;;(okurigana . nil) -;; ;; $BAw$j2>L>$N3+;O%]%$%s%H$r<($9%^!<%+!<(B +;; ;; 送り仮名の開始ポイントを示すマーカー ;; ;; (okurigana-start-point . nil) -;; ;; $BF~NO$9$k$+$J$r7hDj$9$k$?$a$N%W%l%U%#%C%/%9(B +;; ;; 入力するかなを決定するためのプレフィックス ;; ;; (prefix . "") -;; ;; $B$3$NJQ?t$KJ];}$5$l$k%]%$%s%H$,8=:_$N%]%$%s%H$H0[$J$k>l9g!"(B -;; ;; `skk-with-point-move' $B$,;H$o$l$F$$$J$$%3%^%s%I$rF0:n$5$;$k$H(B -;; ;; `skk-after-point-move' $B$,:nF0$9$k(B +;; ;; この変数に保持されるポイントが現在のポイントと異なる場合、 +;; ;; `skk-with-point-move' が使われていないコマンドを動作させると +;; ;; `skk-after-point-move' が作動する ;; ;; (previous-point . nil) -;; ;; `skk-insert' $B$b$7$/$O(B `skk-jisx0208-latin-insert' $B$GO"B3F~NO$7$?(B -;; ;; $BJ8;z?t$rI=$o$9%+%&%s%?!<(B +;; ;; `skk-insert' もしくは `skk-jisx0208-latin-insert' で連続入力した +;; ;; 文字数を表わすカウンター ;; ;; (self-insert-non-undo-count . 1))) (skk-deflocalvar skk-mode nil "\ -Non-nil $B$G$"$l$P!"%+%l%s%H%P%C%U%!$G8=:_(B `skk-mode' $B$r5/F0$7$F$$$k$3$H$r<($9!#(B") +Non-nil であれば、カレントバッファで現在 `skk-mode' を起動していることを示す。") (skk-deflocalvar skk-latin-mode nil - "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,%"%9%-!<%b!<%I$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、入力モードがアスキーモードであることを示す。") (skk-deflocalvar skk-j-mode nil - "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,$+$J!&%+%J%b!<%I$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、入力モードがかな・カナモードであることを示す。") (skk-deflocalvar skk-katakana nil - "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,%+%J%b!<%I$G$"$k$3$H$r<($9!#(B -\"(and (not skk-katakana) skk-j-mode)\" $B$,(B t $B$G$"$l$P!"$+$J%b!<%I$G$"$k$3$H$r(B -$B<($9!#(B") + "Non-nil であれば、入力モードがカナモードであることを示す。 +\"(and (not skk-katakana) skk-j-mode)\" が t であれば、かなモードであることを +示す。") (skk-deflocalvar skk-jisx0208-latin-mode nil - "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,A41Q%b!<%I$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、入力モードが全英モードであることを示す。") (skk-deflocalvar skk-abbrev-mode nil - "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,(B SKK abbrev $B%b!<%I$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、入力モードが SKK abbrev モードであることを示す。") (skk-deflocalvar skk-okurigana nil - "Non-nil $B$G$"$l$P!"Aw$j2>L>ItJ,$,F~NOCf$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、送り仮名部分が入力中であることを示す。") (skk-deflocalvar skk-henkan-mode nil - "$BJQ49%b!<%I$r<($9!#(B -`on' $B$G$"$l$P!""&%b!<%I!#(B -`active' $B$G$"$l$P!""'%b!<%I!#(B -`nil' $B$G$"$l$P!"3NDjF~NO%b!<%I!#(B") + "変換モードを示す。 +`on' であれば、▽モード。 +`active' であれば、▼モード。 +`nil' であれば、確定入力モード。") (skk-deflocalvar skk-kakutei-flag nil - "Non-nil $B$J$i3NDj$7$FNI$$8uJd$r8+$D$1$?>uBV$G$"$k$3$H$r;X$9!#(B") + "Non-nil なら確定して良い候補を見つけた状態であることを指す。") (skk-deflocalvar skk-kakutei-henkan-flag nil - "Non-nil $B$J$i3NDjJQ49$9$k;v$r;X$9!#(B -`skk-search-kakutei-jisyo-file' $B$d!"%f!<%6<+:n$N3NDjJQ49MQ%W%m%0%i%`$O(B -$B$3$NJQ?t$r%;%C%H$9$k!#(B + "Non-nil なら確定変換する事を指す。 +`skk-search-kakutei-jisyo-file' や、ユーザ自作の確定変換用プログラムは +この変数をセットする。 -$B$3$NJQ?t$,(B Non-nil $B$K%;%C%H$5$l$F$b!"JQ49$7$F:G=i$KF@$i$l$?8uJd$G$J$1$l$P(B -$B3NDjJQ49$5$l$J$$$3$H$KCm0U!#(B") +この変数が Non-nil にセットされても、変換して最初に得られた候補でなければ +確定変換されないことに注意。") (skk-deflocalvar skk-exit-show-candidates nil - "$B%_%K%P%C%U%!$G8uJd$r +;; <キーマップ関連> (skk-deflocalvar skk-current-rule-tree nil - "$B%m!<%^;z(B -> $B$+$JJQ49$N>uBVA+0\5,B'$rI=$o$9%D%j!<$N8=;~E@$N>uBV!#(B -$B%m!<%^;zF~NO$N=i4|$G$O(B `skk-rule-tree' $B$HF10l$N>uBV$G!"J8;zF~NO$,?J$`$K(B -$B$D$l!"LZ$r$?$I$C$F$f$/>uBV$NA+0\$rI=$9!#(B") + "ローマ字 -> かな変換の状態遷移規則を表わすツリーの現時点の状態。 +ローマ字入力の初期では `skk-rule-tree' と同一の状態で、文字入力が進むに +つれ、木をたどってゆく状態の遷移を表す。") -;; <$B<-=q4XO"$NJQ?t(B> +;; <辞書関連の変数> (skk-deflocalvar skk-okuri-ari-min nil - "SKK $B<-=q$NAw$jM-$j%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H!#(B") + "SKK 辞書の送り有りエントリの開始点を示すバッファポイント。") (skk-deflocalvar skk-okuri-ari-max nil - "SKK $B<-=q$NAw$jM-$j%(%s%H%j$N=*N;E@$r<($9%P%C%U%!%]%$%s%H!#(B -`skk-jisyo' $B$N%P%C%U%!$G$O<-=q$N99?7$NI,MW$,$"$k$?$a$K%^!<%+!<$,BeF~$5$l$k!#(B") + "SKK 辞書の送り有りエントリの終了点を示すバッファポイント。 +`skk-jisyo' のバッファでは辞書の更新の必要があるためにマーカーが代入される。") (skk-deflocalvar skk-okuri-nasi-min nil - "SKK $B<-=q$NAw$j$J$7%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H!#(B -`skk-jisyo' $B$N%P%C%U%!$G$O<-=q$N99?7$NI,MW$,$"$k$?$a$K%^!<%+!<$,BeF~$5$l$k!#(B") + "SKK 辞書の送りなしエントリの開始点を示すバッファポイント。 +`skk-jisyo' のバッファでは辞書の更新の必要があるためにマーカーが代入される。") -;; <$B$=$NB>(B> +;; <その他> (skk-deflocalvar skk-mode-line nil - "SKK $B$N%b!<%I$r<($9%b!<%I%i%$%s$NJ8;zNs!#(B + "SKK のモードを示すモードラインの文字列。 `skk-mode-string', `skk-hiragana-mode-string', `skk-katakana-mode-string', - `skk-jisx0208-latin-mode-string' $B$N$$$:$l$+$,BeF~$5$l$k!#(B") + `skk-jisx0208-latin-mode-string' のいずれかが代入される。") (skk-deflocalvar skk-previous-point nil - "`skk-with-point-move' $B4XO"JQ?t!#(B -$B$3$NJQ?t$KJ];}$5$l$k%]%$%s%H$,8=:_$N%]%$%s%H$H0[$J$k>l9g!"(B`skk-with-point-move' -$B$,;H$o$l$F$$$J$$%3%^%s%I$rF0:n$5$;$k$H!"(B`skk-after-point-move' $B$,:nF0$9$k!#(B") + "`skk-with-point-move' 関連変数。 +この変数に保持されるポイントが現在のポイントと異なる場合、`skk-with-point-move' +が使われていないコマンドを動作させると、`skk-after-point-move' が作動する。") (skk-deflocalvar skk-prefix "" - "$BF~NO$9$k$+$J$r7hDj$9$k$?$a$N%W%l%U%#%C%/%9!#(B") + "入力するかなを決定するためのプレフィックス。") (defface skk-prefix-hiragana-face '((((class color) (type tty)) @@ -2557,7 +2557,7 @@ Non-nil $B$G$"$l$P!"%+%l%s%H%P%C%U%!$G8=:_(B `skk-mode' $B$r5/F0$7$F$$$k$3$H$ (((class color) (background dark)) (:foreground "pink")) (((class grayscale)) (:underline t))) - "*$B$+$J%b!<%I$N%m!<%^;z%W%l%U%#%C%/%9$N(B face $BB0@-!#(B" + "*かなモードのローマ字プレフィックスの face 属性。" :group 'skk-visual) (defface skk-prefix-katakana-face @@ -2568,7 +2568,7 @@ Non-nil $B$G$"$l$P!"%+%l%s%H%P%C%U%!$G8=:_(B `skk-mode' $B$r5/F0$7$F$$$k$3$H$ (((class color) (background dark)) (:foreground "green")) (((class grayscale)) (:underline t))) - "*$B%+%J%b!<%I$N%m!<%^;z%W%l%U%#%C%/%9$N(B face $BB0@-!#(B" + "*カナモードのローマ字プレフィックスの face 属性。" :group 'skk-visual) (defface skk-prefix-jisx0201-face @@ -2579,259 +2579,259 @@ Non-nil $B$G$"$l$P!"%+%l%s%H%P%C%U%!$G8=:_(B `skk-mode' $B$r5/F0$7$F$$$k$3$H$ (((class color) (background dark)) (:foreground "thistle")) (((class grayscale)) (:underline t))) - "*JISX0201 $B%b!<%I$N%m!<%^;z%W%l%U%#%C%/%9$N(B face $BB0@-!#(B" + "*JISX0201 モードのローマ字プレフィックスの face 属性。" :group 'skk-visual) (skk-deflocalvar skk-prefix-overlay nil - "`skk-prefix' $B$rI=<($9$k$?$a$K;HMQ$5$l$k(B overlay$B!#(B -`skk-echo' $B$NCM$,(B non-nil $B$N$H$-$K;HMQ$5$l$k!#(B") + "`skk-prefix' を表示するために使用される overlay。 +`skk-echo' の値が non-nil のときに使用される。") (skk-deflocalvar skk-henkan-start-point nil - "$BJQ493+;O%]%$%s%H$r<($9%^!<%+!L>$N3+;O%]%$%s%H$r<($9%^!<%+!l9g$K$O!"(B\"$B$o$i(Bu\" $B$N$h$&$K!"4A;zItJ,$N(B -$BFI$_$,$J(B + $BAw$j2>L>$N:G=i$NJ8;z$N%m!<%^;z$N%W%l%U%#%C%/%9$,BeF~$5$l$k!#(B") + "変換すべき見出し語。 +例えば、\"▽かな\" を変換すれば、`skk-henkan-key' には \"かな\" が代入される。 +\"▽わら*う\" のような送りありの変換の場合には、\"わらu\" のように、漢字部分の +読みがな + 送り仮名の最初の文字のローマ字のプレフィックスが代入される。") (skk-deflocalvar skk-okuri-char nil - "$BJQ49$9$Y$-8l$NAw$j2>L>$NItJ,$N%W%l%U%#%C%/%9!#(B -$BNc$($P!"(B\"$B$*$/(B*$B$j(B\" $B$rJQ49$9$k$H$-$O!"(B`skk-okuri-char' $B$O(B \"r\"$B!#(B -`skk-okuri-char' $B$,(B non-nil $B$G$"$l$P!"Aw$j$"$j$NJQ49$G$"$k$3$H$r<($9!#(B") + "変換すべき語の送り仮名の部分のプレフィックス。 +例えば、\"おく*り\" を変換するときは、`skk-okuri-char' は \"r\"。 +`skk-okuri-char' が non-nil であれば、送りありの変換であることを示す。") (skk-deflocalvar skk-henkan-okurigana nil - "$B8=:_$NJQ49$NAw$j2>L>ItJ,!#(B -$BNc$($P!"(B\"$B"&$&$^$l(B*$B$k(B\" $B$rJQ49$9$l$P!"(B`skk-henkan-okurigana' $B$K$O(B \"$B$k(B\" $B$,BeF~(B -$B$5$l$k!#(B") + "現在の変換の送り仮名部分。 +例えば、\"▽うまれ*る\" を変換すれば、`skk-henkan-okurigana' には \"る\" が代入 +される。") (skk-deflocalvar skk-last-kakutei-henkan-key nil - "$B3NDj<-=q$K$h$j:G8e$K3NDj$7$?$H$-$N8+=P$78l!#(B -$B3NDj<-=q$K$h$k3NDj$ND>8e$K(B x $B%-!<$r2!$9$H3NDj$,%"%s%I%%$5$l$F!"3NDjA0$N>uBV$G(B -$B$3$N8+=P$78l$,%+%l%s%H%P%C%U%!$KA^F~$5$l$k!#(B") + "確定辞書により最後に確定したときの見出し語。 +確定辞書による確定の直後に x キーを押すと確定がアンドゥされて、確定前の状態で +この見出し語がカレントバッファに挿入される。") (skk-deflocalvar skk-henkan-list nil - "$BJQ497k2L$N8uJd$N%j%9%H!#(B -$BNc$($P!"(B\"$B"&$J(B*$B$/(B\" $B$H$$$&JQ49$9$l$P!"(B`skk-henkan-list' $B$O(B -\(\"$BLD(B\" \"$B5c(B\" \"$BL5(B\" \"$BK4(B\") $B$N$h$&$K$J$k!#(B") + "変換結果の候補のリスト。 +例えば、\"▽な*く\" という変換すれば、`skk-henkan-list' は +\(\"鳴\" \"泣\" \"無\" \"亡\") のようになる。") (skk-deflocalvar skk-henkan-count -1 - "`skk-henkan-list' $B$N%j%9%H$N%$%s%G%/%9$G8=:_$N8uJd$r:9$9$b$N!#(B") + "`skk-henkan-list' のリストのインデクスで現在の候補を差すもの。") (skk-deflocalvar skk-self-insert-non-undo-count 1 - "$BO"B3F~NO$7$?J8;z?t$rI=$o$9%+%&%s%?!]$H$J$k!#$3$NF0:n$r%(%_%e%l!<%H$9$k$?$a$N(B -$B%+%&%s%?!uBV!#(B") + "`skk-undo-kakutei' が呼ばれた時の入力モードの状態。") (skk-deflocalvar skk-undo-kakutei-previous-point nil - "$B3NDj%"%s%I%%D>A0$N%]%$%s%H$r<($9%^!<%+!]$NJQ497k2L$ND9$5!#(B") + "確定アンドゥする対象の変換結果の長さ。") (skk-deflocalvar skk-henkan-overlay nil - "$B8uJd$rI=<($9$k$H$-$K;HMQ$9$k(B Overlay$B!#(B") + "候補を表示するときに使用する Overlay。") (skk-deflocalvar skk-henkan-in-minibuff-flag nil - "$B%_%K%P%C%U%!$G<-=qEPO?$r9T$C$?$H$-$K$3$N%U%i%0$,N)$D!#(B -`skk-remove-common' $B$G;2>H$5$l$k!#(B") + "ミニバッファで辞書登録を行ったときにこのフラグが立つ。 +`skk-remove-common' で参照される。") (skk-deflocalvar skk-okuri-index-min -1 - "`skk-henkan-list' $B$N%$%s%G%/%9$rA^$9%]%$%s%?$N$R$H$D!#(B -$B<+F0Aw$j=hM}$G8!:w$7$?:G=i$N8uJd$r;X$9!#(B") + "`skk-henkan-list' のインデクスを挿すポインタのひとつ。 +自動送り処理で検索した最初の候補を指す。") (skk-deflocalvar skk-okuri-index-max -1 - "`skk-henkan-list' $B$N%$%s%G%/%9$rA^$9%]%$%s%?$N$R$H$D!#(B -$B<+F0Aw$j=hM}$G8!:w$7$?:G8e$N8uJd$r;X$9!#(B") + "`skk-henkan-list' のインデクスを挿すポインタのひとつ。 +自動送り処理で検索した最後の候補を指す。") (skk-deflocalvar skk-last-buffer-undo-list nil - "$B"&%b!<%I$KF~$kD>A0$N(B `buffer-undo-list' $B$rB`Hr$7$F$*$/JQ?t!#(B") + "▽モードに入る直前の `buffer-undo-list' を退避しておく変数。") (skk-deflocalvar skk-after-prefix nil - "t $B$G$"$l$P!"@\F,<-F~NO8e$N>uBV$K$"$k$3$H$rI=$9!#(B -$B@\F,<-F~NO3+;O;~$K(B t $B$K%;%C%H$5$l!"B3$/8l$N3NDj8e$K(B nil $B$K%;%C%H$5$l$k!#(B") + "t であれば、接頭辞入力後の状態にあることを表す。 +接頭辞入力開始時に t にセットされ、続く語の確定後に nil にセットされる。") ;; skk-act.el related. (defcustom skk-use-act nil - "*Non-nil $B$G$"$l$P3HD%%m!<%^;zF~NO(B ACT $B$rMxMQ$9$k!#(B" + "*Non-nil であれば拡張ローマ字入力 ACT を利用する。" :type 'boolean :group 'skk-act) (defcustom skk-act-use-normal-y nil - "*Non-nil $B$G$"$l$P(B \"y\" $B$r;H$C$?Y92;$NF~NO$rM-8z$K$9$k(B." + "*Non-nil であれば \"y\" を使った拗音の入力を有効にする." :type 'boolean :group 'skk-act) (defcustom skk-act-load-hook nil - "*skk-act $B$r(B load $B$7$?8e$Ko$KI=<((B" t) - (const :tag "$B8uJd0lMw$G$OHsI=<((B" (not list)) - (const :tag "$B%_%K%P%C%U%!$G$OHsI=<((B" (not minibuf)) - (const :tag "$B8uJd0lMw$H%_%K%P%C%U%!$G$OHsI=<((B" + "*Non-nil であれば、変換時にアノテーションを表示する。 +かな漢字変換の際、辞書の候補に含まれる `;' 以降の文字列をアノテーションとして\ +エコーエリア、別 Window またはツールティップに表示する。" + :type '(radio (const :tag "常に表示" t) + (const :tag "候補一覧では非表示" (not list)) + (const :tag "ミニバッファでは非表示" (not minibuf)) + (const :tag "候補一覧とミニバッファでは非表示" (not list minibuf)) - (const :tag "$BHsI=<((B" nil)) + (const :tag "非表示" nil)) :group 'skk-basic :group 'skk-annotation) (defcustom skk-annotation-delay 1.0 - "*$B%"%N%F!<%7%g%s$rI=<($9$k$^$G$NCY1d!#C10L$OIC!#(B" + "*アノテーションを表示するまでの遅延。単位は秒。" :type 'number :group 'skk-annotation) (defcustom skk-annotation-loop-interval 0.1 - "*$B%"%N%F!<%7%g%s$rI=<(Cf$N%W%m%;%9BT$A;~4V(B ($BIC(B)$B!#(B -$B9bB.$J4D6-$G$O>.$5$a$K@_Dj$9$k$H%l%9%]%s%9$,2wE,$K$J$k!#(B -$BDcB.$J4D6-$G$OBg$-$a$K@_Dj$9$k$HF0:n$,2~A1$5$l$&$k!#(B" + "*アノテーションを表示中のプロセス待ち時間 (秒)。 +高速な環境では小さめに設定するとレスポンスが快適になる。 +低速な環境では大きめに設定すると動作が改善されうる。" :type 'number :group 'skk-annotation) (defcustom skk-annotation-toggle-display-char ?^ - "*$B8uJd0lMw$rI=<(Cf$K%"%N%F!<%7%g%sI=<($r@Z$jBX$($k%-!<%-%c%i%/%?!#(B" + "*候補一覧を表示中にアノテーション表示を切り替えるキーキャラクタ。" :type 'character :group 'skk-annotation) (defcustom skk-annotation-copy-key "\C-w" - "*$B%"%N%F!<%7%g%s$r%3%T!<$9$k%-!l9g$O(B -$BJQ?t(B `interprogram-cut-function' $B$r@_Dj$9$k!#(B" + "*アノテーションをコピーするキー。 +このキーをタイプすると、現在表示中のアノテーションを kill ring に保存する。 +保存した内容を Emacs 以外のアプリケーションで利用したい場合は +変数 `interprogram-cut-function' を設定する。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-annotation) (defcustom skk-annotation-browse-key "\C-o" - "*$B%"%N%F!<%7%g%s$r(B URL $B$H8+Pv$7$F%V%i%&%:$9$k%-!]$H$9$kJ8;zNs$r0z?t$K$7$F(B `funcall' $B$5$l!"La$jCM(B -$B$,(B non-nil $B$G$"$l$P%"%N%F!<%7%g%s$rI=<($9$k!#(B -$B8uJd0lMw;~$K$O8F$P$l$J$$!#(B + "*アノテーションを表示するか否かを判定するためにコールする関数を指定する。 +アノテーションの対象とする文字列を引数にして `funcall' され、戻り値 +が non-nil であればアノテーションを表示する。 +候補一覧時には呼ばれない。 -$B%"%N%F!<%7%g%sI=<($NH=CG$O(B `skk-treat-candidate-appearance-function' $B$G$b(B -$Bl9g!"(Bpython $B$r(B inferior process $B$H$7$F5/F0$9$k!#(B -$B$3$N@_Dj$O(B `skk-annotation-lookup-dict' $B$h$jM%@h$5$l$k!#(B -Max OS X $B0J30$N4D6-$G$O5!G=$7$J$$!#(B - -$B8uJd0lMw$G$b$3$N5!G=$r;H$$$?$$>l9g$O(B `always' $B$K@_Dj$9$k$3$H$Ge=q$-$7$F$7(B -$B$^$&$?$a!">e5io$NJQ49;~$K<-=q$r;2>H$9$k(B" t) - (const :tag "$B>e5-$K2C$(8uJd0lMw$G$b;2>H$9$k(B" always) - (const :tag "$BMxMQ$7$J$$(B" nil)) + "*Non-nil であれば、Apple OS X で DictionaryServices より意味を取得する。 +この場合、python を inferior process として起動する。 +この設定は `skk-annotation-lookup-dict' より優先される。 +Max OS X 以外の環境では機能しない。 + +候補一覧でもこの機能を使いたい場合は `always' に設定することで実現できる。 +ただし、`always' は `skk-treat-candidate-appearance-function' を上書きしてし +まうため、上級者向けではない。" + :type '(radio (const :tag "通常の変換時に辞書を参照する" t) + (const :tag "上記に加え候補一覧でも参照する" always) + (const :tag "利用しない" nil)) :group 'skk-annotation) (defcustom skk-annotation-python-program (executable-find "python") - "*DictionaryServices $B$N$?$a$K5/F0$9$k(B python $B$N%U%!%$%kL>!#(B" + "*DictionaryServices のために起動する python のファイル名。" :type '(radio (file) (const nil)) :group 'skk-annotation) (defcustom skk-annotation-lookup-lookup nil - "*Non-nil $B$G$"$l$P(B elisp `lookup' $B$+$iJQ498uJd$N0UL#$rl9g$O(B `always' $B$K@_Dj$9$k$3$H$Ge=q$-$7(B -$B$F$7$^$&$?$a!">e5io$NJQ49;~$K(B lookup $B$r;2>H$9$k(B" t) - (const :tag "$B>e5-$K2C$(8uJd0lMw$G$b;2>H$9$k(B" always) - (const :tag "$BMxMQ$7$J$$(B" nil)) + "*Non-nil であれば elisp `lookup' から変換候補の意味を取得する。 + +候補一覧でもこの機能を使いたい場合は `always' に設定することで実現できる。 +ただし、`always' は `skk-treat-candidate-appearance-function' を上書きし +てしまうため、上級者向けではない。" + :type '(radio (const :tag "通常の変換時に lookup を参照する" t) + (const :tag "上記に加え候補一覧でも参照する" always) + (const :tag "利用しない" nil)) :group 'skk-annotation :group 'skk-lookup) (defcustom skk-annotation-lookup-dict nil - "*Non-nil $B$G$"$l$P!"30It%W%m%0%i%`$rFI$s$GJQ498uJd$N0UL#$rI=<($9$k!#(B -$B30It%W%m%0%i%`$O(B `skk-annotation-dict-program' $B$G;XDj$9$k!#(B" + "*Non-nil であれば、外部プログラムを読んで変換候補の意味を表示する。 +外部プログラムは `skk-annotation-dict-program' で指定する。" :type 'boolean :group 'skk-annotation) @@ -2840,7 +2840,7 @@ Max OS X $B0J30$N4D6-$G$O5!G=$7$J$$!#(B skk-annotation-python-program) (t nil)) - "*$BJQ498uJd$N0UL#$rI=<($9$k$?$a$N30It%W%m%0%i%`$N%U%!%$%kL>!#(B" + "*変換候補の意味を表示するための外部プログラムのファイル名。" :type '(radio (file) (const nil)) :group 'skk-annotation) @@ -2850,28 +2850,28 @@ Max OS X $B0J30$N4D6-$G$O5!G=$7$J$$!#(B '("-c" "import sys, DictionaryServices; word = sys.argv[1].decode(\"utf-8\"); print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word))).encode(\"utf-8\")")) (t nil)) - "*$BJQ498uJd$N0UL#$rI=<($9$k$?$a$N30It%W%m%0%i%`$N0z?t$N%j%9%H!#(B" + "*変換候補の意味を表示するための外部プログラムの引数のリスト。" :type '(radio (repeat string) (const nil)) :group 'skk-annotation) (defcustom skk-annotation-dict-coding-system 'utf-8 - "*$B30It%W%m%0%i%`$+$i%"%N%F!<%7%g%spJs$N%=!<%9$r;XDj$9$k%*%W%7%g%s!#(B -$BI8=`$G$O(B Wiktionary, Wikipedia ($BF|K\8lHG!"1Q8lHG(B) $B$r;2>H$9$k!#(B -Apple OS X $B$G$OI8=`$N!V<-=q!W$rMxMQ$G$-$k!#(B" + "*アノテーションに使う情報のソースを指定するオプション。 +標準では Wiktionary, Wikipedia (日本語版、英語版) を参照する。 +Apple OS X では標準の「辞書」を利用できる。" :type '(radio (repeat :tag "\ -$BpJs$rMxMQ$7$J$$(B" nil)) +次のソースを利用する (以下に項目と順番を指定してください)" symbol) + (const :tag "Wikimedia などの情報を利用しない" nil)) :group 'skk-annotation) (make-obsolete-variable 'skk-annotation-wikipedia-sources @@ -2879,8 +2879,8 @@ Apple OS X $B$G$OI8=`$N!V<-=q!W$rMxMQ$G$-$k!#(B" "DDSKK 14.4") (defcustom skk-annotation-wikipedia-key "\C-i" - "*$B%"%N%F!<%7%g%s$H$7$F(B Wikipedia $B$NFbMF$rI=<($9$k%-!uBV$KLa$9!#(B") + "SKK annotation mode に入る前の window configuration。 +`skk-annotation-save-and-quit' を呼ぶとこの window configuration +を使って SKK annotation mode に入る前の window 状態に戻す。") (defvar skk-annotation-target-data nil - "annotation $B$rIU$1$i$l$k8uJd$K4X$9$k%G!<%?!#(B") + "annotation を付けられる候補に関するデータ。") (defvar skk-annotation-wikipedia-message nil - "SKK Wikipedia $BMxMQJ}K!$r<($9%a%C%;!<%8(B ($B<+F0@_Dj(B)$B!#(B") + "SKK Wikipedia 利用方法を示すメッセージ (自動設定)。") (defvar skkannot-cached-srcs nil) (defvar skk-annotation-message nil - "SKK Annotation $BMxMQJ}K!$r<($9%a%C%;!<%8(B ($B<+F0@_Dj(B)$B!#(B") + "SKK Annotation 利用方法を示すメッセージ (自動設定)。") (defvar skkannot-remaining-delay 0) @@ -2928,7 +2928,7 @@ Apple OS X $B$G$OI8=`$N!V<-=q!W$rMxMQ$G$-$k!#(B" print \" %s(word)s in DictionaryServices\" %s {'word': word}; \ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") -;; XXX $B$^$@IT40A4(B +;; XXX まだ不完全 (defconst skkannot-en-wiktionary-lang-regexp "\

    .*\ \\(\\)?\ @@ -2936,19 +2936,19 @@ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") \\|Achumawa\\|Adangme\\|Adele\\|Adnyamathanha\\|Adyghe\\|Adzera\\|Afar\ \\|Afrikaans\\|Aghul\\|Ainu\\|Akan\\|Akawaio\\|Akkadian\\|Aklanon\\|Alabama\ \\|Albanian\\|Aleut\\|Algonquin\\|Alsatian\\|Amaimon\\|Amanab\\|Ambai\ -\\|Amharic\\|Amoy\\|Amuzgo\\|Ankave\\|Ansus\\|Apala.ANm\\|\\(Egyptian \\)?Arabic\ +\\|Amharic\\|Amoy\\|Amuzgo\\|Ankave\\|Ansus\\|Apala\\|\\(Egyptian \\)?Arabic\ \\|Aragonese\\|Aramaic\\|Arapaho\\|Arawak\\|Armenian\\|Aromanian\\|Assamese\ \\|Asturian\\|'Auhelawa\\|Avar\\|Avestan\\|Awabakal\\|Aymara\\|Azeri\ \\|Balinese\\|Balti\\|Bambara\\|Bandjalang\\|Baruga\\|Bashkir\\|Basque\ \\|Baure\ \\|Belarusian\\|Bengali\\|Berbice Creole Dutch\\|Betawi\\|Bhojpuri\\|Biak\ -\\|Bikol\\|Bislama\\|Blackfoot\\|BokmNel\\|Bosnian\\|Breton\ +\\|Bikol\\|Bislama\\|Blackfoot\\|Bokml\\|Bosnian\\|Breton\ \\|Broome Pearling Lugger Pidgin\\|Bube\\|Bulgarian\\|Burmese\ \\|Cantonese\\|Capeverdean Crioulo\\|Catalan\\|Catawba\\|Cebuano\ \\|Central Tarahumara\\|Ch'orti'\\|Chamorro\\|Chechen\\|Cherokee\\|Cheyenne\ \\|Chichewa\\|Chickasaw\\|Chinese Pidgin English\\|Chinese\\|Chinook Jargon\ -\\|Chiricahua\\|Choctaw\\|TumbalNa Chol\\|Chukchee\\|Chuvash\ -\\|Classical Nahuatl\\|CoatlNan Mixe\\|Comorian\\|Coptic\\|Cornish\\|Corsican\ +\\|Chiricahua\\|Choctaw\\|Tumbal Chol\\|Chukchee\\|Chuvash\ +\\|Classical Nahuatl\\|Coatln Mixe\\|Comorian\\|Coptic\\|Cornish\\|Corsican\ \\|Cree\\|Creek\\|Crimean Tatar\\|Croatian\\|Czech\ \\|Dacian\\|Dadibi\\|Northern Dagara\\\Dalmatian\\|Danish\\|Dargwa\ \\|Darkinjung\\|Darling\\|Dharuk\\|Dhivehi\\|Dhuwal\\|Dieri\\|Dusner\\|Dutch\ @@ -2958,14 +2958,14 @@ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") \\|Friulian\\|Fula\ \\|Ga\\|Gabi-Gabi\\|Gagauz\\|Galician\\|Gallo\\|Gamilaraay\\|Ge'ez\\|Georgian\ \\|\\(Middle High\\)?German\\|Gilbertese\\|Golin\\|Gooniyandi\\|Gothic\ -\\|\\(Ancient \\|Mycenaean \\)?Greek\\|Greenlandic\\|GuaranNm\\|MbyNa GuaranNm\ +\\|\\(Ancient \\|Mycenaean \\)?Greek\\|Greenlandic\\|Guaran\\|Mby Guaran\ \\|Gujarati\\|Guugu Yimidhirr\ \\|Hausa\\|Hawaiian\\|Hebrew\\|Hindi\\|Hittite\\|Hmong\\|Hopi\\|Hungarian\ \\|Icelandic\\|Ido\\|Igbo\\|Ilocano\\|Indoneian\\|Interlingua\\|Inuktitut\ \\|Irish\\|Italian\ -\\|Japanese\\|Javanese\\|Jingpho\\|JNhrriais\ -\\|Kabardian\\|Kabyle\\|KadiwNiu\\|Kannada\\|Kanuri\\|Kapingamarangi\\|Karelian\ -\\|KaritiNbna\\|Kashmiri\\|Kashubian\\|Kaurna\\|Kazakh\\|Khmer\\|Kickapoo\ +\\|Japanese\\|Javanese\\|Jingpho\\|Jrriais\ +\\|Kabardian\\|Kabyle\\|Kadiwu\\|Kannada\\|Kanuri\\|Kapingamarangi\\|Karelian\ +\\|Karitina\\|Kashmiri\\|Kashubian\\|Kaurna\\|Kazakh\\|Khmer\\|Kickapoo\ \\|Kinyarwanda\\|Kiput\\|Kirundi\\|Kokborok\\|Komi\\|Kongo\\|Korean\\|Kriol\ \\|Krisa\\|!Kung\\|Kurdish\\|Kurnai\\|Kwanyama\\|Kyrgyz\ \\|Ladino\\|Lak\\|Lakota\\|Laotian\\|Latin\\|Latvian\\|Lavukaleve\\|Lenape\ @@ -2977,7 +2977,7 @@ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") \\|Martuthunira\\|Mati Ke\\|Mbabaram\\|Mende\\|Menominee\\|Meriam\\|Mesquakie\ \\|Mi'kmaq\\|Miami\ \\|Middle \\(Dutch\\|English\\|French\\|Korean\\|Norwegian\\|Scots\\)\ -\\|Min Nan\\|Mirandese\\|Miskito\\|\\(Alcozauca \\|YosondNza \\)?Mixtec\ +\\|Min Nan\\|Mirandese\\|Miskito\\|\\(Alcozauca \\|Yosonda \\)?Mixtec\ \\|Miyako\\|Mohegan\\|Mohican\\|Moldavian\\|Mongolian\\|Montauk\\|Munduapa\ \\|Munggui\\|Munsee\\|Murrinh-Patha\\|Mutsun\ \\|\\(Isthmus-Mecayapan \\)?Nahuatl\\|Nanticoke\\|Narragansett\\|Nauruan\ @@ -2987,11 +2987,11 @@ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") \\|Old \\(Church Slavonic\\|English\\|French\\|Frisian\\|High German\\|Irish\ \\|Norse\\|Prussian\\|Saxon\\|Slavonic\\)\\|Oriya\\|Oromo\ \\|Pali\\|Pangasinan\\|Panyjima\\|Papiamentu\\|Papuma\\|Pashto\ -\\|Passamaquoddy\\|PaumarNm\\|Pennsylvania German\\|Penobscot\ +\\|Passamaquoddy\\|Paumar\\|Pennsylvania German\\|Penobscot\ \\|\\(Old \\)?Perian\\|Phoenician\ -\\|PirahNc\\|Pitcairnese\\|Pitjantjatjara\\|Pitta-Pitta\\|Pochutec\\|Polish\ +\\|Pirah\\|Pitcairnese\\|Pitjantjatjara\\|Pitta-Pitta\\|Pochutec\\|Polish\ \\|Sayula Popoluca\\|Portuguese\\|Potawatomi\\|Powhatan\ -\\|Proto-\\(Germanic\\|Indo-European\\|Uralic\\)\\|ProvenNga\\|Punjabi\ +\\|Proto-\\(Germanic\\|Indo-European\\|Uralic\\)\\|Provena\\|Punjabi\ \\|Quechua\\|Quenya\ \\|Rarotongan\\|Reconstructed\\|Rohingya\\|Roman\\(i\\|ian\\|sch\\)\\|Rotokas\ \\|Rotuman\\|Russian\\|Rutul\ @@ -3003,24 +3003,24 @@ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") \\|Sindhi\\|Sinhalese\\|Slovak\\|Slovene\\|Somali\\|Upper Sorbian\\|Spanish\ \\|Sranan\\|Sumerian\\|Swahili\\|Swazi\\|Swedish\\|Syriac\ \\|Tabassaran\\|TAchelhit\\|Tagalog\\|Tahitian\\|Taimyr Pidgin Russian\\|Tajik\ -\\|Tamasheq\\|Tamazight\\|Tamil\\|Tatar\\|Tausug\\|TaNmno\\|Telugu\\|Tetum\ +\\|Tamasheq\\|Tamazight\\|Tamil\\|Tatar\\|Tausug\\|Tano\\|Telugu\\|Tetum\ \\|Thai\\|Tibetan\\|Tigrinya\\|Tiwi\\|Tocharian \\(A\\|B\\)\\|Tok Pisin\ \\|Tokelauan\\|Tongan\\|Torres Strait Creole\\|Translingual\\|Tsakhur\ -\\|Tshiluba\\|Tswana\\|Tuamotuan\\|Tumbuka\\|Tupi\\|TupinambNa\\|Turkish\ +\\|Tshiluba\\|Tswana\\|Tuamotuan\\|Tumbuka\\|Tupi\\|Tupinamb\\|Turkish\ \\|Turkmen\\|Tuvaluan\\|Tuvan\\|Twi\\|Tz'utujil\ \\|Ugaritic\\|Ukrainian\\|Umbundu\\|Unami\\|Unserdeutsch\\|Urdu\\|Uyghur\ \\|Uzbek\ -\\|Vandalic\\|Venda\\|Veps\\|Vietnamese\\|VolapN|k\\|Votic\\|VNuro\ +\\|Vandalic\\|Venda\\|Veps\\|Vietnamese\\|Volapk\\|Votic\\|Vro\ \\|Wageman\\|Walloon\\|Wampanoag\\|Wangaaybuwan-Ngiyambaa\\|Warlpiri\\|Welsh\ \\|Wembawemba\\|Western Apache\\|West Frisian\\|Wik-Mungkan\\|Wiradhuri\ \\|Woi\\|Woiwurrung\\|Wolof\\|Worimi\ -\\|XavNante\\|Xhosa\\|!XNsNu\ +\\|Xavnte\\|Xhosa\\|!X\ \\|Yapese\\|Yiddish\\|Yidiny\\|Yindjibarndi\\|Yoruba\\|Yucatec\\|Yup'ik\ \\|\\(Yatzachi \\|Zoogocho \\|Isthmus \\)Zapotec\\|Zenga\\|Zhuang\ \\|Zulgo-Gemzek\\|Zulu\\|Zuni\\)\ \\(\\)?\

    " - "en.wiktionary $B$K$*$$$F8@8l$rI=$9%X%C%@$N@55,I=8=(B") + "en.wiktionary において言語を表すヘッダの正規表現") (defconst skkannot-en-wiktionary-part-of-speech-regexp "\ \ @@ -3039,103 +3039,103 @@ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") \\|\\(Han \\|Hiragana \\|Katakana \\)character\\|Phrase\\|Letter\\)\ \\(\\)?\ " - "en.wiktionary $B$K$*$$$FIJ;l$rI=$9%X%C%@$N@55,I=8=(B") + "en.wiktionary において品詞を表すヘッダの正規表現") (defconst skkannot-ja-wiktionary-lang-regexp "\

    .*\ \\(\\)?\ -\\(.+$B8l(B\\|$B%$%s%?!<%j%s%0%"(B\\|$B%(%9%Z%i%s%H(B\\|$B%5%s%9%/%j%C%H(B\\|$B%H%-%]%J(B\ -\\|$B%H%/!&%T%8%s(B\\|$B5-9f(B\\|$B4A;z(B\\)\ +\\(.+語\\|インターリングア\\|エスペラント\\|サンスクリット\\|トキポナ\ +\\|トク・ピジン\\|記号\\|漢字\\)\ \\(\\)?\ " - "ja.wiktionary $B$K$*$$$F8@8l$rI=$9%X%C%@$N@55,I=8=(B") + "ja.wiktionary において言語を表すヘッダの正規表現") (defconst skkannot-ja-wiktionary-part-of-speech-regexp "\ \ \\(\\)?\ \\(\ -\\(\\($B8GM-(B\\|\\($B?M>N(B\\|$B5?Ld(B\\)?$BBe(B\\)?$BL>(B\\|\\($B=u(B\\)?$BF0(B\\|$B7AMFF0(B?\\|\ -$B@\B3(B\\|$BA0CV(B\\|$BI{(B\\|$B4'(B\\|$B4X78(B\\|$B4VEj(B\\|$B=u(B\\|$B?t(B\\|$BJ,(B\\|$BN`JL(B\\|$B46F0(B\\)\ -$B;l(B.*\ -\\|$B4A;z:.$8$jI=5-(B\\|$B0U5A(B\\|$BN@\<-(B\\|$BJ?2>L>(B\\|$BJR2>L>(B\\|$B0U5A(B\\|$B4A;z(B\\|$BOB8l$N4A;zI=5-(B\\)\ +\\(\\(固有\\|\\(人称\\|疑問\\)?代\\)?名\\|\\(助\\)?動\\|形容動?\\|\ +接続\\|前置\\|副\\|冠\\|関係\\|間投\\|助\\|数\\|分\\|類別\\|感動\\)\ +詞.*\ +\\|漢字混じり表記\\|意義\\|借用語\\|略語\\|コピュラ\\|接頭辞\\|接尾辞\ +\\|人称接辞\\|平仮名\\|片仮名\\|意義\\|漢字\\|和語の漢字表記\\)\ \\(\\)?\ " - "ja.wiktionary $B$K$*$$$FIJ;l$rI=$9%X%C%@$N@55,I=8=(B") + "ja.wiktionary において品詞を表すヘッダの正規表現") (skk-deflocalvar skk-annotation-mode nil - "Non-nil $B$G$"$l$P!"(Bannotation $B%b!<%I$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、annotation モードであることを示す。") ;;; skk-auto.el related. (defcustom skk-auto-okuri-process nil - "*Non-nil $B$G$"$l$P!"Aw$j2>L>ItJ,$r<+F0G'<1$7$FJQ49$r9T$&!#(B -$BNc$($P!"(B + "*Non-nil であれば、送り仮名部分を自動認識して変換を行う。 +例えば、 - \"Uresii (\"UreSii\" $B$G$O$J$/(B) -> $B4r$7$$(B\" + \"Uresii (\"UreSii\" ではなく) -> 嬉しい\" -$B$N$h$&$KJQ49$5$l$k!#C"$7!"(B`skk-jisyo' ($B8D?M<-=q(B) $B$,!"(B +のように変換される。但し、`skk-jisyo' (個人辞書) が、 - \"$B$&$l(Bs /$B4r(B/[$B$7(B/$B4r(B/]/\" + \"うれs /嬉/[し/嬉/]/\" -$B$N$h$&$J7A<0$K$J$C$F$$$k$3$H$,I,MW$G$"$k(B (SKK-JISYO.[SML] $B$O$3$N7A<0$KBP1~$7(B -$B$F$$$J$$$N$G!"(B`skk-jisyo' $B$K$3$N%(%s%H%j$,$J$1$l$P$J$i$J$$(B)$B!#(B +のような形式になっていることが必要である (SKK-JISYO.[SML] はこの形式に対応し +ていないので、`skk-jisyo' にこのエントリがなければならない)。 -$B$3$N%*%W%7%g%sMxMQ;~$O!"(B`skk-process-okuri-early' $B$NCM$O(B nil $B$G$J$1$l$P(B -$B$J$i$J$$!#(B" +このオプション利用時は、`skk-process-okuri-early' の値は nil でなければ +ならない。" :type 'boolean :group 'skk-okurigana :group 'skk-auto) (defcustom skk-okuri-search-function 'skk-okuri-search-subr-original - "*`skk-okuri-search' $B$G;HMQ$9$k4X?t!#(B" + "*`skk-okuri-search' で使用する関数。" :type 'function :group 'skk-auto) (defcustom skk-auto-load-hook nil - "*skk-auto.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" + "*skk-auto.el をロードした後にコールされるフック。" :type 'hook :group 'skk-auto) ;; skk-cdb.el related. (defcustom skk-cdb-large-jisyo nil - "*$B8D?M<-=q$N8!:w$N8e$K8!:w$9$k(B CDB $B7A<0<-=q%U%!%$%kL>!#(B -Non-nil $B$G$"$l$P!";XDj$5$l$?(B CDB $B7A<0<-=q$r(B Emacs $B$+$iD>@\MxMQ$7!"(B -$B9bB.$J8!:w$r9T$&!#(B" - :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" + "*個人辞書の検索の後に検索する CDB 形式辞書ファイル名。 +Non-nil であれば、指定された CDB 形式辞書を Emacs から直接利用し、 +高速な検索を行う。" + :type `(radio (file :tag "辞書ファイル名" ,(or (locate-file "skk/SKK-JISYO.L.cdb" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK-JISYO.L.cdb" (list data-directory)) "")) - (const :tag "$B;XDj$7$J$$(B" nil)) + (const :tag "指定しない" nil)) :group 'skk-cdb :group 'skk-dictionary) (defcustom skk-cdb-coding-system 'euc-jp - "*$B8D?M<-=q$N8!:w$N8e$K8!:w$9$k(B CDB $B7A<0<-=q$N%3!<%G%#%s%0!&%7%9%F%`!#(B" + "*個人辞書の検索の後に検索する CDB 形式辞書のコーディング・システム。" :type 'coding-system :group 'skk-cdb :group 'skk-dictionary) ;;; skk-comp.el related. (defcustom skk-try-completion-char ?\011 ; TAB - "*$B8+=P$78l$NJd40F0:n$r9T$&%-!<%-%c%i%/%?!#(B" + "*見出し語の補完動作を行うキーキャラクタ。" :type 'character :group 'skk-comp) (defcustom skk-next-completion-char ?. - "*$B8+=P$78l$NJd40F0:n$G!"@\MxMQ$7! (cond ((not (skk-find-window-system)) [backtab]) ((memq system-type '(darwin windows-nt)) [S-tab]) (t [S-iso-lefttab])) ;X Window System - "*Shift + TAB $B$KAjEv$9$k%-!<(B (key event)$B!#(B -`skk-previous-completion-use-backtab' $B$,M-8z$J:]$KMQ$$$i$l$k!#(B" + "*Shift + TAB に相当するキー (key event)。 +`skk-previous-completion-use-backtab' が有効な際に用いられる。" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-comp) (defcustom skk-start-henkan-with-completion-char ?\240 ; M-SPC - "*$B8+=P$78l$rJd40$7$J$,$i"'%b!<%I$KF~$k%-!<%-%c%i%/%?!#(B" + "*見出し語を補完しながら▼モードに入るキーキャラクタ。" :type 'character :group 'skk-comp) (defcustom skk-comp-load-hook nil - "*skk-comp.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" + "*skk-comp.el をロードした後にコールされるフック。" :type 'hook :group 'skk-comp) (defcustom skk-kakutei-history-limit 100 - "$BJQ?t(B `skk-kakutei-history' $B$NCM(B ($BO"A[%j%9%H(B) $B$ND9$5$N>e8B!#(B" + "変数 `skk-kakutei-history' の値 (連想リスト) の長さの上限。" :type 'integer :group 'skk-comp) (defcustom skk-comp-circulate nil - "*$B8+=P$78l$rJd40$9$k:]$N!"8uJd$NI=<(=g$r@)8f$9$k!#(Bnon-nil $B$G$"$l$P!"(B -$B:G8e$N8+=P$78l$,I=<($5$l$?>uBV$G99$KJd40$r9T$&$HF~NOJ8;zNs$KLa$k!#(B -nil $B$G$"$l$P!":G8e$N8+=P$78l$,I=<($5$l$?>uBV$GDd;_$9$k!#(B" + "*見出し語を補完する際の、候補の表示順を制御する。non-nil であれば、 +最後の見出し語が表示された状態で更に補完を行うと入力文字列に戻る。 +nil であれば、最後の見出し語が表示された状態で停止する。" :type 'boolean :group 'skk-comp) (defcustom skk-comp-use-prefix nil - "*$B8+=P$78l$rJd40$9$k:]$K%W%l%U%#%C%/%9(B(`skk-prefix')$B$b;H$&$+!#(B -$BNc$($P!"(B\"$B"&$"(Bk\" $B$H$"$k>uBV$GJd40$r$7$?;~$K!"(Bnon-nil $B$G$"$l$P(B -\"$B$"$5(B\" $B$OBP>]$H$J$i$:!"(B\"$B$"$+(B\", \"$B$"$-(B\" $B$J$I$K9J$i$l$k!#(B -$B$7$+$7l9g$K$OM=$aI,MW$J$b$N$@$1@_Dj$7$F$*$/$3$H!#(B" + "*プレフィックスを利用した補完時に使う、プレフィックスと正規表現の連想リスト。 +この変数は `skk-rule-tree' を利用して自動で要素が追加されるが、 +それが期待するものでない場合には予め必要なものだけ設定しておくこと。" :type '(repeat (cons string regexp)) :group 'skk-comp) (defcustom skk-comp-kana-list-filter-function (lambda (kana-list prefix) - ;; "t" $B0J30$G(B "$B$C(B" $B$rJd40$7$J$$(B + ;; "t" 以外で "っ" を補完しない (unless (string= prefix "t") - (setq kana-list (delete "$B$C(B" kana-list))) - ;; "m" $B$G(B "$B$s(B" $B$rJd40$7$J$$(B + (setq kana-list (delete "っ" kana-list))) + ;; "m" で "ん" を補完しない (when (string= prefix "m") - (setq kana-list (delete "$B$s(B" kana-list))) - ;; "w" $B$G(B "$B$&(B" $B$rJd40$7$J$$(B + (setq kana-list (delete "ん" kana-list))) + ;; "w" で "う" を補完しない (when (string= prefix "w") - (setq kana-list (delete "$B$&(B" kana-list))) - ;; "x" $B$G(B "$B$+(B", "$B$1(B" $B$rJd40$7$J$$(B - ;; in skk-rom-kana-base-rule-list, "xka"$B"*(B"$B$+(B", "xke"$B"*(B"$B$1(B" + (setq kana-list (delete "う" kana-list))) + ;; "x" で "か", "け" を補完しない + ;; in skk-rom-kana-base-rule-list, "xka"→"か", "xke"→"け" (when (string= prefix "x") - (setq kana-list (delete "$B$+(B" kana-list)) - (setq kana-list (delete "$B$1(B" kana-list))) - ;; $B$$$A$*$&%+%J%b!<%I$r9M$($F(B + (setq kana-list (delete "か" kana-list)) + (setq kana-list (delete "け" kana-list))) + ;; いちおうカナモードを考えて (when (string= prefix "v") - (add-to-list 'kana-list "$B%t(B")) - ;; $BJ?2>L>!&JR2>L>$N$_(B ($B5-9fN`$OITMW(B) + (add-to-list 'kana-list "ヴ")) + ;; 平仮名・片仮名のみ (記号類は不要) (save-match-data (delq nil (mapcar (lambda (kana) (when (string-match "\\(\\cH\\|\\cK\\)" kana) kana)) kana-list)))) - "*`skk-comp-prefix-regexp-alist' $B$K<+F0$GMWAG$rDI2C$9$k:]$KMxMQ$5$l$k4X?t!#(B -`skk-rule-tree' $B$+$i%W%l%U%#%C%/%9$KBP1~$9$k(B \"$B$+$J(B\" $B$r=8$a$?8e!"(B -$B$3$N4X?t$K$h$C$FD4@0$r9T$&!#(B" - :type '(radio (function :tag "$B4X?t(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "*`skk-comp-prefix-regexp-alist' に自動で要素を追加する際に利用される関数。 +`skk-rule-tree' からプレフィックスに対応する \"かな\" を集めた後、 +この関数によって調整を行う。" + :type '(radio (function :tag "関数") + (const :tag "指定しない" nil)) :group 'skk-comp) (defcustom skk-completion-prog-list '((skk-comp-by-history) (skk-comp-from-jisyo skk-jisyo) (skk-look-completion)) - "*$BJd404X?t!"Jd40BP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-comp-first' $B$,(B t $B$G$"$k;~$K(B -$B?75,Jd408uJd72$N@8@.$r3+;O$7!"#12s$NI>2A$K$D$-#1$D$N8uJd$rJV$9(B S $B<0!#(B" + "*補完関数、補完対象の辞書を決定するためのリスト。 +リストの要素は、`skk-comp-first' が t である時に +新規補完候補群の生成を開始し、1回の評価につき1つの候補を返す S 式。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-1 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-1 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-1 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-2 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-2 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-2 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-3 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-3 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-3 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-4 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-4 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-4 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-5 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-5 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-5 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-6 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-6 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-6 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-7 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-7 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-7 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-8 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-8 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-8 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-9 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-9 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-9 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-0 nil - "*$BJd40%W%m%0%i%`$N%j%9%H!#(B -$B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B -C-0 TAB $B$G;H$o$l$k!#(B" + "*補完プログラムのリスト。 +リストの要素は、`skk-completion-prog-list' と全く同様。 +C-0 TAB で使われる。" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-search-char ?~ - "*`skk-completion-search' $B$rMxMQ$9$kJQ49$r;XDj$9$k%-!<%-%c%i%/%?!#(B" + "*`skk-completion-search' を利用する変換を指定するキーキャラクタ。" :type 'character :group 'skk-comp) (defcustom skk-smart-find-file-path load-path - "*`smart-find' $B$K%U%!%$%kL>$rC5:w$5$;$k%Q%9!#(B -$B$3$NCM$,;XDj$5$l$J$1$l$P!"(B`smart-find-file-path' $B$NCM$,Be$o$j$K;HMQ$5$l$k!#(B" + "*`smart-find' にファイル名を探索させるパス。 +この値が指定されなければ、`smart-find-file-path' の値が代わりに使用される。" :type '(repeat (directory)) :group 'skk-comp) (defcustom skk-smart-find-ignored-file-regexp "\ \\(\\.\\(elc\\|o\\(rig\\|ld\\)?\\|diff\\)\\|,v\\|~\\|/\\)$" - "*`smart-find' $B$KL5;k$5$l$k%U%!%$%kL>$r;XDj$9$k@55,I=8=!#(B" + "*`smart-find' に無視されるファイル名を指定する正規表現。" :type 'regexp :group 'skk-comp) ;; ---- buffer local variables -;; $B6uJ8;zNs$KBP$7$F(B skk-comp-do $B$r8F$V$3$H$b$"$j$&$k$N$G!"(B"" $B$r(B nil $B$G$OBe(B -;; $BMQ$G$-$J$$!#(B +;; 空文字列に対して skk-comp-do を呼ぶこともありうるので、"" を nil では代 +;; 用できない。 (skk-deflocalvar skk-comp-key "" - "$BJd40$9$Y$-8+=P$78l!#(B") -;; $B<-=qEPO?;~%_%K%P%C%U%!$GJd40$7$?>l9g!"85$N%P%C%U%!$KLa$C$?$H$-$K(B -;; skk-comp-key $B$NCM$,GK2u$5$l$F$$$J$$J}$,%Y%?!%j%9%H$r3JG<$9$k!#(B") + "`smart-find' が返したファイル名リストを格納する。") (defvar skk-comp-lisp-symbols nil - "$BJd40$5$l$?(B lisp symbol $B$N%j%9%H$r3JG<$9$k!#(B") + "補完された lisp symbol のリストを格納する。") ;;; skk-server-completion.el related. (defcustom skk-server-completion-search-char ?~ - "*server completion $B$rMxMQ$7$?JQ49$r9T$&%-!<%-%c%i%/%?!#(B" + "*server completion を利用した変換を行うキーキャラクタ。" :type 'character :group 'skk-server-completion) (defvar skk-server-completion-words nil - "server completion $B$K$h$jF@$i$l$?8+=P$78l$N%j%9%H!#(B") + "server completion により得られた見出し語のリスト。") (defvar skk-server-disable-completion nil - "Non-nil $B$J$i(B server completion $B$N5!G=$rL58z$K$9$k!#(B -server completion $B$,]$N%U%'%$%9!#(B" + "*動的補完の複数表示群の選択対象のフェイス。" :group 'skk-dcomp) (defcustom skk-dcomp-activate nil - "*Non-nil $B$G$"$l$P8+=P$78l$NF0E*Jd40$N5!G=$rM-8z$K$9$k!#(B -$B$3$NJQ?t$NCM$,(B `eolp' $B$@$C$?>l9g!"%]%$%s%H$,9TKv$K$"$k;~$@$1Jd40$9$k!#(B" + "*Non-nil であれば見出し語の動的補完の機能を有効にする。 +この変数の値が `eolp' だった場合、ポイントが行末にある時だけ補完する。" :type '(radio (const :tag "always on" t) (const :tag "only at the end of a line" eolp) (const :tag "off" nil) - (sexp :tag "$BG$0U$N%k!<%k(B")) + (sexp :tag "任意のルール")) :group 'skk-dcomp) (defcustom skk-dcomp-face-priority 700 @@ -3509,39 +3509,39 @@ server completion $B$,C$5$J$$%-!<$N%j%9%H!#(B -$BDL>o$O8+=P$78l$NJd408e!"C$($F$7$^$&$,!"$3$N%j%9%H$K;XDj$5$l$?%-!<(B -$BF~NO$,$"$C$?$H$-$OF0E*Jd40$5$l$?8+=P$78l$r>C$5$J$$!#(B" - :type '(radio (repeat :tag "$B%j%9%H(B" - (string :tag "$B%-!<(B($BJ8;z(B)")) - (const :tag "$B;XDj$7$J$$(B" nil)) + "*動的補完された見出し語を消さないキーのリスト。 +通常は見出し語の補完後、次のキー入力をすると、動的 +補完されたキー入力が消えてしまうが、このリストに指定されたキー +入力があったときは動的補完された見出し語を消さない。" + :type '(radio (repeat :tag "リスト" + (string :tag "キー(文字)")) + (const :tag "指定しない" nil)) :group 'skk-dcomp) (defcustom skk-dcomp-multiple-activate nil - "*Non-nil $B$G$"$l$P!"F0E*Jd40$N8uJd$rJ#?tI=<($9$k!#(B -$B4X?t$G$"$l$P!"$=$NI>2A7k2L$,(B non-nil $B$N;~$@$1F0E*Jd40$N8uJd$rJ#?tI=<($9$k!#(B" + "*Non-nil であれば、動的補完の候補を複数表示する。 +関数であれば、その評価結果が non-nil の時だけ動的補完の候補を複数表示する。" :type '(radio (const :tag "always on" t) (const :tag "off" nil) - (sexp :tag "$BG$0U$N%k!<%k(B")) + (sexp :tag "任意のルール")) :group 'skk-dcomp) (defcustom skk-dcomp-multiple-rows 7 - "*$BF0E*Jd40$N8uJd$rJ#?tI=<($9$k>l9g$NI=<(?t!#(B" + "*動的補完の候補を複数表示する場合の表示数。" :type 'integer :group 'skk-dcomp) (defcustom skk-dcomp-multiple-keep-point-buffer-list (list (concat " *" (file-name-nondirectory (skk-jisyo)) "*")) - "*$BJ#?tI=<($N0Y$KJd408uJd$r8!:w$9$k:]$K(B `point' $B$rJ];}$9$k%P%C%U%!$N%j%9%H!#(B + "*複数表示の為に補完候補を検索する際に `point' を保持するバッファのリスト。 -$BF0E*Jd40$G8uJd$rJ#?tI=<($9$k:]$K8!:wBP>]%P%C%U%!(B -$BFb$N(B `point' $B$rF0$+$7$F$7$^$&$HDL>o$NJd40$,@5>o$K5!G=$7$J$/$J$k!#(B -$B$=$N$?$a!"J#?tI=<(MQ$N8!:w$,=*$o$C$?8e$G(B `point' $B$rLa$9$Y$-%P%C%U%!(B -$B$r$3$N%j%9%H$K@_Dj$9$k!#(B +動的補完で候補を複数表示する際に検索対象バッファ +内の `point' を動かしてしまうと通常の補完が正常に機能しなくなる。 +そのため、複数表示用の検索が終わった後で `point' を戻すべきバッファ +をこのリストに設定する。 -$B6qBNE*$K$O(B `skk-comp-from-jisyo' $B$r;HMQ$7$F8uJd$r8!:w$9$k>l9g!"$=(B -$B$NBP>]%P%C%U%!$O$3$N%j%9%H$K@_Dj$9$kI,MW$,$"$k!#(B" +具体的には `skk-comp-from-jisyo' を使用して候補を検索する場合、そ +の対象バッファはこのリストに設定する必要がある。" :type '(repeat string) :group 'skk-dcomp) @@ -3558,38 +3558,38 @@ server completion $B$,$N1Q8lI=5-$H$=$NB>$NI=5-K!$NO"A[%j%9%H!#(B -$B3F(B cons cell $B$N(B car $B$O(B Emacs $BI8=`4X?t(B `current-time-string' $B$,JV$97A<0!#(B -cdr $B$OBP1~$9$kG$0U$N7A<0!#(B" + "*月名の英語表記とその他の表記法の連想リスト。 +各 cons cell の car は Emacs 標準関数 `current-time-string' が返す形式。 +cdr は対応する任意の形式。" :type '(repeat (list (string :tag "English") - (string :tag "$BF|K\<0(B") + (string :tag "日本式") (string :tag "Deutsch"))) :group 'skk-gadget) (defcustom skk-day-of-week-alist - '(("Sun" "$BF|(B" "So") ("Mon" "$B7n(B" "Mo") ("Tue" "$B2P(B" "Di") ("Wed" "$B?e(B" "Mi") - ("Thu" "$BLZ(B" "Do") ("Fri" "$B6b(B" "Fr") ("Sat" "$BEZ(B" "Sa")) - "*$BMKF|$N1Q8lI=5-$H$=$NB>$NI=5-K!$NO"A[%j%9%H!#(B -$B3F(B cons cell $B$N(B car $B$O(B Emacs $BI8=`4X?t(B `current-time-string' $B$,JV$97A<0!#(B -cdr $B$OBP1~$9$kG$0U$N7A<0!#(B" + '(("Sun" "日" "So") ("Mon" "月" "Mo") ("Tue" "火" "Di") ("Wed" "水" "Mi") + ("Thu" "木" "Do") ("Fri" "金" "Fr") ("Sat" "土" "Sa")) + "*曜日の英語表記とその他の表記法の連想リスト。 +各 cons cell の car は Emacs 標準関数 `current-time-string' が返す形式。 +cdr は対応する任意の形式。" :type '(repeat (list (string :tag "English") - (string :tag "$BF|K\8l(B") + (string :tag "日本語") (string :tag "Deutsch"))) :group 'skk-gadget) @@ -3597,38 +3597,38 @@ cdr $B$OBP1~$9$kG$0U$N7A<0!#(B" (lambda (date-information format gengo and-time) (skk-default-current-date date-information nil skk-number-style gengo 0 0 0 and-time)) - "*`skk-current-date' $B$G%3!<%k$5$l$k%G%U%)%k%H$N4X?t!#(B -$B;~4V>pJs$r0z?t$KNqI=<($9$k!#(B -nil $B$G$"$l$P!"859fI=<($9$k!#(B" + "*Non-nil であれば、`skk-today', `skk-clock' で西暦表示する。 +nil であれば、元号表示する。" :type 'boolean :group 'skk-gadget) (defcustom skk-number-style 1 - "*`skk-today', `skk-clock' $B$GI=<($9$k?t;z$N7A<0$rJQ2=$5$;$k!#(B - 0 , nil : ASCII $B?t;z(B - 1 , t : $BA43Q?t;z(B - 2 : $B4A?t;z(B($B0LpJs$NO"A[%j%9%H!#(B -$B3FMWAG$O(B ($B4p=`$H$J$kC10L(B ($BJQ49$9$kC10L(B . $BJQ49;~$NG\N((B)) $B$N7A<0$K$h$k!#(B -`skk-gadget-units-conversion' $B$G;2>H$9$k!#(B" + "*単位換算情報の連想リスト。 +各要素は (基準となる単位 (変換する単位 . 変換時の倍率)) の形式による。 +`skk-gadget-units-conversion' で参照する。" :type 'sexp :group 'skk-gadget) (defcustom skk-gadget-load-hook nil - "*skk-gadget.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" + "*skk-gadget.el をロードした後にコールされるフック。" :type 'hook :group 'skk-gadget) ;;; skk-isearch.el related. (defcustom skk-isearch-mode-enable t - "*Non-nil $B$G$"$l$P!"%$%s%/%j%a%s%?%k!&%5!<%A$G(B skk-isearch $B$rMxMQ$9$k!#(B + "*Non-nil であれば、インクリメンタル・サーチで skk-isearch を利用する。 -$BDL>o$O(B SKK $B%b!<%I$,(B ON $B$N%P%C%U%!$G$N$_(B skk-isearch $B$,M-8z$K$J$k$,!"$3(B -$B$NCM$,(B `always' $B$G$"$l$P(B SKK $B%b!<%I$,(B OFF $B$N%P%C%U%!$G$bM-8z$K$J$k!#(B +通常は SKK モードが ON のバッファでのみ skk-isearch が有効になるが、こ +の値が `always' であれば SKK モードが OFF のバッファでも有効になる。 -$B$3$NCM$,(B nil $B$J$i$P(B skk-isearch $B$OL58z$K$J$k!#(Bmigemo $B$rMxMQ$7$?$$>l9g(B -$B$J$I$K$O(B nil $B$K@_Dj$9$k$+!"$b$7$/$OJ;MQ$9$k$N$G$"$l$P(B -`skk-isearch-start-mode' $B$r(B `latin' $B$K$9$k$N$,NI$$!#(B" - :type '(radio (const :tag "SKK $B%b!<%I$,(B ON $B$N;~$@$1MxMQ$9$k(B" t) - (const :tag "$B>o$KMxMQ$9$k(B" always) - (const :tag "$BMxMQ$7$J$$(B" nil)) +この値が nil ならば skk-isearch は無効になる。migemo を利用したい場合 +などには nil に設定するか、もしくは併用するのであれば +`skk-isearch-start-mode' を `latin' にするのが良い。" + :type '(radio (const :tag "SKK モードが ON の時だけ利用する" t) + (const :tag "常に利用する" always) + (const :tag "利用しない" nil)) :group 'skk-isearch) (defcustom skk-isearch-mode-string-alist - '((hiragana . "[$B$+(B] ") (katakana . "[$B%+(B] ") (jisx0208-latin . "[$B1Q(B] ") - (latin . "[aa] ") (abbrev . "[a$B$"(B] ") (nil . "[--] ")) + '((hiragana . "[か] ") (katakana . "[カ] ") (jisx0208-latin . "[英] ") + (latin . "[aa] ") (abbrev . "[aあ] ") (nil . "[--] ")) ;; "*Alist of (MODE-SYMBOL . PROMPT-STRING). ;;MODE-SYMBOL is a symbol indicates canonical mode of skk for skk-isearch. ;;Valid MODE-SYMBOL is one of `hiragana', `katakana', `jisx0208-latin', ;;`latin' or nil. ;;PROMPT-STRING is a string used in prompt to indicates current mode of ;;skk for skk-isearch. " - "*$B%$%s%/%j%a%s%?%k!&%5!<%A;~$N%W%m%s%W%HI=<($N$?$a$NO"A[%j%9%H!#(B -$B3FMWAG$O!"(B + "*インクリメンタル・サーチ時のプロンプト表示のための連想リスト。 +各要素は、 (MODE-SYMBOL . PROMPT-STRING) -$B$H$$$&(B cons cell$B!#(B +という cons cell。 -MODE-SYMBOL $B$OF~NO%b!<%I$rI=$o$9%7%s%\%k$G!"2<5-$N$$$:$l$+$r;XDj$9$k!#(B - $B$+$J%b!<%I!'(B `hiragana' - $B%+%J%b!<%I!'(B `katakana' - $BA41Q%b!<%I!'(B `jisx0208-latin' - $B%"%9%-!<%b!<%I!'(B `latin' - Abbrev $B%b!<%I!'(B `abbrev' - nil : SKK $B%b!<%I%*%U(B +MODE-SYMBOL は入力モードを表わすシンボルで、下記のいずれかを指定する。 + かなモード: `hiragana' + カナモード: `katakana' + 全英モード: `jisx0208-latin' + アスキーモード: `latin' + Abbrev モード: `abbrev' + nil : SKK モードオフ -PROMPT-STRING $B$O!"F~NO%b!<%I$K1~$8$F%W%m%s%W%HI=<($9$kJ8;zNs!#(B" +PROMPT-STRING は、入力モードに応じてプロンプト表示する文字列。" :type '(list - (cons (const :tag "$B$+$J%b!<%I(B" hiragana) - (string :tag "$B%W%m%s%W%H(B")) - (cons (const :tag "$B%+%J%b!<%I(B" katakana) - (string :tag "$B%W%m%s%W%H(B")) - (cons (const :tag "$BA41Q%b!<%I(B" jisx0208-latin) - (string :tag "$B%W%m%s%W%H(B")) - (cons (const :tag "$B%"%9%-!<%b!<%I(B" latin) - (string :tag "$B%W%m%s%W%H(B")) - (cons (const :tag "Abbrev $B%b!<%I(B" abbrev) - (string :tag "$B%W%m%s%W%H(B")) - (cons (const :tag "SKK$B%b!<%I%*%U(B" nil) - (string :tag "$B%W%m%s%W%H(B"))) + (cons (const :tag "かなモード" hiragana) + (string :tag "プロンプト")) + (cons (const :tag "カナモード" katakana) + (string :tag "プロンプト")) + (cons (const :tag "全英モード" jisx0208-latin) + (string :tag "プロンプト")) + (cons (const :tag "アスキーモード" latin) + (string :tag "プロンプト")) + (cons (const :tag "Abbrev モード" abbrev) + (string :tag "プロンプト")) + (cons (const :tag "SKKモードオフ" nil) + (string :tag "プロンプト"))) :group 'skk-isearch) (defcustom skk-isearch-start-mode nil @@ -3709,44 +3709,44 @@ PROMPT-STRING $B$O!"F~NO%b!<%I$K1~$8$F%W%m%s%W%HI=<($9$kJ8;zNs!#(B" ;;If `hiragana', `hirakana' or `kana' -> hira kana search. ;;If `jisx0208-latin' or `eiji', perform zenkaku eiji (i.e. JIS X0208 ;;alphabet) search." - "*$B%+%l%s%H%P%C%U%!$G%$%s%/%j%a%s%?%k!&%5!<%A$r9T$&:]$NF~NO%b!<%I!#(B -`skk-isearch-use-previous-mode' $B$,(B nil $B$N>l9g$N$_M-8z!#(B -$B%$%s%/%j%a%s%?%k!&%5!<%A$r9T$&>l9g!">o$K$3$NJQ?t$G;XDj$7$?F~NO%b!<%I$,;HMQ$5$l$k(B - ($B%f!<%6!<$,L@<(E*$KJQ99$9$k$3$H$O2D(B)$B!#(B -$B2<5-$N$$$:$l$+$N%7%s%\%k$G;XDj$9$k!#(B - - nil: $B%+%l%s%H%P%C%U%!$G(B SKK $B%b!<%I$,5/F0$5$l$F$$$l$P$=$N%b!<%I!"(B - $B5/F0$5$l$F$$$J$1$l$P(B $B%"%9%-!<%b!<%I!#(B - `hiragana' (`hiragana' or `kana'): $B$+$J%b!<%I(B - `jisx0208-latin' (`eiji') : $BA41Q%b!<%I(B - `latin' (`ascii'): $B%"%9%-!<%b!<%I(B" - :type '(radio (const :tag "$B8!:wCf%P%C%U%!$N%b!<%I$r7Q>5(B" nil) - (const :tag "$B%"%9%-!<%b!<%I(B" latin) - (const :tag "$B$+$J%b!<%I(B" hiragana) - (const :tag "$BA41Q%b!<%I(B" jisx0208-latin)) + "*カレントバッファでインクリメンタル・サーチを行う際の入力モード。 +`skk-isearch-use-previous-mode' が nil の場合のみ有効。 +インクリメンタル・サーチを行う場合、常にこの変数で指定した入力モードが使用される + (ユーザーが明示的に変更することは可)。 +下記のいずれかのシンボルで指定する。 + + nil: カレントバッファで SKK モードが起動されていればそのモード、 + 起動されていなければ アスキーモード。 + `hiragana' (`hiragana' or `kana'): かなモード + `jisx0208-latin' (`eiji') : 全英モード + `latin' (`ascii'): アスキーモード" + :type '(radio (const :tag "検索中バッファのモードを継承" nil) + (const :tag "アスキーモード" latin) + (const :tag "かなモード" hiragana) + (const :tag "全英モード" jisx0208-latin)) :group 'skk-isearch) (defcustom skk-isearch-use-previous-mode nil ;; "*Non-nil means use the same search mode as that of the last search." - "*Non-nil $B$G$"$l$P!"F1$8%P%C%U%!$G$N:G8e$N8!:w;~$N%b!<%I$r;HMQ$9$k!#(B" + "*Non-nil であれば、同じバッファでの最後の検索時のモードを使用する。" :type 'boolean :group 'skk-isearch) (defcustom skk-isearch-initial-mode-when-skk-mode-disabled 'latin ;; "*Symbol indicates the mode to use as initial mode for skk-isearch when ;;skk is turned off in the current buffer." - "*SKK $B%b!<%I$,%*%U$N%P%C%U%!$G!":G=i$K%$%s%/%j%a%s%?%k!&%5!<%A$r9T$&:]$NF~NO%b!<%I!#(B" - :type '(radio (const :tag "$B%"%9%-!<%b!<%I(B" latin) - (const :tag "$B$+$J%b!<%I(B" hiragana) - (const :tag "$BA41Q%b!<%I(B" jisx0208-latin)) + "*SKK モードがオフのバッファで、最初にインクリメンタル・サーチを行う際の入力モード。" + :type '(radio (const :tag "アスキーモード" latin) + (const :tag "かなモード" hiragana) + (const :tag "全英モード" jisx0208-latin)) :group 'skk-isearch) (defcustom skk-isearch-whitespace-regexp "\\(\\s \\|[ \t\n\r\f]\\)*" ;; "*Regular expression to match a sequence of whitespace chars. ;;This applies to regular expression incremental search." - "$B6uGrJ8;z$NO"B3$H$7$F%^%C%A$5$;$k$Y$-@55,I=8=!#(B -regexp isearch $B$N:]!"$3$N@55,I=8=$K%^%C%A$9$kJ8;z$,8!:wJ8;zNs$N4V$K4^$^$l$F$$$F(B -$B$b%^%C%A$9$k!#(B" + "空白文字の連続としてマッチさせるべき正規表現。 +regexp isearch の際、この正規表現にマッチする文字が検索文字列の間に含まれていて +もマッチする。" :type 'regexp :group 'skk-isearch) @@ -3774,8 +3774,8 @@ CANONICAL should be found in `skk-isearch-mode-canonical-alist'. ") "Work buffer for skk isearch.") (defvar skk-isearch-message nil - "skk-isearch $B4X?t$r%3!<%k$9$k$?$a$N%U%i%0!#(B -Non-nil $B$G$"$l$P!"(B`skk-isearch-message' $B4X?t$r%3!<%k$9$k!#(B") + "skk-isearch 関数をコールするためのフラグ。 +Non-nil であれば、`skk-isearch-message' 関数をコールする。") (defvar skk-isearch-mode nil "Current search mode. @@ -3806,13 +3806,13 @@ This map should be derived from `isearch-mode-map'.") ;;; skk-hint.el related. (defcustom skk-hint-start-char ?\73 ; ; - "*$B%R%s%HJQ49$r3+;O$9$k%-!<%-%c%i%/%?(B" + "*ヒント変換を開始するキーキャラクタ" :type 'character :group 'skk-hint) (skk-deflocalvar skk-hint-henkan-hint nil - "$B%R%s%HIU$-JQ49;~$N%R%s%HItJ,!#(B -`skk-henkan-key', `skk-henkan-okurigana', `skk-okuri-char' $B$N%j%9%H!#(B") + "ヒント付き変換時のヒント部分。 +`skk-henkan-key', `skk-henkan-okurigana', `skk-okuri-char' のリスト。") (skk-deflocalvar skk-hint-start-point nil) (skk-deflocalvar skk-hint-end-point nil) @@ -3823,12 +3823,12 @@ This map should be derived from `isearch-mode-map'.") ;;; skk-jisx0201.el related. (defcustom skk-use-jisx0201-input-method nil "\ -*Non-nil $B$J$i(B $BH>3Q%+%J$H(B Japanese Roman $B$NF~NO5!G=$,MxMQ2DG=$K$J$k!#(B" +*Non-nil なら 半角カナと Japanese Roman の入力機能が利用可能になる。" :type 'boolean :group 'skk-jisx0201) -(defcustom skk-jisx0201-mode-string "(I6@6E(B" - "*SKK $B$,(B JISX0201 $B%b!<%I$G$"$k$H$-$K%b!<%I%i%$%s$KI=<($5$l$kJ8;zNs!#(B" +(defcustom skk-jisx0201-mode-string "カタカナ" + "*SKK が JISX0201 モードであるときにモードラインに表示される文字列。" :type 'string :group 'skk-jisx0201) @@ -3838,64 +3838,64 @@ This map should be derived from `isearch-mode-map'.") (skk-deflocalvar skk-jisx0201-roman nil) (skk-deflocalvar skk-jisx0201-mode nil - "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,(B JISX0201 $B%b!<%I$G$"$k$3$H$r<($9!#(B") + "Non-nil であれば、入力モードが JISX0201 モードであることを示す。") ;;; skk-jisx0213.el related. (defcustom skk-jisx0213-prohibit nil - "*Non-nil $B$G$"$l$P(B JISX0213 $B$NJ8;zNs$r4^$`8uJd$N=PNO$r$7$J$$!#(B -JISX0213 $B$r07$($J$$$H$-$O$3$NCM$OF0:n$K1F6A$7$J$$!#(B" + "*Non-nil であれば JISX0213 の文字列を含む候補の出力をしない。 +JISX0213 を扱えないときはこの値は動作に影響しない。" :type 'boolean :group 'skk-jisx0213) ;;; skk-jisyo-edit-mode.el related (defcustom skk-jisyo-edit-user-accepts-editing nil - "*Non-nil $B$G$"$l$P!"%f!<%6$,8D?M<-=q$NJT=8$r<+8J@UG$$K$F9T$&;]3NG':Q$G$"$k!#(B -nil $B$G$"$l$P!"(B`skk-edit-private-jisyo' $B$N \"shi\" + "*Non-nil であれば KAKASI を使ったローマ字への変換様式にヘボン式を用いる。 +例えば、 + \"し\" -> \"shi\" -nil $B$G$"$l$P!"71Na<0(B \"($B!VF|K\<0!W$H$b8@$&$h$&$@(B)\" $B$rMQ$$$k!#(B -$BNc$($P!"(B - \"$B$7(B\" -> \"si\" +nil であれば、訓令式 \"(「日本式」とも言うようだ)\" を用いる。 +例えば、 + \"し\" -> \"si\" -$B>H$9$k5U0z$-%f!<%6<-=q$N%j%9%H!#(B" + "KAKASI を使った変換の際に追加参照する逆引きユーザ辞書のリスト。" :type '(repeat file) :group 'skk-kakasi) ;;; skk-kanagaki.el related. (defcustom skk-use-kana-keyboard nil "\ -*Non-nil $B$J$i2>L>F~NOMQ$N@_Dj$r%m!<%I$9$k!#(B -SKK $B;HMQCf$K$3$NJQ?t$NCM$r@Z$jBX$($k$3$H$G(B $B%m!<%^;zF~NO(B $B"+"*(B $B2>L>F~NO(B $B$N(B -$B@Z$jBX$($,$G$-$k!#(B" +*Non-nil なら仮名入力用の設定をロードする。 +SKK 使用中にこの変数の値を切り替えることで ローマ字入力 ←→ 仮名入力 の +切り替えができる。" :type 'boolean :set (lambda (symbol value) (prog1 @@ -3911,36 +3911,36 @@ SKK $B;HMQCf$K$3$NJQ?t$NCM$r@Z$jBX$($k$3$H$G(B $B%m!<%^;zF~NO(B $B"+"*(B ;;; skk-kcode.el related. (defcustom skk-kcode-method 'code-or-char-list - "*`skk-input-by-code-or-menu' $B$G;H$o$l$kJ8;zA^F~$N$?$a$N%$%s%?!<%U%'!<%9!#(B -`char-list' $B$G$"$l$P!"J8;z0lMwI=(B (`skk-list-chars') $B$+$iA*Br$9$k!#(B -`code-or-char-list' $B$G$"$l$P!"$^$:(B JIS $B%3!<%I(B/$B6hE@%3!<%IF~NO%W%m%s%W%H$rI=<((B -$B$7!"M-8z$JF~NO$,F@$i$l$J$+$C$?>l9g$K(B `skk-list-chars' $B$r8F$S=P$9!#(B -`code-or-menu' $B$G$"$l$P=>Mh$N$h$&$K!"$^$:(B JIS $B%3!<%I(B/$B6hE@%3!<%IF~NO%W%m%s%W%H(B -$B$rI=<($7!"M-8z$JF~NO$,3NDj$7$J$+$C$?>l9g$K$O8uJdJ8;z0lMw$rI=<($9$k!#(B" - :type '(radio (const :tag "$B>o$KJ8;z%3!<%II=$+$iA*$V(B" char-list) - (const :tag "$B%3!<%IF~NO(B $B"*(B $BJ8;z%3!<%II=(B" code-or-char-list) - (const :tag "$B%3!<%IF~NO(B $B"*(B $BJ8;z8uJd(B ($B5lMh$N%a%K%e!<(B)" + "*`skk-input-by-code-or-menu' で使われる文字挿入のためのインターフェース。 +`char-list' であれば、文字一覧表 (`skk-list-chars') から選択する。 +`code-or-char-list' であれば、まず JIS コード/区点コード入力プロンプトを表示 +し、有効な入力が得られなかった場合に `skk-list-chars' を呼び出す。 +`code-or-menu' であれば従来のように、まず JIS コード/区点コード入力プロンプト +を表示し、有効な入力が確定しなかった場合には候補文字一覧を表示する。" + :type '(radio (const :tag "常に文字コード表から選ぶ" char-list) + (const :tag "コード入力 → 文字コード表" code-or-char-list) + (const :tag "コード入力 → 文字候補 (旧来のメニュー)" code-or-menu) - (const :tag "$BJ8;z%3!<%II=!?%3!<%IF~NO$OMxMQ$7$J$$(B" this-key)) + (const :tag "文字コード表/コード入力は利用しない" this-key)) :group 'skk-kcode) (defcustom skk-input-by-code-menu-keys1 '(?a ?s ?d ?f ?g ?h ?q ?w ?e ?r ?t ?y) - "*$B%a%K%e!<7A<0$G(B JIS $BJ8;z$rF~NO$9$k$H$-$K;HMQ$9$kA*Br%-!<$N%j%9%H!#(B -$BBh(B 1 $BCJ3,$N%a%K%e!<$G;HMQ$9$k!#(B -12 $B8D$N%-!<(B (char type) $B$r4^$`I,MW$,$"$k!#(B" + "*メニュー形式で JIS 文字を入力するときに使用する選択キーのリスト。 +第 1 段階のメニューで使用する。 +12 個のキー (char type) を含む必要がある。" :type '(repeat character) :group 'skk-kcode) (defcustom skk-input-by-code-menu-keys2 '(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?t ?y ?u) - "*$B%a%K%e!<7A<0$G(B JIS $BJ8;z$rF~NO$9$k$H$-$K;HMQ$9$kA*Br%-!<$N%j%9%H!#(B -$BBh(B 2 $BCJ3,$N%a%K%e!<$G;HMQ$9$k!#(B -16 $B8D$N%-!<(B (char type) $B$r4^$`I,MW$,$"$k!#(B" + "*メニュー形式で JIS 文字を入力するときに使用する選択キーのリスト。 +第 2 段階のメニューで使用する。 +16 個のキー (char type) を含む必要がある。" :type '(repeat character) :group 'skk-kcode) (defcustom skk-kcode-charset 'japanese-jisx0213-1 - "*`skk-input-by-code-or-menu' $B$G;H$o$l$kJ8;z%;%C%H!#(B" + "*`skk-input-by-code-or-menu' で使われる文字セット。" :type (let ((list '((const japanese-jisx0213-1) (const japanese-jisx0208))) (prompt (if (get 'charset 'widget-type) @@ -3951,7 +3951,7 @@ SKK $B;HMQCf$K$3$NJQ?t$NCM$r@Z$jBX$($k$3$H$G(B $B%m!<%^;zF~NO(B $B"+"*(B :group 'skk-kcode) (defcustom skk-kcode-load-hook nil - "*skk-kcode.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" + "*skk-kcode.el をロードした後にコールされるフック。" :type 'hook :group 'skk-kcode) @@ -3971,8 +3971,8 @@ SKK $B;HMQCf$K$3$NJQ?t$NCM$r@Z$jBX$($k$3$H$G(B $B%m!<%^;zF~NO(B $B"+"*(B charset-list)) (defvar skk-display-code-method 'code - "*Non-nil $B$G$"$l$P%]%$%s%H$K$"$kJ8;z$N%3!<%I$rI=<($9$k!#(B -nil $B$G$"$l$P(B `this-command-keys' $B$rA^F~$9$k!#(B") + "*Non-nil であればポイントにある文字のコードを表示する。 +nil であれば `this-command-keys' を挿入する。") (defvar skk-input-by-code-or-menu-jump-default skk-code-n1-min) @@ -3985,8 +3985,8 @@ nil $B$G$"$l$P(B `this-command-keys' $B$rA^F~$9$k!#(B") (:inherit default :foreground "cyan")) (((class grayscale)) (:inherit default))) - "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$N(B KUTEN:$B!"(BJIS:$B!"(BEUC:$B!"(B -SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" + "*skk-display-code `$' でエコーエリアに表示するメッセージ中の KUTEN:、JIS:、EUC:、 +SJIS: 及び UNICODE: に適用する face 属性。" :group 'skk-kcode :group 'skk-visual) @@ -3999,7 +3999,7 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" (:inherit default :foreground "black" :background "yellow")) (((class grayscale)) (:inherit default))) - "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$NEv3:J8;z$KE,MQ$9$k(B face $BB0@-!#(B" + "*skk-display-code `$' でエコーエリアに表示するメッセージ中の当該文字に適用する face 属性。" :group 'skk-kcode :group 'skk-visual) @@ -4012,7 +4012,7 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" (:inherit default)) (((class grayscale)) (:inherit default))) - "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$NAm2h?t$KE,MQ$9$k(B face $BB0@-!#(B" + "*skk-display-code `$' でエコーエリアに表示するメッセージ中の総画数に適用する face 属性。" :group 'skk-kcode :group 'skk-visual) @@ -4025,7 +4025,7 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" (:inherit default)) (((class grayscale)) (:inherit default))) - "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$NJ8;zL>$KE,MQ$9$k(B face $BB0@-!#(B" + "*skk-display-code `$' でエコーエリアに表示するメッセージ中の文字名に適用する face 属性。" :group 'skk-kcode :group 'skk-visual) @@ -4034,15 +4034,15 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" "Docstring.") (defvar skk-list-chars-original-window-configuration nil - "skk-list-chars-mode $B$KF~$kA0$N(B window configuration$B!#(B -`skk-list-chars-quit' $B$NuBV$KI|5"$9$k!#(B") + "skk-list-chars-mode に入る前の window configuration。 +`skk-list-chars-quit' の実行時、この変数を使って skk-list-chars-mode に +入る前の window 状態に復帰する。") (defvar skk-list-chars-destination-buffer nil - "skk-list-chars-insert $B$NA^F~@h%P%C%U%!(B") + "skk-list-chars-insert の挿入先バッファ") (defvar skk-list-chars-point nil - "C-x C-x (skk-list-chars-goto-point) $B$N%8%c%s%W@h(B") + "C-x C-x (skk-list-chars-goto-point) のジャンプ先") (defvar skk-list-chars-default-charstr nil) @@ -4053,10 +4053,10 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" (define-key map "q" 'skk-list-chars-quit) (define-key map (kbd "C-x C-x") 'skk-list-chars-goto-point) (define-key map "c" 'skk-list-chars-code-input) - ;; (define-key map (kbd "C-a") '$B6h$N@hF,$X(B) - ;; (define-key map (kbd "C-e") '$B6h$NKvHx$X(B) - ;; (define-key map "<" '$B%P%C%U%!@hF,$X(B) - ;; (define-key map ">" '$B%P%C%U%!KvHx$X(B) + ;; (define-key map (kbd "C-a") '区の先頭へ) + ;; (define-key map (kbd "C-e") '区の末尾へ) + ;; (define-key map "<" 'バッファ先頭へ) + ;; (define-key map ">" 'バッファ末尾へ) (define-key map (kbd "C-f") 'next-completion) (define-key map "f" 'next-completion) @@ -4097,7 +4097,7 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" (:inherit default)) (((class grayscale)) (:inherit default))) - "*skk-list-chars $B%P%C%U%!$K$*$1$k!"L\E*J8;z$r;X$7<($9MQES$KE,MQ$9$k(B face $BB0@-!#(B" + "*skk-list-chars バッファにおける、目的文字を指し示す用途に適用する face 属性。" :group 'skk-kcode :group 'skk-visual) @@ -4110,42 +4110,42 @@ SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" (:inherit default :foreground "chocolate1")) (((class grayscale)) (:inherit default :foreground "LightGray"))) - "*skk-list-chars $B%P%C%U%!$K$*$1$k!"0lMw8+=P$7$dOH@~$KE,MQ$9$k(B face $BB0@-!#(B" + "*skk-list-chars バッファにおける、一覧見出しや枠線に適用する face 属性。" :group 'skk-visual) ;;; skk-look.el related. (defcustom skk-use-look nil - "*UNIX look $B%3%^%s%I$rMxMQ$7$?Jd40!&JQ49$r9T$&$+$I$&$+$r;XDj$9$k!#(B -t $B$J$i$P!"Jd40;~$H1Q?t;zJQ49;~$K(B look $B$r;HMQ$9$k!#(B -`completion' $B$J$i$P!"Jd40;~$@$1(B look $B$r;HMQ$9$k!#(B -`conversion' $B$J$i$P!"1Q?t;zJQ49;~$@$1(B look $B$r;HMQ$9$k!#(B -nil $B$J$i$P!"(Blook $B$r;HMQ$7$J$$!#(B - -SKK abbrev $B%b!<%I$GJd40$9$k$H!"8D?M<-=q$r8!:w$7?T$7$?8e$G!"(BUNIX look $B%3%^%s(B -$B%I$K$h$k1QC18lJd40$r9T$&!#Nc$($P!"(B - - $B"&(Babstr (TAB) - ---> $B"&(Babstract - -SKK abbrev $B%b!<%I$G!"!V1QJ8;z(B + $B%"%9%?%j%9%/!W$K$FJQ49$9$k$H!"(Blook $B%3%^%s%I(B -$B$K$h$k[#Kf8!:w$r9T$&$3$H$,$G$-$k!#Nc$($P!"(B - - $B"&(Babstra* (SPC) - ---> $B"'(Babstract - -$B$3$N>uBV$G3NDj$9$k$H!"(B`abstra*' $B$r8+=P$78l!"(B`abstract' $B$r8uJd$H$9$k%(%s%H%j(B -$B$,8D?M<-=q$KDI2C$5$l$k!#(B`skk-search-excluding-word-pattern-function' $B$K$h(B -$B$j!"3NDj$7$F$b$3$N$h$&$J%(%s%H%j$rDI2C$7$J$$$h$&$K@_Dj$9$k$3$H$,$G$-$k!#(B" - :type '(radio (const :tag "$BJd40;~$H1Q?t;zJQ49;~$KM-8z(B" t) - (const :tag "$BJd40;~$@$1M-8z(B" completion) - (const :tag "$B1Q?t;zJQ49;~$@$1M-8z(B" conversion) - (const :tag "$BL58z(B" nil)) + "*UNIX look コマンドを利用した補完・変換を行うかどうかを指定する。 +t ならば、補完時と英数字変換時に look を使用する。 +`completion' ならば、補完時だけ look を使用する。 +`conversion' ならば、英数字変換時だけ look を使用する。 +nil ならば、look を使用しない。 + +SKK abbrev モードで補完すると、個人辞書を検索し尽した後で、UNIX look コマン +ドによる英単語補完を行う。例えば、 + + ▽abstr (TAB) + ---> ▽abstract + +SKK abbrev モードで、「英文字 + アスタリスク」にて変換すると、look コマンド +による曖昧検索を行うことができる。例えば、 + + ▽abstra* (SPC) + ---> ▼abstract + +この状態で確定すると、`abstra*' を見出し語、`abstract' を候補とするエントリ +が個人辞書に追加される。`skk-search-excluding-word-pattern-function' によ +り、確定してもこのようなエントリを追加しないように設定することができる。" + :type '(radio (const :tag "補完時と英数字変換時に有効" t) + (const :tag "補完時だけ有効" completion) + (const :tag "英数字変換時だけ有効" conversion) + (const :tag "無効" nil)) :group 'skk-basic :group 'skk-look) (defcustom skk-look-command (executable-find "look") - "*UNIX look $B%3%^%s%I$NL>A0!#(B" - :type `(file :tag "$B%U%!%$%kL>(B" ,(or (executable-find "look") "")) + "*UNIX look コマンドの名前。" + :type `(file :tag "ファイル名" ,(or (executable-find "look") "")) :group 'skk-look) (defcustom skk-look-conversion-arguments @@ -4158,24 +4158,24 @@ SKK abbrev $B%b!<%I$G!"!V1QJ8;z(B + $B%"%9%?%j%9%/!W$K$FJQ49$9$k$H!"(Blook  "/usr/dict/words") (t ""))) - "*look $B%3%^%s%I$,1Q?t!VJQ49!W;~$K8F$S=P$5$l$k:]$KEO$90z?t$r;XDj$9$kJQ?t!#(B -$B0lHL$K(B look $B%3%^%s%I$O0J2<$N7A<0$G8F$S=P$5$l$k!#(B + "*look コマンドが英数「変換」時に呼び出される際に渡す引数を指定する変数。 +一般に look コマンドは以下の形式で呼び出される。 look [-df] [-t termchar] string [file] -$B$=$l$>$l$N0UL#$K$D$$$F$O(B \\[man] look $B$r;2>H$5$l$?$$!#(B -$B$3$NJQ?t$K$O!">e5-$N$h$&$JA40z?t$N$&$A(B string $B$r(B %s $B$KCV49$7$?$b$N$r;XDj$9$k!#(B +それぞれの意味については \\[man] look を参照されたい。 +この変数には、上記のような全引数のうち string を %s に置換したものを指定する。 -$BCm0U;v9`$H$7$F!"(Blook $B%3%^%s%I$KEO$90z?t(B -d $B$H(B -f $B$K4X$7$F$O!"(B file $B$,(B $BF1$8(B -$B0z?t$G(B sort $B$5$l$F$$$kI,MW$,$"$k!#Nc$($P(B look -df $B$G8!:w$9$k$H$-$O(B sort -df -$B$G!"(B look -d $B$G8!:w$9$k$H$-$O(B sort -d $B$G(B sort $B$5$l$F$$$kI,MW$,$"$k!#$3$N$3$H(B -$B$K4X$7$F$O(B \\[man] sort $B$b;2>H$5$l$?$$!#(B +注意事項として、look コマンドに渡す引数 -d と -f に関しては、 file が 同じ +引数で sort されている必要がある。例えば look -df で検索するときは sort -df +で、 look -d で検索するときは sort -d で sort されている必要がある。このこと +に関しては \\[man] sort も参照されたい。 -$B$b$&$R$H$D$NCm0UE@$H$7$F!"(B look $B$N:G8e$N0z?t$H$7$F(B file $B$rEO$5$J$$$H(B ($B>JN,$9$k(B -$B$H(B) $B6/@)E*$K0z?t(B -d $B$H(B -f $B$N5!G=$,M-8z$K$J$k!#$b$7(B look $B$r;W$$DL$j@)8f$7$?$1$l(B -$B$PE,@Z$J(B file $B$r;XDj$9$k$Y$-$G$"$k!#(B +もうひとつの注意点として、 look の最後の引数として file を渡さないと (省略する +と) 強制的に引数 -d と -f の機能が有効になる。もし look を思い通り制御したけれ +ば適切な file を指定するべきである。 - ($B@_DjNc(B) + (設定例) (setq skk-look-conversion-arguments \"-df %s /usr/share/dict/words\") " @@ -4192,11 +4192,11 @@ SKK abbrev $B%b!<%I$G!"!V1QJ8;z(B + $B%"%9%?%j%9%/!W$K$FJQ49$9$k$H!"(Blook  "/usr/dict/words") (t ""))) - "*look $B%3%^%s%I$,1Q?t!VJd40!W;~$K8F$S=P$5$l$k:]$KEO$90z?t$r;XDj$9$kJQ?t!#(B -look $B%3%^%s%I$K4X$7$F$OJQ?t(B `skk-look-conversion-arguments' $B$N%I%-%e%a%s%H!"(B -$B5Z$S(B \\[man] look $B$r;2>H$5$l$?$$!#(B + "*look コマンドが英数「補完」時に呼び出される際に渡す引数を指定する変数。 +look コマンドに関しては変数 `skk-look-conversion-arguments' のドキュメント、 +及び \\[man] look を参照されたい。 - ($B@_DjNc(B) + (設定例) (setq skk-look-completion-arguments \"-d %s /usr/share/dict/words.case\") " @@ -4204,46 +4204,46 @@ look $B%3%^%s%I$K4X$7$F$OJQ?t(B `skk-look-conversion-arguments' $B$N%I%-%e%a% :group 'skk-look) (defcustom skk-look-recursive-search nil - "*Non-nil $B$J$i$P!"(B look $B%3%^%s%I$,8+$D$1$?1QC18l$rJQ49%-!<$K$7$F:F8!:w$r9T$&!#(B -$B:F8!:w$N7k2L!"8uJd$,8+$D$+$i$J$1$l$P!"85$N1QC18l<+?H$r8uJd$H$7$F=PNO$9$k!#(B" + "*Non-nil ならば、 look コマンドが見つけた英単語を変換キーにして再検索を行う。 +再検索の結果、候補が見つからなければ、元の英単語自身を候補として出力する。" :type 'boolean :group 'skk-look) (defcustom skk-look-expanded-word-only t - "*Non-nil $B$J$i$P!"(B look $B$N=PNO$KBP$9$k:F8!:w$,@.8y$7$?8uJd$N$_$rI=<($9$k!#(B -`skk-look-recursive-search' $B$,(B non-nil $B$G$"$k$H$-$N$_M-8z!#(B" + "*Non-nil ならば、 look の出力に対する再検索が成功した候補のみを表示する。 +`skk-look-recursive-search' が non-nil であるときのみ有効。" :type 'boolean :group 'skk-look) (defcustom skk-look-use-ispell nil - "*look $B$K$h$k8!:w$N:]!"(Bispell $B$rJ;MQ$9$k$+$I$&$+$r;XDj$9$k!#(B -t $B$J$i$P!"Jd40;~$H1Q?t;zJQ49;~$K(B ispell $B$rJ;MQ$9$k!#(B -`completion' $B$J$i$P!"Jd40;~$@$1(B ispell $B$rJ;MQ$9$k!#(B -`conversion' $B$J$i$P!"1Q?t;zJQ49;~$@$1(B ispell $B$rJ;MQ$9$k!#(B -nil $B$J$i$P!"(Bispell $B$r;HMQ$7$J$$!#(B" - :type '(radio (const :tag "$BJd40;~$H1Q?t;zJQ49;~$KM-8z(B" t) - (const :tag "$BJd40;~$@$1M-8z(B" completion) - (const :tag "$B1Q?t;zJQ49;~$@$1M-8z(B" conversion) - (const :tag "$BL58z(B" nil)) + "*look による検索の際、ispell を併用するかどうかを指定する。 +t ならば、補完時と英数字変換時に ispell を併用する。 +`completion' ならば、補完時だけ ispell を併用する。 +`conversion' ならば、英数字変換時だけ ispell を併用する。 +nil ならば、ispell を使用しない。" + :type '(radio (const :tag "補完時と英数字変換時に有効" t) + (const :tag "補完時だけ有効" completion) + (const :tag "英数字変換時だけ有効" conversion) + (const :tag "無効" nil)) :group 'skk-look) (defvar skk-look-completion-words nil) ;;;; skk-lookup.el related. (defcustom skk-lookup-search-agents nil - "*$B8!:w%(!<%8%'%s%H$N@_Dj$N%j%9%H!#(B -$B%j%9%H$N3FMWAG$OJN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!#(B +CLASS には、エージェントの種類をシンボルで指定する。 +LOCATION には、エージェントの所在を文字列で指定する。 +KEY 及び VALUE は省略可能で、エージェントに対するオプションを指定する。 -$BNc(B: (setq skk-lookup-search-agents +例: (setq skk-lookup-search-agents \\='((ndtp \"dserver\" :port 2010) (ndeb \"/cdrom\" :enable (\"EIWA\"))))" - :type '(repeat (sexp :tag "Agent")) ; type $B$O$A$g$C$H$d$d$3$7$9$.!&!&(B + :type '(repeat (sexp :tag "Agent")) ; type はちょっとややこしすぎ・・ :group 'skk-lookup) (defcustom skk-lookup-option-alist @@ -4252,113 +4252,113 @@ KEY $B5Z$S(B VALUE $B$O>JN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# nil nil) ;; what's this? ("jedict" exact nil nil (not skk-okuri-char) nil nil nil) - ;; $BCN7CB"(B - ;; `$B"'#I#M#F!N(BInternational Monetary Fund$B!?(BInternational - ;; Metalworkers Federation$B!O(B' - ;; `$B#I#M#F!J9q:]DL2_4p6b!K!Z(BInternational Monetary Fund$B![(B' + ;; 知恵蔵 + ;; `▼IMF[International Monetary Fund/International + ;; Metalworkers Federation]' + ;; `IMF(国際通貨基金)【International Monetary Fund】' ("CHIEZO" exact exact prefix t - ("$B!J(B\\(.+\\)$B!K(B\\|$B!Z(B\\(.+\\)$B![(B$\\|$B!N(B\\(.+\\)$B!O(B$\\|^\\([^$B!J!Z!N!O![!K(B]+\\)$" + ("(\\(.+\\))\\|【\\(.+\\)】$\\|[\\(.+\\)]$\\|^\\([^(【[]】)]+\\)$" . (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3) ((match-beginning 4) 4))) - "$B!?(B\\|$B!"(B\\|, " nil) - ;; $B!V<-!&E5!&HW!W(B - ;; `$B$"$+#3(B $B^@(B", "ethanol' - ("CHUJITEN" exact exact prefix t ("[$B#0(B-$B#9(B]* *\\([^ ]+\\)$" . 1) nil nil) - ;; `($BHiIf$J$I$N(B)$B$"$+(B ", "$B!T1Q!U(B ($B%Q%$%W$J$I$N(B)$B$"$+(B ' - ("COLLOC" exact exact prefix t ("\\([^ $B!T!U(B]+\\) <[a-z]+>$" . 1) nil nil) - ;; $B%8!<%K%"%91QOB(B, $B%8!<%K%"%91QOB!&OB1Q<-E5(B - ;; `$B$"$+(B[$B^@(B]' - ;; `$B$$$l$+$((B[$BF~$lBX$((B,$BF~$l49$((B]' + "/\\|、\\|, " nil) + ;; 「辞・典・盤」 + ;; `あか3 淦", "ethanol' + ("CHUJITEN" exact exact prefix t ("[0-9]* *\\([^ ]+\\)$" . 1) nil nil) + ;; `(皮膚などの)あか ", "《英》 (パイプなどの)あか ' + ("COLLOC" exact exact prefix t ("\\([^ 《》]+\\) <[a-z]+>$" . 1) nil nil) + ;; ジーニアス英和, ジーニアス英和・和英辞典 + ;; `あか[淦]' + ;; `いれかえ[入れ替え,入れ換え]' ("GENIUS" exact exact prefix t ;;("\\[\\(.+\\)\\]$" . 1) ;;can I use `$' for GENIUS? ("\\[\\(.+\\)\\]" . 1) "," nil) - ;; Super$BE}9g<-=q(B99 Disk1, 2/$B8=BeMQ8l$N4pACCN<1(B - ;; `$B"!$B0%(B' - ;; `$B$@$7!Z=P$7![!Z=P$7!&!R=P=A!S![!Z!P;3' + ;; `だし【出し】【出し・〈出汁〉】【{山車}】' + ;; `ふうきり【封切(り)】' ("IWAKOKU" exact exact prefix t ;; cannot use `$' for this. - ("$B!Z(B\\(.+\\)$B![(B" . 1) - "$B![!Z(B\\|$B!&(B" "[$B!R!S!P!Q(B()]") - ;; "$B9$(B", "$B@V(B" + ("【\\(.+\\)】" . 1) + "】【\\|・" "[〈〉{}()]") + ;; "垢", "赤" ("KANWA" exact exact prefix t nil nil nil) - ;; KOUJIEN: $B9-<-1q(B $BBh(B4$BHG(B($B4dGH(B,EPWING) $B%^%k%A%a%G%#%"HG(B - ;; `$B$"$$!Z9g$$!&2q$$![%"%R(B' ; $B$3$l$K$O(B `$B![(B$' $B$r;H$($J$$!#(B - ;; `$B$"$$!Z4V![%"%R(B' - ;; `$B%&%#!Z(Boui $B%U%i%s%9![(B' - ;; `$B%=!Z(Bsol $B%$%?%j%"![(B' - ;; `$B%"%j%9%H%F%l%9!>$7$e$.!Z!=(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\([^$B!Z![(B]+\\)$B![(B$\\|\ -\$B!Z(B\\([a-zA-Z]+\\) [$B!<%!(B-$B%s(B]+$B![(B$\\|$B!Z(B\\([^$B!Z![(B]+\\)$B![(B\\|\ -^$B!{(B\\(.+\\)$" . + ("^\\([^【】]+\\)‐[ーぁ-ん]+【―\\([^【】]+\\)】$\\|\ +\【\\([a-zA-Z]+\\) [ーァ-ン]+】$\\|【\\([^【】]+\\)】\\|\ +^○\\(.+\\)$" . (cond ((match-beginning 2) '(1 2)) ((match-beginning 3) 3) ((match-beginning 4) 4) ((match-beginning 5) 5))) - "$B!&(B" - ;;"$B!>(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\|$B![(B$" + "・" + ;;"‐[ーぁ-ん]+【―\\|】$" nil) - ;; KOJIEN: $B9-<-1qBh(B5$BHG(B($B4dGH(B,EPWING) - ;; `$B$G$s$7!>%V%C%/!ZEE;R!=![(B' + ;; KOJIEN: 広辞苑第5版(岩波,EPWING) + ;; `でんし‐ブック【電子―】' ("KOJIEN" exact exact prefix t - ("^\\([^$B!Z![(B]+\\)$B!>(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\([^$B!Z![(B]+\\)$B![(B$\\|\ -\$B!Z(B\\([a-zA-Z]+\\) [$B!<%!(B-$B%s(B]+$B![(B$\\|\ -\$B!Z(B\\([^$B!Z![(B]+\\)$B![(B\\|\ -^[$B!<$!(B-$B$s(B]+$B!>(B\\([$B!<%!(B-$B%s(B]+\\)$B!Z(B\\([^$B!Z![(B]+\\)$B!=![(B$\\|\ -^$B!{(B\\(.+\\)$" . + ("^\\([^【】]+\\)‐[ーぁ-ん]+【―\\([^【】]+\\)】$\\|\ +\【\\([a-zA-Z]+\\) [ーァ-ン]+】$\\|\ +\【\\([^【】]+\\)】\\|\ +^[ーぁ-ん]+‐\\([ーァ-ン]+\\)【\\([^【】]+\\)―】$\\|\ +^○\\(.+\\)$" . (cond ((match-beginning 2) '(1 2)) ((match-beginning 3) 3) ((match-beginning 4) 4) ((match-beginning 5) '(6 5)) ((match-beginning 7) 7))) - "$B!&(B" - ;;"$B!>(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\|$B![(B$" + "・" + ;;"‐[ーぁ-ん]+【―\\|】$" nil) - ;; KOKUGO: $B;0>JF2(B $BF|K\8l<-E5!J8=Be9q8l!"30Mh8l!K(B - ;; `$B!R(B' $B$O!"EvMQ4A;zI=$K$J$$4A;z$G!"(B`$B!T(B' $B$O!"EvMQ4A;zI=$K$O$"$k$,!"$=$N2;!"(B - ;; $B71$,EvMQ4A;zI=$N2;71I=$K$J$$4A;z!#(B - ("KOKUGO" exact exact prefix t ("$B!Z(B\\([^$B!Z![(B]+\\)$B![(B" . 1) "$B!&(B" "[$B!T!R(B]") - ;; $B!V<-!&E5!&HW!WImB0$N%^%$%Z%G%#%"(B - ;;`$BBgOB74;3(B($B;T(B)' - ;;`$B%o%7%s%H%s(B(George Washington)' - ;;`$B%o%7%s%H%s(B($B=#(B)' - ;;`$B%o%7%s%H%s(B Washington' - ;;`$B%"%$%s%7%e%?%$%s(B(Albert Einstein)' - ;;`$B9aNI='(B($BD.(B)' - ;;`$B%+%i%9(B ($B1((B)' - ;;`$B%+%i%9(B(Maria Callas)' + ;; KOKUGO: 三省堂 日本語辞典(現代国語、外来語) + ;; `〈' は、当用漢字表にない漢字で、`《' は、当用漢字表にはあるが、その音、 + ;; 訓が当用漢字表の音訓表にない漢字。 + ("KOKUGO" exact exact prefix t ("【\\([^【】]+\\)】" . 1) "・" "[《〈]") + ;; 「辞・典・盤」附属のマイペディア + ;;`大和郡山(市)' + ;;`ワシントン(George Washington)' + ;;`ワシントン(州)' + ;;`ワシントン Washington' + ;;`アインシュタイン(Albert Einstein)' + ;;`香良洲(町)' + ;;`カラス (烏)' + ;;`カラス(Maria Callas)' ("MYPAEDIA" exact exact prefix t ("\\([^ ]+\\)(.+)$\\|.+ (\\([^ ]+\\))$\\|^\\([^ ()]+\\)$" . (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3))) nil nil) - ;; mypaedia-fpw $B$+$i@8@.$7$?(B PC Success $BHG%^%$%Z%G%#%"(B (FreePWING $B<-=q(B) - ;; `$BBgOB74;3(B [$B$d$^$H$3$*$j$d$^(B] ($B;T(B)' - ;; `$B%"%$%s%7%e%?%$%s(B (Albert Einstein)' - ;; `$B%o%7%s%H%s(B (Washington) ($B=#(B)' - ;; `$B%o%7%s%H%s(B (Washington)' - ;; `$B%o%7%s%H%s(B (George Washington)' - ;; `$B9aNI='(B [$B$+$i$9(B] ($BD.(B)' - ;; `$B%+%i%9(B ($B1((B) [$B%+%i%9(B]' - ;; `$B%+%i%9(B (Maria Callas)' + ;; mypaedia-fpw から生成した PC Success 版マイペディア (FreePWING 辞書) + ;; `大和郡山 [やまとこおりやま] (市)' + ;; `アインシュタイン (Albert Einstein)' + ;; `ワシントン (Washington) (州)' + ;; `ワシントン (Washington)' + ;; `ワシントン (George Washington)' + ;; `香良洲 [からす] (町)' + ;; `カラス (烏) [カラス]' + ;; `カラス (Maria Callas)' ;;("MYPAEDIA" exact exact prefix t ;; ("^\\([^ ]+\\) \\[.+\\] (.+)$\\|^[^ ]+ (\\(.+\\)) \\[.+\\]$\\|\ ;; ^\\([^][() ]+\\)\\( .+\\)?$" . @@ -4367,66 +4367,66 @@ KEY $B5Z$S(B VALUE $B$O>JN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# ;; ((match-beginning 3) 3))) ;; nil nil) ;; - ;; $B%K%e!<%"%s%+!<1QOB(B - ;; "$B$"$+#2(B $B9$(B" - ("NEWANC" exact exact prefix t ("[$B#0(B-$B#9(B]* *\\([^ ]+\\)$" . 1) nil nil) + ;; ニューアンカー英和 + ;; "あか2 垢" + ("NEWANC" exact exact prefix t ("[0-9]* *\\([^ ]+\\)$" . 1) nil nil) ;; what's this? - ;; `$B!!$"$+(B ', - ;; `$B!!!V$"$+!W(B ' - ("PLUS" exact exact prefix t ("^$B!!(B\\(.+\\) <[a-z$B#0(B-$B#9(B]+>$" . 1) nil nil) - ("lsd" exact exact prefix t ("^\\([^$B!L!M(B]+\\)$B!L(B.+$B!M(B$" . 1) nil nil)) - "*$B<-=qKh$N8!:w!"J8;z@Z$j=P$7%*%W%7%g%s!#(B -$B%j%9%H$N3FMWAG$O2<5-$NDL$j!#(B - - 0th: `lookup-dictionary-name' $B$,JV$9J8;zNs(B ($B<-=qL>7hDj$N8e$K8!:w$r3+;O$9$k$N$G!"Aw$j2>L>$,FCDj$G$-$k(B) - $B$N(B search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$H!"(B - $BAw$j$"$jJQ49$N:]$O$=$N<-=q$r8!:w$7$J$$!#(B - 3th: $BAw$j$"$jJQ49$G!"$+$D(B `skk-process-okuri-early' $B$G$"$k$H$-(B ($BAw$j2>L>(B - $B7hDj$NA0$K8!:w$r3+;O$7$F$*$j!"Aw$j2>L>$,FCDj$G$-$J$$$N$G!"Aw$j2>L>$N$+$J(B - prefix $B$r=|$$$?ItJ,$r8!:w%-!<$H$7$F(B lookup $B$KEO$7$F$$$k(B) $B$N(B search - method $B$r<($9(B $B%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$HAw$j$"$jJQ49(B - $B$N:]$O$=$N<-=q$r8!:w$7$J$$!#(B - 4th: S $B<0!#$3$N(B S $B<0$rI>2A$7$F(B nil $B$K$J$k$H$-$O8!:w$7$J$$!#$"$k0lDj$N>r7o$rK~(B - $B$7$?>l9g$K8!:w$7$J$$$h$&$K;XDj$G$-$k!#(B - 5th: `lookup-entry-heading' $B$,JV$9(B heading $B$+$i8uJd$H$7$F=PNO$9$kJ8;zNs$r@Z$j(B - $B=P$9$?$a$N(B regexp $B;XDj5Z$S@Z$j=P$7%*%W%7%g%s!#(B - car $B$K(B regexp $B$r<($9J8;zNs!"(Bcdr $B$K(B `match-string' $B$KEO$9(B count $B$r;XDj(B - $B$9$k(B (5th $B$KJ8;zNs$@$1$r;XDj$7$?>l9g$O(B `match-string' $B$K$O(B 1 $B$,(B - $BEO$5$l$k(B)$B!#(B - cdr $BIt$K(B S $B<0$r;XDj$9$k$3$H$b2DG=!#2<5-$N$h$&$K(B cond $B<0$G>r7oH=Dj$9$l$P(B - $BJ#?t$N(B regexp $B$r(B or $B;XDj$9$k$3$H$,2DG=!#(B + ;; ` あか ', + ;; ` 「あか」 ' + ("PLUS" exact exact prefix t ("^ \\(.+\\) <[a-z0-9]+>$" . 1) nil nil) + ("lsd" exact exact prefix t ("^\\([^〔〕]+\\)〔.+〕$" . 1) nil nil)) + "*辞書毎の検索、文字切り出しオプション。 +リストの各要素は下記の通り。 + + 0th: `lookup-dictionary-name' が返す文字列 (辞書種別を表わす)。 + 1th: 送りなし変換の際の search method を示すシンボル。regexp は指定不可。 + 2th: 送りあり変換で、かつ `skk-process-okuri-early' オプションを指定して + いないとき (送り仮名決定の後に検索を開始するので、送り仮名が特定できる) + の search method を示すシンボル。regexp は指定不可。nil を指定すると、 + 送りあり変換の際はその辞書を検索しない。 + 3th: 送りあり変換で、かつ `skk-process-okuri-early' であるとき (送り仮名 + 決定の前に検索を開始しており、送り仮名が特定できないので、送り仮名のかな + prefix を除いた部分を検索キーとして lookup に渡している) の search + method を示す シンボル。regexp は指定不可。nil を指定すると送りあり変換 + の際はその辞書を検索しない。 + 4th: S 式。この S 式を評価して nil になるときは検索しない。ある一定の条件を満 + した場合に検索しないように指定できる。 + 5th: `lookup-entry-heading' が返す heading から候補として出力する文字列を切り + 出すための regexp 指定及び切り出しオプション。 + car に regexp を示す文字列、cdr に `match-string' に渡す count を指定 + する (5th に文字列だけを指定した場合は `match-string' には 1 が + 渡される)。 + cdr 部に S 式を指定することも可能。下記のように cond 式で条件判定すれば + 複数の regexp を or 指定することが可能。 (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3) ((match-beginning 4) 4)) - cdr $BIt$NI>2A7k2L$,?t;z$N%j%9%H$K$J$k$H$-$O!"$=$N?t;z$r=g$K(B `match-string' - $B$KEO$7$FJ8;zNs$r@Z$j=P$7!"$=$l$iO"7k$7$?J8;zNs$r8uJd$H$7$FJV$9!#Nc$($P!"(B + cdr 部の評価結果が数字のリストになるときは、その数字を順に `match-string' + に渡して文字列を切り出し、それら連結した文字列を候補として返す。例えば、 (cond ((match-beginning 5) \\='(6 5))) - $B$H;XDj$9$k$H!"(B(match-beginning 5) $B$,(B non-nil $B$K$J$C$?>l9g!"(B - (match-string 6) $B$H(B (match-string 5) $B$r$=$N=g$KO"7k$7$?J8;zNs$r8uJd$H$7(B - $B$F=PNO$9$k!#(B - $B@Z$j=P$5$:$KJ8;zNsA4BN$rBP>]$K$9$k$H$-$O!"(B5th $B$K(B nil $B$r;XDj$9$k!#(B - 6th: $B@Z$j=P$5$l$?J8;zNs$NCf$K99$KJ#?t$N8uJd$r4^$`>l9g$N6h@Z$j$rI=$o$9(B - regexp$B!#(B - $BJ#?t$N8uJd$,F10l(B heading $B$NCf$K=PNO$5$l$J$$$H$-$O!"(Bnil $B$r;XDj$9$k!#(B - 7th: $B@Z$j=P$5$l$?J8;zNs$+$iFCDj$NJ8;zNs$rl9g$K;XDj$9$k(B regexp$B!#(B - $B<-=q$N=PNO$,<-=qFCM-$N5-9fJ8;z$r4^$`>l9g$K;XDj$9$k!#(B - -$B8=:_BP1~$7$F$$$k<-=qL>$O(B \"ispell\", \"jedict\", \"CHIEZO\", \"CHUJITEN\", + と指定すると、(match-beginning 5) が non-nil になった場合、 + (match-string 6) と (match-string 5) をその順に連結した文字列を候補とし + て出力する。 + 切り出さずに文字列全体を対象にするときは、5th に nil を指定する。 + 6th: 切り出された文字列の中に更に複数の候補を含む場合の区切りを表わす + regexp。 + 複数の候補が同一 heading の中に出力されないときは、nil を指定する。 + 7th: 切り出された文字列から特定の文字列を取り除く場合に指定する regexp。 + 辞書の出力が辞書特有の記号文字を含む場合に指定する。 + +現在対応している辞書名は \"ispell\", \"jedict\", \"CHIEZO\", \"CHUJITEN\", \"COLLOC\", \"GENIUS\", \"GN99EP01\", \"GN99EP02\", \"IWAKOKU\", \"KANWA\", -\"KOUJIEN\", \"KOJIEN\", \"KOKUGO\", \"MYPAEDIA\", \"NEWANC\", \"PLUS\" $B5Z$S(B -\"lsd\"$B!#(B -`lookup-entry-heading' $B$,<+J,$N;HMQ$9$k<-=q$+$i$I$N$h$&$JJ8;zNs$rJN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# :group 'skk-lookup) (defcustom skk-lookup-default-option-list - '(exact exact prefix t ("$B!Z(B\\([^$B!Z![(B]+\\)$B![(B" . 1) "$B!&(B" nil) - ;; CRCEN: $B;0>JF2(B $B%K%e!<%;%s%A%e%j!<1QOB!&?7%/%i%&%sOB1Q<-E5(B - ;; KANJIGEN: Super$BE}9g<-=q(B99 Disk2/$B4A;z8;(B : EPWING - ;; RIKAGAKU: $BM}2=3X<-E5(B + '(exact exact prefix t ("【\\([^【】]+\\)】" . 1) "・" nil) + ;; CRCEN: 三省堂 ニューセンチュリー英和・新クラウン和英辞典 + ;; KANJIGEN: Super統合辞書99 Disk2/漢字源 : EPWING + ;; RIKAGAKU: 理化学辞典 ;; WAEI: what's this? - "*$B%G%U%)%k%H$N<-=q8!:w!"J8;z@Z$j=P$7%*%W%7%g%s!#(B -$B$^$:<-=qL>$r%-!<$K$7$F(B `skk-lookup-option-alist' $B$r0z$-!"$=$3$K<-=q8!:w!"J8;z@Z(B -$B$j=P$7$N%*%W%7%g%s$,8+$D$+$l$P$=$l$r;HMQ$7!"8+$D$+$i$J$+$C$?>l9g$K$3$NJQ?t$G(B -$B;XDj$5$l$k<-=q8!:w!"J8;z@Z$j=P$7$N%*%W%7%g%s$r;HMQ$9$k!#(B - -$B%j%9%H$N3FMWAG$O2<5-$NDL$j!#(B - - 0th: $BAw$j$J$7JQ49$N:]$N(B search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(B - 1th: $BAw$j$"$jJQ49$G!"$+$D(B `skk-process-okuri-early' $B%*%W%7%g%s$r;XDj$7$F$$$J(B - $B$$$H$-(B ($BAw$j2>L>7hDj$N8e$K8!:w$r3+;O$9$k$N$G!"Aw$j2>L>$,FCDj$G$-$k(B) $B$N(B - search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$H!"Aw$j(B - $B$"$jJQ49$N:]$O$=$N<-=q$r8!:w$7$J$$!#(B - 2th: $BAw$j$"$jJQ49$G!"$+$D(B `skk-process-okuri-early' $B$G$"$k(B ($BAw$j2>L>7hDj$NA0(B - $B$K8!:w$r3+;O$7$F$*$j!"Aw$j2>L>$,FCDj$G$-$J$$$N$G!"Aw$j2>L>$N$+$J(B prefix - $B$r=|$$$?ItJ,$r8!:w%-!<$H$7$F(B lookup $B$KEO$7$F$$$k(B) $B$H$-$N(B search method - $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$HAw$j$"$jJQ49$N:]$O$=(B - $B$N<-=q$r8!:w$7$J$$!#(B - 3th: S $B<0!#$3$N(B S $B<0$rI>2A$7$F(B nil $B$K$J$k$H$-$O8!:w$7$J$$!#$"$k0lDj$N>r7o$rK~(B - $B$7$?>l9g$K8!:w$7$J$$$h$&$K;XDj$G$-$k!#(B - 4th: `lookup-entry-heading' $B$,JV$9(B heading $B$+$i8uJd$H$7$F=PNO$9$kJ8;zNs$r@Z$j(B - $B=P$9$?$a$N(B regexp $B;XDj5Z$S@Z$j=P$7%*%W%7%g%s!#(B - car $B$K(B regexp $B$r<($9J8;zNs!"(Bcdr $B$K(B `match-string' $B$KEO$9(B count $B$r;XDj$9(B - $B$k(B (4th $B$KJ8;zNs$@$1$r;XDj$7$?>l9g$O(B `match-string' $B$K$O(B 1 $B$,EO$5$l$k(B)$B!#(B - cdr $BIt$K(B S $B<0$r;XDj$9$k$3$H$b2DG=!#2<5-$N$h$&$K(B cond $B<0$G>r7oH=Dj$9$l$P(B - $BJ#?t$N(B regexp $B$r(B or $B;XDj$9$k$3$H$,2DG=!#(B + "*デフォルトの辞書検索、文字切り出しオプション。 +まず辞書名をキーにして `skk-lookup-option-alist' を引き、そこに辞書検索、文字切 +り出しのオプションが見つかればそれを使用し、見つからなかった場合にこの変数で +指定される辞書検索、文字切り出しのオプションを使用する。 + +リストの各要素は下記の通り。 + + 0th: 送りなし変換の際の search method を示すシンボル。regexp は指定不可。 + 1th: 送りあり変換で、かつ `skk-process-okuri-early' オプションを指定していな + いとき (送り仮名決定の後に検索を開始するので、送り仮名が特定できる) の + search method を示すシンボル。regexp は指定不可。nil を指定すると、送り + あり変換の際はその辞書を検索しない。 + 2th: 送りあり変換で、かつ `skk-process-okuri-early' である (送り仮名決定の前 + に検索を開始しており、送り仮名が特定できないので、送り仮名のかな prefix + を除いた部分を検索キーとして lookup に渡している) ときの search method + を示すシンボル。regexp は指定不可。nil を指定すると送りあり変換の際はそ + の辞書を検索しない。 + 3th: S 式。この S 式を評価して nil になるときは検索しない。ある一定の条件を満 + した場合に検索しないように指定できる。 + 4th: `lookup-entry-heading' が返す heading から候補として出力する文字列を切り + 出すための regexp 指定及び切り出しオプション。 + car に regexp を示す文字列、cdr に `match-string' に渡す count を指定す + る (4th に文字列だけを指定した場合は `match-string' には 1 が渡される)。 + cdr 部に S 式を指定することも可能。下記のように cond 式で条件判定すれば + 複数の regexp を or 指定することが可能。 (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3) ((match-beginning 4) 4)) - cdr $BIt$NI>2A7k2L$,?t;z$N%j%9%H$K$J$k$H$-$O!"$=$N?t;z$r=g$K(B `match-string' - $B$KEO$7$FJ8;zNs$r@Z$j=P$7!"$=$l$iO"7k$7$?J8;zNs$r8uJd$H$7$FJV$9!#Nc$($P!"(B + cdr 部の評価結果が数字のリストになるときは、その数字を順に `match-string' + に渡して文字列を切り出し、それら連結した文字列を候補として返す。例えば、 (cond ((match-beginning 5) \\='(6 5))) - $B$H;XDj$9$k$H!"(B(match-beginning 5) $B$,(B non-nil $B$K$J$C$?>l9g!"(B - (match-string 6) $B$H(B (match-string 5) $B$r$=$N=g$KO"7k$7$?J8;zNs$r8uJd$H$7(B - $B$F=PNO$9$k!#(B - $B@Z$j=P$5$:$KJ8;zNsA4BN$rBP>]$K$9$k$H$-$O!"(B4th $B$K(B nil $B$r;XDj$9$k!#(B - 5th: $B@Z$j=P$5$l$?J8;zNs$NCf$K99$KJ#?t$N8uJd$r4^$`>l9g$N6h@Z$j$rI=$o$9(B - regexp$B!#(B - $BJ#?t$N8uJd$,F10l(B heading $B$NCf$K=PNO$5$l$J$$$H$-$O!"(Bnil $B$r;XDj$9$k!#(B - 6th: $B@Z$j=P$5$l$?J8;zNs$+$iFCDj$NJ8;zNs$rl9g$K;XDj$9$k(B regexp$B!#(B - $B<-=q$N=PNO$,<-=qFCM-$N5-9fJ8;z$r4^$`>l9g$K;XDj$9$k!#(B - -$B$3$N%*%W%7%g%s$GBP1~$7$F$$$k<-=qL>$O!"(B\"CRCEN\", \"KANJIGEN\", \"RIKAGAKU\" -$B5Z$S(B \"WAEI\". -`lookup-entry-heading' $B$G$+!Z0!2J![!E%/%o(B\" - \"$B$"$+!Zod2@![(B\" - \"$B$3!>$7$g$&!Z>.@+!&>.@-![!E%7%d%&(B\" - -`lookup-entry-heading' $B$,<+J,$N;HMQ$9$k<-=q$+$i$I$N$h$&$JJ8;zNs$rJN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# :group 'skk-lookup) (defcustom skk-lookup-search-modules nil - "*$B8!:w%b%8%e!<%k$N@_Dj$N%j%9%H!#(B" + "*検索モジュールの設定のリスト。" :type '(repeat (cons :tag "Module" (string :tag "Name") (repeat :tag "Dictionary" (string :tag "ID")))) :group 'skk-lookup) (defcustom skk-lookup-process-henkan-key-function nil - "*Lookup $B$KEO$9:]$K8!:w%-!<$r2C9)$9$k%U%!%s%/%7%g%s!#(B -$BAw$j$"$jJQ49$N:]$N$_%3!<%k$5$l$k!#0z?t$O2C9)$9$Y$-J8;zNs(B HENKAN-KEY$B!#(B -$BJV$jCM$O(B car $B$K2C9)$7$?J8;zNs!"(Bcdr $B$KAw$j2>L>$N2C9)J}K!$r<($9%^%8%C%/%J%s%P!<(B -$B$rF~$l$?(B cons cell$B!#(B -$B%^%8%C%/%J%s%P!<$O!"(B0 $B$,Aw$j$J$7$rI=$o$9(B ($BK\(B function $B$G$O;HMQ$9$k$3$H$O$J$$(B)$B!#(B -1 $B$OAw$j$"$jJQ49$G(B `skk-process-okuri-early' $B$,(B nil $B$N>l9g!#(B -2 $B$OAw$j$"$jJQ49$G(B `skk-process-okuri-early' $B$,(B non-nil $B$N>l9g$rI=$o$9!#(B -$B6a$$>-Mh!"(Bskk-lookup.el $BA4BN$rDL$8$F$3$N$h$&$J%^%8%C%/%J%s%P!<$r;H$o$J$$$h$&$K(B -$B2~NI$5$l$k2DG=@-$,$"$k!#(B" - :type '(radio (function :tag "$B4X?t(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "*Lookup に渡す際に検索キーを加工するファンクション。 +送りあり変換の際のみコールされる。引数は加工すべき文字列 HENKAN-KEY。 +返り値は car に加工した文字列、cdr に送り仮名の加工方法を示すマジックナンバー +を入れた cons cell。 +マジックナンバーは、0 が送りなしを表わす (本 function では使用することはない)。 +1 は送りあり変換で `skk-process-okuri-early' が nil の場合。 +2 は送りあり変換で `skk-process-okuri-early' が non-nil の場合を表わす。 +近い将来、skk-lookup.el 全体を通じてこのようなマジックナンバーを使わないように +改良される可能性がある。" + :type '(radio (function :tag "関数") + (const :tag "指定しない" nil)) :group 'skk-lookup) (defcustom skk-lookup-kana-vector - ["$B$!(B" "$B$"(B" "$B$#(B" "$B$$(B" "$B$%(B" "$B$&(B" "$B$'(B" "$B$((B" "$B$)(B" "$B$*(B" - "$B$+(B" "$B$,(B" "$B$-(B" "$B$.(B" "$B$/(B" "$B$0(B" "$B$1(B" "$B$2(B" "$B$3(B" "$B$4(B" - "$B$5(B" "$B$6(B" "$B$7(B" "$B$8(B" "$B$9(B" "$B$:(B" "$B$;(B" "$B$<(B" "$B$=(B" "$B$>(B" - "$B$?(B" "$B$@(B" "$B$A(B" "$B$B(B" "$B$C(B" "$B$D(B" "$B$E(B" "$B$F(B" "$B$G(B" "$B$H(B" "$B$I(B" - "$B$J(B" "$B$K(B" "$B$L(B" "$B$M(B" "$B$N(B" - "$B$O(B" "$B$P(B" "$B$Q(B" "$B$R(B" "$B$S(B" "$B$T(B" "$B$U(B" "$B$V(B" "$B$W(B" "$B$X(B" "$B$Y(B" "$B$Z(B" "$B$[(B" "$B$\(B" "$B$](B" - "$B$^(B" "$B$_(B" "$B$`(B" "$B$a(B" "$B$b(B" - "$B$c(B" "$B$d(B" "$B$e(B" "$B$f(B" "$B$g(B" "$B$h(B" - "$B$i(B" "$B$j(B" "$B$k(B" "$B$l(B" "$B$m(B" - "$B$n(B" "$B$o(B" "$B$p(B" "$B$q(B" "$B$r(B" "$B$s(B"] - "*`skk-kana-rom-vector' $B$N(B prefix $B$KBP1~$9$k$+$JJ8;z$N%Y%/%H%k!#(B -$B$"$k(B prefix $B$,$I$N$+$JJ8;z$KBP1~$9$k$+$N%^%C%W$r:n$k$?$a$K;2>H$9$k!#(B" + ["ぁ" "あ" "ぃ" "い" "ぅ" "う" "ぇ" "え" "ぉ" "お" + "か" "が" "き" "ぎ" "く" "ぐ" "け" "げ" "こ" "ご" + "さ" "ざ" "し" "じ" "す" "ず" "せ" "ぜ" "そ" "ぞ" + "た" "だ" "ち" "ぢ" "っ" "つ" "づ" "て" "で" "と" "ど" + "な" "に" "ぬ" "ね" "の" + "は" "ば" "ぱ" "ひ" "び" "ぴ" "ふ" "ぶ" "ぷ" "へ" "べ" "ぺ" "ほ" "ぼ" "ぽ" + "ま" "み" "む" "め" "も" + "ゃ" "や" "ゅ" "ゆ" "ょ" "よ" + "ら" "り" "る" "れ" "ろ" + "ゎ" "わ" "ゐ" "ゑ" "を" "ん"] + "*`skk-kana-rom-vector' の prefix に対応するかな文字のベクトル。 +ある prefix がどのかな文字に対応するかのマップを作るために参照する。" :type 'sexp :group 'skk-lookup) @@ -4590,57 +4590,57 @@ KEY $B5Z$S(B VALUE $B$O>JN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# (defvar skk-lookup-prefix-and-kana-map nil) (defvar skk-lookup-get-content-nth-dic 0 - "*$B4X?t(B `skk-lookup-get-content' $B$N=hM}BP>]$r?tCM$G;XDj$9$k(B. -$B?tCM$O!V4X?t(B `skk-lookup-default-module' $B$NI>2A7k2L$N$&$A2?HVL\$N(B agent $B$r(B -$B;HMQ$9$k$+!W$r!"%<%m$r5/E@$K?t$($k(B. + "*関数 `skk-lookup-get-content' の処理対象を数値で指定する. +数値は「関数 `skk-lookup-default-module' の評価結果のうち何番目の agent を +使用するか」を、ゼロを起点に数える. -*scratch* $B%P%C%U%!$G2A$7$F$_$k$H$h$$(B. +*scratch* バッファで次の S 式を評価してみるとよい. \(let ((n 0)) (dolist (i (lookup-module-dictionaries (skk-lookup-default-module))) - (insert (format \"%d %s\" n (lookup-dictionary-name i)) 10) ;10$B$O2~9T(B + (insert (format \"%d %s\" n (lookup-dictionary-name i)) 10) ;10は改行 (setq n (1+ n)))) -$B$J$*!"(BDDSKK $B$N5/F08e$KJQ?t$NCM$rJQ99$7$?>l9g$O!"(B*scratch* $B%P%C%U%!$G(B -$B4X?t(B `skk-lookup-get-content-setup-dic' $B$rI>2A$9$k$3$H(B.") +なお、DDSKK の起動後に変数の値を変更した場合は、*scratch* バッファで +関数 `skk-lookup-get-content-setup-dic' を評価すること.") (defvar skk-lookup-get-content-default-dic nil) (defvar skk-lookup-get-content-default-dic-name nil) ;;; skk-num.el related. (defcustom skk-use-numeric-conversion t - "*Non-nil $B$G$"$l$P!"?tCMJQ49$r9T$&!#(B" + "*Non-nil であれば、数値変換を行う。" :type 'boolean :group 'skk-num) (defcustom skk-non-numeric-prog-list nil - "*$B?tCMJQ49$K;H$o$J$$<-=q8!:w%W%m%0%i%`$N%j%9%H!#(B -`skk-use-numeric-conversion' $B$,(B non-nil $B$N>l9g$N$_M-8z!#%j%9%H$NMWAG$H$7$F$O!"(B + "*数値変換に使わない辞書検索プログラムのリスト。 +`skk-use-numeric-conversion' が non-nil の場合のみ有効。リストの要素としては、 -1. $B%W%m%0%i%`$N4X?tL>$rI=$9%7%s%\%k(B -2. $B%W%m%0%i%`$r0z?t$NCM$^$G;XDj$7$?7A$N%j%9%H(B +1. プログラムの関数名を表すシンボル +2. プログラムを引数の値まで指定した形のリスト -$B$N$$$:$l$G$b;XDj$G$-$k!#(B +のいずれでも指定できる。 -$BA0$N0lCW$7$?A4%W%m%0%i%`$,0lCW$HH=CG$5$l$k!#8e5Z$S(B -$B$9$Y$F$N0z?t$,0lCW$7$?>l9g$N$_0lCW$HH=CG$5$l$k!#(B +前者では、関数名の一致した全プログラムが一致と判断される。後者は +`skk-search-prog-list' の要素と同じ書式で表され、同リストの要素と関数名及び +すべての引数が一致した場合のみ一致と判断される。 -$B0lCW$NI>2A$O!"(B 1 $B$O4X?t(B `eq' $B$K$h$C$F!"(B 2 $B$O%j%9%H$KBP$7$F(B `equal' $B$K$h$C$F(B -$B9T$o$l$k!#(B +一致の評価は、 1 は関数 `eq' によって、 2 はリストに対して `equal' によって +行われる。 - ($B@_DjNc(B) + (設定例) (setq skk-non-numeric-prog-list \\='(skk-look skk-tankan-search (skk-search-jisyo-file \"/usr/share/skk/SKK-JISYO.jinmei\" 10000))) " - :type '(repeat (radio (symbol :tag "$B4X?tL>$N$_$G;XDj(B") - (list :tag "$B4X?tL>$H0z?t$N%j%9%H(B"))) + :type '(repeat (radio (symbol :tag "関数名のみで指定") + (list :tag "関数名と引数のリスト"))) :group 'skk-num) (defcustom skk-show-num-type-info t - "*Non-nil $B$J$i$P!"?tCMJQ49%(%s%H%j$N<-=qEPO?;~$KJQ49%?%$%W$N0FFb$rI=<($9$k!#(B" + "*Non-nil ならば、数値変換エントリの辞書登録時に変換タイプの案内を表示する。" :type 'boolean :group 'skk-num) @@ -4653,22 +4653,22 @@ KEY $B5Z$S(B VALUE $B$O>JN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# (5 . skk-num-type5-kanji) (8 . skk-num-grouping) (9 . skk-num-shogi)) - "*$B?tCM$NJQ49$N$?$a$N!"%$%s%G%/%9$HJQ49$K;HMQ$9$k4X?t$H$NO"A[%j%9%H!#(B -$B4X?t(B `skk-num-exp' $B$,;2>H$7$F$$$k!#(B -$B3FMWAG$O!"(B`($B%$%s%G%/%9(B . $B4X?tL>(B)' $B$H$$$&9=@.$K$J$C$F$$$k!#(B -$B%$%s%G%/%9$K$O!"Nc$($P8+=P$78l$,(B \"$BJ?@.(B#1$BG/(B\" $B$N$H$-!"(B`#' $B5-9f$ND>8e$KI=<((B -$B$5$l$k(B integer `1' $B$rBeF~$9$k!#(B - -$B%$%s%G%/%9$H4X?t$N4X78(B ($B%G%U%)%k%HCM(B) $B$O2<5-$NDL$j!#(B - 0 -> $BL5JQ49(B - 1 -> $BA43Q?t;z$XJQ49(B - 2 -> $B4A?t;z(B ($B0L $B4A?t;z(B ($B0L $B$=$N?t;z$=$N$b$N$r%-!<$K$7$F<-=q$r:F8!:w(B - 5 -> $B4A?t;z(B ($B $B7e6h@Z$j$XJQ49(B (1,234,567) - 9 -> $B>-4}$G;HMQ$9$k?t;z(B (\"$B#3;M(B\" $B$J$I(B) $B$KJQ49(B" - :type '(repeat (cons (radio :tag "$B%$%s%G%/%9(B" + "*数値の変換のための、インデクスと変換に使用する関数との連想リスト。 +関数 `skk-num-exp' が参照している。 +各要素は、`(インデクス . 関数名)' という構成になっている。 +インデクスには、例えば見出し語が \"平成#1年\" のとき、`#' 記号の直後に表示 +される integer `1' を代入する。 + +インデクスと関数の関係 (デフォルト値) は下記の通り。 + 0 -> 無変換 + 1 -> 全角数字へ変換 + 2 -> 漢数字 (位取りあり) へ変換 + 3 -> 漢数字 (位取りなし) へ変換 + 4 -> その数字そのものをキーにして辞書を再検索 + 5 -> 漢数字 (手形などで使用する文字を使用) へ変換 + 8 -> 桁区切りへ変換 (1,234,567) + 9 -> 将棋で使用する数字 (\"3四\" など) に変換" + :type '(repeat (cons (radio :tag "インデクス" (const 0) (const 1) (const 2) @@ -4677,13 +4677,13 @@ KEY $B5Z$S(B VALUE $B$O>JN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# (const 5) (const 8) (const 9)) - (function :tag "$B4X?t(B"))) + (function :tag "関数"))) :group 'skk-num) (defcustom skk-num-convert-float nil - "*Non-nil $B$G$"$l$P!"IbF0>.?tE@?t$r;H$C$?8+=P$78l$KBP1~$7$FJQ49$r9T$&!#(B -$B$3$NCM$r(B non-nil $B$K$9$k$3$H$G!"(B\"#.# /#1$B!%(B#1/#0$B7n(B#0$BF|(B/\" $B$J$I$N<-=q8+=P$7$,;HMQ(B -$B$G$-$J$/$J$k$N$G!"Cm0U!#(B" + "*Non-nil であれば、浮動小数点数を使った見出し語に対応して変換を行う。 +この値を non-nil にすることで、\"#.# /#1.#1/#0月#0日/\" などの辞書見出しが使用 +できなくなるので、注意。" :type 'boolean :group 'skk-num) @@ -4691,146 +4691,146 @@ KEY $B5Z$S(B VALUE $B$O>JN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!# (and (assq 2 skk-num-type-alist) (or (assq 3 skk-num-type-alist) (assq 5 skk-num-type-alist)))) "\ -*Non-nil $B$G$"$l$P!"0[$J$k?tCMI=8=$G$bJQ497k2L$,F1$8?tCM$r=EJ#$7$F=PNO$7$J$$!#(B" +*Non-nil であれば、異なる数値表現でも変換結果が同じ数値を重複して出力しない。" :type 'boolean :group 'skk-num) (defcustom skk-num-load-hook nil - "*skk-num.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" + "*skk-num.el をロードした後にコールされるフック。" :type 'hook :group 'skk-num) (defconst skk-num-alist-type1 - '((?0 . "$B#0(B") (?1 . "$B#1(B") (?2 . "$B#2(B") (?3 . "$B#3(B") - (?4 . "$B#4(B") (?5 . "$B#5(B") (?6 . "$B#6(B") (?7 . "$B#7(B") - (?8 . "$B#8(B") (?9 . "$B#9(B") - (?. . "$B!%(B") ; $B>.?tE@!#(B(?. . ".") $B$NJ}$,NI$$?M$b$$$k$+$b(B...$B!#(B + '((?0 . "0") (?1 . "1") (?2 . "2") (?3 . "3") + (?4 . "4") (?5 . "5") (?6 . "6") (?7 . "7") + (?8 . "8") (?9 . "9") + (?. . ".") ; 小数点。(?. . ".") の方が良い人もいるかも...。 (? . "")) - "ascii $B?t;z$N(B char type $B$HA43Q?t;z$N(B string type $B$NO"A[%j%9%H!#(B -\"1995\" -> \"$B#1#9#9#5(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") + "ascii 数字の char type と全角数字の string type の連想リスト。 +\"1995\" -> \"1995\" のような文字列へ変換する際に利用する。") (defconst skk-num-alist-type2 - '((?0 . "$B!;(B") (?1 . "$B0l(B") (?2 . "$BFs(B") (?3 . "$B;0(B") - (?4 . "$B;M(B") (?5 . "$B8^(B") (?6 . "$BO;(B") (?7 . "$B<7(B") - (?8 . "$BH,(B") (?9 . "$B6e(B") (?\ . "")) - "ascii $B?t;z$N(B char type $B$H4A?t;z$N(B string type $B$NO"A[%j%9%H!#(B -\"1995\" -> \"$B0l6e6e8^(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") + '((?0 . "〇") (?1 . "一") (?2 . "二") (?3 . "三") + (?4 . "四") (?5 . "五") (?6 . "六") (?7 . "七") + (?8 . "八") (?9 . "九") (?\ . "")) + "ascii 数字の char type と漢数字の string type の連想リスト。 +\"1995\" -> \"一九九五\" のような文字列へ変換する際に利用する。") (defconst skk-num-alist-type3 (append - '((ju . "$B==(B") (hyaku . "$BI4(B") (sen . "$B@i(B") - (man . "$BK|(B") (oku . "$B2/(B") (cho . "$BC{(B") (kei . "$B5~(B")) + '((ju . "十") (hyaku . "百") (sen . "千") + (man . "万") (oku . "億") (cho . "兆") (kei . "京")) skk-num-alist-type2) - "$B?t;z$N4A;zI=5-$rI=$9O"A[%j%9%H!#(B -\"1995\" -> \"$B@i6eI46e==8^(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") + "数字の漢字表記を表す連想リスト。 +\"1995\" -> \"千九百九十五\" のような文字列へ変換する際に利用する。") (defconst skk-num-alist-type5 - '((ju . "$B=&(B") (hyaku . "$BI4(B") (sen . "$Bot(B") - (man . "$Bh_(B") (oku . "$B2/(B") (cho . "$BC{(B") (kei . "$B5~(B") - (?0 . "$BNm(B") (?1 . "$B0m(B") (?2 . "$BFu(B") (?3 . "$B;2(B") - (?4 . "$B;M(B") (?5 . "$B8`(B") (?6 . "$BO;(B") (?7 . "$B<7(B") - (?8 . "$BH,(B") (?9 . "$B6e(B") (?\ . "")) - "$B?t;z$N4A;zI=5-$rI=$9O"A[%j%9%H!#(B -\"1995\" -> \"$B0mot6eI46e=&8`(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") + '((ju . "拾") (hyaku . "百") (sen . "阡") + (man . "萬") (oku . "億") (cho . "兆") (kei . "京") + (?0 . "零") (?1 . "壱") (?2 . "弐") (?3 . "参") + (?4 . "四") (?5 . "伍") (?6 . "六") (?7 . "七") + (?8 . "八") (?9 . "九") (?\ . "")) + "数字の漢字表記を表す連想リスト。 +\"1995\" -> \"壱阡九百九拾伍\" のような文字列へ変換する際に利用する。") (skk-deflocalvar skk-num-list nil - "`skk-henkan-key' $B$NCf$K4^$^$l$k?t;z$rI=$9J8;zNs$N%j%9%H!#(B -$BNc$($P!"(B\"$B"&$X$$$;$$(B7$B$M$s(B10$B$,$D(B\" $B$rJQ49$9$k$H$-!"(B`skk-henkan-key' $B$O(B -\"$B$X$$$;$$(B7$B$M$s(B10$B$,$D(B\" $B$G$"$j!"(B`skk-num-list' $B$O(B (\"7\" \"10\") $B$H$J$k!#(B + "`skk-henkan-key' の中に含まれる数字を表す文字列のリスト。 +例えば、\"▽へいせい7ねん10がつ\" を変換するとき、`skk-henkan-key' は +\"へいせい7ねん10がつ\" であり、`skk-num-list' は (\"7\" \"10\") となる。 \(buffer local)") (defvar skk-num-recompute-key nil - "#4 $B%?%$%W$N%-!<$K$h$j?tCM$N:F7W;;$r9T$C$?$H$-$N8!:w%-!Kt$O(B IP $B%"%I%l%9!#(B" - :type `(radio (string :tag "$B%[%9%HL>(B" + "*辞書サーバが起動しているホスト名又は IP アドレス。" + :type `(radio (string :tag "ホスト名" ,(or (getenv "SKKSERVER") "localhost")) (const nil)) :group 'skk-server) (defcustom skk-server-prog (getenv "SKKSERV") - "*$B<-=q%5!<%P%W%m%0%i%`L>!#(B -$B%U%k%Q%9$G=q$/!#(B -`skk-server-inhibit-startup-server' $B$,(B nil $B$N;~$K;2>H$5$l!"(B -$B$3$N%W%m%0%i%`$,(B SKK $B$h$j5/F0$5$l$k!#(B" - :type '(radio (file :tag "$B<-=q%5!<%PL>(B") - (const :tag "$B;XDj$7$J$$(B" nil)) + "*辞書サーバプログラム名。 +フルパスで書く。 +`skk-server-inhibit-startup-server' が nil の時に参照され、 +このプログラムが SKK より起動される。" + :type '(radio (file :tag "辞書サーバ名") + (const :tag "指定しない" nil)) :group 'skk-file :group 'skk-server) (defcustom skk-server-jisyo (getenv "SKK_JISYO") - "*$B<-=q%5!<%P%W%m%0%i%`$KEO$9<-=q%U%!%$%kL>!#(B -$B%U%k%Q%9$G=q$/!#(B -`skk-server-inhibit-startup-server' $B$,(B nil $B$N;~$K;2>H$5$l$k!#(B -$B<-=q%U%!%$%k$N;XDjK!$O<-=q%5!<%P$K$h$j0[$J$k$N$GCm0U!#(B + "*辞書サーバプログラムに渡す辞書ファイル名。 +フルパスで書く。 +`skk-server-inhibit-startup-server' が nil の時に参照される。 +辞書ファイルの指定法は辞書サーバにより異なるので注意。 % skkserv jisyo -$B$N7A<0$N;~$N$_MxMQ$G$-$k%*%W%7%g%s$G$"$k!#(B" - :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" ,(or skk-aux-large-jisyo "")) - (const :tag "$B;XDj$7$J$$(B" nil)) +の形式の時のみ利用できるオプションである。" + :type `(radio (file :tag "辞書ファイル名" ,(or skk-aux-large-jisyo "")) + (const :tag "指定しない" nil)) :group 'skk-file :group 'skk-server) (defcustom skk-server-portnum (if (eq system-type 'windows-nt) 1178 nil) - "*Non-nil $B$G$"$l$P!"$=$NCM$r(B port number $B$H$7$F(B skkserv $B$H(B TCP $B@\B3$9$k!#(B -/etc/services $B$rD>@\=q$-49$($k8"8B$,$J$$%f!<%6!<$N$?$a$NJQ?t!#(B -Microsoft Windows $B$G$O%G%U%)%k%HCM$H$7$F(B 1178 $B$,@_Dj$5$l$k!#(B" - :type '(radio (integer :tag "$B%]!<%HHV9f(B" 1178) - (const :tag "$B;XDj$7$J$$(B" nil)) + "*Non-nil であれば、その値を port number として skkserv と TCP 接続する。 +/etc/services を直接書き換える権限がないユーザーのための変数。 +Microsoft Windows ではデフォルト値として 1178 が設定される。" + :type '(radio (integer :tag "ポート番号" 1178) + (const :tag "指定しない" nil)) :group 'skk-server) (defcustom skk-servers-list nil - "*$B<-=q%5!<%PKh$N>pJs%j%9%H!#(B + "*辞書サーバ毎の情報リスト。 -$BJ#?t$N%[%9%H$GF0$$$F$$$k<-=q%5!<%P$K%"%/%;%9$G$-$k>l9g$K$O!"0J2<$N$h$&$K%j%9%H$N(B -$B3FMWAG$K=g$K%[%9%HL>!"%U%k%Q%9$G$N<-=q%5!<%PL>!"<-=q%5!<%P$KEO$9<-=q%U%!%$%kL>!"(B -$B<-=q%5!<%P$,;HMQ$9$k%]!<%HHV9f$r=q$-!"@_Dj$r$9$k$3$H$,$G$-$k!#(B +複数のホストで動いている辞書サーバにアクセスできる場合には、以下のようにリストの +各要素に順にホスト名、フルパスでの辞書サーバ名、辞書サーバに渡す辞書ファイル名、 +辞書サーバが使用するポート番号を書き、設定をすることができる。 (setq skk-servers-list \\='((\"host1\" \"/path/to/skkserv\" \"/path/to/SKK-JISYO.L\" 1178) (\"host2\" \"/path/to/skkserv\"))) -$B$3$N>l9g!":G=i$K;XDj$7$?<-=q%5!<%P$K%"%/%;%9$G$-$J$/$J$k$H!"<+F0E*$K=gl9g$O(B nil $B$r;XDj$9$k$+!"(B -$B2?$b=q$+$J$$$GNI$$!#(B +この場合、最初に指定した辞書サーバにアクセスできなくなると、自動的に順次リストにあ +る残りの辞書サーバにアクセスするようになる。 +辞書サーバのデフォルトの辞書及びポート番号を使用する場合は nil を指定するか、 +何も書かないで良い。 -$B$J$*!"%f!<%6!<<+?H$Kl9g$O!"(B +なお、ユーザー自身に実行権限のない辞書サーバを指定する場合は、 (setq skk-servers-list \\='((\"host1\") (\"host2\"))) -$B$N$h$&$K!"%[%9%HL>$@$1$r=q$/$3$H$,$G$-$k!#>e5-$N@_DjNc$G$O!"(Bhost1, host2 $B$K$*(B -$B$1$k(B skkserv $B%5!<%S%9$N(B TCP $B@\B3$N3+;O$N$_;n$_!"<-=q%5!<%P$N5/F0$O;n$_$J$$!#(B" +のように、ホスト名だけを書くことができる。上記の設定例では、host1, host2 にお +ける skkserv サービスの TCP 接続の開始のみ試み、辞書サーバの起動は試みない。" :type '(repeat - (list (string :tag "$B%[%9%HL>(B") - (radio :tag "$B<-=q%5!<%PL>(B" + (list (string :tag "ホスト名") + (radio :tag "辞書サーバ名" file - (const :tag "$B;XDj$7$J$$(B" nil)) - (radio :tag "$B<-=q%U%!%$%k(B" + (const :tag "指定しない" nil)) + (radio :tag "辞書ファイル" file - (const :tag "$B;XDj$7$J$$(B" nil)) - (radio :tag "$B%]!<%HHV9f(B" + (const :tag "指定しない" nil)) + (radio :tag "ポート番号" integer - (const :tag "$B;XDj$7$J$$(B" nil)))) + (const :tag "指定しない" nil)))) :group 'skk-server) (defcustom skk-server-report-response nil - "*Non-nil $B$G$"$l$P!"<-=q%5!<%P$N1~Ez>u67$rJs9p$9$k!#(B -$B6qBNE*$K$O!"JQ49;~$K<-=q%5!<%P$NAw=P$9$kJ8;z$r!#(B" + "*リモートシェルのプログラム名。" :type 'file :group 'skk-server) (defcustom skk-server-inhibit-startup-server t - "*Non-nil $B$G$"$l$P(B `call-process' $B$G$N<-=q%5!<%P5/F0$r6X;_$9$k!#(B" + "*Non-nil であれば `call-process' での辞書サーバ起動を禁止する。" :type 'boolean :group 'skk-server) (defcustom skk-server-load-hook nil - "*skk-server.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" + "*skk-server.el をロードした後にコールされるフック。" :type 'hook :group 'skk-server) ;;(defvar skk-server-debug nil -;; "*Non-nil $B$G$"$l$P!"<-=q%5!<%P%W%m%0%i%`$r%G%#%P%C%0%b!<%I$G5/F0$9$k!#(B -;;$B%G%#%P%C%0!&%b!<%I$G(B skkserv $B$rAv$i$;$k$H!"$=$N$^$^(B foreground $B$GAv$j!"(B -;;$B%a%C%;!<%8$r=PNO$9$k!#%-!<%\!<%I$+$i3d$j$3$_$r$+$1$k$3$H$b$G$-$k!#(B") +;; "*Non-nil であれば、辞書サーバプログラムをディバッグモードで起動する。 +;;ディバッグ・モードで skkserv を走らせると、そのまま foreground で走り、 +;;メッセージを出力する。キーボードから割りこみをかけることもできる。") (defconst skkserv-working-buffer " *skkserv*") (defvar skkserv-process nil) ;;; skk-sticky related. (defcustom skk-sticky-key nil - "*$BJQ493+;O0LCV$b$7$/$OAw$j3+;O0LCV$N;XDj$r$9$k%-!l9g$O(B + \";\" などの表示が可能なキーの場合は (setq skk-sticky-key \";\") - $B$N$h$&$K(B string $B$r@_Dj$7$F2<$5$$!#(B`skk-sticky-key' $B$K@_Dj$7$?J8(B - $B;z$=$N$b$N$rF~NO$7$?$$>l9g$O(B2$B2sB3$1$FBG$D$HF~NO$G$-$^$9!#(B + のように string を設定して下さい。`skk-sticky-key' に設定した文 + 字そのものを入力したい場合は2回続けて打つと入力できます。 -2. $BI=<($5$l$J$$%-!<(B +2. 表示されないキー - \"$BL5JQ49(B\" $B$N$h$&$JI=<($rH<$o$J$$%-!<$N>l9g$O(B + \"無変換\" のような表示を伴わないキーの場合は - (setq skk-sticky-key [muhenkan]) ; Windows $B4D6-$@$H(B [noconvert] + (setq skk-sticky-key [muhenkan]) ; Windows 環境だと [noconvert] - $B$N$h$&$K$=$N%-!<$rI=$o$9(B vector $B$r@_Dj$7$F2<$5$$!#(B + のようにそのキーを表わす vector を設定して下さい。 -3. $BF1;~BG80(B +3. 同時打鍵 - 2$B$D$N%-!<$rF1;~$KBG80$9$k$3$H$G$bJQ490LCV$r;XDj$G$-$^$9!#Nc$($P(B - \"f\" $B$H(B \"j\" $B$NF1;~BG80$G;XDj$9$k>l9g$O(B + 2つのキーを同時に打鍵することでも変換位置を指定できます。例えば + \"f\" と \"j\" の同時打鍵で指定する場合は (setq skk-sticky-key \\='(?f ?j)) - $B$N$h$&$K(B character $B$N%j%9%H$r@_Dj$7$F2<$5$$!#(B" - :type '(radio (string :tag "$BI=<(2DG=$J%-!<(B") - (vector :tag "$BI=<($5$l$J$$%-!<(B" symbol) - (list :tag "$BF1;~BG80(B" character character) - (const :tag "$B;XDj$7$J$$(B" nil)) + のように character のリストを設定して下さい。" + :type '(radio (string :tag "表示可能なキー") + (vector :tag "表示されないキー" symbol) + (list :tag "同時打鍵" character character) + (const :tag "指定しない" nil)) :group 'skk-sticky) (defcustom skk-sticky-double-interval 0.1 - "*$B$3$N;~4V0JFb$KBG80$5$l$?$b$N$rF1;~BG80$HH=Dj$9$k!#(B -$BC10L$OIC!#%G%U%)%k%H$O(B 0.1 $BIC!#(B" + "*この時間以内に打鍵されたものを同時打鍵と判定する。 +単位は秒。デフォルトは 0.1 秒。" :type 'number :group 'skk-sticky) @@ -4924,7 +4924,7 @@ Microsoft Windows $B$G$O%G%U%)%k%HCM$H$7$F(B 1178 $B$,@_Dj$5$l$k!#(B" (defcustom skk-study-file (if skk-user-directory (expand-file-name "study" skk-user-directory) (convert-standard-filename "~/.skk-study")) - "*$B3X=,7k2L$rJ]B8$9$k%U%!%$%k!#(B" + "*学習結果を保存するファイル。" :type 'file :group 'skk-study) @@ -4933,38 +4933,38 @@ Microsoft Windows $B$G$O%G%U%)%k%HCM$H$7$F(B 1178 $B$,@_Dj$5$l$k!#(B" skk-user-directory) (convert-standard-filename "~/.skk-study.BAK")) - "*$B3X=,7k2L$rJ]B8$9$k%U%!%$%k$N%P%C%/%"%C%W!#(B" + "*学習結果を保存するファイルのバックアップ。" :type 'file :group 'skk-study) (defcustom skk-study-associates-number 5 - "*$BJ]B8$9$k4XO"8l$N?t!#(B" + "*保存する関連語の数。" :type 'integer :group 'skk-study) (defcustom skk-study-sort-saving nil - "*Non-nil $B$G$"$l$P3X=,7k2L$r%=!<%H$7$F%;!<%V$9$k!#(B" + "*Non-nil であれば学習結果をソートしてセーブする。" :type 'boolean :group 'skk-study) (defcustom skk-study-check-alist-format nil - "*Non-nil $B$G$"$l$P!"3X=,7k2L$NFI$_9~$_;~$KO"A[%j%9%H$N%U%)!<%^%C%H$r%A%'%C%/$9$k!#(B" + "*Non-nil であれば、学習結果の読み込み時に連想リストのフォーマットをチェックする。" :type 'boolean :group 'skk-study) (defcustom skk-study-search-times 5 - "*$B8=:_$NJQ49%-!<$KBP$9$k4XO"JQ49%-!<$r$$$/$D$^$GAL$C$F8!:w$9$k$+!#(B" + "*現在の変換キーに対する関連変換キーをいくつまで遡って検索するか。" :type 'integer :group 'skk-study) (defcustom skk-study-first-candidate t - "*Non-nil $B$G$"$l$P!"Bh0l8uJd$G3NDj$7$?:]$b3X=,$9$k!#(B" + "*Non-nil であれば、第一候補で確定した際も学習する。" :type 'boolean :group 'skk-study) (defcustom skk-study-max-distance 30 - "*$BD>A0$K3NDj$7$?%]%$%s%H$H:#2s$NJQ49%]%$%s%H$,$3$N5wN%0J>eN%$l$F$$$k$H3X=,$7$J$$!#(B -nil $B$N>l9g$OD>A0$K3NDj$7$?%]%$%s%H$H$N5wN%$r9MN8$;$:$K3X=,$9$k!#(B" + "*直前に確定したポイントと今回の変換ポイントがこの距離以上離れていると学習しない。 +nil の場合は直前に確定したポイントとの距離を考慮せずに学習する。" :type '(radio integer (const nil)) :group 'skk-study) @@ -4974,24 +4974,24 @@ nil $B$N>l9g$OD>A0$K3NDj$7$?%]%$%s%H$H$N5wN%$r9MN8$;$:$K3X=,$9$k!#(B" (defvar skk-kakutei-end-function nil) (defvar skk-study-alist nil) (defvar skk-study-data-ring nil - "$BD>A0$N(B `skk-study-search-times' $B8DJ,$NJQ49%-!<$H3NDj8l%G!<%?!#(B -ring.el $B$rMxMQ$7$F$*$j!"6qBNE*$K$O!"2<5-$N$h$&$J9=B$$K$J$C$F$$$k!#(B + "直前の `skk-study-search-times' 個分の変換キーと確定語データ。 +ring.el を利用しており、具体的には、下記のような構造になっている。 -\(2 3 . [\(\"$B$3$&$>$&(B\" . \"$B9=B$(B\"\)\ - \(\"$B$0$?$$$F$-(B\" . \"$B6qBNE*(B\"\) \(\"$B$+$-(B\" . \"$B2<5-(B\"\)]\)") +\(2 3 . [\(\"こうぞう\" . \"構造\"\)\ + \(\"ぐたいてき\" . \"具体的\"\) \(\"かき\" . \"下記\"\)]\)") (defvar skk-study-last-save nil) (defvar skk-study-last-read nil) ;;; skk-tankan.el related. (defcustom skk-tankan-search-key ?@ - "*$BC14A;zJQ49$r9T$&%-!<%-%c%i%/%?!#(B" + "*単漢字変換を行うキーキャラクタ。" :type 'character :group 'skk-jisx0213 :group 'skk-tankan) -;;; $BJ8;z=89g$NJ8;z$KBP$7$F(B ($BItl9g$K!"I=<($9$k;~4V(B ($BIC(B)$B!#(B -$B$3$N;~4V$,7P2a$9$k$H<+F0E*$K(B tooltip $B$O>C$($k!#(B" + "*tooltip を使って候補など表示する場合に、表示する時間 (秒)。 +この時間が経過すると自動的に tooltip は消える。" :type 'integer :group 'skk-tooltip) (defcustom skk-tooltip-face nil - "*$B%D!<%k%F%#%C%W$KI=<($9$kJ8;zNs$KE,MQ$9$k%U%'%$%9$r;XDj$9$kJQ?t!#(B -$B8uJdJ8;zNs$N%U%'%$%9B0@-!J(B`skk-treat-candidate-appearance-function' $B$K$h$k(B -$B2C9)$J$I!K$r$=$N$^$^;H$$$?$$>l9g$O(B nil $B$K@_Dj$9$k!#(B + "*ツールティップに表示する文字列に適用するフェイスを指定する変数。 +候補文字列のフェイス属性(`skk-treat-candidate-appearance-function' による +加工など)をそのまま使いたい場合は nil に設定する。 - ($B@_DjNc(B) + (設定例) (setq skk-tooltip-face \\='font-lock-doc-face)" - :type '(radio (face :tag "$B%U%'%$%9$r;XDj(B" tooltip) - (const :tag "$B8uJdJ8;zNs$N%U%'%$%9B0@-$r$=$N$^$^;HMQ(B" nil)) + :type '(radio (face :tag "フェイスを指定" tooltip) + (const :tag "候補文字列のフェイス属性をそのまま使用" nil)) :group 'skk-henkan :group 'skk-tooltip) (defcustom skk-tooltip-parameters nil - "*tooltip $B$r;H$&>l9g$N(B SKK $BFH<+$N(B tooltip $B%U%l!<%`%Q%i%a!<%?@_Dj!#(B + "*tooltip を使う場合の SKK 独自の tooltip フレームパラメータ設定。 - ($B@_DjNc(B) + (設定例) (setq skk-tooltip-parameters \\='((foreground-color . \"navy blue\") @@ -5082,51 +5082,51 @@ ring.el $B$rMxMQ$7$F$*$j!"6qBNE*$K$O!"2<5-$N$h$&$J9=B$$K$J$C$F$$$k!#(B (border-color . \"royal blue\") (border-width . 1))) " - :type '(radio (const :tag "$B@_DjNc$r;n$9(B" + :type '(radio (const :tag "設定例を試す" ((foreground-color . "navy blue") (background-color . "alice blue") (border-color . "royal blue") (border-width . 1))) - (repeat :tag "$BG$0U$N@_Dj(B" - (cons (symbol :tag "$B%Q%i%a!<%?L>(B") - (sexp :tag "$BCM(B (S$B<0(B)")))) + (repeat :tag "任意の設定" + (cons (symbol :tag "パラメータ名") + (sexp :tag "値 (S式)")))) :group 'skk-tooltip) (defcustom skk-tooltip-mouse-behavior 'banish - "*Tooltip $B$rI=<($9$k>l9g$N!"%^%&%9%]%$%s%?$N5sF0!#(B -`follow' $B$J$i$P!"(B tip $B$N0LCV$K0\F0$9$k!#(B -`avoid' $B$J$i$P!"%&%#%s%I%&$NC<$KB`Hr$9$k!#(B -`avoid-maybe' $B$J$i$P!"%&%#%s%I%&>e$K$"$k%^%&%9%]%$%s%?$N$_B`Hr$9$k!#(B -`banish' $B$J$i$P!"%&%#%s%I%&$NC<$KB`Hr$7$?$^$^5"$C$F$3$J$$!#(B -`nil' $B$J$i$P!"B`Hr$7$J$$!#$3$N>l9g!"(Btip $B$N%F%-%9%H$H%^%&%9%]%$%s%?$,(B -$B=E$J$C$?$j!"$&$^$/(B tip $B$,I=<($G$-$J$+$C$?$j$9$k$N$GCm0U!#(B" - :type '(radio (const :tag "Tip $B$K=>$&(B" follow) - (const :tag "$B%&%#%s%I%&$NC<$KF($2$k(B" avoid) - (const :tag "$BF($2$?$[$&$,$h$5$=$&$J$H$-$@$1F($2$k(B" avoid-maybe) - (const :tag "$BF($2$?$^$^5"$i$J$$(B" banish) - (const :tag "$B5o:B$k(B" nil)) + "*Tooltip を表示する場合の、マウスポインタの挙動。 +`follow' ならば、 tip の位置に移動する。 +`avoid' ならば、ウィンドウの端に退避する。 +`avoid-maybe' ならば、ウィンドウ上にあるマウスポインタのみ退避する。 +`banish' ならば、ウィンドウの端に退避したまま帰ってこない。 +`nil' ならば、退避しない。この場合、tip のテキストとマウスポインタが +重なったり、うまく tip が表示できなかったりするので注意。" + :type '(radio (const :tag "Tip に従う" follow) + (const :tag "ウィンドウの端に逃げる" avoid) + (const :tag "逃げたほうがよさそうなときだけ逃げる" avoid-maybe) + (const :tag "逃げたまま帰らない" banish) + (const :tag "居座る" nil)) :group 'skk-tooltip) (defcustom skk-tooltip-x-offset (/ (1+ (frame-char-height)) 2) - "*Tooltip $B$NI=<(0LCV$r1&$K$:$i$9%T%/%;%k?t!#(B -$BIi$N@0?t$r;XDj$9$k$H:8$K$:$l$k!#(B" + "*Tooltip の表示位置を右にずらすピクセル数。 +負の整数を指定すると左にずれる。" :type 'integer :group 'skk-tooltip) (defcustom skk-tooltip-y-offset 0 - "*Tooltip $B$NI=<(0LCV$r2<$K$:$i$9%T%/%;%k?t!#(B -$BIi$N@0?t$r;XDj$9$k$H>e$K$:$l$k!#(B" + "*Tooltip の表示位置を下にずらすピクセル数。 +負の整数を指定すると上にずれる。" :type 'integer :group 'skk-tooltip) (defcustom skk-tooltip-function (lambda (tooltip-str) (skk-tooltip-show-at-point tooltip-str 'listing)) - "*Tip $BIA2h5!9=$N4X?t$r;XDj$9$k!#(B -$B%G%U%)%k%H$G$O(B Emacs $BI8=`$N(B Tooltip $B$r;HMQ$9$k!#(B -$BB>$N(B Tip $BIA2h5!9=(B $B$G$"$k(B pos-tip $B$d(B popup-tip $B$b;XDj$G$-$k!#(B" + "*Tip 描画機構の関数を指定する。 +デフォルトでは Emacs 標準の Tooltip を使用する。 +他の Tip 描画機構 である pos-tip や popup-tip も指定できる。" :type 'function :group 'skk-tooltip) @@ -5137,16 +5137,16 @@ ring.el $B$rMxMQ$7$F$*$j!"6qBNE*$K$O!"2<5-$N$h$&$J9=B$$K$J$C$F$$$k!#(B data-directory))) (locate-file "skk/SKK.tut" (list data-directory)) "/usr/local/share/skk/SKK.tut") - "*SKK $BF|K\8l%A%e!<%H%j%"%k$N%U%!%$%kL>(B ($B%Q%9$r4^$`(B)$B!#(B" + "*SKK 日本語チュートリアルのファイル名 (パスを含む)。" :type 'file :group 'skk-tut) (defvar skk-tut-current-lang nil) (defcustom skk-tut-lang "Japanese" - "*SKK $B%A%e!<%H%j%"%k$GMQ$$$k8@8l!#(B -\\[universal-argument] \\[skk-tutorial] $B$K$h$k8@8l;XDj$O!"$3$NJQ?t$h$j$bM%@h(B -$B$9$k!#(B" + "*SKK チュートリアルで用いる言語。 +\\[universal-argument] \\[skk-tutorial] による言語指定は、この変数よりも優先 +する。" :type '(radio (string "Japanese") (string "English")) :set (lambda (symbol value) @@ -5165,7 +5165,7 @@ For example, if filename of the Japanese version is \"SKK.tut\", then filename of the English version will be \"SKK.tut.E\".") (defcustom skk-tut-use-face skk-use-face - "*Non-nil $B$G$"$l$P!"%A%e!<%H%j%"%k$G(B face $B$rMxMQ$7$FI=<($9$k!#(B" + "*Non-nil であれば、チュートリアルで face を利用して表示する。" :type 'boolean :group 'skk-tut) @@ -5176,7 +5176,7 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "yellow" :background "slateblue")) (((class grayscale)) (:bold t) (:italic t))) - "*$B%A%e!<%H%j%"%kCf$N%;%/%7%g%s$NI=<(ItJ,$N(B face$B!#(B" + "*チュートリアル中のセクションの表示部分の face。" :group 'skk-tut) (defface skk-tut-do-it-face @@ -5186,7 +5186,7 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "LightGoldenrod")) (((class grayscale)) (:bold t))) - "*$B%A%e!<%H%j%"%kCf$N;X<(9`L\$NI=<(ItJ,$N(B face$B!#(B" + "*チュートリアル中の指示項目の表示部分の face。" :group 'skk-tut) (defface skk-tut-question-face @@ -5196,7 +5196,7 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "LightSkyBlue")) (((class grayscale)) (:underline t))) - "*$B%A%e!<%H%j%"%kCf$NLdBj$NI=<(ItJ,$N(B face$B!#(B" + "*チュートリアル中の問題の表示部分の face。" :group 'skk-tut) (defface skk-tut-key-bind-face @@ -5206,7 +5206,7 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "OrangeRed")) (((class grayscale)) (:bold t))) - "*$B%A%e!<%H%j%"%kCf$N%-!<%P%$%s%I$NI=<(ItJ,$N(B face$B!#(B" + "*チュートリアル中のキーバインドの表示部分の face。" :group 'skk-tut) (defface skk-tut-hint-face @@ -5216,8 +5216,8 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "Aquamarine")) (((class grayscale)) (:italic t))) - "*$B%A%e!<%H%j%"%kCf$N%R%s%H$NI=<(ItJ,$N(B face$B!#(B -$B8=:_$N$H$3$m!"(BSKK.tut.E $B$G$7$+;HMQ$5$l$F$$$J$$!#(B" + "*チュートリアル中のヒントの表示部分の face。 +現在のところ、SKK.tut.E でしか使用されていない。" :group 'skk-tut) ;;; skk-show-mode.el related. @@ -5225,23 +5225,23 @@ then filename of the English version will be \"SKK.tut.E\".") (defvar skk-show-mode-functions '((inline . skk-show-mode-inline) (tooltip . skk-show-mode-tooltip))) (defcustom skk-show-mode-show nil - "*Non-nil $A$G$"$l$P!"$+$J%b$B!<$A%I$d%"%9%-$B!<$A%b$B!<$A%I$XGP$jLf$o$C$?$H$-$K%+$B!<$A%=%k86=|$K(B skk-*-mode-string $A$r1mJ>$9$k!#(B + "*Non-nil であれば、かなモードやアスキーモードへ切り替わったときにカーソル付近に skk-*-mode-string を表示する。 -$BI=<(%9%?%$%k$O(B `skk-show-mode-style' $B$G;XDj$9$k!#(B" +表示スタイルは `skk-show-mode-style' で指定する。" :type 'boolean :group 'skk-visual) (defvar skk-show-mode-enable t - "$BFbItMQ!#%A%e!<%H%j%"%ku67$GH?1G$5$l$J$$$3$H$KBP=h(B +;; face の property が一部の状況で反映されないことに対処 (when (and (not noninteractive) window-system) (dolist (f '(skk-tut-section-face @@ -5278,7 +5278,7 @@ then filename of the English version will be \"SKK.tut.E\".") ;;; skk-viper.el related. (defcustom skk-use-viper nil - "*Non-nil $B$G$"$l$P!"(BVIPER $B$KBP1~$9$k!#(B" + "*Non-nil であれば、VIPER に対応する。" :type 'boolean :group 'skk-viper) @@ -5295,11 +5295,11 @@ then filename of the English version will be \"SKK.tut.E\".") (if skk-viper-use-vip-prefix 'vip-normalize-minor-mode-map-alist 'viper-normalize-minor-mode-map-alist) - "Viper $B$,(B `minor-mode-map-alist' $B$rD4@0$9$k$?$a$N4X?t!#(B") + "Viper が `minor-mode-map-alist' を調整するための関数。") ;;; skk-decor.el related. -;; skk-show-inline 'vertical $B$K8B$C$F%U%'%$%9$r:nMQ$5$;$k(B +;; skk-show-inline 'vertical に限ってフェイスを作用させる (defvar skk-inline-show-vertically-decor nil) (defface skk-inline-show-vertically-cand-face @@ -5308,7 +5308,7 @@ then filename of the English version will be \"SKK.tut.E\".") (t (:foreground "white" :background "gray40" :height 180 :box (:line-width 3 :color "gray40" :style released-button) ))) - "$B8uJd$KE,MQ$9$k(B FACE" + "候補に適用する FACE" :group 'skk-visual) (defface skk-inline-show-vertically-anno-face @@ -5316,10 +5316,10 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "DarkSeaGreen")) (t (:foreground "yellow" :height 120))) - "$B%"%N%F!<%7%g%s$KE,MQ$9$k(B FACE" + "アノテーションに適用する FACE" :group 'skk-visual) -;; tooltip $B$K8B$C$F%U%'%$%9$r:nMQ$5$;$k(B +;; tooltip に限ってフェイスを作用させる (defvar skk-tooltip-show-at-point-decor nil) (defface skk-tooltip-show-at-point-cand-face @@ -5328,7 +5328,7 @@ then filename of the English version will be \"SKK.tut.E\".") (t (:foreground "white" :background "gray40" :height 200 :box (:line-width 3 :color "gray40" :style released-button) ))) - "$B8uJd$KE,MQ$9$k(B FACE" + "候補に適用する FACE" :group 'skk-visual) (defface skk-tooltip-show-at-point-anno-face @@ -5336,10 +5336,10 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "DarkSeaGreen")) (t (:foreground "yellow" :height 120))) - "$B%"%N%F!<%7%g%s$KE,MQ$9$k(B FACE" + "アノテーションに適用する FACE" :group 'skk-visual) -;; $B8uJd%P%C%U%!$K8B$C$F%U%'%$%9$r:nMQ$5$;$k(B +;; 候補バッファに限ってフェイスを作用させる (defvar skk-henkan-show-candidates-buffer-decor nil) (defface skk-henkan-show-candidates-buffer-cand-face @@ -5348,7 +5348,7 @@ then filename of the English version will be \"SKK.tut.E\".") (t (:foreground "white" :background "gray40" :height 250 :box (:line-width 3 :color "gray40" :style released-button) ))) - "$B8uJd$KE,MQ$9$k(B FACE" + "候補に適用する FACE" :group 'skk-visual) (defface skk-henkan-show-candidates-buffer-anno-face @@ -5356,10 +5356,10 @@ then filename of the English version will be \"SKK.tut.E\".") (:foreground "DarkSeaGreen")) (t (:foreground "yellow" :height 120))) - "$B%"%N%F!<%7%g%s$KE,MQ$9$k(B FACE" + "アノテーションに適用する FACE" :group 'skk-visual) -;; skk-treat-candidate-appearance-function $B$N$?$a$KMQ0U$9$k4X?t(B +;; skk-treat-candidate-appearance-function のために用意する関数 (defun skk-treat-candidate-sample1 (candidate listing-p) (cond ((string-match ";" candidate) @@ -5387,7 +5387,7 @@ then filename of the English version will be \"SKK.tut.E\".") (cdr value))) (sep (if note (propertize (if (skk-annotation-display-p 'list) - " $B"b(B " + " ≒ " " !") 'face 'skk-tut-do-it-face) nil))) @@ -5411,7 +5411,7 @@ then filename of the English version will be \"SKK.tut.E\".") #'skk-emacs-circulate-modes) map) 'help-echo - "mouse-1: $B%b!<%I@ZBX(B($B=[4D(B)\nmouse-3: SKK $B%a%K%e!<(B" + "mouse-1: モード切替(循環)\nmouse-3: SKK メニュー" 'mouse-face 'highlight))) diff --git a/skk-version.el b/skk-version.el index c913cdf5..f5f9f23c 100644 --- a/skk-version.el +++ b/skk-version.el @@ -42,7 +42,7 @@ (car (cdr (split-string path "ddskk-")))) ver))) (put 'skk-version 'codename "Neppu") ; See also `READMEs/CODENAME.ja' -(put 'skk-version 'codename-ja "$BG.n>(B") +(put 'skk-version 'codename-ja "熱郛") ;;;###autoload (defun skk-version (&optional without-codename) diff --git a/skk-viper.el b/skk-viper.el index 6c29696a..48f3ab15 100644 --- a/skk-viper.el +++ b/skk-viper.el @@ -56,15 +56,15 @@ (setq skk-use-viper t) (save-match-data - (unless (string-match (sentence-end) "$B!#!)!*!%(B") - (setq sentence-end (concat "[$B!#!)!*!%(B]\\|" sentence-end)))) + (unless (string-match (sentence-end) "。?!.") + (setq sentence-end (concat "[。?!.]\\|" sentence-end)))) ;;; cursor color support. ;; what should we do if older Viper that doesn't have ;; `viper-insert-state-cursor-color'? (when (boundp 'viper-insert-state-cursor-color) (defadvice skk-cursor-current-color (around skk-viper-cursor-ad activate) - "vi-state $B0J30$G3n$D(B SKK $B%b!<%I$N$H$-$N$_(B SKK $BM3Mh$N%+!<%=%k?'$rJV$9!#(B" + "vi-state 以外で且つ SKK モードのときのみ SKK 由来のカーソル色を返す。" (cond ((not skk-use-color-cursor) ad-do-it) @@ -118,7 +118,7 @@ `(defadvice ,(intern (symbol-name func)) (after skk-viper-cursor-ad activate) "\ -`viper-insert-state-cursor-color' $B$r(B SKK $B$NF~NO%b!<%I$N%+!<%=%k?'$H9g$o$;$k!#(B" +`viper-insert-state-cursor-color' を SKK の入力モードのカーソル色と合わせる。" (when skk-use-color-cursor (setq viper-insert-state-cursor-color (skk-cursor-current-color))))))) @@ -133,19 +133,19 @@ (when (boundp 'viper-insert-state-cursor-color) (skk-defadvice read-from-minibuffer (before skk-viper-ad activate) - "`minibuffer-setup-hook' $B$K(B `update-buffer-local-frame-params' $B$r%U%C%/$9$k!#(B -`viper-read-string-with-history' $B$O(B `minibuffer-setup-hook' $B$r4X?t%m!<%+%k(B -$B$K$7$F$7$^$&$N$G!"M=$a(B `minibuffer-setup-hook' $B$K$+$1$F$*$$$?%U%C%/$,L58z(B -$B$H$J$k!#(B" + "`minibuffer-setup-hook' に `update-buffer-local-frame-params' をフックする。 +`viper-read-string-with-history' は `minibuffer-setup-hook' を関数ローカル +にしてしまうので、予め `minibuffer-setup-hook' にかけておいたフックが無効 +となる。" (when skk-use-color-cursor ;; non-command subr. (add-hook 'minibuffer-setup-hook 'ccc-update-buffer-local-frame-params 'append)))) ;;; advices. -;; vip-4 $B$NF1$O(B vip-read-string-with-history$B!)(B +;; vip-4 の同種の関数名は vip-read-string-with-history? (defadvice viper-read-string-with-history (after skk-viper-ad activate) - "$B8e$NJ8;z$,(B JISX0208/JISX0213 $B$@$C$?$i(B\ - `forward-word' $B$9$k!#(B" + ("SKK モードがオンで、ポイントの直後の文字が JISX0208/JISX0213 だったら\ + `forward-word' する。" (if (and skk-mode (or (skk-jisx0208-p (following-char)) (skk-jisx0213-p (following-char)))) @@ -165,8 +165,8 @@ (skk-viper-advice-select viper-backward-word-kernel vip-backward-word (around skk-ad activate) - ("SKK $B%b!<%I$,%*%s$G!"%]%$%s%H$ND>A0$NJ8;z$,(B JISX0208/JISX0213 $B$@$C$?$i(B\ - `backward-word' $B$9$k!#(B" + ("SKK モードがオンで、ポイントの直前の文字が JISX0208/JISX0213 だったら\ + `backward-word' する。" (if (and skk-mode (or (skk-jisx0208-p (preceding-char)) (skk-jisx0213-p (preceding-char)))) (backward-word (ad-get-arg 0)) @@ -176,10 +176,10 @@ (skk-viper-advice-select viper-del-backward-char-in-insert vip-delete-backward-char (around skk-ad activate) - ("$B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$J$iD>A0$NJ8;z$r>C$7$F3NDj$9$k!#(B -$B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$,(B nil $B$@$C$?$iA08uJd$rI=<($9$k!#(B -$B"&%b!<%I$G(B`$B"&(B'$B$h$j$bA0$N%]%$%s%H$GC$9!#(B" + ("▼モードで `skk-delete-implies-kakutei' なら直前の文字を消して確定する。 +▼モードで `skk-delete-implies-kakutei' が nil だったら前候補を表示する。 +▽モードで`▽'よりも前のポイントで実行すると確定する。 +確定入力モードで、かなプレフィックスの入力中ならば、かなプレフィックスを消す。" (skk-with-point-move (let ((count (or (prefix-numeric-value (ad-get-arg 0)) 1))) (cond @@ -188,12 +188,12 @@ (= (+ skk-henkan-end-point (length skk-henkan-okurigana)) (point))) (skk-previous-candidate) - ;; overwrite-mode $B$G!"%]%$%s%H$,A43QJ8;z$K0O$^$l$F$$$k$H(B - ;; $B$-$K(B delete-backward-char $B$r;H$&$H!"A43QJ8;z$O>C$9$,H>(B - ;; $B3QJ8;zJ,$7$+(B backward $BJ}8~$K%]%$%s%H$,La$i$J$$(B (Emacs - ;; 19.31 $B$K$F3NG'(B)$B!#JQ49Cf$N8uJd$KBP$7$F$O(B - ;; delete-backward-char $B$GI,$:A43QJ8;z(B 1 $BJ8;zJ,(B backward - ;; $BJ}8~$KLa$C$?J}$,NI$$!#(B + ;; overwrite-mode で、ポイントが全角文字に囲まれていると + ;; きに delete-backward-char を使うと、全角文字は消すが半 + ;; 角文字分しか backward 方向にポイントが戻らない (Emacs + ;; 19.31 にて確認)。変換中の候補に対しては + ;; delete-backward-char で必ず全角文字 1 文字分 backward + ;; 方向に戻った方が良い。 (if overwrite-mode (progn (backward-char count) @@ -214,8 +214,8 @@ (not (skk-get-prefix skk-current-rule-tree))) (setq skk-henkan-count 0) (skk-kakutei)) - ;; $BF~NOCf$N8+=P$78l$KBP$7$F$O(B delete-backward-char $B$G(B - ;; $BI,$:A43QJ8;z(B 1$BJ8;zJ,(B backward $BJ}8~$KLa$C$?J}$,NI$$!#(B + ;; 入力中の見出し語に対しては delete-backward-char で + ;; 必ず全角文字 1文字分 backward 方向に戻った方が良い。 ((and skk-henkan-mode overwrite-mode) (backward-char count) @@ -230,7 +230,7 @@ (skk-viper-advice-select viper-intercept-ESC-key vip-escape-to-emacs (before skk-add activate) - ("$B"&%b!<%I!""'%b!<%I$@$C$?$i3NDj$9$k!#(B" + ("▽モード、▼モードだったら確定する。" (when (and skk-mode skk-henkan-mode) (skk-kakutei)))) @@ -238,13 +238,13 @@ (skk-viper-advice-select viper-intercept-ESC-key vip-escape-to-emacs (after skk-kana-cleanup-ad activate) - ("vi-state $B0\9T$N:]$K3NDjF~NO%b!<%I$GF~NO$5$l$?%m!<%^;z%W%l%U%#%C%/%9$r>C$9!#(B" + ("vi-state 移行の際に確定入力モードで入力されたローマ字プレフィックスを消す。" (skk-kana-cleanup t))) (skk-viper-advice-select viper-join-lines vip-join-lines (after skk-ad activate) - ("$B%9%Z!<%9$NN>B&$NJ8;z%;%C%H$,(B JISX0208/JISX0213 $B$@$C$?$i%9%Z!<%9$r= ?$B$s(B c)) + ((and (<= ?ぁ c) (>= ?ん c)) (insert (skk-hiragana-to-katakana (char-to-string c)))) - ((and (<= ?$B%!(B c) (>= ?$B%s(B c)) + ((and (<= ?ァ c) (>= ?ン c)) (insert (skk-katakana-to-hiragana (char-to-string c)))) (t (insert-char c 1))) @@ -307,7 +307,7 @@ Convert hirakana to katakana and vice versa." (when (and (boundp 'viper-insert-state-cursor-color) (featurep 'skk-cursor)) (setq viper-insert-state-cursor-color (skk-cursor-current-color))) - ;; viper-toggle-key-action $B$HO"F0$5$;$k!)(B + ;; viper-toggle-key-action と連動させる? (skk-viper-normalize-map) (remove-hook 'skk-mode-hook 'skk-viper-init-function)) diff --git a/skk.el b/skk.el index 713035a6..6d348c12 100644 --- a/skk.el +++ b/skk.el @@ -57,11 +57,11 @@ (defvar skk-rdbms-private-jisyo-table) (defvar this-command-char)) -;; Daredevil SKK 13.1 $B$O(B APEL 10.7 $B$rMW5a$9$k!#(B -;; APEL 10.7 $B$Oe$N=EBg$J7g4Y$KBP1~$7$F$$$k$?$a!"I,?\$G$"$k!#(B -;; make-temp-file() $B$N7g4Y$K$D$$$F$O4X?t(B skk-save-jisyo-original() $B$N%3%a(B -;; $B%s%H$r;2>H!#(B +;; Daredevil SKK 13.1 は APEL 10.7 を要求する。 +;; APEL 10.7 は主に install.el の機能のために要求されている。 +;; APEL 10.6 はセキュリティ上の重大な欠陥に対応しているため、必須である。 +;; make-temp-file() の欠陥については関数 skk-save-jisyo-original() のコメ +;; ントを参照。 (eval-when-compile (require 'cl-lib)) @@ -74,12 +74,12 @@ ;; SKK common. - ;; skk $B$N5/F0;~!"(B*-autoloads $B$O2<5-$N#2l9g!"(B autoload $B$O(B package.el $B$K$h$C$F4IM}$5$l$k$?$a!"(B - ;; skk-autoloads$B$,%m!<%I$G$-$J$$>l9g!"C1$KL5;k$9$k!#(B - ;; | make $B$G%$%s%9%H!<%k(B | MELPA $B7PM3$G%$%s%9%H!<%k(B - ;; $B%U%!%$%kL>(B | skk-autoloads.el | ddskk-autoloads.el - ;; provide $B@k8@(B | $B$"$j(B (SKK-MK $B$,@8@.(B) | $B$J$7(B + ;; skk の起動時、*-autoloads は下記の2種類のうちどちらかに限って存在する。 + ;; MELPA経由の場合、 autoload は package.el によって管理されるため、 + ;; skk-autoloadsがロードできない場合、単に無視する。 + ;; | make でインストール | MELPA 経由でインストール + ;; ファイル名 | skk-autoloads.el | ddskk-autoloads.el + ;; provide 宣言 | あり (SKK-MK が生成) | なし (require 'skk-autoloads nil 'noerror) (provide 'skk) ; workaround for recursive require @@ -93,9 +93,9 @@ ;;;###autoload (defun skk-mode (&optional arg) - "$BF|K\8lF~NO%b!<%I!#(B -$B%^%$%J!<%b!<%I$N0l \"$B"&$Y$s$j(B\", and pressing space produces \"$B"'JXMx(B\" \(the +\"Benri\" => \"▽べんり\", and pressing space produces \"▼便利\" \(the solid triangle indicates that conversion is in progress\). Backspace steps through the candidate list in reverse. @@ -140,7 +140,7 @@ break.\) Inflected words \(verbs and adjectives\), like non-inflected words, begin input with a capital letter. However, for these words the end of the kanji string is signaled by capitalizing the next mora. Eg, \"TuyoI\" -=> \"$B"'6/$$(B\". If no candidate is available at that point, the inflection +=> \"▼強い\". If no candidate is available at that point, the inflection point will be indicated with an asterisk \"*\", and trailing characters will be displayed until a candidate is recognized. It will be immediately displayed \(pressing space is not necessary\). Space and @@ -155,7 +155,7 @@ dependent." (interactive "P") (setq skk-mode (cond ((null arg) (not skk-mode)) - ;; - $B$O(B -1 $B$KJQ49$5$l$k!#(B + ;; - は -1 に変換される。 ((> (prefix-numeric-value arg) 0) t) (t @@ -167,9 +167,9 @@ dependent." (unless skk-mode-invoked ;; enter `skk-mode' for the first time in this session. (skk-mode-invoke)) - ;; $B0J2<$O(B skk-mode $B$KF~$k$?$S$KKh2s%3!<%k$5$l$k%3!<%I!#(B + ;; 以下は skk-mode に入るたびに毎回コールされるコード。 (skk-create-file (skk-jisyo) - "$B6u$N(B SKK $B8D?M<-=q$r:n$j$^$7$?(B" + "空の SKK 個人辞書を作りました" "I have created an empty SKK Jisyo file for you") (skk-require-module) ;; To terminate kana input. @@ -181,10 +181,10 @@ dependent." ;;;###autoload (defun skk-auto-fill-mode (&optional arg) - "$BF|K\8lF~NO%b!<%I!#<+F0@^$jJV$75!G=IU$-!#(B -$B%^%$%J!<%b!<%I$N0ll9g$O!"(Bskk-yes-or-no-p $B$r;H$&$H$+$($C$F>iD9$K$J(B - ;; $B$k!#(B + ;; format を引数に持たせた場合は、skk-yes-or-no-p を使うとかえって冗長にな + ;; る。 (when (yes-or-no-p (if skk-japanese-message-and-error - "$B8D?M<-=q$rJ]B8$;$:$K(B Emacs $B$r=*N;$7$^$9!#NI$$$G$9$+!)(B " + "個人辞書を保存せずに Emacs を終了します。良いですか? " "Do you really wish to kill Emacs without saving Jisyo? ")) (let ((buff (skk-get-jisyo-buffer skk-jisyo 'nomsg))) (remove-hook 'kill-emacs-hook 'skk-save-jisyo) @@ -213,10 +213,10 @@ dependent." (save-buffers-kill-emacs query)))) (defun skk-restart () - "`skk-init-file' $B$N:F%m!<%I5Z$S3Fl9g$O(B -$B;H$&$Y$-$G$J$$!#(B -`skk-kakutei-key' $B$NJQ99$K$OBP1~$G$-$F$$$J$$!#(B" + "`skk-init-file' の再ロード及び各種再設定の後 SKK モードを起動する。 +各種ユーザ変数をいったん初期化するので、~/.emacs.d/init.el で SKK の設定をしている場合は +使うべきでない。 +`skk-kakutei-key' の変更には対応できていない。" (interactive) (skk-save-jisyo) (setq skk-jisyo-update-vector nil) @@ -225,12 +225,12 @@ dependent." (setq skk-server-disable-completion nil) (kill-local-variable 'skk-rule-tree) (setq skk-rule-tree nil) - ;; $B$$$C$=(B unload-feature $B$H$+$7$?$[$&$,$$$$$N$+$b$7$l$J$$!#(B - ;; skk-kakutei-key $B$K4X$7$F$O(B minibuffer-local-map $B$J$I$N=hM}$b!#(B + ;; いっそ unload-feature とかしたほうがいいのかもしれない。 + ;; skk-kakutei-key に関しては minibuffer-local-map などの処理も。 (mapatoms (lambda (sym) - ;; skk-user-directory, skk-init-file $B0J30$N(B defcustom $B$G@k8@(B - ;; $B$5$l$?JQ?t$N$&$A!"(Bsaved-value $B$r;}$?$J$$$b$N$r:F=i4|2=!#(B - ;; $BB>$K$b=|30$9$Y$-JQ?t$,$J$$$+MW8!F$!#(B + ;; skk-user-directory, skk-init-file 以外の defcustom で宣言 + ;; された変数のうち、saved-value を持たないものを再初期化。 + ;; 他にも除外すべき変数がないか要検討。 (when (and (string-match "^skk-" (symbol-name sym)) (not (memq sym '(skk-user-directory skk-init-file))) (not (plist-member (symbol-plist sym) 'saved-value)) @@ -244,7 +244,7 @@ dependent." (skk-mode 1))) (defun skk-require-module () - ;; skk-mode $B$KF~$k$?$S$KpJsMQ%U%!%$%k$r:n$j$^$7$?(B" + "SKK の統計情報用ファイルを作りました" "I have created an SKK record file for you")) (skk-setup-auto-paren) ; necessary to call before compiling skk-rule-tree. - ;; SKK $B3HD%F~NO5!G=$N@_Dj(B + ;; SKK 拡張入力機能の設定 (cond (skk-use-act - ;; $B3HD%%m!<%^;zF~NO(B ACT + ;; 拡張ローマ字入力 ACT (require 'skk-act)) (skk-use-azik - ;; $B3HD%%m!<%^;zF~NO(B AZIK + ;; 拡張ローマ字入力 AZIK (require 'skk-azik)) ((featurep 'skk-tutcdef) ;; TUT-code (require 'skk-tutcode)) (skk-use-kana-keyboard - ;; $B2>L>F~NO(B ($BF|K\8l5l(B JIS $B$^$?$O?F;X%7%U%H(B) + ;; 仮名入力 (日本語旧 JIS または親指シフト) (skk-kanagaki-initialize))) (skk-emacs-prepare-menu) (skk-setup-charset-list) @@ -326,10 +326,10 @@ dependent." ;;; setup (defun skk-setup-shared-private-jisyo () - ;; vector $B$ND9$5$O!"(B`skk-save-jisyo' $B$,<:GT$7$J$$A0Ds$J$i$P(B - ;; skk-jisyo-save-count $B$HF1$8$G$h$$!#%(%i!<$=$NB>$G<:GT$9$k2DG=@-$r(B - ;; $B9MN8$9$k$H!"$=$l$h$j>/$7D9$$J}$,LdBj$,5/$3$j$K$/$$!#(B - ;; ($B0J2<$N6qBNE*$J?t;z$K$O:,5r$O$J$$(B) + ;; vector の長さは、`skk-save-jisyo' が失敗しない前提ならば + ;; skk-jisyo-save-count と同じでよい。エラーその他で失敗する可能性を + ;; 考慮すると、それより少し長い方が問題が起こりにくい。 + ;; (以下の具体的な数字には根拠はない) (setq skk-jisyo-update-vector (make-vector (max (* 2 skk-jisyo-save-count) (+ 20 skk-jisyo-save-count)) @@ -360,7 +360,7 @@ dependent." japanese-jisx0208-1978))))) (defun skk-setup-keymap () - "SKK $B$N%-!<$r@_Dj$9$k!#(B" + "SKK のキーを設定する。" (cond (skk-j-mode (skk-define-j-mode-map) (skk-setup-j-mode-map-options)) @@ -380,11 +380,11 @@ dependent." skk-rom-kana-rule-list)))) (defun skk-define-menu (map) - "SKK $B$N%W%k%@%&%s%a%K%e!<$rDj5A$9$k!#(B" + "SKK のプルダウンメニューを定義する。" (easy-menu-define skk-menu map "Menu used in SKK mode." skk-menu-items)) (defun skk-define-j-mode-map () - "$B%-!<%^%C%W(B `skk-j-mode-map' $B$rDj5A$9$k!#(B" + "キーマップ `skk-j-mode-map' を定義する。" (unless (keymapp skk-j-mode-map) (setq skk-j-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-j-mode skk-j-mode-map) @@ -396,14 +396,14 @@ dependent." (skk-define-menu skk-j-mode-map))) (defun skk-define-latin-mode-map () - "$B%-!<%^%C%W(B `skk-latin-mode-map' $B$rDj5A$9$k!#(B" + "キーマップ `skk-latin-mode-map' を定義する。" (unless (keymapp skk-latin-mode-map) (setq skk-latin-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-latin-mode skk-latin-mode-map) (skk-define-menu skk-latin-mode-map))) (defun skk-define-jisx0208-latin-mode-map () - "$B%-!<%^%C%W(B `skk-jisx0208-latin-mode-map' $B$rDj5A$9$k!#(B" + "キーマップ `skk-jisx0208-latin-mode-map' を定義する。" (unless (keymapp skk-jisx0208-latin-mode-map) (setq skk-jisx0208-latin-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-jisx0208-latin-mode @@ -419,7 +419,7 @@ dependent." (skk-define-menu skk-jisx0208-latin-mode-map))) (defun skk-define-abbrev-mode-map () - "$B%-!<%^%C%W(B `skk-abbrev-mode-map' $B$rDj5A$9$k!#(B" + "キーマップ `skk-abbrev-mode-map' を定義する。" (unless (keymapp skk-abbrev-mode-map) (setq skk-abbrev-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-abbrev-mode skk-abbrev-mode-map) @@ -454,12 +454,12 @@ dependent." ;; Workaround for key translation. (when (eq skk-try-completion-char 9) - ;; tab $B%-!<$O(B $B$NDj5A$,L5$1$l$P(B TAB $B$NDj5A$,3d$jEv$F$i$l$k!#(B - ;; Org-mode $B$J$I$O(B $B$rDj5A$9$k$N$G!$(BSKK $B$NJ}$G$b(B $B$rDj5A(B - ;; $B$9$kI,MW$,$"$k!#(B + ;; tab キーは の定義が無ければ TAB の定義が割り当てられる。 + ;; Org-mode などは を定義するので,SKK の方でも を定義 + ;; する必要がある。 (define-key skk-j-mode-map [(tab)] #'skk-comp-wrapper)) - ;; comp $B$H(B dcomp $B$G$NA08uJd$XLa$kF0:n$r(B Shift TAB $B$G$b2DG=$H$9$k!#(B + ;; comp と dcomp での前候補へ戻る動作を Shift TAB でも可能とする。 (when skk-previous-completion-use-backtab (define-key skk-j-mode-map skk-previous-completion-backtab-key #'skk-previous-comp-maybe)) @@ -521,7 +521,7 @@ dependent." #'skk-comp-start-henkan)))) (defun skk-make-indicator-alist () - "SKK $B%$%s%8%1!<%?7?%*%V%8%'%/%H$rMQ0U$7!"O"A[%j%9%H$K$^$H$a$k!#(B" + "SKK インジケータ型オブジェクトを用意し、連想リストにまとめる。" (skk-emacs-prepare-modeline-properties) (let ((mode-string-list '(skk-latin-mode-string skk-hiragana-mode-string @@ -539,8 +539,8 @@ dependent." (string-match "skk-\\([-a-z0-9]+\\)-mode-string" mode) (setq mode (intern (match-string-no-properties 1 mode))) (setq string (symbol-value symbol)) - ;; $BK\Mh$J$i$3$N$h$&$K%f!<%6JQ?t$r2C9)$9$k$N$O$*$+$7$$$,!"(B - ;; $B0\9T4|$N=hCV$H$7$F;CDjE*$K9T$J$&!#(B + ;; 本来ならこのようにユーザ変数を加工するのはおかしいが、 + ;; 移行期の処置として暫定的に行なう。 (cond ((string-match "^ +" string) ;; minor-mode setting @@ -563,7 +563,7 @@ dependent." (funcall skk-indicator-suffix-func mode)))) (defun skk-setup-modeline () - "$B%b!<%I%i%$%s$X$N%9%F!<%?%9I=<($r=`Hw$9$k!#(B" + "モードラインへのステータス表示を準備する。" (setq skk-indicator-alist (skk-make-indicator-alist)) (cl-case skk-status-indicator (left @@ -618,12 +618,12 @@ dependent." (define-key skk-j-mode-map key emulation))))) (defun skk-setup-delete-backward-char () - "$B!V8eB`!W7O$N%-!<$K%3%^%s%I(B `skk-delete-backward-char' $B$r3dEv$F$k!#(B" + "「後退」系のキーにコマンド `skk-delete-backward-char' を割当てる。" (skk-setup-emulation-commands skk-delete-backward-char-commands 'skk-delete-backward-char)) (defun skk-setup-undo () - "$B!V$d$jD>$7!W7O$N%-!<$K%3%^%s%I(B `skk-undo' $B$r3dEv$F$k!#(B" + "「やり直し」系のキーにコマンド `skk-undo' を割当てる。" (skk-setup-emulation-commands skk-undo-commands 'skk-undo)) (defun skk-setup-verbose-messages () @@ -647,13 +647,13 @@ dependent." (intern-soft (format "skk-search-prog-list-%d" x)))) - '((skk-search-tankanji . "$BC14A;z(B") - (skk-search-identity . "$BL5JQ49(B") - (skk-search-katakana . "$B%+%?%+%J(B") - (skk-search-hankaku-katakana . "$BH>3Q%+%J(B") - (skk-search-jisx0208-romaji . "$BA43Q%m!<%^(B") - (skk-search-romaji . "$B%m!<%^(B") - (nil . "$BL$Dj5A(B"))))) + '((skk-search-tankanji . "単漢字") + (skk-search-identity . "無変換") + (skk-search-katakana . "カタカナ") + (skk-search-hankaku-katakana . "半角カナ") + (skk-search-jisx0208-romaji . "全角ローマ") + (skk-search-romaji . "ローマ") + (nil . "未定義"))))) '(5 6 7 8 9 0))) " ")) new) ; END varlist ;; BODY @@ -668,14 +668,14 @@ dependent." (setq skk-henkan-on-message new)))) (defun skk-compile-init-file-maybe () - "$BI,MW$J$i(B `skk-init-file' $B$r%P%$%H%3%s%Q%$%k$9$k!#(B -`skk-byte-compile-init-file' $B$,(B non-nil $B$N>l9g$G!"(B`skk-init-file' $B$r%P%$%H%3(B -$B%s%Q%$%k$7$?%U%!%$%k$,B8:_$7$J$$$+!"$=$N%P%$%H%3%s%Q%$%k:Q%U%!%$%k$h$j(B -`skk-init-file' $B$NJ}$,?7$7$$$H$-$O!"(B`skk-init-file' $B$r%P%$%H%3%s%Q%$%k$9$k!#(B - -`skk-byte-compile-init-file' $B$,(B nil $B$N>l9g$G!"(B`skk-init-file' $B$r%P%$%H%3%s%Q(B -$B%$%k$7$?%U%!%$%k$h$j(B `skk-init-file' $B$NJ}$,?7$7$$$H$-$O!"$=$N%P%$%H%3%s%Q%$(B -$B%k:Q%U%!%$%k$r>C$9!#(B" + "必要なら `skk-init-file' をバイトコンパイルする。 +`skk-byte-compile-init-file' が non-nil の場合で、`skk-init-file' をバイトコ +ンパイルしたファイルが存在しないか、そのバイトコンパイル済ファイルより +`skk-init-file' の方が新しいときは、`skk-init-file' をバイトコンパイルする。 + +`skk-byte-compile-init-file' が nil の場合で、`skk-init-file' をバイトコンパ +イルしたファイルより `skk-init-file' の方が新しいときは、そのバイトコンパイ +ル済ファイルを消す。" (save-match-data (let* ((file (expand-file-name skk-init-file)) (init-file (if (file-exists-p (concat file ".el")) @@ -690,7 +690,7 @@ dependent." (or (not (file-exists-p elc)) (file-newer-than-file-p init-file elc))) (save-window-excursion ; for keep window configuration. - (skk-message "%s $B$r%P%$%H%3%s%Q%$%k$7$^$9(B" + (skk-message "%s をバイトコンパイルします" "Byte-compile %s" skk-init-file) (sit-for 2) @@ -713,9 +713,9 @@ dependent." (setq this-command 'ignore))))) (defun skk-setup-delete-selection-mode () - "Delete Selection $B%b!<%I$N$?$a$N@_Dj$r$9$k!#(B -Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$K(B -$B%;%C%H%"%C%W$9$k!#(B" + "Delete Selection モードのための設定をする。 +Delete Selection モードが SKK を使った日本語入力に対しても機能するように +セットアップする。" (let ((funcs '(skk-current-kuten skk-current-touten skk-input-by-code-or-menu @@ -731,8 +731,8 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ (defun skk-setup-auto-paren () (when (and skk-auto-insert-paren skk-auto-paren-string-alist) - ;; skk-auto-paren-string-alist $B$NCf$+$i!"(B - ;; skk-special-midashi-char-list $B$NMWAG$K4XO"$9$k$b$N$r$N=PNOJ8;z$K(B - ;; $B%P%$%s%I$5$l$F$$$J$$$+$I$&$+$r3NG'$9$k!#(B + ;; 割り付けようとしているキーが、何か他の出力文字に + ;; バインドされていないかどうかを確認する。 (null (assoc str skk-rom-kana-base-rule-list)) (null (assoc str skk-rom-kana-rule-list))) - ;; skk-auto-paren-string-alist $B$N3FMWAG$N(B car $B$NJ8;z$,(B - ;; ascii char $B$G$"$k>l9g$O!"(Bskk-rom-kana-rule-list, - ;; skk-rom-kana-base-rule-list $B$K$=$NJ8;z$r=q$-9~$`!#(B - ;; $BK\Mh$O(B ascii char $B$O(B skk-rom-kana-rule-list, - ;; skk-rom-kana-base-rule-list $B$K=q$/I,MW$,$J$$(B - ;; --- skk-emulate-original-map$B$K$h$kF~NO$,9T$J$o$l$k(B --- - ;; $B$,!"(Bskk-auto-paren-string-alist $B$K;XDj$5$l$?BP$K$J$k(B - ;; $BJ8;z$NA^F~$N$?$a$K$O!"%-!<$H$J$kJ8;z$r=q$$$F$*$/I,MW$,(B - ;; $B$"$k!#(B + ;; skk-auto-paren-string-alist の各要素の car の文字が + ;; ascii char である場合は、skk-rom-kana-rule-list, + ;; skk-rom-kana-base-rule-list にその文字を書き込む。 + ;; 本来は ascii char は skk-rom-kana-rule-list, + ;; skk-rom-kana-base-rule-list に書く必要がない + ;; --- skk-emulate-original-mapによる入力が行なわれる --- + ;; が、skk-auto-paren-string-alist に指定された対になる + ;; 文字の挿入のためには、キーとなる文字を書いておく必要が + ;; ある。 (setq skk-rom-kana-rule-list (cons (list str nil str) skk-rom-kana-rule-list)))))))) (defun skk-setup-minibuffer () - "$B%+%l%s%H%P%C%U%!$NF~NO%b!<%I$K=>$C$F%_%K%P%C%U%!$NF~NO%b!<%I$r@_Dj$9$k!#(B" + "カレントバッファの入力モードに従ってミニバッファの入力モードを設定する。" (cl-case skk-minibuffer-origin-mode (hiragana (skk-j-mode-on)) @@ -787,48 +787,48 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ ;;;###autoload (defun skk-setup-jisyo-buffer () - "SKK $B$N<-=q%P%C%U%!$rMQ0U$9$k!#(B -`skk-jisyo' $B$N<-=q%P%C%U%!$G!"(B - (1)$B6u%P%C%U%!$G$"$l$P!"?7$7$/%X%C%@!<$r:n$j!"(B - (2)$B<-=q%(%s%H%j$,$"$k4{B8$N<-=q%P%C%U%!$J$i$P!"%X%C%@!<$,@5$7$$$+$I$&$+$r(B - $B%A%'%C%/$9$k!#(B" - - ;; skk-okuri-ari-min $B$H(B skk-okuri-nasi-min $B$N0LCV$rJQ99$7$?!#(B - ;; $B"-(B $B?7$7$$(B skk-okuri-ari-min + "SKK の辞書バッファを用意する。 +`skk-jisyo' の辞書バッファで、 + (1)空バッファであれば、新しくヘッダーを作り、 + (2)辞書エントリがある既存の辞書バッファならば、ヘッダーが正しいかどうかを + チェックする。" + + ;; skk-okuri-ari-min と skk-okuri-nasi-min の位置を変更した。 + ;; ↓ 新しい skk-okuri-ari-min ;; ;; okuri-ari entries. - ;; $B"+(B $B0JA0$N(B skk-okuri-ari-min + ;; ← 以前の skk-okuri-ari-min ;; - ;; $B"-(B skk-okuri-ari-max $B"-(B $B?7$7$$(B skk-okuri-nasi-min + ;; ↓ skk-okuri-ari-max ↓ 新しい skk-okuri-nasi-min ;; ;; okuri-nasi entries. - ;; $B"+(B $B0JA0$N(B skk-okuri-nasi-min + ;; ← 以前の skk-okuri-nasi-min ;; ;; - ;; $BJQ99A0$N0LCV$G$"$l$P!"2<5-$N$h$&$J6u<-=q$N>l9g!"(B + ;; 変更前の位置であれば、下記のような空辞書の場合、 ;; ;; ;; okuri-ari entries. ;; ;; okuri-nasi entries. ;; - ;; skk-okuri-ari-min $B$H(B skk-okuri-ari-max $B$N%^!<%+!<$,=E$J$C$F$7$^$$!"(B - ;; skk-okuri-ari-min $B$N0LCV$KA^F~$7$?8uJd$,(B skk-okuri-ari-max $B$N%^!<%+!<(B - ;; $B$r8eJ}$K2!$7$d$i$J$$!#(B + ;; skk-okuri-ari-min と skk-okuri-ari-max のマーカーが重なってしまい、 + ;; skk-okuri-ari-min の位置に挿入した候補が skk-okuri-ari-max のマーカー + ;; を後方に押しやらない。 ;; - ;; case-fold-search $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B + ;; case-fold-search は、辞書バッファでは常に nil。 (save-match-data (when (zerop (buffer-size)) - ;; $B6u%P%C%U%!$@$C$?$i!"%X%C%@!<$N$_A^F~!#(B + ;; 空バッファだったら、ヘッダーのみ挿入。 (insert ";; okuri-ari entries.\n" ";; okuri-nasi entries.\n")) (goto-char (point-min)) (unless (re-search-forward "^;; okuri-ari entries.$" nil 'noerror) - (skk-error "$BAw$j$"$j%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s!*(B" + (skk-error "送りありエントリのヘッダーがありません!" "Header line for okuri-ari entries is missing!")) - ;; $B8GDj%]%$%s%H$J$N$G!"(B(point) $B$G==J,!#(B + ;; 固定ポイントなので、(point) で十分。 (setq skk-okuri-ari-min (point)) (unless (re-search-forward "^;; okuri-nasi entries.$" nil 'noerror) - (skk-error "$BAw$j$J$7%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s!*(B" + (skk-error "送りなしエントリのヘッダーがありません!" "Header line for okuri-nasi entries is missing!")) (beginning-of-line) - ;; $B6&M-<-=q$J$i8GDj%]%$%s%H$G$bNI$$$N$@$,!"<-=q%P%C%U%!$GJT=8$r9T(B - ;; $B$J$C$?$H$-$N$3$H$rG[N8$7$F%^!<%+!<$K$7$F$*$/!#(B + ;; 共有辞書なら固定ポイントでも良いのだが、辞書バッファで編集を行 + ;; なったときのことを配慮してマーカーにしておく。 (setq skk-okuri-ari-max (point-marker)) (forward-line 1) (backward-char 1) @@ -840,12 +840,12 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ (null (car (mapcar #'(lambda (e) (string-match "skk" (symbol-name e))) isearch-mode-hook))) - (skk-message "skk-setup.el $B$r;29M$K$7$F!"(Bisearch-mode-hook $B$r@_Dj$7$F$/$@$5$$!#(B" + (skk-message "skk-setup.el を参考にして、isearch-mode-hook を設定してください。" "Please refer to the source file `skk-setup.el' and setup isearch-mode-hook.") )) ;;;###autoload (defun skk-emulate-original-map (arg) - "$B%-!l9g$O!"(Bnil $B$rJV$9!#(B" + "KEY から universal arguments を取り除き、COMMAND を実行するキーを返す。 +`execute-extended-command' によってコマンドが実行された場合は、nil を返す。" (while (not (or (zerop (length key)) (eq command (key-binding key)))) (setq key (vconcat (cdr (append key nil))))) @@ -884,25 +884,25 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ ;;;###autoload (defun skk-adjust-user-option () - "$B%f!<%6%*%W%7%g%s$NIT@09g$rD4@0$9$k!#(B" + "ユーザオプションの不整合を調整する。" (unless (skk-color-cursor-display-p) (setq skk-use-color-cursor nil)) - ;; $BN>N)$G$-$J$$%*%W%7%g%s$rD4@0$9$k!#(B + ;; 両立できないオプションを調整する。 (when skk-process-okuri-early - ;; skk-process-okuri-early $B$NCM$,(B non-nil $B$G$"$k$H$-$K2<5-$NCM$,(B non-nil - ;; $B$G$"$l$P@5>o$KF0$+$J$$$N$G$3$NJQ?t$NM%@h=g0L$r9b$/$7$?!#(B + ;; skk-process-okuri-early の値が non-nil であるときに下記の値が non-nil + ;; であれば正常に動かないのでこの変数の優先順位を高くした。 (setq skk-kakutei-early nil skk-auto-okuri-process nil skk-henkan-okuri-strictly nil skk-henkan-strict-okuri-precedence nil)) (unless skk-jisyo-save-count - ;; $B8=:_$N8e(B) $B$H%+!<%=%k$N4V$NJ8;zNs$K$D$$(B -$B$F!"$R$i$,$J$H%+%?%+%J$rF~$lBX$($k!#(B" + "■モード、▼モードで、かなモードとカナモードをトグルで切り替える。 +▽モードでは `skk-henkan-start-point' (▽の直後) とカーソルの間の文字列につい +て、ひらがなとカタカナを入れ替える。" (interactive "P") - (let ((show skk-show-mode-enable)) ;$B%A%e!<%H%j%"%k= skk-save-point (point)) ;; (not (eobp)) (or - ;; "$B!<(B" $B$G$OJ8;zuBV$KLa$9!#(B -`edit-picture-hook' $B$K(B `add-hook' $B$7$F;HMQ$9$k!#(B" - ;; $B4{B8$N%P%C%U%!$r(B picture mode $B$K$7$?$H$-!"(Bpicture-mode $B4X?t$O(B - ;; kill-all-local-variables $B4X?t$r8F$P$J$$$N$G!"(BSKK $B4XO"$N%P%C%U%!%m!<%+%k(B - ;; $BJQ?t$,85$N%P%C%U%!$NCM$N$^$^$K$J$C$F$7$^$&!#$=$3$G!"(Bpicture mode $B$KF~$C$?(B - ;; $B$H$-$K%U%C%/$rMxMQ$7$F$3$l$i$N%P%C%U%!%m!<%+%kJQ?t$r(B kill $B$9$k!#(B - ;; RMS $B$O(B picture-mode $B$G(B kill-all-local-variables $B4X?t$r8F$P$J$$$N$O!"%P%0(B - ;; $B$G$O$J$$!"$H8@$C$F$$$?!#(B + "`picture-mode' へ入ったときに SKK 起動前の状態に戻す。 +`edit-picture-hook' に `add-hook' して使用する。" + ;; 既存のバッファを picture mode にしたとき、picture-mode 関数は + ;; kill-all-local-variables 関数を呼ばないので、SKK 関連のバッファローカル + ;; 変数が元のバッファの値のままになってしまう。そこで、picture mode に入った + ;; ときにフックを利用してこれらのバッファローカル変数を kill する。 + ;; RMS は picture-mode で kill-all-local-variables 関数を呼ばないのは、バグ + ;; ではない、と言っていた。 ;; - ;; picture-mode $B$G(B SKK $B$r;HMQ$74A;zF~NO$r$7$?>l9g$K!"(BBS $B$GA43QJ8;z$,>C$;$J$$(B - ;; $B$N$O!"(BSKK $B$NIT6q9g$G$O$J$/!"(Bpicture.el $B$NLdBj(B (move-to-column-force $B4X?t(B - ;; $B$NCf$G;HMQ$7$F$$$k(B move-to-column $B$GA43QJ8;z$rL5;k$7$?%+%i%`?t$,M?$($i$l(B - ;; $B$?$H$-$K%+!<%=%k0\F0$,$G$-$J$$$+$i(B) $B$G$"$k!#>C$7$?$$J8;z$K%]%$%s%H$r9g$o(B - ;; $B$;!"(BC-c C-d $B$G0lJ8;z$:$D>C$9$7$+J}K!$O$J$$!#(B + ;; picture-mode で SKK を使用し漢字入力をした場合に、BS で全角文字が消せない + ;; のは、SKK の不具合ではなく、picture.el の問題 (move-to-column-force 関数 + ;; の中で使用している move-to-column で全角文字を無視したカラム数が与えられ + ;; たときにカーソル移動ができないから) である。消したい文字にポイントを合わ + ;; せ、C-c C-d で一文字ずつ消すしか方法はない。 (when skk-mode (skk-kill-local-variables))) (defun skk-kill-local-variables () - "SKK $B4XO"$N%P%C%U%!%m!<%+%kJQ?t$rL58z$K$9$k!#(B" + "SKK 関連のバッファローカル変数を無効にする。" (skk-mode -1) (let (v vstr) (dolist (lv (buffer-local-variables)) @@ -1002,7 +1002,7 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ ;;;; kana inputting functions ;;;###autoload (defun skk-insert (&optional arg prog-list-number) - "SKK $B$NJ8;zF~NO$r9T$J$&!#(B" + "SKK の文字入力を行なう。" (interactive "p") (unless prog-list-number (setq prog-list-number current-prefix-arg)) @@ -1012,11 +1012,11 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ (cond ((and skk-henkan-mode (memq ch skk-special-midashi-char-list)) (if (= skk-henkan-start-point (point)) - ;; `$B"&(B' $B$KB3$/(B `>' $B$G$OJQ49=hM}$r3+;O$7$J$$(B + ;; `▽' に続く `>' では変換処理を開始しない (progn (set 'last-command-event ?>) (skk-kana-input arg)) - ;; $B@\F,<-!&@\Hx<-$N=hM}!#(B + ;; 接頭辞・接尾辞の処理。 (skk-process-prefix-or-suffix arg))) ;; start writing a midasi key. @@ -1030,34 +1030,34 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ (skk-set-henkan-point arg)) ;; start conversion. - ((and skk-henkan-mode ; $B"&%b!<%I(B or $B"'%b!<%I(B + ((and skk-henkan-mode ; ▽モード or ▼モード (eq ch skk-start-henkan-char)) ; SPC (skk-start-henkan arg prog-list-number)) ;; just input kana. - ((not (eq skk-henkan-mode 'on)) ; not $B"&%b!<%I(B + ((not (eq skk-henkan-mode 'on)) ; not ▽モード (skk-kana-input arg)) ;; for completion. - ;; $B%3%s%W%j!<%7%g%s4XO"$N4X?t$O(B skk-rom-kana-base-rule-list $B$NCf$K2!(B - ;; $B$79~$a!"(Bskk-kana-input $B$NCf$+$i@)8f$9$Y$-!#(B - ;; $BC"$7!"(BTAB $B$O(B self-insert-command $B$G$O$J$$$N$G!"(Bskk-j-mode-map $B$N(B - ;; $B%-!<%^%C%W$G(B substitute-key-definition $B$7$F$b(B skk-insert $B$K%P%$%s(B - ;; $B%I$G$-$J$$!#(Bskk-j-mode-map $B$G(B $BD>@\(B "\t" $B$r(B skk-insert $B$K%P%$%s%I(B - ;; $B$7$F!"(Bcompletion $B$H(B skk-current-kuten/skk-current-touten $B$r%3%s%H(B - ;; $B%m!<%k$9$k%3%^%s%IL>$r(B skk-rom-kana-base-rule-list $B$K=q$1$PNI$$$+(B - ;; $B$b!#(B - ;; $B$G$b!"(Bskk-comp $B$H(B skk-current-kuten/skk-current-touten $B$N%3%s%H%m(B - ;; $B!<%k$,%O!<%I%3!<%G%#%s%0$5$l$k$N$O$^$:$$$+$b(B (skk-comp $B$O;H$C$F$b(B - ;; skk-current-kuten/skk-current-touten $B$O;H$o$J$$!"$H$$$&?M$,$$$k$+(B - ;; $B$b(B)$B!#(B - ((and (eq skk-henkan-mode 'on) ; $B"&%b!<%I(B + ;; コンプリーション関連の関数は skk-rom-kana-base-rule-list の中に押 + ;; し込め、skk-kana-input の中から制御すべき。 + ;; 但し、TAB は self-insert-command ではないので、skk-j-mode-map の + ;; キーマップで substitute-key-definition しても skk-insert にバイン + ;; ドできない。skk-j-mode-map で 直接 "\t" を skk-insert にバインド + ;; して、completion と skk-current-kuten/skk-current-touten をコント + ;; ロールするコマンド名を skk-rom-kana-base-rule-list に書けば良いか + ;; も。 + ;; でも、skk-comp と skk-current-kuten/skk-current-touten のコントロ + ;; ールがハードコーディングされるのはまずいかも (skk-comp は使っても + ;; skk-current-kuten/skk-current-touten は使わない、という人がいるか + ;; も)。 + ((and (eq skk-henkan-mode 'on) ; ▽モード (eq ch skk-try-completion-char)) - (skk-comp (or prog-list-number ; C-u TAB $B$GJd40%-!<$r=i4|2=(B + (skk-comp (or prog-list-number ; C-u TAB で補完キーを初期化 (not (eq last-command 'skk-comp-do))))) ;; - ((and (eq skk-henkan-mode 'on) ; $B"&%b!<%I(B + ((and (eq skk-henkan-mode 'on) ; ▽モード (memq ch (list skk-next-completion-char skk-previous-completion-char)) (eq last-command 'skk-comp-do)) @@ -1071,23 +1071,23 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ (skk-henkan-on-message)))) (defun skk-process-prefix-or-suffix (&optional arg) - "$B@\F,<-$^$?$O@\Hx<-$NF~NO$r3+;O$9$k!#(B -$B$3$l$O!"IaDL(B `skk-special-midashi-char-list' $B$K;XDj$5$l$?J8;z$NF~NO$,$"$C$?>l(B -$B9g$KHsBPOCE*$K8F$S=P$5$l$k$,!"BPOCE*$K8F=P$9$3$H$b2DG=$G$"$k!#(B" - ;; SKK 10 $B$^$G$O!"(B> < ? $B$N(B 3 $B$D$K$D$$$F07$$$,J?Ey$G$J$+$C$?!#(BDaredevil SKK - ;; 11 $B0J9_$G$O!"<-=q$K$*$1$kI=8=$r(B > $B$GE}0l$9$k$3$H$K$h$j!"(B3 $B < ? の 3 つについて扱いが平等でなかった。Daredevil SKK + ;; 11 以降では、辞書における表現を > で統一することにより、3 者の扱いを平等 + ;; にし、なおかつ、このコマンドが文字キーでない入力により呼ばれたときにも接 + ;; 尾辞・ 接頭辞入力ができるようにする。 (interactive "*p") (cl-case skk-henkan-mode (active - ;; $B@\Hx<-$N$?$a$N=hM}(B + ;; 接尾辞のための処理 (skk-kakutei) (let (skk-kakutei-history) (skk-set-henkan-point-subr)) (insert-and-inherit ?>)) (on - ;; $B@\F,<-$N=hM}(B + ;; 接頭辞の処理 (skk-kana-cleanup 'force) (insert-and-inherit ?>) (skk-set-marker skk-henkan-end-point (point)) @@ -1099,7 +1099,7 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ (skk-henkan)) (t (if last-command-event - ;; `skk-insert' $B$+$i8F$P$l$k>l9g$K$O!"$3$N%1!<%9$O$J$$!#(B + ;; `skk-insert' から呼ばれる場合には、このケースはない。 (let ((i (prefix-numeric-value arg)) (str (skk-char-to-unibyte-string last-command-event))) (while (> i 0) @@ -1108,62 +1108,62 @@ Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$ nil)))) (defun skk-kana-input (&optional arg) - "$B$+$JJ8;z$NF~NO$r9T$&%k!<%A%s!#(B" + "かな文字の入力を行うルーチン。" ;; Message-Id: <19980610190611B.sakurada@kuis.kyoto-u.ac.jp> ;; From: Hideki Sakurada ;; Date: Wed, 10 Jun 1998 19:06:11 +0900 (JST) ;; - ;; $B?7$7$$(B skk-kana-input $B$O(B, $B4JC1$K@bL@$9$k$H(B, - ;; $B$"$i$+$8$a%k!<%k$rLZ$N7A$KI=8=$7$F$*$$$F(B, $BF~NO$r8+(B - ;; $B$FLZ$rC)$j(B, $B$=$l0J>eC)$l$J$/$J$C$?$i$=$N@a$KEPO?$5(B - ;; $B$l$F$$$k2>L>$rF~NO$9$k(B. $B$H$$$&$7$/$_$G$9(B. + ;; 新しい skk-kana-input は, 簡単に説明すると, + ;; あらかじめルールを木の形に表現しておいて, 入力を見 + ;; て木を辿り, それ以上辿れなくなったらその節に登録さ + ;; れている仮名を入力する. というしくみです. ;; - ;; $BNc$($P(B, n a t $B$N$_$+$i$J$k0J2<$N%k!<%k(B + ;; 例えば, n a t のみからなる以下のルール ;; - ;; a $B"*(B $B$"(B - ;; n $B"*(B $B$s(B - ;; nn $B"*(B $B$s(B - ;; na $B"*(B $B$J(B - ;; ta $B"*(B $B$?(B - ;; tt $B"*(B $B$C(B ($BuBV(B t) + ;; a → あ + ;; n → ん + ;; nn → ん + ;; na → な + ;; ta → た + ;; tt → っ (次状態 t) ;; - ;; $B$r%k!<%kLZ$KJQ49$9$k$H(B, + ;; をルール木に変換すると, ;; - ;; $B!?(B/$B!@(B - ;; $B!?(B / $B!@(B - ;; a $B!?(B / t $B!@(B n - ;; $B!?(B / $B!@(B - ;; $B$"(B $B!&(B $B$s(B - ;; $B!?(B| / $B!@(B - ;; a $B!?(B | t a / $B!@(B n - ;; $B!?(B | / $B!@(B - ;; $B$?(B $B$C(B $B$J(B $B$s(B - ;; ($BuBV(B "t") + ;; //\ + ;; / / \ + ;; a / / t \ n + ;; / / \ + ;; あ ・ ん + ;; /| / \ + ;; a / | t a / \ n + ;; / | / \ + ;; た っ な ん + ;; (次状態 "t") ;; - ;; $B$H$$$&7A$K$J$j$^$9(B. + ;; という形になります. ;; - ;; $B=i4|>uBV(B($BLZ$N:,(B)$B$G(B `a' $B$rF~NO$9$k$H(B, $BLZ$N:,$+$i(B - ;; $B!V$"!W$K0\F0$7$^$9(B. $BuBV$,@_Dj$5$l$F$$$k>l9g$O(B, $B@_Dj$5$l$F$$(B - ;; $B$kJ8;zNs$r%-%e!<$KLa$7$F$+$i:,$KLa$j$^$9(B. + ;; 初期状態(木の根)で `a' を入力すると, 木の根から + ;; 「あ」に移動します. 次にどのような入力が来ても, + ;; それより下に辿れないので, 「あ」を出力して根に戻ります. + ;; ルールに次状態が設定されている場合は, 設定されてい + ;; る文字列をキューに戻してから根に戻ります. ;; - ;; $B=i4|>uBV$G(B `n' $B$rF~NO$9$k$H(B, $B!V$s!W$K0\F0$7$^$9(B. - ;; $Bl9g$O(B, `t' $B$G$O2<$KC)$l$J$$$N$G(B, - ;; $B!V$s!W$r=PNO$7$F(B `t' $B$r%-%e!<$KLa$7$^$9(B. + ;; 初期状態で `n' を入力すると, 「ん」に移動します. + ;; 次に `a' または `n' が入力されればそれより下に辿れる + ;; ので次の入力を見るまでまだ出力しません. + ;; 次に `t' が入力された場合は, `t' では下に辿れないので, + ;; 「ん」を出力して `t' をキューに戻します. ;; - ;; $B$3$3$G(B, $B=i4|>uBV(B, $B8=>uBV$r$=$l$>$l(B skk-rule-tree, - ;; skk-current-rule-tree $B$GI=$7(B. - ;; $BLZ$r2<$KC)$k(B, $B$H$$$&A`:n$O(B, skk-select-branch $B$r(B - ;; $BMQ$$$F(B, + ;; ここで, 初期状態, 現状態をそれぞれ skk-rule-tree, + ;; skk-current-rule-tree で表し. + ;; 木を下に辿る, という操作は, skk-select-branch を + ;; 用いて, ;; ;; (skk-select-branch rule-tree ?a) ;; - ;; $B$N$h$&$K$7$^$9(B. $B8=>uBV$K@_Dj$5$l$F$$$k$+$J(B(("$B%"(B". "$B$"(B")$B$J$I(B), - ;; $BuBV(B("t" $B$J$I(B)$B$O(B, $B$=$l$>$l(B skk-get-kana, - ;; skk-get-nextstate $B$G$C$FC)$k!#(B -$B@.8y$7$?>l9g$O(B nil $B$H(B $B7k2L$NLZ$NAH$rJV$7!"<:GT$7$?>l9g$OC)$l$J$+$C$?(B -CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" + "TREE の根から先端へ CHAR-LIST に従って辿る。 +成功した場合は nil と 結果の木の組を返し、失敗した場合は辿れなかった +CHAR-LIST の残りと辿れなくなった節点の木の組を返す。" (catch 'return (let (next char rest) (while char-list @@ -1335,12 +1335,12 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (skk-set-kana addpoint (nth 2 rule)))) (defun skk-delete-rule (tree string) - "$BF~NO(B STRING $B$KBP$9$k%k!<%k$r%k!<%kLZ(B TREE $B$+$i:o=|$9$k!#(B" + "入力 STRING に対するルールをルール木 TREE から削除する。" (catch 'return (let ((char-list (string-to-list string)) (cutpoint tree) - ;; TREE $B$N:,$+$i=P$k;^$,(B1$BK\$7$+$J$$>l9g(B - ;; $B$N$?$a$K0l1~=i4|2=$7$F$*$/(B + ;; TREE の根から出る枝が1本しかない場合 + ;; のために一応初期化しておく (cuttree (car (skk-get-branch-list tree))) next) (while char-list @@ -1348,8 +1348,8 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" char-list (cdr char-list)) (if next (if (> (length (skk-get-branch-list tree)) 1) - (setq cutpoint tree ; $B;^$,(B2$BK\0J>e$N;~(B cutpoint cuttree - cuttree next ; $B$r(B update + (setq cutpoint tree ; 枝が2本以上の時 cutpoint cuttree + cuttree next ; を update tree next) (setq tree next)) (throw 'return nil))) @@ -1360,12 +1360,12 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" ;; The rule tree follows the following syntax: ;; := nil | ( . ) ;; := ( ) -;; := (<$B$R$i$,$JJ8;zNs(B> . <$B%+%?%+%JJ8;zNs(B>) | nil -;; := <$B1Q>.J8;z(B> -;; := <$B1Q>.J8;zJ8;zNs(B> | nil +;; := (<ひらがな文字列> . <カタカナ文字列>) | nil +;; := <英小文字> +;; := <英小文字文字列> | nil ;;;###autoload (defun skk-compile-rule-list (&rest rule-lists) - "rule list $B$rLZ$N7A$K%3%s%Q%$%k$9$k!#(B" + "rule list を木の形にコンパイルする。" (let ((tree (skk-make-rule-tree nil "" nil nil nil)) key) (dolist (rule-list rule-lists) @@ -1385,17 +1385,17 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" tree)) (defun skk-insert-str (str) - "$B%P%C%U%!$K(B STR $B$rA^F~$9$k!#(B -$BI,MW$G$"$l$P(B `skk-auto-start-henkan' $B$r%3!<%k$9$k!#(B -$BI,MW$G$"$l$P(B `self-insert-after-hook' $B$r%3!<%k$9$k!#(B -`overwrite-mode' $B$G$"$l$P!"E,@Z$K>e=q$-$9$k!#(B" + "バッファに STR を挿入する。 +必要であれば `skk-auto-start-henkan' をコールする。 +必要であれば `self-insert-after-hook' をコールする。 +`overwrite-mode' であれば、適切に上書きする。" (insert-and-inherit str) (if (eq skk-henkan-mode 'on) - ;; $B"&%b!<%I(B + ;; ▽モード (when (and skk-auto-start-henkan (not skk-okurigana)) (skk-auto-start-henkan str)) - ;; $B"&%b!<%I0J30(B + ;; ▽モード以外 (when (and (boundp 'self-insert-after-hook) self-insert-after-hook) (funcall self-insert-after-hook @@ -1403,21 +1403,21 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (point))) (when overwrite-mode (skk-del-char-with-pad (skk-ovwrt-len str)))) - ;; SKK 9.6 $B$G$O$3$N%?%$%_%s%0$G(B fill $B$,9T$o$l$F$$$?$,!"(BSKK 10 $B$G$O9T$o$l$F$$(B - ;; $B$J$+$C$?!#(B + ;; SKK 9.6 ではこのタイミングで fill が行われていたが、SKK 10 では行われてい + ;; なかった。 (when (and skk-j-mode (not skk-henkan-mode)) (skk-do-auto-fill))) (defun skk-ovwrt-len (str) - "$B>e=q$-$7$FNI$$D9$5$rJV$9!#(B" + "上書きして良い長さを返す。" (min (string-width (buffer-substring-no-properties (point) (line-end-position))) (string-width str))) (defun skk-del-char-with-pad (length) - "$BD9$5(B LENGTH $B$NJ8;z$r>C5n$9$k!#(B -$BD4@0$N$?$a!"I,MW$G$"$l$P!"KvHx$K%9%Z!<%9$rA^F~$9$k!#(B" + "長さ LENGTH の文字を消去する。 +調整のため、必要であれば、末尾にスペースを挿入する。" (let ((p (point)) (len 0)) (while (< len length) @@ -1429,41 +1429,41 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (backward-char 1)))) (defun skk-cancel-undo-boundary () - ;; skk-insert, skk-jisx0208-latin-insert $B$GO"B3$7$FF~NO$5(B - ;; $B$l$?(B 20 $BJ8;z$r(B 1 $B2s$N%"%s%I%%$NBP>]$H$9$k!#(B`20' $B$O(B - ;; keyboard.c $B$KDj$a$i$l$?%^%8%C%/%J%s%P!JN,7A$H$7$F$N(B - ;; $B8+=P$78l$rA^F~$9$k$?$a$N%b!<%I$G$"$k$N$G!"D9$$8+=P$78l$r(B - ;; $BA^F~$9$k$3$H$O$"$^$j$J$/!"LdBj$b>.$5$$$H9M$($i$l$k!#(B + ;; SKK abbrev モードでは、アスキー文字入力が Emacs オリジナ + ;; ルの self-insert-command により行われているので、 + ;; skk-self-insert-non-undo-count をインクリメントすること + ;; ができないので、アンドゥをエミュレートできない。 + ;; しかも、カンマやピリオドを挿入した時点で、 + ;; skk-abbrev-comma や skk-abbrev-period を使うことになるの + ;; で (self-insert-command 以外のコマンドを使ってしまうので)、 + ;; オリジナルのアンドゥの機能も損なってしまう。 + ;; しかし現実問題としては、SKK abbrev モードは省略形としての + ;; 見出し語を挿入するためのモードであるので、長い見出し語を + ;; 挿入することはあまりなく、問題も小さいと考えられる。 ;;skk-abbrev-comma ;;skk-abbrev-period self-insert-command))) (cancel-undo-boundary) (when (null skk-current-rule-tree) - ;; $B$^$@$+$JJ8;z$,40@.$7$F$$$J$$$H$-$O!"(Bundo count $B$r%$%s%/%j%a%s%H(B - ;; $B$7$J$$!#(B + ;; まだかな文字が完成していないときは、undo count をインクリメント + ;; しない。 (setq skk-self-insert-non-undo-count (1+ skk-self-insert-non-undo-count)))) (t (setq skk-self-insert-non-undo-count 1)))) (defun skk-set-okurigana () - "$B8+=P$78l$+$i(B `skk-henkan-okurigana', `skk-henkan-key' $B$N3FCM$r%;%C%H$9$k!#(B" + "見出し語から `skk-henkan-okurigana', `skk-henkan-key' の各値をセットする。" (cancel-undo-boundary) ;;(and skk-katakana (skk-hiragana-region skk-henkan-start-point (point))) (skk-set-marker skk-henkan-end-point skk-okurigana-start-point) @@ -1495,8 +1495,8 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (setq skk-okurigana nil)) (defun skk-set-char-before-as-okurigana (&optional no-sokuon) - "$B%]%$%s%H$ND>A0$NJ8;z$rAw$j2>L>$H8+Jo$7$F!"JQ49$r3+;O$9$k!#(B -$B$?$@$7!"(B $B$b$&$R$H$DA0$NJ8;z$,B%2;$@$C$?>l9g$K$O!"(B $B$=$l0J9_$rAw$j2>L>$H8+Jo$9!#(B" + "ポイントの直前の文字を送り仮名と見倣して、変換を開始する。 +ただし、 もうひとつ前の文字が促音だった場合には、 それ以降を送り仮名と見倣す。" (interactive) (let ((pt1 (point)) pt2 okuri sokuon) @@ -1510,7 +1510,7 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (backward-char 2) (buffer-substring-no-properties (point) pt2))) - (unless (member sokuon '("$B$C(B" "$B%C(B")) + (unless (member sokuon '("っ" "ッ")) (setq sokuon nil))) ;; (skk-save-point @@ -1523,7 +1523,7 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" ;;; other inputting functions (defun skk-toggle-kutouten () - "$B6gFIE@$N= ?9 chr) skk-use-auto-kutouten) (nth 0 output)) - ((and (<= ?$B#0(B chr) (>= ?$B#9(B chr) skk-use-auto-kutouten) + ((and (<= ?0 chr) (>= ?9 chr) skk-use-auto-kutouten) (nth 1 output)) (t (nth 2 output))))) @@ -1568,8 +1568,8 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (self-insert-command arg)) (defun skk-abbrev-period (arg) - "SKK abbrev $B%b!<%I$G8+=P$78l$NJd40Cf$G$"$l$P!"8e$G$J$1$l$P!"%*%j%8%J%k$N%-!<3d$jIU$1$N%3%^%s%I$r%(%_%e%l!<%H$9$k!#(B" + "SKK abbrev モードで見出し語の補完中であれば、次の候補を表示する。 +補完の直後でなければ、オリジナルのキー割り付けのコマンドをエミュレートする。" (interactive "*P") (skk-with-point-move (if (eq last-command 'skk-comp-do) @@ -1579,8 +1579,8 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (skk-emulate-original-map arg)))) (defun skk-abbrev-comma (arg) - "SKK abbrev $B%b!<%I$G8+=P$78l$NJd40Cf$G$"$l$P!"D>A0$N8uJd$rI=<($9$k!#(B -$BJd40$ND>8e$G$J$1$l$P!"%*%j%8%J%k$N%-!<3d$jIU$1$N%3%^%s%I$r%(%_%e%l!<%H$9$k!#(B" + "SKK abbrev モードで見出し語の補完中であれば、直前の候補を表示する。 +補完の直後でなければ、オリジナルのキー割り付けのコマンドをエミュレートする。" (interactive "*P") (skk-with-point-move (if (eq last-command 'skk-comp-do) @@ -1590,12 +1590,12 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (skk-emulate-original-map arg)))) (defun skk-jisx0208-latin-insert (arg) - "$BA41QJ8;z$r%+%l%s%H%P%C%U%!$KA^F~$9$k!#(B -`skk-jisx0208-latin-vector' $B$r%F!<%V%k$H$7$F!":G8e$KF~NO$5$l$?%-!<$KBP1~$9$k(B -$BJ8;z$rA^F~$9$k!#(B -`skk-auto-insert-paren' $B$NCM$,(B non-nil $B$N>l9g$G!"(B`skk-auto-paren-string-alist' -$B$KBP1~$9$kJ8;zNs$,$"$k$H$-$O!"$=$NBP1~$9$kJ8;zNs(B ($B$+$C$3N`(B) $B$r<+F0E*$KA^F~$9(B -$B$k!#(B" + "全英文字をカレントバッファに挿入する。 +`skk-jisx0208-latin-vector' をテーブルとして、最後に入力されたキーに対応する +文字を挿入する。 +`skk-auto-insert-paren' の値が non-nil の場合で、`skk-auto-paren-string-alist' +に対応する文字列があるときは、その対応する文字列 (かっこ類) を自動的に挿入す +る。" (interactive "p") (barf-if-buffer-read-only) (skk-with-point-move @@ -1632,10 +1632,10 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (skip-chars-forward pair-str))))))) (defun skk-delete-backward-char (arg) - "$B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$J$iD>A0$NJ8;z$r>C$7$F3NDj$9$k!#(B -$B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$,(B nil $B$@$C$?$iA08uJd$rI=<($9$k!#(B -$B"&%b!<%I$G(B`$B"&(B'$B$h$j$bA0$N%]%$%s%H$GC$9!#(B" + "▼モードで `skk-delete-implies-kakutei' なら直前の文字を消して確定する。 +▼モードで `skk-delete-implies-kakutei' が nil だったら前候補を表示する。 +▽モードで`▽'よりも前のポイントで実行すると確定する。 +確定入力モードで、かなプレフィックスの入力中ならば、かなプレフィックスを消す。" (interactive "*P") (skk-with-point-move (let ((count (prefix-numeric-value arg))) @@ -1645,12 +1645,12 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (= (+ skk-henkan-end-point (length skk-henkan-okurigana)) (point))) (skk-previous-candidate) - ;; overwrite-mode $B$G!"%]%$%s%H$,A43QJ8;z$K0O$^$l$F$$$k$H(B - ;; $B$-$K(B delete-backward-char $B$r;H$&$H!"A43QJ8;z$O>C$9$,H>(B - ;; $B3QJ8;zJ,$7$+(B backward $BJ}8~$K%]%$%s%H$,La$i$J$$(B (Emacs - ;; 19.31 $B$K$F3NG'(B)$B!#JQ49Cf$N8uJd$KBP$7$F$O(B - ;; delete-backward-char $B$GI,$:A43QJ8;z(B 1 $BJ8;zJ,(B backward - ;; $BJ}8~$KLa$C$?J}$,NI$$!#(B + ;; overwrite-mode で、ポイントが全角文字に囲まれていると + ;; きに delete-backward-char を使うと、全角文字は消すが半 + ;; 角文字分しか backward 方向にポイントが戻らない (Emacs + ;; 19.31 にて確認)。変換中の候補に対しては + ;; delete-backward-char で必ず全角文字 1 文字分 backward + ;; 方向に戻った方が良い。 (if overwrite-mode (progn (backward-char count) @@ -1671,8 +1671,8 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (not (skk-get-prefix skk-current-rule-tree))) (setq skk-henkan-count 0) (skk-kakutei)) - ;; $BF~NOCf$N8+=P$78l$KBP$7$F$O(B delete-backward-char $B$G(B - ;; $BI,$:A43QJ8;z(B 1$BJ8;zJ,(B backward $BJ}8~$KLa$C$?J}$,NI$$!#(B + ;; 入力中の見出し語に対しては delete-backward-char で + ;; 必ず全角文字 1文字分 backward 方向に戻った方が良い。 ((and skk-henkan-mode overwrite-mode) (backward-char count) (delete-char count arg)) @@ -1685,7 +1685,7 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" ;;; henkan routines (defun skk-henkan (&optional prog-list-number) - "$B%+%J$r4A;zJQ49$9$k%a%$%s%k!<%A%s!#(B" + "カナを漢字変換するメインルーチン。" (let (mark prototype new-word pair kakutei-henkan) (if (string= skk-henkan-key "") (skk-kakutei) @@ -1694,7 +1694,7 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (setq mark (skk-save-point (forward-char 1) (point-marker)))) - (unless (eq skk-henkan-mode 'active) ;$B"'%b!<%I0J30$J$i!#$D$^$j0lH/L\$r4^$`(B + (unless (eq skk-henkan-mode 'active) ;▼モード以外なら。つまり一発目を含む (skk-change-marker) (setq skk-current-search-prog-list (cond ((and (integerp prog-list-number) @@ -1706,9 +1706,9 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (t skk-search-prog-list)))) - ;; skk-henkan-1 $B$NCf$+$i%3!<%k$5$l$k(B skk-henkan-show-candidates - ;; $B$+$i(B throw $B$5$l$k!#$3$3$G%-%c%C%A$7$?>l9g$O!"(B?x $B$,%9%H%j!<%`$K(B - ;; $BLa$5$l$F$$$k$N$G!"$3$N4X?t$r=P$F!"(Bskk-previous-candidate $B$X$f$/!#(B + ;; skk-henkan-1 の中からコールされる skk-henkan-show-candidates + ;; から throw される。ここでキャッチした場合は、?x がストリームに + ;; 戻されているので、この関数を出て、skk-previous-candidate へゆく。 (catch 'unread (cond ((setq prototype (skk-henkan-1)) (setq new-word prototype)) @@ -1722,10 +1722,10 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (if mark (progn (goto-char mark) - ;; $B;2>H$5$l$F$$$J$$%^!<%+!<$O!"(BGarbage Collection $B$,%3!<%k$5$l$?$H(B - ;; $B$-$K2s<}$5$l$k$,!"$=$l$^$G$N4V!"%F%-%9%H$N$I$3$+$r;X$7$F$$$k$H!"(B - ;; $B%F%-%9%H$N%"%C%W%G!<%H$N:]$K$=$N%^!<%+!/$J$+$C$?$i@h(B - ;; $BF,$+$i4v$D$+:o$k!#(B + key-num-alist ; 候補選択用の連想リスト + (key-num-alist1 ; key-num-alist を組み立てるための作業用連想リスト。 + ;; 逆さまにしておいて、表示する候補の数が少なかったら先 + ;; 頭から幾つか削る。 (let (alist) (dotimes (i max-candidates alist) (push (cons (nth i skk-henkan-show-candidates-keys) @@ -1862,8 +1862,8 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" new-one reverse n) - ;; Emacs 19.28 $B$@$H(B Overlay $B$r>C$7$F$*$+$J$$$H!" + ;; 候補が尽きてしまって、skk-henkan-show-candidates -> ;; skk-henkan-in-minibuff -> skk-henkan - ;; -> skk-henkan-show-candidates $B$N=g$G!":F$S$3$N4X?t$,8F$P$l(B - ;; $B$?$H$-$O!"$3$3$G(B henkan-list $B$H(B loop $B$r7W;;$9$k!#(B + ;; -> skk-henkan-show-candidates の順で、再びこの関数が呼ばれ + ;; たときは、ここで henkan-list と loop を計算する。 (setq henkan-list (nthcdr skk-henkan-count skk-henkan-list) loop (car skk-exit-show-candidates)) (setq skk-exit-show-candidates nil)) (t - ;; skk-henkan-show-candidates-keys $B$N:G=*$N%-!<$KBP1~$9$k8uJd(B - ;; $B$,=P$F$/$k$^$G%5!<%A$rB3$1$k!#(B + ;; skk-henkan-show-candidates-keys の最終のキーに対応する候補 + ;; が出てくるまでサーチを続ける。 (while (and skk-current-search-prog-list (null (nthcdr (+ nth-henkan max-candidates (* loop max-candidates)) skk-henkan-list))) - ;; $B?75,$K8uJd$,F@$i$l$?;~$N$_(B skk-henkan-list-filter $B$r8F$V!#(B - ;; skk-look $B$d(B skk-server-completion-search $B$rMxMQ$7$?M9JXHV9f$+$i$N(B - ;; $BJQ49;~$J$I$N$h$&$K!"?tCM$r4^$_3n$DBgNL$N8uJd$,$"$k;~$NB.EY2~A1!#(B + ;; 新規に候補が得られた時のみ skk-henkan-list-filter を呼ぶ。 + ;; skk-look や skk-server-completion-search を利用した郵便番号からの + ;; 変換時などのように、数値を含み且つ大量の候補がある時の速度改善。 (let ((cands (skk-search))) (when cands (setq skk-henkan-list @@ -1940,23 +1940,23 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (if (or skk-current-search-prog-list (nthcdr max-candidates henkan-list)) (setq loop (1+ loop)) - ;; $B8uJd$,?T$-$?!#$3$N4X?t$+$iH4$1$k!#(B + ;; 候補が尽きた。この関数から抜ける。 (let ((last-showed-index (+ nth-henkan (* loop max-candidates)))) (setq skk-exit-show-candidates - ;; cdr $BIt$O!"<-=qEPO?$KF~$kA0$K:G8e$KI=<($7(B - ;; $B$?8uJd72$NCf$G:G=i$N8uJd$r;X$9%$%s%G%/%9(B + ;; cdr 部は、辞書登録に入る前に最後に表示し + ;; た候補群の中で最初の候補を指すインデクス (cons loop last-showed-index)) - ;; $B<-=qEPO?$KF~$k!#(Bskk-henkan-count $B$O(B - ;; skk-henkan-list $B$N:G8e$N8uJd$NuBV$KLa$9!#(B + ;; skk-henkan-show-candidates を呼ぶ前の + ;; 状態に戻す。 (skk-escape-from-show-candidates nth-henkan)) (t - ;; $B0l$DA0$N8uJd72$r%(%3!<%(%j%"$KI=<($9$k!#(B + ;; 一つ前の候補群をエコーエリアに表示する。 (setq reverse t)))) ((eq char skk-annotation-toggle-display-char) @@ -1988,23 +1988,23 @@ CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (signal 'quit nil)) (t - (skk-message "`%s' $B$OL58z$J%-!<$G$9!*(B" + (skk-message "`%s' は無効なキーです!" "`%s' is not valid here!" (or (key-description key) (key-description char))) (sit-for 1))))) (quit - ;; skk-previous-candidate $B$X(B + ;; skk-previous-candidate へ (skk-escape-from-show-candidates 0)))))) ; end of while loop ;; (or (cdr-safe new-one) new-one)))) (defun skk-henkan-show-candidate-subr (keys candidates) - "$B8uJd72$rI=<($9$k4X?t!#(B -KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B -$BK~$?$J$+$C$?$i$=$3$GBG$A@Z$k(B) $B$NJ8;zNs$r:n$j!"%$%s%i%$%s!"%D!<%k%F%#%C%W!"(B -$B%(%3!<%(%j%"Kt$O8uJd%P%C%U%!$KI=<($9$k!#(B" + "候補群を表示する関数。 +KEYS と CANDIDATES を組み合わせて7の倍数個の候補群 (候補数が +満たなかったらそこで打ち切る) の文字列を作り、インライン、ツールティップ、 +エコーエリア又は候補バッファに表示する。" (let* ((max-candidates skk-henkan-number-to-display-candidates) (workinglst (skk-henkan-candidate-list candidates max-candidates)) str tooltip-str message-log-max) @@ -2016,7 +2016,7 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B (key (concat (propertize (nth i keys) 'face 'skk-henkan-show-candidates-keys-face) ":"))) - (when (and (zerop (% i skk-henkan-number-to-display-candidates)) ; $B3FNs$N:G=i$N8uJd(B + (when (and (zerop (% i skk-henkan-number-to-display-candidates)) ; 各列の最初の候補 (not (zerop i))) (setq str (concat str "\n"))) (setq str (concat str @@ -2024,7 +2024,7 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B key cand) tooltip-str (concat tooltip-str key cand "\n")))) (setq str (concat str (propertize - (format " [$B;D$j(B %d%s]" + (format " [残り %d%s]" (- (length candidates) (length workinglst)) (make-string @@ -2032,25 +2032,25 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B ?+)) 'face 'skk-henkan-rest-indicator-face)) tooltip-str (concat tooltip-str - (format "[$B;D$j(B %d%s]" + (format "[残り %d%s]" (- (length candidates) (length workinglst)) (make-string (length skk-current-search-prog-list) ?+)))) (cond - ;; (1) $B8=:_$N%P%C%U%!$NCf$KI=<($9$k(B ($B%$%s%i%$%sI=<((B) + ;; (1) 現在のバッファの中に表示する (インライン表示) ((and skk-show-inline (not skk-isearch-switch) (not (skk-in-minibuffer-p))) (skk-inline-show str skk-inline-show-face tooltip-str max-candidates)) - ;; (2) tooptip $B$GI=<($9$k(B + ;; (2) tooptip で表示する ((and window-system skk-show-tooltip (not (eq (symbol-function 'skk-tooltip-show-at-point) 'ignore))) (when (and skk-henkan-rest-indicator) - (let* ((body (substring tooltip-str 0 (string-match "\\[$B;D$j(B" tooltip-str))) + (let* ((body (substring tooltip-str 0 (string-match "\\[残り" tooltip-str))) (rest (substring tooltip-str (- (length body) (length tooltip-str))))) (setq tooltip-str (concat body (make-string (- (car (skk-tooltip-max-tooltip-size)) @@ -2059,11 +2059,11 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B rest)))) (funcall skk-tooltip-function tooltip-str)) - ;; (3) $B%(%3!<%(%j%"$r;H$&(B + ;; (3) エコーエリアを使う ((and (not skk-show-candidates-always-pop-to-buffer) (> (frame-width) (skk-max-string-width (split-string str "\n")))) (when skk-henkan-rest-indicator - (let* ((body (substring str 0 (string-match " \\[$B;D$j(B" str))) + (let* ((body (substring str 0 (string-match " \\[残り" str))) (rest (substring str (- (length body) (length str))))) (setq str (concat body (make-string (- (frame-width) @@ -2071,17 +2071,17 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B rest)))) (message "%s" str)) - ;; (4) $B0l;~%P%C%U%!$r(B pop up $B$7$F;H$&(B + ;; (4) 一時バッファを pop up して使う (t (skk-henkan-show-candidates-buffer str keys)))) - ;; $BI=<($9$k8uJd?t$rJV$9!#(B + ;; 表示する候補数を返す。 (length workinglst))) (defun skk-check-treat-candidate-appearance-function () (when (or (eq skk-annotation-lookup-lookup 'always) (eq skk-annotation-lookup-DictionaryServices 'always)) - ;; Apple OS X $B$N<-=q%5!<%S%9$r8uJd0lMw$G$b;H$&>l9g$O!"(B - ;; `skk-treat-candidate-appearance-function' $B$rD4@a$9$kI,MW$"$j(B + ;; Apple OS X の辞書サービスを候補一覧でも使う場合は、 + ;; `skk-treat-candidate-appearance-function' を調節する必要あり (setq skk-treat-candidate-appearance-function 'skk-treat-candidate-sample2)) ;; @@ -2091,7 +2091,7 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B (funcall skk-treat-candidate-appearance-function candidate listing-p)) (defun skk-henkan-candidate-list (candidates max) - ;; CANDIDATES $B$N@hF,$N(B max $B8D$N$_$N%j%9%H$rJV$9!#(B + ;; CANDIDATES の先頭の max 個のみのリストを返す。 (let ((count 0) e sep note v) (while (> max count) (setq e (nth count candidates)) @@ -2101,78 +2101,78 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B (setq e (cdr e))) (cond (e - ;; $B$^$@8uJd$,;D$C$F$$$k>l9g(B + ;; まだ候補が残っている場合 (when (skk-check-treat-candidate-appearance-function) - ;; skk-treat-candidate-appearance-function $B$K$h$C$F%f!<%6$O(B - ;; $BG$0U$K8uJdJ8;zNs$HCm~$9$k$3$H$,$G$-$k!#(B - ;; $B%f!<%6$,JV$9CM$O(B cons cell $B$^$?$OJ8;zNs$H$J$k!#(B + ;; skk-treat-candidate-appearance-function によってユーザは + ;; 任意に候補文字列と注釈文字列を加工・修飾することができる。 + ;; ユーザが返す値は cons cell または文字列となる。 (let ((value (save-match-data - ;; $B8uJd0lMwI=<($N:]$O(B - ;; skk-treat-candidate-appearance-function $B$N(B - ;; $BBh(B 2 $B0z?t$r(B non-nil $B$H$9$k!#(B + ;; 候補一覧表示の際は + ;; skk-treat-candidate-appearance-function の + ;; 第 2 引数を non-nil とする。 (skk-treat-candidate-appearance e 'list)))) (cond ((consp value) - ;; $BJV$jCM$,(B cons cell $B$@$C$?>l9g(B + ;; 返り値が cons cell だった場合 (setq e (car value)) (cond ((consp (cdr value)) - ;; ($B8uJd(B . ($B%;%Q%l!<%?(B . $BCml9g(B + ;; 返り値が文字列だった場合 (setq e value note nil))))) - ;; $B%f!<%6$,Cml9g$O$b$&Cm$`Cml9g(B + ;; 候補が尽きた場合 (setq count max)))) - ;; $B8uJd$r=P8==g$K%=!<%H$7D>$7$FJV$9!#(B + ;; 候補を出現順にソートし直して返す。 (nreverse v))) (defun skk-henkan-show-candidates-buffer (str keys) - ;; $B%(%3!<%(%j%"$NBe$o$j$K0l;~%P%C%U%!$r(B pop up $B$7$F8uJd0lMw$rI=<($9$k!#(B - (let ((buff (get-buffer-create "*$B8uJd(B*")) + ;; エコーエリアの代わりに一時バッファを pop up して候補一覧を表示する。 + (let ((buff (get-buffer-create "*候補*")) (case-fold-search t)) (with-current-buffer buff (erase-buffer) @@ -2180,24 +2180,24 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B (funcall skk-henkan-show-candidates-buffer-decor str) str)) (goto-char (point-min)) - ;; 1 $B8uJd$K(B 1 $B9T$r3d$jEv$F$k!#(B + ;; 1 候補に 1 行を割り当てる。 (forward-char 2) (while (re-search-forward (concat " " (mapconcat 'identity keys ":\\| ") ":\\|" - " \\[$B;D$j(B [0-9]+\\(\\++\\)?\\]") nil t) + " \\[残り [0-9]+\\(\\++\\)?\\]") nil t) (goto-char (match-beginning 0)) (delete-char 2) (insert "\n")) (goto-char (point-min)) - ;; $B1&C<$KM>Gr$r@_$1$k(B + ;; 右端に余白を設ける (while (and (move-to-column (- (frame-width) 2)) (not (eobp)) (>= (frame-width) (current-column))) (unless (eolp) - ;; $B6XB'=hM}(B + ;; 禁則処理 (unless (member (char-to-string (char-before)) skk-auto-start-henkan-keyword-list) (backward-char 1)) @@ -2205,14 +2205,14 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B (forward-line -1)) (forward-line 1)) - ;; [$B;D$j(B 99++] $B$r1&C<$X(B + ;; [残り 99++] を右端へ (when skk-henkan-rest-indicator (let ((col (progn (goto-char (point-max)) (skk-screen-column)))) (beginning-of-line) (insert-char 32 (- (frame-width) col 1)))) - ;;$B8uJd%P%C%U%!$NGX7J?'(B + ;;候補バッファの背景色 (when skk-candidate-buffer-background-color (unless skk-candidate-buffer-background-color-odd (setq skk-candidate-buffer-background-color-odd @@ -2227,7 +2227,7 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B (point))) (ovl (make-overlay bol eol))) (when (or (string-match "[ASDFJKL]:" (buffer-substring bol (+ 2 bol))) - (string-match "\\[$B;D$j(B [0-9]+\\(\\++\\)?\\]" + (string-match "\\[残り [0-9]+\\(\\++\\)?\\]" (buffer-substring bol eol))) (setq background-color (if (string= background-color skk-candidate-buffer-background-color) @@ -2253,17 +2253,17 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B ;;;###autoload (defun skk-henkan-in-minibuff () - "$B<-=qEPO?%b!<%I$KF~$j!"EPO?$7$?C18l$NJ8;zNs$rJV$9!#(B" + "辞書登録モードに入り、登録した単語の文字列を返す。" (unless (numberp skk-henkan-in-minibuff-nest-level) (setq skk-henkan-in-minibuff-nest-level (minibuffer-depth))) (when (and window-system skk-show-tooltip) (tooltip-hide)) (when skk-show-inline - (skk-inline-show "$B"-<-=qEPO?Cf"-(B" 'skk-jisyo-registration-badge-face)) + (skk-inline-show "↓辞書登録中↓" 'skk-jisyo-registration-badge-face)) (save-match-data (let ((enable-recursive-minibuffers t) (depth (- (1+ (minibuffer-depth)) skk-henkan-in-minibuff-nest-level)) - ;; XEmacs $B$G$Ol9g!#:G8e$K%(%3!<%(%j%"$KI=<($7$?8uJd72$r:FI=(B - ;; $B<($9$k!#(B + ;; エコーエリアに表示した候補が尽きて辞書登録に入ったが、空文字 + ;; 列が登録された場合。最後にエコーエリアに表示した候補群を再表 + ;; 示する。 (progn (setq skk-henkan-count (cdr skk-exit-show-candidates)) (skk-henkan)) - ;; skk-henkan-show-candidates $B$KF~$kA0$K8uJd$,?T$-$?>l9g(B + ;; skk-henkan-show-candidates に入る前に候補が尽きた場合 (setq skk-henkan-count (1- skk-henkan-count)) (if (= skk-henkan-count -1) - ;; $BAw$j$"$j$NJQ49$G<-=qEPO?$KF~$j!"6uJ8;z$rEPO?$7$?8e!"$=$N(B - ;; $B$^$^:FEYAw$j$J$7$H$7$FJQ49$7$?>l9g$O(B - ;; skk-henkan-okurigana, skk-okuri-char $B$NCM$r(B nil $B$K$7$J$1(B - ;; $B$l$P!"$=$l$>$l$NCM$K8E$$Aw$j2>L>$,F~$C$?$^$^$G8!:w$K<:GT(B - ;; $B$9$k!#(B + ;; 送りありの変換で辞書登録に入り、空文字を登録した後、その + ;; まま再度送りなしとして変換した場合は + ;; skk-henkan-okurigana, skk-okuri-char の値を nil にしなけ + ;; れば、それぞれの値に古い送り仮名が入ったままで検索に失敗 + ;; する。 (progn (setq skk-henkan-okurigana nil skk-okurigana nil skk-okuri-char nil) (skk-change-marker-to-white)) - ;; $B<-=qEPO?$KF~$kD>A0$N8uJd$KCmH(B + (setq skk-jisyo-updated t) ; skk-update-jisyo で参照 new-one)))) (defun skk-compute-henkan-key2 () - ;; skk-henkan-okurigana $B$,(B non-nil $B$J$i(B skk-henkan-key $B$+$i!"$+$D$F(B - ;; skk-henkan-key2 $B$H8F$P$l$F$$$?$b$N$r:n$k!#(B - ;; skk-henkan-key2 $B$H$O!"!V4A;zItJ,$NFI$_(B + "*" + $BAw$j2>L>!W$N7A<0$NJ8;zNs$r(B - ;; $B8@$&!#(B + ;; skk-henkan-okurigana が non-nil なら skk-henkan-key から、かつて + ;; skk-henkan-key2 と呼ばれていたものを作る。 + ;; skk-henkan-key2 とは、「漢字部分の読み + "*" + 送り仮名」の形式の文字列を + ;; 言う。 (when skk-henkan-okurigana (save-match-data (string-match "[a-z]+$" skk-henkan-key) @@ -2371,15 +2371,15 @@ KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B skk-henkan-okurigana)))) (defun skk-remove-redundant-okurigana (word) - "$B<-=q$KEPO?$5$l$k8uJd$N;}$DM>7W$JAw$j2>L>$rL>$r>C$7$F$+$i(B [RET] $B$r2!$5$J$1$l$P@5$7$/EPO?(B -$B$G$-$J$$!#(B $B$=$3$G!"%f!<%6$,4V0c$($FAw$j2>L>$r>C$7K:$l$F$$$J$$$+$I$&$+!"(B SKK -$B$NB&$G%A%'%C%/$G$-$kHO0O$K$D$$$F$O%f!<%6$N3NG'$rl9g$N$_M-8z!#(B -auto $B$K@_Dj$9$k$H%f!<%6$K3NG'$7$J$$!#(B -$BJQ49$,9T$o$l$?%P%C%U%!$G$$Aw$j2>L>$r-4}4}IhMQ(B")) - ;; skk-henkan-show-candidates-buffer $B$+$i$R$C$Q$C$F$-$?%3!<%I(B +#0 無変換 e.g. 12 +#1 全角数字 e.g. 12 +#2 漢数字で位取りあり e.g. 五五〇〇 +#3 漢数字で位取りなし e.g. 五千五百 +#4 数値再変換 +#5 金額表記 e.g. 壱阡九百九拾伍 +#9 将棋棋譜用")) + ;; skk-henkan-show-candidates-buffer からひっぱってきたコード (let ((minibuf-p (skk-in-minibuffer-p)) (window (get-buffer-window (skk-minibuffer-origin)))) (when minibuf-p @@ -2440,10 +2440,10 @@ auto $B$K@_Dj$9$k$H%f!<%6$K3NG'$7$J$$!#(B ;;;###autoload (defun skk-previous-candidate (&optional arg) - "$B"'%b!<%I$G$"$l$P!"0l$DA0$N8uJd$rI=<($9$k!#(B -$B"'%b!<%I0J30$G$O%+%l%s%H%P%C%U%!$K%?%$%W$7$?J8;z$rA^F~$9$k!#(B -$B3NDj<-=q$K$h$k3NDj$ND>8e$K8F$V$H3NDj$r%"%s%I%%$7!"8+=P$7$KBP$9$kC$7$F$*$+$J$$$H!"C$7!"$=$N>l=j$XJQ497k2L$NJ8;zNs$rA^F~$9$k!#(B" + "見出し語を消し、その場所へ変換結果の文字列を挿入する。" (save-match-data (let (retval note face) (while (and (setq retval (skk-treat-new-word (or retval word))) (stringp retval)) - ;; nextword-or-retval $B$KJ8;zNs$,BeF~$5$l$?>l9g(B (`skk-ignore-dic-word' - ;; $B$K$h$C$FA0$N8uJd$,%9%-%C%W$5$l$?>l9g(B) $B$O$=$NJ8;zNs$r?7$7$$8uJd$H$7$F(B - ;; $B=hM}$r7+$jJV$9!#J8;zNs0J30$,BeF~$5$l$?$i%k!<%W$r=*N;$9$k!#(B + ;; nextword-or-retval に文字列が代入された場合 (`skk-ignore-dic-word' + ;; によって前の候補がスキップされた場合) はその文字列を新しい候補として + ;; 処理を繰り返す。文字列以外が代入されたらループを終了する。 ()) (when (consp retval) (setq word (car retval) note (cdr retval))) (unless (eq retval 'none) - ;; $BA^F~$9$Y$-8uJd$,$"$k!#(B + ;; 挿入すべき候補がある。 (when skk-use-face (skk-henkan-face-off)) (delete-region skk-henkan-start-point skk-henkan-end-point) (goto-char skk-henkan-start-point) - ;; word $B$rA^F~$9$kA0$K$=$N(B face $BB0@-$r=|5n$9$k!#$?$@$7!$=|5n$9$kA0$K(B - ;; face $BB0@-$rJQ?t$KB`Hr$9$k!#$3$N(B face $BB0@-$Ol9g!#(B + ;; `skk-ignore-dic-word' 内で辞書登録モードに入った場合。 (skk-kakutei)) (cons word note))))) (defun skk-treat-new-word (word) - "`skk-insert-new-word' $B$N%5%V%k!<%A%s!#A^F~$9$Y$-C18l$rAu>~$9$k!#(B -$B%k!<%WFb$G$h$P$l$k!#=hM}Cf$K(B `skk-ignore-dic-word' $B$,8F$P$l$?>l9g$O$=$3$+$i(B -catch $B$9$k!#(Bcatch $B$7$?CM$,J8;zNs$J$i$P!"$=$l$rJV$9(B (word $B$r$=$l$KCV$-49$($F(B -$B:FEY8F$S=P$5$l$k(B)$B!#(B catch $B$7$J$+$C$?>l9g$OA^F~$9$Y$-J8;zNs$,F@$i$l$k!#$3$N>l9g(B -$B$OCml9g!"(Bnext-word $B$KJ8;zNs$,%;%C%H$5$l$F$$$k!#(B - ;; $B$3$N>l9g(B word $B$r(B next-word $B$KCV$-49$($F=hM}$r$d$jD>$9!#(B - - ;; $B8uJd0lMw$GA*Br$5$l$?8uJd$rA^F~$9$k:]$O!"(B - ;; skk-kakutei-flag $B$,(B t $B$K$J$C$F$$$k!#$3$N>l9g$OAu>~(B - ;; $B$7$F$b$7$+$?$J$$!#(B + ;; ループ 1 回目では next-word は nil。 + ;; `skk-ignore-dic-word' により現在の word が skip され、 + ;; 新しい語が返ってきた場合、next-word に文字列がセットされている。 + ;; この場合 word を next-word に置き換えて処理をやり直す。 + + ;; 候補一覧で選択された候補を挿入する際は、 + ;; skk-kakutei-flag が t になっている。この場合は装飾 + ;; してもしかたない。 (when (and (not skk-kakutei-flag) (skk-check-treat-candidate-appearance-function)) - ;; skk-treat-candidate-appearance-function $B$K$h$C$F(B - ;; $B%f!<%6$OG$0U$K8uJdJ8;zNs$HCm~(B - ;; $B$9$k$3$H$,$G$-$k!#(B - ;; $B%f!<%6$,JV$9CM$O(B cons cell $B$^$?$OJ8;zNs$H$J$k!#(B + ;; skk-treat-candidate-appearance-function によって + ;; ユーザは任意に候補文字列と注釈文字列を加工・修飾 + ;; することができる。 + ;; ユーザが返す値は cons cell または文字列となる。 (save-match-data (let ((value (skk-treat-candidate-appearance word nil))) (if (consp value) - ;; $BJV$jCM$,(B cons cell $B$@$C$?>l9g(B + ;; 返り値が cons cell だった場合 (setq word (car value) note (cond ((consp (cdr value)) - ;; ($B8uJd(B . ($B%;%Q%l!<%?(B . $BCml9g(B + ;; 返り値が文字列だった場合 (setq word value))))) - ;; $B%f!<%6$N0U?^$K$h$C$FCml9g$O(BSKK $B$NJ}$G$OBP=h$7$J$$!#(B + ;; ユーザの意図によって注釈が既に設定されて + ;; いる場合はSKK の方では対処しない。 (when (and (not (stringp note)) (string-match ";" word)) (setq note (substring word (match-end 0)) word (substring word 0 (match-beginning 0)))) - ;; word $B$NJ}$,(B S $B<0$NJ8;zNs$@$C$?$i!"$=$l$rI>2A$7$?(B - ;; $BJ8;zNs$rJV$9!#(B - ;; note $B$NJ}$b(B S $B<0$N>l9g$,$"$j$&$k$,!"$=$l$NI>2A$O(B - ;; skk-annotation $B$,$d$C$F$/$l$k!#(B + ;; word の方が S 式の文字列だったら、それを評価した + ;; 文字列を返す。 + ;; note の方も S 式の場合がありうるが、それの評価は + ;; skk-annotation がやってくれる。 (setq word (skk-eval-string word)) (cons word note)))) ;;;###autoload (defun skk-treat-strip-note-from-word (word) - "$BJQ498uJd$NJ8;zNs(B WORD $B$r!"8uJd$=$N$b$N$HCm (\"word\" . nil) \"word;\" --> (\"word\" . \"\") @@ -2637,42 +2637,42 @@ catch $B$9$k!#(Bcatch $B$7$?CM$,J8;zNs$J$i$P!"$=$l$rJV$9(B (word $B$r$=$l$K ;;;###autoload (defun skk-kakutei (&optional arg word) - "$B8=:_I=<($5$l$F$$$k8l$G3NDj$7!"<-=q$r99?7$9$k!#(B -$B%+%l%s%H%P%C%U%!$G(B SKK $B%b!<%I$K$J$C$F$$$J$+$C$?$i(B SKK $B%b!<%I$KF~$k!#(B -$B%*%W%7%g%J%k0z?t$N(B WORD $B$rEO$9$H!"8=:_I=<($5$l$F$$$k8uJd$H$OL54X78$K(B -WORD $B$G3NDj$9$k!#(B" - ;; read only $B$G%(%i!<$K$J$k$h$&$K$9$k$H(B read only $B%P%C%U%!$G(B SKK $B$,5/F0$G$-(B - ;; $B$J$/$J$k!#(B + "現在表示されている語で確定し、辞書を更新する。 +カレントバッファで SKK モードになっていなかったら SKK モードに入る。 +オプショナル引数の WORD を渡すと、現在表示されている候補とは無関係に +WORD で確定する。" + ;; read only でエラーになるようにすると read only バッファで SKK が起動でき + ;; なくなる。 (interactive "P") (let ((inhibit-quit t) converted kakutei-word) (when skk-henkan-mode ;'on or 'active (cl-case skk-henkan-mode - (active ;$B"'%b!<%I(B + (active ;▼モード (setq kakutei-word - ;; $B3NDj<-=q$N8l$G3NDj$7$?$H$-$O!"<-=q$K$=$N8l$r=q$-9~$`I,MW$b$J(B - ;; $B$$$7!"99?7$9$kI,MW$b$J$$$H;W$C$F$$$?$,!"Jd40$r9T$&$H$-$O!"(B - ;; $B8D?M<-=q$r;2>H$9$k(B ($B3NDj<-=q$O;2>H$7$J$$(B) $B$N$G!"B?>/;q8;$H;~(B - ;; $B4V$rL5BL$K$7$F$b!"8D?M<-=q$K3NDj<-=q$N%(%s%H%j$r=q$-9~$s$G99(B - ;; $B?7$b$7$F$*$/!#(B + ;; 確定辞書の語で確定したときは、辞書にその語を書き込む必要もな + ;; いし、更新する必要もないと思っていたが、補完を行うときは、 + ;; 個人辞書を参照する (確定辞書は参照しない) ので、多少資源と時 + ;; 間を無駄にしても、個人辞書に確定辞書のエントリを書き込んで更 + ;; 新もしておく。 (or word (skk-get-current-candidate 'noconv))) (when (and kakutei-word (skk-update-jisyo-p kakutei-word)) (skk-update-jisyo kakutei-word) - ;; $B@\Hx<-!&@\F,<-$K4X$9$k=hM}(B + ;; 接尾辞・接頭辞に関する処理 (cond ((not skk-learn-combined-word) - ;; $B%f!<%6$,4uK>$7$J$$8B$j2?$N=hM}$b$7$J$$!#(B + ;; ユーザが希望しない限り何の処理もしない。 (setq skk-after-prefix nil)) ((and skk-after-prefix (not (string-match "^[^\000-\177]+>$" skk-henkan-key))) - ;; $B$3$N%P%C%U%!$K$*$$$F!"@\F,<-$KB3$/F~NO$,?J9TCf!#(B + ;; このバッファにおいて、接頭辞に続く入力が進行中。 (let* ((history (cdr skk-kakutei-history)) - (list1 (car skk-kakutei-history)) ; ($B$j$h$&(B $BMxMQ(B) - (list2 (catch 'list ; ($B$5$$(B> $B:F(B) + (list1 (car skk-kakutei-history)) ; (りよう 利用) + (list2 (catch 'list ; (さい> 再) (while history (if (eq (nth 2 list1) (nth 2 (car history))) - ;; $BF1$8%P%C%U%!$@$C$?$i(B + ;; 同じバッファだったら (throw 'list (car history)) (setq history (cdr history)))))) (list1-word (car (skk-treat-strip-note-from-word @@ -2691,20 +2691,20 @@ WORD $B$G3NDj$9$k!#(B" (concat (substring (car list2) 0 (1- (length (car list2)))) - (car list1)) ; $B$5$$$j$h$&(B - comb-word (concat list2-word list1-word)) ; $B:FMxMQ(B + (car list1)) ; さいりよう + comb-word (concat list2-word list1-word)) ; 再利用 (skk-update-jisyo comb-word)) (setq skk-after-prefix nil))) ((and (stringp (caar skk-kakutei-history)) (string-match "^>[^\000-\177]+$" (caar skk-kakutei-history))) - ;; $B:#2s$N3NDj$,@\Hx<-$@$C$?>l9g!"A02s$N3NDj$H:#2s$N@\Hx<-$r(B - ;; $B9g$o$;$?8l$r<-=qEPO?$9$k!#(B + ;; 今回の確定が接尾辞だった場合、前回の確定と今回の接尾辞を + ;; 合わせた語を辞書登録する。 (let* ((history (cdr skk-kakutei-history)) - (list1 (car skk-kakutei-history)) ; (>$B$F$-(B $BE*(B) - (list2 (catch 'list ; ($B$+$s$I$&(B $B46F0(B) + (list1 (car skk-kakutei-history)) ; (>てき 的) + (list2 (catch 'list ; (かんどう 感動) (while history (if (eq (nth 2 list1) (nth 2 (car history))) - ;; $BF1$8%P%C%U%!$@$C$?$i(B + ;; 同じバッファだったら (throw 'list (car history)) (setq history (cdr history)))))) (list1-word (car (skk-treat-strip-note-from-word @@ -2715,16 +2715,16 @@ WORD $B$G3NDj$9$k!#(B" (when (stringp list2-word) (setq skk-henkan-key (concat (car list2) - (substring (car list1) 1)) ; $B$+$s$I$&$F$-(B - comb-word (concat list2-word list1-word)) ; $B46F0E*(B + (substring (car list1) 1)) ; かんどうてき + comb-word (concat list2-word list1-word)) ; 感動的 (skk-update-jisyo comb-word))))) ;; (when (skk-numeric-p) (setq converted (skk-get-current-candidate)) (skk-num-update-jisyo kakutei-word converted)))) (t - ;; $B"&%b!<%I$G3NDj$7$?>l9g!#JX59E*$K8=:_$N%]%$%s%H$^$G$r8+=P$78l$r07$$(B - ;; $B$7$FMzNr$r99?7$9$k!#(B + ;; ▽モードで確定した場合。便宜的に現在のポイントまでを見出し語を扱い + ;; して履歴を更新する。 (when (and (> skk-kakutei-history-limit 0) (< skk-henkan-start-point (point)) (skk-save-point @@ -2739,17 +2739,17 @@ WORD $B$G3NDj$9$k!#(B" (skk-kakutei-cleanup-buffer) (when (and skk-undo-kakutei-word-only (consp buffer-undo-list)) - ;; $B"&%b!<%I$K0\$C$F$+$i8=:_$^$G$N(B undo $B>pJs$+$i@hF,0J30$N(B - ;; nil $B$r:o=|$9$k(B + ;; ▽モードに移ってから現在までの undo 情報から先頭以外の + ;; nil を削除する (setq buffer-undo-list (cons (car buffer-undo-list) (nconc (delq nil (cdr (butlast buffer-undo-list (length skk-last-buffer-undo-list)))) skk-last-buffer-undo-list)))) - ;; KAKUTEI-WORD $B$J$I$N>pJs$,I,MW$G$"$l$P!"(Bskk-last-henkan-data - ;; $B$+$iF@$i$l$k!#I,MW$J%G!<%?$,$=$l$i$NJQ?t$K8BDj$5$l$J$$$N$G!"(B - ;; $B0z?t$K$7$J$$!#(B + ;; KAKUTEI-WORD などの情報が必要であれば、skk-last-henkan-data + ;; から得られる。必要なデータがそれらの変数に限定されないので、 + ;; 引数にしない。 (when skk-kakutei-end-function (funcall skk-kakutei-end-function)) (skk-kakutei-initialize @@ -2781,14 +2781,14 @@ WORD $B$G3NDj$9$k!#(B" (skk-latin-mode-on)) ((cdr (assq 'skk-jisx0208-latin-mode skk-undo-kakutei-prev-state)) (skk-jisx0208-latin-mode-on)) - ;; skk-mode $B$,%*%U$N>uBV$KLa$=$&$H$9$k$H(B - ;; `skk-mode-exit' $BFb$G:FEY(B `skk-kakutei' $B$r8F$V$?(B - ;; $B$aL58B%k!<%W$K$J$C$F$7$^$&(B + ;; skk-mode がオフの状態に戻そうとすると + ;; `skk-mode-exit' 内で再度 `skk-kakutei' を呼ぶた + ;; め無限ループになってしまう ;; ((not (cdr (assq 'skk-mode skk-undo-kakutei-prev-state))) ;; (skk-mode -1)) ((cdr (assq 'skk-j-mode skk-undo-kakutei-prev-state)) - ;; M-x skk-undo-kakutei $B$G(B skk-abbrev-mode $B$KLa$C$?:]!"(B - ;; $B3NDj8e$K(B skk-j-mode $B$KLa$k$?$a$K$O0J2<$,I,MW!#(B + ;; M-x skk-undo-kakutei で skk-abbrev-mode に戻った際、 + ;; 確定後に skk-j-mode に戻るためには以下が必要。 (skk-j-mode-on skk-katakana))) (setq skk-undo-kakutei-prev-state nil)) ((not (or skk-j-mode skk-jisx0201-mode)) @@ -2796,25 +2796,25 @@ WORD $B$G3NDj$9$k!#(B" nil) (defun skk-update-jisyo-p (word) - "WORD $B$,8D?M<-=q$KEPO?$5$l$k$Y$-$+H]$+$rH=Dj$9$k!#(B -$BJQ?t(B `skk-search-excluding-word-pattern-function' $B$,4X?t$G$"$l$P!"(BWORD $B$r(B -$B0z?t$K$7$F$=$N4X?t$r$l$N4X?t$rH$N$3$H!#(B" + "WORD が個人辞書に登録されるべきか否かを判定する。 +変数 `skk-search-excluding-word-pattern-function' が関数であれば、WORD を +引数にしてその関数を実行し、戻り値が non-nil であれば `skk-update-jisyo-p' は + nil を返す。 +変数 `skk-search-excluding-word-pattern-function' が関数のリストであれば、 + WORD を引数にしてそれぞれの関数を実行し、そのうちのひとつでも non-nil を +返せば `skk-update-jisyo-p' は nil を返す。 + +変数 `skk-search-excluding-word-pattern-function' の docstring も参照のこと。" (save-match-data (not (run-hook-with-args-until-success 'skk-search-excluding-word-pattern-function word)))) (defun skk-kakutei-cleanup-buffer () - "$B3NDjD>8e$N%P%C%U%!$r@07A$9$k!#(B" + "確定直後のバッファを整形する。" (when skk-okurigana - ;; $B3NDjJQ49$N$H$-$K$3$3$K$/$k!#(B - ;; $B:FJQ49$N:]$KAw$j2>L>4XO"%U%i%0$,(B clear $B$5$l$F$$$k$H$h$m$7$/$J$$$N$G(B - ;; `skk-delete-okuri-mark' $B$N(B NOCLEAR $B$r%;%C%H$7$F8F$V!#(B + ;; 確定変換のときにここにくる。 + ;; 再変換の際に送り仮名関連フラグが clear されているとよろしくないので + ;; `skk-delete-okuri-mark' の NOCLEAR をセットして呼ぶ。 (skk-delete-okuri-mark t)) (skk-delete-henkan-markers) (when (and (boundp 'self-insert-after-hook) @@ -2826,18 +2826,18 @@ WORD $B$G3NDj$9$k!#(B" skk-henkan-start-point (point)))))) (defun skk-kakutei-initialize (&optional kakutei-word) - "$B3NDj;~$KJQ?t$N=i4|2=$H%"%s%I%%$N$?$a$NJQ?t$NJ]B8$r9T$&!#(B" + "確定時に変数の初期化とアンドゥのための変数の保存を行う。" (when (and kakutei-word (or (consp kakutei-word) (not (string= kakutei-word "")))) (setq skk-kakutei-count (1+ skk-kakutei-count)) - ;; skk-undo-kakutei $B$N$?$a$K:G8e$NJQ49$N%G!<%?$rJ]B8$9$k!#(B + ;; skk-undo-kakutei のために最後の変換のデータを保存する。 (skk-put-last-henkan-data (list (cons 'henkan-key skk-henkan-key) (cons 'okuri-char skk-okuri-char) (cons 'henkan-okurigana skk-henkan-okurigana) (cons 'henkan-list - ;; $B3NDj$7$?8l$r@hF,$K$9$k!#(B + ;; 確定した語を先頭にする。 (cons kakutei-word (delete kakutei-word skk-henkan-list))) (cons 'henkan-buffer (current-buffer)) @@ -2847,11 +2847,11 @@ WORD $B$G3NDj$9$k!#(B" (set-marker hpoint (point)) (point-marker)))) (cons 'abbrev-mode skk-abbrev-mode) - ;; (eq last-command 'skk-kakutei-henkan) $B$G%]!<%?%V%k$K3NG'$G$-(B - ;; $B$k$N$G$"$($F$$$i$J$$$+!#(B + ;; (eq last-command 'skk-kakutei-henkan) でポータブルに確認でき + ;; るのであえていらないか。 ;; (cons 'kakutei-henkan (eq this-command 'skk-kakutei-henkan)) - ;; $B>e5-0J30$N(B henkan data $B$r(B skk-last-henkan-data $B$K;D$7$?$+$C$?$i!"(B - ;; skk-kakutei-end-function $B$rMxMQ$9$k!#(B + ;; 上記以外の henkan data を skk-last-henkan-data に残したかったら、 + ;; skk-kakutei-end-function を利用する。 ))) (setq skk-henkan-count -1) (setq skk-exit-show-candidates nil) @@ -2871,30 +2871,30 @@ WORD $B$G3NDj$9$k!#(B" )) (defun skk-undo-kakutei () - "$B0lHV:G8e$N3NDj$r%"%s%I%%$7!"8+=P$78l$KBP$9$k8uJd$rI=<($9$k!#(B -$B:G8e$K3NDj$7$?$H$-$N8uJd$O%9%-%C%W$5$l$k!#(B -$BB>$K8uJd$,$J$$$H$-$O!"%(%3!<%(%j%"$G$N<-=qEPO?$KF~$k!#(B" + "一番最後の確定をアンドゥし、見出し語に対する候補を表示する。 +最後に確定したときの候補はスキップされる。 +他に候補がないときは、エコーエリアでの辞書登録に入る。" (interactive) (let (jmsg emsg) (cond ((eq last-command 'skk-undo-kakutei) - (setq jmsg "$B3NDj%"%s%I%%$OO"B3;HMQ$G$-$^$;$s(B" + (setq jmsg "確定アンドゥは連続使用できません" emsg "Cannot undo kakutei repeatedly")) ((eq skk-henkan-mode 'active) - (setq jmsg "$B"'%b!<%I$G$O3NDj%"%s%I%%$G$-$^$;$s(B" - emsg "Cannot undo kakutei in $B"'(B mode")) + (setq jmsg "▼モードでは確定アンドゥできません" + emsg "Cannot undo kakutei in ▼ mode")) ((or (not (skk-get-last-henkan-datum 'henkan-key)) (string= (skk-get-last-henkan-datum 'henkan-key) "") (null skk-henkan-end-point)) ;; skk-henkan-key may be nil or "". - (setq jmsg "$B%"%s%I%%%G!<%?$,$"$j$^$;$s(B" + (setq jmsg "アンドゥデータがありません" emsg "Lost undo data"))) (if jmsg (skk-message jmsg emsg) (skk-with-point-move (condition-case nil (skk-undo-kakutei-subr) - ;; skk-undo-kakutei $B$+$iESCf$GH4$1$?>l9g$O!"3F= (point-max) end) - ;; $B:G8e$NJQ49ItJ,$N%F%-%9%H$r>C$9!#Aw$j2>L>$rGD0.$7$F$$$k$N$J$i(B - ;; (skk-process-okuri-early $B$,(B non-nil $B$J$iAw$j2>L>$rGD0.$G$-$J$$(B)$B!"(B - ;; $BAw$j2>L>$r4^$a$?ItJ,$^$G$r>C$9!#(B + ;; 最後の変換部分のテキストを消す。送り仮名を把握しているのなら + ;; (skk-process-okuri-early が non-nil なら送り仮名を把握できない)、 + ;; 送り仮名を含めた部分までを消す。 (delete-region skk-henkan-start-point end)) (when skk-undo-kakutei-word-only (setq skk-last-buffer-undo-list buffer-undo-list)) (goto-char skk-henkan-start-point) - (insert-and-inherit "$B"'(B") + (insert-and-inherit "▼") (skk-set-marker skk-henkan-start-point (point)) (cond (skk-okuri-char - ;; $BAw$j$"$j(B + ;; 送りあり (insert-and-inherit (substring skk-henkan-key 0 (1- (length skk-henkan-key)))) (skk-set-marker skk-henkan-end-point (point)) @@ -2965,13 +2965,13 @@ WORD $B$G3NDj$9$k!#(B" (t (insert-and-inherit skk-henkan-key) (skk-set-marker skk-henkan-end-point (point)))) - (skk-message "$B3NDj%"%s%I%%!*(B" + (skk-message "確定アンドゥ!" "Undo kakutei!") (setq skk-henkan-count 1) (skk-henkan))) (defun skk-set-henkan-point (&optional arg) - "$BJQ49$r3+;O$9$k%]%$%s%H$r%^!<%/$7!"BP1~$9$k(B `skk-prefix' $B$+Jl2;$rF~NO$9$k!#(B" + "変換を開始するポイントをマークし、対応する `skk-prefix' か母音を入力する。" (let* ((last-char (skk-downcase last-command-event)) (normal (not (eq last-char last-command-event))) (sokuon (if (string= skk-prefix (skk-char-to-unibyte-string last-char)) @@ -3040,10 +3040,10 @@ WORD $B$G3NDj$9$k!#(B" (concat (buffer-substring-no-properties skk-henkan-start-point skk-kana-start-point) - (if skk-katakana "$B%C(B" "$B$C(B") + (if skk-katakana "ッ" "っ") skk-henkan-okurigana)) (skk-erase-prefix) - (insert-and-inherit (if skk-katakana "$B%C(B " "$B$C(B ")) + (insert-and-inherit (if skk-katakana "ッ " "っ ")) (setq skk-prefix "") (setq skk-henkan-count 0) (skk-henkan) @@ -3065,17 +3065,17 @@ WORD $B$G3NDj$9$k!#(B" ((/= skk-henkan-start-point (point)) (when sokuon (skk-erase-prefix 'clean) - (insert-and-inherit (if skk-katakana "$B%C(B" "$B$C(B"))) + (insert-and-inherit (if skk-katakana "ッ" "っ"))) (cond ((and (not sokuon) (skk-get-prefix skk-current-rule-tree) normal (eq (char-before) (string-to-char skk-prefix))) - ;; SKK $B$N;EMM$K$J$$Nc30$N=hM}!#(B - ;; $BNc$($P!$%f!<%6$,(B $B!VJb$/!W$rA^F~$7$?$/$F(B "AruKu" $B$HBG$D$Y$-(B - ;; $B$H$3$m$r(B "ArukU" $B$HBG$C$F$7$^$C$?>l9g!#$3$N>l9g(B SKK $BB&$G(B - ;; $B$I$&=hM}$9$k$Y$-$+!"7h$^$C$F$$$J$$!#$3$3$G$O2>$N=hCV$H$7$F!"(B - ;; "AruKu" $B$HF1MM$NJQ49$r$9$k$h$&$K$7$F$*$/!#(B + ;; SKK の仕様にない例外の処理。 + ;; 例えば,ユーザが 「歩く」を挿入したくて "AruKu" と打つべき + ;; ところを "ArukU" と打ってしまった場合。この場合 SKK 側で + ;; どう処理するべきか、決まっていない。ここでは仮の処置として、 + ;; "AruKu" と同様の変換をするようにしておく。 (setq skk-okuri-char nil skk-okurigana nil normal nil) @@ -3086,8 +3086,8 @@ WORD $B$G3NDj$9$k!#(B" (t (when (and skk-dcomp-activate (skk-dcomp-marked-p)) - ;; $B?7$7$$(B marker $B$r(B set $B$9$kA0$K(B skk-dcomp $B$N(B marker $B$r%/%j%"(B - ;; $B$7$F$*$/!#(B + ;; 新しい marker を set する前に skk-dcomp の marker をクリア + ;; しておく。 (skk-dcomp-before-kakutei)) (skk-set-marker skk-okurigana-start-point (point)) (insert-and-inherit "*") @@ -3115,45 +3115,45 @@ WORD $B$G3NDj$9$k!#(B" ;;;###autoload (defun skk-start-henkan (arg &optional prog-list-number) - "$B"&%b!<%I$G$O4A;zJQ49$r3+;O$9$k!#"'%b!<%I$G$Ol9g$O!"8+=P$78l$rJ?2>L>$K(B -$BJQ49$7$F$+$i4A;zJQ49$r3+;O$9$k!#8+=P$78l$rJQ49$;$:$K$=$N$^$^4A;zJQ49$r(B -$B9T$$$?$1$l$P!"(B\\[universal-argument] SPC $B$H%?%$%W$9$k!#(B" + "▽モードでは漢字変換を開始する。▼モードでは次の候補を表示する。 +▽モードでカナモードのまま漢字変換を開始した場合は、見出し語を平仮名に +変換してから漢字変換を開始する。見出し語を変換せずにそのまま漢字変換を +行いたければ、\\[universal-argument] SPC とタイプする。" (interactive "*p") (unless prog-list-number (setq prog-list-number current-prefix-arg)) (skk-with-point-move (cancel-undo-boundary) - (if (eq skk-henkan-mode 'active) ;$B"'%b!<%I(B + (if (eq skk-henkan-mode 'active) ;▼モード (progn (setq skk-henkan-count (1+ skk-henkan-count)) (skk-henkan)) - ;; $B"&%b!<%I(B + ;; ▽モード (save-match-data (let (pos) (skk-kana-cleanup 'force) (when (skk-get-prefix skk-current-rule-tree) ;; Never. `skk-erase-prefix' called by `skk-kana-cleanup' ;; initializes `skk-prefix'. - (skk-error "$B%U%#%C%/%9$5$l$F$$$J$$(B skk-prefix $B$,$"$j$^$9(B" + (skk-error "フィックスされていない skk-prefix があります" "Have unfixed skk-prefix")) (setq pos (point)) (when (< pos skk-henkan-start-point) - (skk-error "$B%+!<%=%k$,JQ493+;OCOE@$h$jA0$K$"$j$^$9(B" + (skk-error "カーソルが変換開始地点より前にあります" "Henkan end point must be after henkan start point")) (setq skk-henkan-key (buffer-substring-no-properties skk-henkan-start-point pos)) (when (and skk-katakana - ;; C-u $B$r;H$C$F$$$J$$>l9g(B - ;; prog-list-number $B$O(B skk-insert() $B$K$*$1$k(B current-prefix-arg + ;; C-u を使っていない場合 + ;; prog-list-number は skk-insert() における current-prefix-arg (not (and prog-list-number (listp prog-list-number)))) (setq skk-henkan-key (skk-katakana-to-hiragana skk-henkan-key))) (when (and skk-okurigana (string-match "\\* *$" skk-henkan-key)) - (skk-error "$B6u$NAw$j2>L>$G4A;z$rEPO?$7$h$&$H$7$F$$$^$9(B" + (skk-error "空の送り仮名で漢字を登録しようとしています" "No okurigana!")) (if skk-allow-spaces-newlines-and-tabs - ;; skk-henkan-key $B$NCf$N(B "[ \n\t]+" $B$r40A4$K (point) skk-henkan-start-point) - (skk-error "$BJQ49%-!<$K2~9T$,4^$^$l$F$$$^$9(B" + (skk-error "変換キーに改行が含まれています" "Henkan key may not contain a new line character"))) - ;; $B:G=i$N%9%Z!<%9$G(B skk-henkan-key $B$r%+%C%H$9$k$@$1!#(B + ;; 最初のスペースで skk-henkan-key をカットするだけ。 (setq skk-henkan-key (substring skk-henkan-key 0 (string-match " " @@ -3174,14 +3174,14 @@ WORD $B$G3NDj$9$k!#(B" (skk-henkan prog-list-number) (when (and skk-abbrev-mode (eq skk-henkan-mode 'active)) - ;; $B$3$&$7$F$*$+$J$$$HJQ498e!"l9g$KJQ49$r3+;O$9$k!#(B -$B4X?t(B `skk-insert-str' $B$NA0$K$"$kJ8;zNs$N@hF,$KJQ493+;O%]%$%s%H$r<($9(B \"$B"&(B\" $B$rIU$1$k!#(B -$B%+!<%=%k$ND>A0$K$"$kJ8;z(B ($B%9%Z!<%9J8;z!"%?%VJ8;z!"D92;$rI=$o$9!V!r7o(B -$B$K%9%-%C%W$5$l$k(B) $B$r(B `skk-what-char-type' $B$K$FH=JL$7!"F1l9g$O!V$r!W$ND>A0$G!"%+%?%+%J$N>l9g$O!V%r!W$ND>A0$G;_$^$k!#(B -\\[universal-argument] ARG $B$G(B ARG $B$rM?$($k$H!"$=$NJ8;zJ,$@$1La$C$FF1$8F0:n$r9T$&!#(B" + "ポイントの直前にある文字列の先頭に変換開始ポイントを示す \"▽\" を付ける。 +カーソルの直前にある文字 (スペース文字、タブ文字、長音を表わす「ー」 は無条件 +にスキップされる) を `skk-what-char-type' にて判別し、同種の文字列をひとかたま +りとして後方へスキップする。 +但し、ひらがなの場合は「を」の直前で、カタカナの場合は「ヲ」の直前で止まる。 +\\[universal-argument] ARG で ARG を与えると、その文字分だけ戻って同じ動作を行う。" (interactive "*P") (if (not skk-mode) (skk-emulate-original-map arg) (catch 'exit1 (skk-save-point - ;; $B$H$j$"$($::G=i$N(B SPC, TAB, $BA43Q(B SPC $B$@$1%8%c%s%W$9$k!#(B - (skip-chars-backward " \t$B!!(B") - ;; $B0z?t$"$j!#(B + ;; とりあえず最初の SPC, TAB, 全角 SPC だけジャンプする。 + (skip-chars-backward " \t ") + ;; 引数あり。 (cond (arg (if (not skk-allow-spaces-newlines-and-tabs) (backward-char (prefix-numeric-value arg)) (setq arg (prefix-numeric-value arg)) (while (> arg 0) - (skip-chars-backward " \t$B!!(B") + (skip-chars-backward " \t ") (if (bolp) - ;; $B9TF,$@$C$?$i0l9TA0$N9TKv$^$GLa$k$,!"(Barg $B$O8:$i$5$J$$!#(B + ;; 行頭だったら一行前の行末まで戻るが、arg は減らさない。 (backward-char 1) (backward-char 1) (setq arg (1- arg)))))) (t - ;; $B0z?t$J$7!#(B + ;; 引数なし。 (let ((limit (if (not skk-allow-spaces-newlines-and-tabs) (skk-save-point (beginning-of-line) (point)) (point-min))) - ;; $B!2!1!0!/!.!-!,!+!*!)!(!'!&!%!$!#(B + ;; _ ̄^¨`´゜゛!?;:・.,。 (unknown-chars-regexp (if skk-allow-spaces-newlines-and-tabs - "[ $B!!(B\n\t$B! (point) limit) - ;; unknown-chars-regexp $B$G$OJ8;z (point) limit) (bolp)) - ;; 1 $B9T>e$N9TKv$X!#(B + ;; 1 行上の行末へ。 (backward-char 1) - ;; $B%]%$%s%H$,H=JL$G$-$J$$J8;ze$K$"$k4V$O(B - ;; backward $BJ}8~$X%]%$%s%H$rLa$9!#(B + ;; ポイントが判別できない文字種別の上にある間は + ;; backward 方向へポイントを戻す。 ;;(while (and (> (point) limit) ;; (looking-at unknown-chars-regexp)) ;; (backward-char 1)) @@ -3260,32 +3260,32 @@ WORD $B$G3NDj$9$k!#(B" (skk-set-henkan-point-subr))))) (defun skk-backward-and-set-henkan-point-1 (type) - "`skk-backward-and-set-henkan-point' $B$N%5%V%k!<%A%s!#(B -TYPE ($BJ8;z$NC$9!#(B" + "変換時にカレントバッファに表われる \"▽\", \"▼\" マークを消す。" (when (marker-position skk-henkan-start-point) (save-match-data (skk-save-point @@ -3357,21 +3357,21 @@ TYPE ($BJ8;z$NL>4XO"%U%i%0$r>C$9!#(B -$BAw$j2>L>F~NOCf$K%+%l%s%H%P%C%U%!$KI=$o$l$k(B `*' $B%^!<%/$r>C$7!"(B -NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B" + "送り仮名関連フラグを消す。 +送り仮名入力中にカレントバッファに表われる `*' マークを消し、 +NOCLEAR が nil であれば送り仮名関連フラグを nil にセットする。" (when (and skk-okurigana skk-okurigana-start-point (markerp skk-okurigana-start-point) @@ -3385,7 +3385,7 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B (setq skk-okuri-char nil skk-henkan-okurigana nil)))) -;; "[F7] $B%+%?%+%J(B" $B$N$h$&$J4JC1$JJQ495!G=$r3d$jEv$F$k$?$a$N%3%^%s%IDj5A(B +;; "[F7] カタカナ" のような簡単な変換機能を割り当てるためのコマンド定義 (defun skk-start-henkan-prog-null-handler (arg) (condition-case nil (skk-emulate-original-map arg) @@ -3424,7 +3424,7 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B ;;; jisyo related functions (defun skk-purge-from-jisyo (&optional arg) - "$B"'%b!<%I$G8=:_$N8uJd$r<-=q%P%C%U%!$+$i>C5n$9$k!#(B" + "▼モードで現在の候補を辞書バッファから消去する。" (interactive "*P") (skk-with-point-move (cond @@ -3435,7 +3435,7 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B (yes-or-no-p (format (if skk-japanese-message-and-error - "%s /%s/%s$B$r<-=q$+$i:o=|$7$^$9!#NI$$$G$9$+!)(B " + "%s /%s/%sを辞書から削除します。良いですか? " "Really purge \"%s /%s/%s\"? ") skk-henkan-key (skk-get-current-candidate) @@ -3445,23 +3445,23 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B skk-henkan-strict-okuri-precedence))) " ") (skk-japanese-message-and-error - (format " ($BAw$j2>L>(B: %s) " skk-henkan-okurigana)) + (format " (送り仮名: %s) " skk-henkan-okurigana)) (t (format " (okurigana: %s) " skk-henkan-okurigana)))))) - ;; skk-henkan-start-point $B$+$i(B point $B$^$G:o=|$7$F$7$^$C$F$b!"JQ49D>8e(B - ;; $B$K(B ($B%+!<%=%k$rF0$+$9$3$H$J$/(B) skk-purge-from-jisyo $B$r8F$Y$PLdBj$J$$(B - ;; $B$,!"%+!<%=%k$,0c$&>l=j$X0\F0$7$F$$$?>l9g$O!":o=|$9$Y$-$G$J$$$b$N$^(B - ;; $B$G:o=|$7$F$7$^$&2DG=@-$,$"$k!#$=$3$G!"Aw$j2>L>$,$"$l$P$=$ND9$5$r4^(B - ;; $B$a$?(B end $B$r5a$a!":#2s$NJQ49$K4XO"$7$?8D=j$@$1$r@53N$K@Z$jC$7$F$*$+$J$$$H!"L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B ;;;###autoload (defun skk-save-jisyo (&optional quiet) - "SKK $B$N<-=q%P%C%U%!$r%;!<%V$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B QUIET $B$,(B non-nil $B$G$"$l$P!"<-=q%;!<%V;~$N%a%C%;!<%8$r(B -$B=P$5$J$$!#(B" + "SKK の辞書バッファをセーブする。 +オプショナル引数の QUIET が non-nil であれば、辞書セーブ時のメッセージを +出さない。" (interactive "P") - ;; skk.el $B0J30$GDs6!$5$l$k<-=q%;!<%V5!G=$rMxMQ$G$-$k$h$&$K4X?t$r(B funcall $B$9$k(B - ;; $B7A$K$7$F$*$/!#(B + ;; skk.el 以外で提供される辞書セーブ機能を利用できるように関数を funcall する + ;; 形にしておく。 (unless noninteractive - ;; emacs $B$N=*N;;~$K8D?M<-=q$rJ]B8$9$k$?$a!"(Bskk.el (5190 $B9T$"$?$j(B) $B$G(B - ;; kill-emacs-hook $B$K(B #'skk-save-jisyo $B$r(B add-hook $B$7$F$$$k!#(B - ;; skk-mode $B$KF~$k$?$S$K8D?M<-=q$NB8:_$r3NG'$7$F$$$k!J$J$1$l$P<+F0@8@.!K$,!"(B - ;; $B2?$i$+$N860x$G8D?M<-=q$,B8:_$7$J$$>uBV$G(B emacs $B$r=*N;$7$h$&$H$9$k$H(B - ;; skk-save-jisyo-original (skk-get-jisyo-buffer) $BFb$N%(%i!<$G(B emacs $B$r=*N;$G$-$J$$;vBV$H$J$k!#(B + ;; emacs の終了時に個人辞書を保存するため、skk.el (5190 行あたり) で + ;; kill-emacs-hook に #'skk-save-jisyo を add-hook している。 + ;; skk-mode に入るたびに個人辞書の存在を確認している(なければ自動生成)が、 + ;; 何らかの原因で個人辞書が存在しない状態で emacs を終了しようとすると + ;; skk-save-jisyo-original (skk-get-jisyo-buffer) 内のエラーで emacs を終了できない事態となる。 (when (file-exists-p (skk-jisyo)) (funcall skk-save-jisyo-function quiet)))) ;;;###autoload (defun skk-save-jisyo-original (&optional quiet) - "SKK $B$N<-=q%P%C%U%!$r%;!<%V$9$k!#(B -$B%*%W%7%g%J%k0z?t(B QUIET $B$,(B non-nil $B$G$"$l$P!"<-=q%;!<%V;~$N%a%C%;!<%8$r=P$5$J$$!#(B" + "SKK の辞書バッファをセーブする。 +オプショナル引数 QUIET が non-nil であれば、辞書セーブ時のメッセージを出さない。" (let ((jisyo-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg))) (if (not (and jisyo-buffer (buffer-modified-p jisyo-buffer))) (unless quiet - (skk-message "SKK $B<-=q$rJ]B8$9$kI,MW$O$"$j$^$;$s(B" + (skk-message "SKK 辞書を保存する必要はありません" "No need to save SKK jisyo") (sit-for 1)) ;; @@ -3506,23 +3506,23 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B (let ((inhibit-quit t) (tempo-file (make-temp-file "skk"))) (unless quiet - (skk-message "SKK $B<-=q$rJ]B8$7$F$$$^$9(B..." + (skk-message "SKK 辞書を保存しています..." "Saving SKK jisyo...")) (skk-save-jisyo-as tempo-file) (skk-check-size-and-do-save-jisyo tempo-file) - ;; $B<-=q$N%;!<%V$K@.8y$7$F=i$a$F(B modified $B%U%i%0$r(B nil $B$K$9$k!#(B + ;; 辞書のセーブに成功して初めて modified フラグを nil にする。 (cond ((skk-share-private-jisyo-p) (skk-init-shared-jisyo) - ;; `set-buffer-modified-p' $B$OITMW$J(B lock $B$r2r=|$9$k!#$?$@$7!"(B - ;; $B%P%C%U%!$H%U%!%$%kL>$,4XO"IU$1$i$l$F$$$kI,MW$,$"$k!#(B + ;; `set-buffer-modified-p' は不要な lock を解除する。ただし、 + ;; バッファとファイル名が関連付けられている必要がある。 (let ((buffer-file-name (expand-file-name (skk-jisyo))) (buffer-file-truename (file-truename (skk-jisyo)))) (set-buffer-modified-p nil))) (t (set-buffer-modified-p nil))) (unless quiet - (skk-message "SKK $B<-=q$rJ]B8$7$F$$$^$9(B...$B40N;!*(B" + (skk-message "SKK 辞書を保存しています...完了!" "Saving SKK jisyo...done") (sit-for 1)))))) (setq skk-update-jisyo-count 0)) @@ -3538,24 +3538,24 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B (with-temp-buffer (insert-file-contents skk-emacs-id-file) (goto-char (point-min)) - ;; $B8D?M<-=q$,B>$N(B emacs $B>e$N(B skk $B$K$h$j99?7$5$l$?$+$r%A%'%C%/(B + ;; 個人辞書が他の emacs 上の skk により更新されたかをチェック (not (search-forward skk-emacs-id nil t))))) (defun skk-update-shared-jisyo () - "$B8D?M<-=q$,6&M-$5$l$F$$$k>l9g$K!"?7$7$$>pJs$K99?7$9$k!#(B -$B8=:_$N<-=q%P%C%U%!$NFbMF$r>C5n$7$F!"B>$N(B Emacs $B>e$N(B SKK $B$,99?7$7$?(B -`skk-jisyo' $B$rFI$_9~$`!#(B" + "個人辞書が共有されている場合に、新しい情報に更新する。 +現在の辞書バッファの内容を消去して、他の Emacs 上の SKK が更新した +`skk-jisyo' を読み込む。" (erase-buffer) (insert-file-contents (skk-jisyo)) (skk-setup-jisyo-buffer) - ;; skk-jisyo-update-vector $B$K$7$?$,$C$F%P%C%U%!$r99?7$9$k!#(B + ;; skk-jisyo-update-vector にしたがってバッファを更新する。 (let ((index 0) (len (length skk-jisyo-update-vector)) list skk-henkan-key) (while (and (< index len) (setq list (aref skk-jisyo-update-vector index))) ;; skk-update-jisyo-1, skk-search-jisyo - ;; $B$G;2>H$5$l$k(B skk-henkan-key $B$r%;%C%H$9$k(B + ;; で参照される skk-henkan-key をセットする (when (setq skk-henkan-key (car list)) (skk-update-jisyo-1 (nth 1 list) ;okurigana (nth 2 list) ;word @@ -3570,13 +3570,13 @@ NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B (unless (re-search-forward "^;; okuri-ari entries.$" nil 'noerror) (skk-error "\ -$BAw$j$"$j%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s!*(B SKK $B<-=q$N%;!<%V$rCf;_$7$^$9(B" +送りありエントリのヘッダーがありません! SKK 辞書のセーブを中止します" "\ Header line for okuri-ari entries is missing! Stop saving SKK jisyo")) (unless (re-search-forward "^;; okuri-nasi entries.$" nil 'noerror) (skk-error "\ -$BAw$j$J$7%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s(B $B!*(B SKK $B<-=q$N%;!<%V$rCf;_$7$^$9(B" +送りなしエントリのヘッダーがありません ! SKK 辞書のセーブを中止します" "\ Header line for okuri-nasi entries is missing! Stop saving SKK jisyo"))) (let ((coding-system-for-write (skk-find-coding-system (skk-jisyo t))) @@ -3587,60 +3587,60 @@ Header line for okuri-nasi entries is missing! Stop saving SKK jisyo"))) (skk-bind-last-command-char nil (let ((new-size (nth 7 (file-attributes new-file))) old-size - ;; yes-or-no-p $B$K2sEz$7!"(Bnewline $B$9$k$H!"(Bthis-command $B$,JQ$C$F$7$^$&!#(B + ;; yes-or-no-p に回答し、newline すると、this-command が変ってしまう。 this-command this-command-char last-command) (when (zerop new-size) (delete-file new-file) - (skk-error "SKK $B<-=q$,6u$K$J$C$F$$$^$9!*(B $B<-=q$N%;!<%V$rCf;_$7$^$9(B" + (skk-error "SKK 辞書が空になっています! 辞書のセーブを中止します" "Null SKK jisyo! Stop saving jisyo")) (cond ((or (not skk-compare-jisyo-size-when-saving) - ;; $B5l<-=q$H$N%5%$%:$rHf3S$7$J$$!#(B + ;; 旧辞書とのサイズを比較しない。 (progn - ;; (1)skk-jisyo $B$,$J$$$+!"(B - ;; (2)new-file $B$H(B skk-jisyo $B$,F10l$N%5%$%:$+(B - ;; (skk-(aux-)large-jisyo $B$+$i?75,$NC18l$rFI$_9~$^$J$+$C$?$j!"(B - ;; $B?75,C18l$NEPO?$r9T$o$J$+$C$?>l9g$O%5%$%:$,F1$8(B)$B!"(B - ;; (3)new-file $B$NJ}$,Bg$-$$(B - ;; $B>l9g(B ($B>e5-$N(B 3 $BDL$j$G$"$l$P$$$:$l$b@5>o(B)$B!#(B + ;; (1)skk-jisyo がないか、 + ;; (2)new-file と skk-jisyo が同一のサイズか + ;; (skk-(aux-)large-jisyo から新規の単語を読み込まなかったり、 + ;; 新規単語の登録を行わなかった場合はサイズが同じ)、 + ;; (3)new-file の方が大きい + ;; 場合 (上記の 3 通りであればいずれも正常)。 (setq old-size (nth 7 (file-attributes (skk-jisyo)))) (or (not old-size) (>= new-size old-size)))) (skk-make-new-jisyo new-file)) ((skk-yes-or-no-p - (format "%s $B$,(B %dbytes $B>.$5$/$J$j$^$9$,!"%;!<%V$7$FNI$$$G$9$+!)(B" + (format "%s が %dbytes 小さくなりますが、セーブして良いですか?" (skk-jisyo) (- old-size new-size)) (format "New %s will be %dbytes smaller. Save anyway?" (skk-jisyo) (- old-size new-size))) - ;; $B$H$K$+$/%;!<%V!#(B + ;; とにかくセーブ。 (skk-make-new-jisyo new-file)) (t - ;; $B%;!<%V$H$j;_$a!#(B + ;; セーブとり止め。 (delete-file new-file) (with-output-to-temp-buffer "*SKK warning*" (if skk-japanese-message-and-error (princ "\ -$B%;!<%V$7$h$&$H$9$k<-=q$N%5%$%:$,85$N%5%$%:$h$j$b>.$5$/$J$C$F$7$^$&$?$a!"(B -$B%;!<%V$rCf;_$7$^$7$?!#<-=q$N%5%$%:$,>.$5$/$J$C$?860x$K$O!"Nc$($P!"(B +セーブしようとする辞書のサイズが元のサイズよりも小さくなってしまうため、 +セーブを中止しました。辞書のサイズが小さくなった原因には、例えば、 - (a) M-x skk-purge-from-jisyo $B$rl9g$O0[>o$G$O$"$j$^$;$s!#(B -\(c) $B$N>l9g$OJT=8$NFbMF$K$h$j$^$9!#860x$r?5=E$K3NG'$7$F$+$i<-=q$rJ]B8$9$k$3(B -$B$H$r$*4+$a$7$^$9!#(B +などがあります。(a) と (b) の場合は異常ではありません。 +\(c) の場合は編集の内容によります。原因を慎重に確認してから辞書を保存するこ +とをお勧めします。 -$B85$N<-=q$r:F$SFI$_9~$`$K$O!"(B +元の辞書を再び読み込むには、 M-x skk-reread-private-jisyo -$B$rpJs$r(B `skk-record-file' $B$KJ]B8$9$k!#(B" + "個人辞書に関する統計情報を `skk-record-file' に保存する。" (unless (or (not skk-keep-record) (> 1 skk-kakutei-count)) (with-temp-file skk-record-file (insert-file-contents skk-record-file) (goto-char (point-min)) (insert (format - "%s $BEPO?(B: %3d $B3NDj(B: %4d $B3NDjN((B: %3d%% $B8l?t(B:%6d\n" + "%s 登録: %3d 確定: %4d 確定率: %3d%% 語数:%6d\n" (current-time-string) skk-touroku-count skk-kakutei-count @@ -3708,15 +3708,15 @@ If you want to restore the dictionary from your drive, try skk-kakutei-count) (cond ((featurep 'skk-rdbms) - ;; RDBMS $B$r;H$($P$b$C$H6=L#?<$$E}7W$,@\%U%!%$%kL>$G;XDj$G$-$k(B - ;; permission $B$,$J$$>l9g$,B?$$$h$M(B...$B!#(B + ;; データベースファイルを直接ファイル名で指定できる + ;; permission がない場合が多いよね...。 ;;(read-file-name ;; (format "Jisyo table: (default: %s) " ;; skk-rdbms-private-jisyo-table)) skk-rdbms-private-jisyo-table)))) - ;; mule@emacs19.31 $B$@$H2<5-$N$h$&$K$9$k$H(B (`$B%!(B' $B$,860x$N$h$&(B) $B2?8N$+(B - ;; default-directory $B$NKvHx$K2~9T$,IU$/!#(B - ;; $BDL>o$O5$$,IU$+$J$$$,!"(Brsz-mini.el $B$r;H$C$F(B resize-minibuffer-mode $B$r(B - ;; non-nil $B$K$7$F$$$k$HITMW$J(B 2 $B9TL\$,=P8=$9$k!#(B - ;; (interactive "f$B<-=q%U%!%$%k(B: ") + ;; mule@emacs19.31 だと下記のようにすると (`ァ' が原因のよう) 何故か + ;; default-directory の末尾に改行が付く。 + ;; 通常は気が付かないが、rsz-mini.el を使って resize-minibuffer-mode を + ;; non-nil にしていると不要な 2 行目が出現する。 + ;; (interactive "f辞書ファイル: ") (let ((count (funcall skk-count-jisyo-candidates-function file-or-table))) (if (called-interactively-p 'interactive) @@ -3763,8 +3763,8 @@ If you want to restore the dictionary from your drive, try count))) (defun skk-count-jisyo-candidates-original (file) - "SKK $B<-=q$N8uJd?t$r?t$($k!#(B -`[' $B$H(B `]' $B$K0O$^$l$?Aw$j2>L>Kh$N%V%m%C%/Fb$O?t$($J$$!#(B" + "SKK 辞書の候補数を数える。 +`[' と `]' に囲まれた送り仮名毎のブロック内は数えない。" (let ((orig-buffer (find-buffer-visiting file))) (with-current-buffer (let ((find-file-visit-truename t)) (or orig-buffer (find-file-noselect file))) @@ -3775,11 +3775,11 @@ If you want to restore the dictionary from your drive, try (interactive-p (called-interactively-p 'interactive))) (goto-char min) (unless (and - ;; $B$3$A$i$O(B skk-save-point $B$r;H$o$:!"%]%$%s%H$r0\F0$5$;$k!#(B + ;; こちらは skk-save-point を使わず、ポイントを移動させる。 (re-search-forward "^;; okuri-ari entries.$" nil t nil) (skk-save-point (re-search-forward "^;; okuri-nasi entries.$" nil t nil))) - (skk-error "$B$3$N%U%!%$%k$O(B SKK $B<-=q$G$O$"$j$^$;$s(B" + (skk-error "このファイルは SKK 辞書ではありません" "This file is not an SKK dictionary")) (beginning-of-line) (while (looking-at ";") @@ -3807,9 +3807,9 @@ If you want to restore the dictionary from your drive, try ;;;###autoload (defun skk-create-file (file &optional japanese english modes) - "FILE $B$,$J$1$l$P!"(BFILE $B$H$$$&L>A0$N6u%U%!%$%k$r:n$k!#(B -$B%*%W%7%g%J%k0z?t$N(B JAPANESE/ENGLISH $B$r;XDj$9$k$H!"%U%!%$%k:n@.8e$=$N%a%C%;!<%8(B -$B$r%(%3!<%(%j%"$KI=<($9$k!#(B" + "FILE がなければ、FILE という名前の空ファイルを作る。 +オプショナル引数の JAPANESE/ENGLISH を指定すると、ファイル作成後そのメッセージ +をエコーエリアに表示する。" (let ((file (expand-file-name file))) (if (file-exists-p file) (when modes @@ -3826,11 +3826,11 @@ If you want to restore the dictionary from your drive, try ;;;###autoload (defun skk-get-jisyo-buffer (file &optional nomsg) - "FILE $B$r3+$$$F(B SKK $B<-=q%P%C%U%!$r:n$j!"%P%C%U%!$rJV$9!#(B -$B<-=q%P%C%U%!$K$O(B `skk-jisyo-code' $B$,E,MQ$5$l$k(B (nil $B$G$"$l$P(B euc) $B$,!"(BFILE $B$K(B - (\"path/to/file\" . CODING-SYSTEM) $B$N%3%s%9%;%k$b;XDj$G$-$k!#(B -$B%*%W%7%g%J%k0z?t$N(B NOMSG $B$r;XDj$9$k$H%U%!%$%kFI$_9~$_$N:]$N%a%C%;!<%8$rI=<($7$J(B -$B$$!#(B" + "FILE を開いて SKK 辞書バッファを作り、バッファを返す。 +辞書バッファには `skk-jisyo-code' が適用される (nil であれば euc) が、FILE に + (\"path/to/file\" . CODING-SYSTEM) のコンスセルも指定できる。 +オプショナル引数の NOMSG を指定するとファイル読み込みの際のメッセージを表示しな +い。" (when file (let* ((inhibit-quit t) (code (skk-find-coding-system (cond ((consp file) @@ -3847,31 +3847,31 @@ If you want to restore the dictionary from your drive, try (file-name-nondirectory file) "*")) (buf (get-buffer buf-name))) - ;; $B<-=q%P%C%U%!$H$7$F%*!<%W%s$5$l$F$$$k$J$i!"2?$b$7$J$$!#(B + ;; 辞書バッファとしてオープンされているなら、何もしない。 (unless (buffer-live-p buf) (setq buf (get-buffer-create buf-name)) (setq file (expand-file-name file)) (with-current-buffer buf (buffer-disable-undo) (auto-save-mode -1) - ;; $B%o!<%-%s%0%P%C%U%!$N%b!<%I%i%$%s$O%"%C%W%G!<%H$5$l$J$$!)(B + ;; ワーキングバッファのモードラインはアップデートされない? ;;(make-local-variable 'line-number-mode) ;;(make-local-variable 'column-number-mode) ;;(setq column-number-mode nil ;; line-number-mode nil) (setq buffer-read-only nil case-fold-search nil - ;; buffer-file-name $B$r(B nil $B$K$7$F$*$/$H(B M-x compile $B$J$I(B - ;; $BFbIt$G(B save-some-buffers $B$r%3!<%k$7$F$$$k%3%^%s%I$r(B - ;; $B;H$C$?$H$-$G$b%;!<%V$9$k$+$I$&$+$r?R$M$F$3$J$/$J$k!#(B + ;; buffer-file-name を nil にしておくと M-x compile など + ;; 内部で save-some-buffers をコールしているコマンドを + ;; 使ったときでもセーブするかどうかを尋ねてこなくなる。 ;; buffer-file-name file ;; cache-long-line-scans nil - ;; dabbrev $B$N%5!<%A$H$J$k%P%C%U%!$K$J$i$J$$$h$&$KB8:_$7(B - ;; $B$J$$%b!<%IL>$K$7$F$*$/!#2A$9$k!#(B -$B$$$:$l$+$NMWAG$,8uJd$r8+$D$1$?;~E@$G=*N;$9$k!#(B" - ;; $B8D?M<-=q$G8uJd$,8+$D$+$l$P$=$l$rJV$9!J(BL $B<-=q$^$G8+$K$$$/Lu$G$O$J$$!K(B + "`skk-current-search-prog-list' の各要素(検索プログラム)を順に評価する。 +いずれかの要素が候補を見つけた時点で終了する。" + ;; 個人辞書で候補が見つかればそれを返す(L 辞書まで見にいく訳ではない) (let (l prog) (while (and (null l) skk-current-search-prog-list) @@ -3902,9 +3902,9 @@ If you want to restore the dictionary from your drive, try (setq l (if (and skk-use-numeric-conversion (string-match "[0-9]" skk-henkan-key) (skk-numeric-program-p prog)) - ;; -- 12.2.1 $B$+$i$NJQ99(B -- - ;; $B?tCMJQ49;~$K!"Hs?tCMJQ49$bF1;~$K8!:w$7$F8uJd$K(B - ;; $B4^$a$k!#(B + ;; -- 12.2.1 からの変更 -- + ;; 数値変換時に、非数値変換も同時に検索して候補に + ;; 含める。 (skk-nunion (let (skk-use-numeric-conversion) (eval prog)) (eval prog)) @@ -3928,29 +3928,29 @@ If you want to restore the dictionary from your drive, try skk-search-ex-state ""))))) (defun skk-numeric-program-p (program) - "$B<-=q8!:w%W%m%0%i%`(B PROGRAM $B$,?tCMJQ49M-8z$+$I$&$+H=Dj$9$k!#(B -$B$b$7%W%m%0%i%`$,(B `skk-non-numeric-prog-list' $B$K;XDj$5$l$F$$$?$i(B nil $B$rJV$9!#(B -$B$5$b$J$1$l$P(B non-nil $B$rJV$9!#(B" + "辞書検索プログラム PROGRAM が数値変換有効かどうか判定する。 +もしプログラムが `skk-non-numeric-prog-list' に指定されていたら nil を返す。 +さもなければ non-nil を返す。" (not (or (memq (car program) skk-non-numeric-prog-list) (member program skk-non-numeric-prog-list)))) (defun skk-search-jisyo-file (file limit &optional nomsg) - "SKK $B<-=q%U%)!<%^%C%H$N(B FILE $B$G(B `skk-henkan-key' $B$r%-!<$K$7$F8!:w$9$k!#(B -$B8!:wNN0h$,(B LIMIT $B0J2<$K$J$k$^$G%P%$%J%j%5!<%A$r9T$$!"$=$N8e%j%K%"%5!<%A$r9T$&!#(B -LIMIT $B$,(B 0 $B$G$"$l$P!"%j%K%"%5!<%A$N$_$r9T$&!#(B -$B<-=q$,%=!<%H$5$l$F$$$J$$>l9g$O(B LIMIT $B$r(B 0 $B$H$9$kI,MW$,$"$k!#(B -$B%*%W%7%g%J%k0z?t$N(B NOMSG $B$,(B non-nil $B$G$"$l$P(B `skk-get-jisyo-buffer' $B$N(B -$B%a%C%;!<%8$r=PNO$7$J$$!#(B - -FILE $B$K$O<-=q%U%!%$%k$@$1$G$J$/!"(B - ($B<-=q%U%!%$%k(B . $B%3!<%G%#%s%0%7%9%F%`(B) -$B$N%Z%"$bH$N$3$H!#(B" + "辞書サーバを使用して `skk-henkan-key' をキーにして検索する。 +辞書サーバが使用できないときは、FILE をバッファに読み込んで検索する。 +LIMIT と NOMSG は辞書サーバが使用できないときのみ有効。 +これらの引数については `skk-search-jisyo-file' を参照のこと。" (if (or skk-server-host skk-servers-list) (skk-search-server-1 file limit) - ;; $B<-=q%5!<%P$,MxMQ2DG=$G$J$1$l$P(B file $B$r8!:w$9$k!#(B - ;; $B0z?t(B file $B$ODL>o(B `skk-aux-large-jisyo' $B$,;XDj$5$l$k!#(B + ;; 辞書サーバが利用可能でなければ file を検索する。 + ;; 引数 file は通常 `skk-aux-large-jisyo' が指定される。 (when (and (stringp file) (file-readable-p file)) (skk-search-jisyo-file file limit nomsg)))) (defun skk-okuri-search () - "$B8+=P$78l$rAw$j2>L>$r4^$`$b$N$H$7$F8!:w$9$k!#(B -$BNc$($P!"(B`skk-auto-okuri-process' $B$,(B non-nil $B$J$i$P(B \"Uresii\" $B$N$h$&$KAw$j2>(B -$BL>$b4^$a$F%?%$%W$7$F$bAw$j$"$j$N(B \"$B4r$7$$(B\" $B$rC5$7=P$9!#(B" + "見出し語を送り仮名を含むものとして検索する。 +例えば、`skk-auto-okuri-process' が non-nil ならば \"Uresii\" のように送り仮 +名も含めてタイプしても送りありの \"嬉しい\" を探し出す。" (when skk-auto-okuri-process (skk-okuri-search-1))) (defun skk-search-jisyo-buf (buf limit) - "$B%P%C%U%!$r(B BUF $B$K0\F0$7$F!"$=$3$r<-=q$H$7$F8!:w$9$k!#(B" + "バッファを BUF に移動して、そこを辞書として検索する。" (when (buffer-live-p buf) - ;; skk-henkan-key $B$H(B skk-henkan-okurigana $B$O%+%l%s%H%P%C%U%!$N(B - ;; $B%m!<%+%kCM$J$N$G!"$"$i$+$8$a2A$7$?CM$G$"$k!#(B -DELETE $B$,(B non-nil $B$G$"$l$P(B `skk-henkan-key' $B$K%^%C%A$9$k%(%s%H%j$r:o=|$9$k!#(B" + "カレントバッファを辞書として検索する。 +この関数の戻り値は、`skk-henkan-key' をキーとして `skk-compute-henkan-lists' を +評価した値である。 +DELETE が non-nil であれば `skk-henkan-key' にマッチするエントリを削除する。" - ;; (let ((skk-henkan-key "$B$[$+$s(B")) + ;; (let ((skk-henkan-key "ほかん")) ;; (with-current-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg) ;; (skk-search-jisyo nil 0))) - ;; => (("$BJd4V(B" "$BJd40(B" "$BJ]4I(B") nil nil nil) + ;; => (("補間" "補完" "保管") nil nil nil) - ;; (let ((skk-henkan-key "$B$&$4(Bk")) + ;; (let ((skk-henkan-key "うごk")) ;; (with-current-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg) - ;; (skk-search-jisyo "$B$/(B" 0))) - ;; => (("$BF0(B") ("[$B$/(B") ("$BF0(B") ("]")) + ;; (skk-search-jisyo "く" 0))) + ;; => (("動") ("[く") ("動") ("]")) (let ((key (concat "\n" skk-henkan-key " /")) min max size p) (save-match-data - ;; skk-okuri-ari-min $B$H(B skk-okuri-ari-max $B$O<-=q%P%C%U%!$N%m!<%+%kCM!#(B + ;; skk-okuri-ari-min と skk-okuri-ari-max は辞書バッファのローカル値。 (if okurigana (setq min skk-okuri-ari-min max skk-okuri-ari-max) (setq min skk-okuri-nasi-min max (point-max))) (when (> limit 0) - ;; $BFsJ,C5:w(B + ;; 二分探索 (while (> (setq size (- max min)) limit) (goto-char (+ min (/ size 2))) (beginning-of-line) @@ -4041,7 +4041,7 @@ DELETE $B$,(B non-nil $B$G$"$l$P(B `skk-henkan-key' $B$K%^%C%A$9$k%(%s%H%j$ (if (= p min) (setq max min) ; return (let ((p-is-further - ;; $BAw$j$"$j$J$i5U=g$KHf3S$9$k!#(B + ;; 送りありなら逆順に比較する。 (if okurigana (skk-string< (buffer-substring-no-properties p (1- (search-forward " "))) @@ -4053,11 +4053,11 @@ DELETE $B$,(B non-nil $B$G$"$l$P(B `skk-henkan-key' $B$K%^%C%A$9$k%(%s%H%j$ (setq max p) (setq min p)))))) (goto-char min) - ;; key $B$,8!:w3+;OCOE@$K$"$C$?>l9g$G$b8!:w2DG=$J$h$&$K0lJ8;zLa$k!#(B - ;; key $B$N@hF,ItJ,$K(B "\n" $B$,4^$^$l$F$$$k$3$H$KCm0U!#(B + ;; key が検索開始地点にあった場合でも検索可能なように一文字戻る。 + ;; key の先頭部分に "\n" が含まれていることに注意。 (unless (bobp) (backward-char 1)) - ;; case-fold-search $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B + ;; case-fold-search は、辞書バッファでは常に nil。 (when (search-forward key max 'noerror) (prog1 (skk-compute-henkan-lists okurigana) @@ -4069,18 +4069,18 @@ DELETE $B$,(B non-nil $B$G$"$l$P(B `skk-henkan-key' $B$K%^%C%A$9$k%(%s%H%j$ (point))))))))) (defun skk-select-words-from-list (list buffer midasi okurigana) - "`skk-search-jisyo' $B$,JV$7$?8uJd%j%9%H$+$i8=:_MW5a$5$l$F$$$k8uJd$rA*$S$@$9!#(B" + "`skk-search-jisyo' が返した候補リストから現在要求されている候補を選びだす。" (when list (let ((words (cond ((and okurigana skk-henkan-okuri-strictly) - ;; $BAw$j2>L>$,F10l$N8uJd$N$_$rJV$9!#(B + ;; 送り仮名が同一の候補のみを返す。 (nth 2 list)) ((and okurigana skk-henkan-strict-okuri-precedence) - ;; $BAw$j2>L>$,F10l$N8uJd$N$&$7$m$K!"(B - ;; $B$=$NB>$N8uJd$r$D$1$F$+$($9!#(B + ;; 送り仮名が同一の候補のうしろに、 + ;; その他の候補をつけてかえす。 (skk-nunion (nth 2 list) (car list))) (t @@ -4091,51 +4091,51 @@ DELETE $B$,(B non-nil $B$G$"$l$P(B `skk-henkan-key' $B$K%^%C%A$9$k%(%s%H%j$ ;;;###autoload (defun skk-compute-henkan-lists (okurigana) - "$B<-=q8uJd72$r#4$D$N%j%9%H$KJ,2r$9$k!#(B -$B>\$7$/$O!"$3$N4X?t$N%3%a%s%H$r;2>H!#(B" - ;; $BAw$j$J$7(B ($BNc$($P!"<-=q%(%s%H%j(B "$B$F$s$5$$(B /$BE>:\(B/$BE7:R(B/$BE7:M(B/" $B$N=hM}(B) - ;; words1 := ("$BE>:\(B" "$BE7:R(B" "$BE7:M(B") == $BA48uJd72(B + "辞書候補群を4つのリストに分解する。 +詳しくは、この関数のコメントを参照。" + ;; 送りなし (例えば、辞書エントリ "てんさい /転載/天災/天才/" の処理) + ;; words1 := ("転載" "天災" "天才") == 全候補群 ;; words2 := nil ;; words3 := nil ;; words4 := nil ;; ;; (with-temp-buffer - ;; (insert "$B$F$s$5$$(B /$BE>:\(B/$BE7:R(B/$BE7:M(B/") + ;; (insert "てんさい /転載/天災/天才/") ;; (goto-char (point-min)) ;; (search-forward " /") ;; (skk-compute-henkan-lists "")) - ;; => (("$BE>:\(B" "$BE7:R(B" "$BE7:M(B") nil nil nil) - - ;; $BAw$j$"$j(B ($BNc$($P!"!V5c$/!W$NJQ49$r9T$C$?>l9g$N!"<-=q%(%s%H%j(B - ;; "$B$J(Bk /$BK4(B/$BL5(B/$BLD(B/$B5c(B/[$B$/(B/$BL5(B/$BLD(B/$B5c(B/]/[$B$-(B/$BK4(B/]/" $B$N=hM}(B) - ;; words1 := ("$BK4(B" "$BL5(B" "$BLD(B" "$B5c(B") == $B4A;zItJ,$NA48uJd72(B - ;; words2 := ("[$B$/(B") == $BB>$NAw$j2>L>$r;H$&4A;z8uJd72(B ($B$"$l(B - ;; $B$P(B) + $B:#2s$NJQ49$NAw$j2>L>ItJ,(B - ;; words3 := ("$BL5(B" "$BLD(B" "$B5c(B") == $B:#2s$NJQ49$NAw$j2>L>$r;H$&2DG=@-$N(B - ;; $B$"$kA44A;z8uJd72(B - ;; words4 := ("]" "[$B$-(B" "$BK4(B" "]") == $BB>$NAw$j2>L>$r;H$&4A;z8uJd72(B ($B;D(B - ;; $B$j!#$"$l$P(B) + ;; => (("転載" "天災" "天才") nil nil nil) + + ;; 送りあり (例えば、「泣く」の変換を行った場合の、辞書エントリ + ;; "なk /亡/無/鳴/泣/[く/無/鳴/泣/]/[き/亡/]/" の処理) + ;; words1 := ("亡" "無" "鳴" "泣") == 漢字部分の全候補群 + ;; words2 := ("[く") == 他の送り仮名を使う漢字候補群 (あれ + ;; ば) + 今回の変換の送り仮名部分 + ;; words3 := ("無" "鳴" "泣") == 今回の変換の送り仮名を使う可能性の + ;; ある全漢字候補群 + ;; words4 := ("]" "[き" "亡" "]") == 他の送り仮名を使う漢字候補群 (残 + ;; り。あれば) ;; ;; (with-temp-buffer - ;; (insert "$B$J(Bk /$BK4(B/$BL5(B/$BLD(B/$B5c(B/[$B$/(B/$BL5(B/$BLD(B/$B5c(B/]/[$B$-(B/$BK4(B/]/") + ;; (insert "なk /亡/無/鳴/泣/[く/無/鳴/泣/]/[き/亡/]/") ;; (goto-char (point-min)) ;; (search-forward " /") - ;; (skk-compute-henkan-lists "$B$/(B")) - ;; => (("$BK4(B" "$BL5(B" "$BLD(B" "$B5c(B") ("[$B$/(B") ("$BL5(B" "$BLD(B" "$B5c(B") ("]" "[$B$-(B" "$BK4(B" "]")) + ;; (skk-compute-henkan-lists "く")) + ;; => (("亡" "無" "鳴" "泣") ("[く") ("無" "鳴" "泣") ("]" "[き" "亡" "]")) ;; - ;; * "[" $B$OD>8e$KB3$/$R$i$,$J$rAw$j2>L>$K;}$D4A;z$N8uJd72$N;O$^$j$rI=$7!"(B - ;; "]" $B$O!"3:Ev$NAw$j2>L>%0%k!<%W$N=*$j$r<($9!#(B + ;; * "[" は直後に続くひらがなを送り仮名に持つ漢字の候補群の始まりを表し、 + ;; "]" は、該当の送り仮名グループの終りを示す。 - ;; $B$3$N4X?t$O!"JQ49;~$H!"3NDjD>8e$N<-=q$N%"%C%W%G!<%H;~$N#2EY8F$P$l$k(B - ;; ($BJQ49;~$K8!:w$r9T$C$?<-=q$,!"(Bskk-jisyo $B$H$O8B$i$J$$$N$G!"#2EY7W;;$;$6$k(B - ;; $B$rF@$J$$(B)$B!#(B + ;; この関数は、変換時と、確定直後の辞書のアップデート時の2度呼ばれる + ;; (変換時に検索を行った辞書が、skk-jisyo とは限らないので、2度計算せざる + ;; を得ない)。 ;; - ;; $BJQ49;~$O!"(B - ;; o skk-henkan-okuri-strictly $B$,(B non-nil $B$G$"$l$P!"7W;;7k2L$N(B words3 $B$r!"(B - ;; o skk-henkan-okuri-strictly $B$,(B nil $B$G$"$C$F(B - ;; - skk-henkan-strict-okuri-precedence $B$,(B non-nil $B$"$l$P(B (skk-nunion words3 words1) $B$r(B - ;; - skk-henkan-strict-okuri-precedence $B$,(B nil $B$N>l9g$O(B words1 $B$r(B - ;; $Bl9g$O!"Bg0hJQ?t(B `skk-kakutei-henkan-flag' $B$K(B non-nil $B$rBeF~$9$k!#(B -$B0z?t$K$D$$$F$O(B `skk-search-jisyo-file' $B$r;2>H!#(B + "SKK 辞書フォーマットの FILE から検索する。 +候補を見つけた場合は、大域変数 `skk-kakutei-henkan-flag' に non-nil を代入する。 +引数については `skk-search-jisyo-file' を参照。 -$BMxMQ$9$k>l9g$O(B `skk-search-prog-list' $B$N@hF,$KG[$9$k;v!#(B" +利用する場合は `skk-search-prog-list' の先頭に配する事。" (setq skk-kakutei-henkan-flag (skk-search-jisyo-file file limit nomsg))) ;;;###autoload (defun skk-update-jisyo (word &optional purge) (funcall skk-update-jisyo-function word purge) (when (and skk-save-jisyo-instantly - (or skk-jisyo-updated ; skk-henkan-in-minibuff $B$G(B setq + (or skk-jisyo-updated ; skk-henkan-in-minibuff で setq purge)) (skk-save-jisyo 'quiet) (setq skk-jisyo-updated nil))) ;;;###autoload (defun skk-update-jisyo-original (word &optional purge) - "$B:(B $B$D(Bi /$BIU(B/[$B$$(B/$BIU(B/]/ - ;; $B=g=g(B $B$1(Bs /$B>C(B/[$B$9(B/$B>C(B/]/[$B$7(B/$B>C(B/]/[$B$;(B/$B>C(B/]/[$B$5(B/$B>C(B/]/ - ;; $B"-(B $B$+$((Bs /$BJV(B/[$B$7(B/$BJV(B/]/[$B$9(B/$BJV(B/]/[$B$5(B/$BJV(B/]/[$B$;(B/$BJV(B/]/ + ;; 変で でt /出/[て/出/]/[た/出/]/ + ;; 換昇 つi /付/[い/付/]/ + ;; 順順 けs /消/[す/消/]/[し/消/]/[せ/消/]/[さ/消/]/ + ;; ↓ かえs /返/[し/返/]/[す/返/]/[さ/返/]/[せ/返/]/ ;; ... ;; ... - ;; $B$J$,(Bs /$BD9(B/$BN.(B/[$B$7(B/$BN.(B/]/[$B$5(B/$BD9(B/]/[$B$=(B/$BN.(B/]/ + ;; ながs /長/流/[し/流/]/[さ/長/]/[そ/流/]/ ;; ;; okuri-nasi entries. - ;; $BJQ$G(B $B$8$g$&$?$$(B /$B>uBV(B/ - ;; $B49>:(B $B$=$&$K$e$&(B /$BA^F~(B/ - ;; $B=g=g(B $B$+$J(B /$B2>L>(B/ - ;; $B"-(B ... + ;; 変で じょうたい /状態/ + ;; 換昇 そうにゅう /挿入/ + ;; 順順 かな /仮名/ + ;; ↓ ... ;; ... ;; - ;; skk-auto-okuri-process $B$,(B non-nil $B$N$H$-$K!"(Bskk-okuri-search $B$O8+=P$78l$N(B - ;; $BD9$$=g$K8uJd$rJV$9I,MW$,$"$k!#(B - ;; skk-okuri-search $B$,!"8+IU$1$?8uJd$r8+=P$78l$r%-!<$H$7$F>:=g$K%=!<%H$7$FJV(B - ;; $B$9$?$a!"8D?M<-=q$N%=!<%H$OI,MW$G$J$$!#(B - ;; $B$h$C$F!":G8e$KJQ49$7$?$b$N$r(B skk-okuri-ari-min $B$N0LCV$KA^F~$9$k!#(B + ;; skk-auto-okuri-process が non-nil のときに、skk-okuri-search は見出し語の + ;; 長い順に候補を返す必要がある。 + ;; skk-okuri-search が、見付けた候補を見出し語をキーとして昇順にソートして返 + ;; すため、個人辞書のソートは必要でない。 + ;; よって、最後に変換したものを skk-okuri-ari-min の位置に挿入する。 ;; (let* ((jisyo-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg)) (cand (car (skk-treat-strip-note-from-word word))) @@ -4248,8 +4248,8 @@ WORD $B$,6&M-<-=q$K$J$1$l$P!"8D?M<-=q$N<-=q%(%s%H%j$+$i:o=|$9$k!#(B" skk-henkan-key)) (henkan-buffer (and skk-update-end-function (current-buffer)))) - ;; $BF~NOMzNr$r99?7$9$k!#(B - ;; $BAw$j$"$jF~NO$O>JN,$7!"Aw$j$J$7F~NO$N$_MzNr$r$H$k!#(B + ;; 入力履歴を更新する。 + ;; 送りあり入力は省略し、送りなし入力のみ履歴をとる。 (unless skk-henkan-okurigana (skk-update-kakutei-history midasi word)) @@ -4258,22 +4258,22 @@ WORD $B$,6&M-<-=q$K$J$1$l$P!"8D?M<-=q$N<-=q%(%s%H%j$+$i:o=|$9$k!#(B" buffer-read-only old-words-list okurigana) (when (> skk-okuri-index-min -1) (setq word (skk-remove-common word) - ;; skk-henkan-key $B$O(B skk-remove-common $B$K$h$C$F(B - ;; $BJQ99$5$l$F$$$k2DG=@-$,$"$k!#(B + ;; skk-henkan-key は skk-remove-common によって + ;; 変更されている可能性がある。 midasi skk-henkan-key)) (setq okurigana (or skk-henkan-okurigana skk-okuri-char)) (with-current-buffer jisyo-buffer - ;; $B4{B8%(%s%H%j$r8!:w8e>C5n$9$k!#A^F~$9$Y$-8uJd$,(B words1 $B$K(B 1 $B$D(B - ;; $B$7$+$J$/!"(Bword $B$HF1$8J8;z$G$"$C$F$b!"$$$C$?$s>C$7$F$=$N%(%s%H(B - ;; $B%j$r(B min $B%]%$%s%H$K0\F0$5$;$J$1$l$P$J$i$J$$!#$3$l$O!"FI$_$NJd(B - ;; $B40$r9T$&$H$-$K!"(B min $B%]%$%s%H$+$i8+=P$7$rC5$9$?$a!"?7$7$$8+=P(B - ;; $B$7$[$I!"(Bmin $B%]%$%s%H$K6a$$$H$3$m$K$J$1$l$P$J$i$J$$$+$i$G$"$k!#(B + ;; 既存エントリを検索後消去する。挿入すべき候補が words1 に 1 つ + ;; しかなく、word と同じ文字であっても、いったん消してそのエント + ;; リを min ポイントに移動させなければならない。これは、読みの補 + ;; 完を行うときに、 min ポイントから見出しを探すため、新しい見出 + ;; しほど、min ポイントに近いところになければならないからである。 (setq skk-henkan-key midasi old-words-list (skk-search-jisyo okurigana 0 'delete)) (skk-update-jisyo-1 okurigana word old-words-list purge) - ;; $BJ#?t$N(B emacs $B$G(B SKK $B$,5/F0$5$l$F$$$k$H$-$K8D?M<-=q$r@09gE*$K(B - ;; $B99?7$9$k$?$a$K3NDj$NF0:n$r5-O?$9$k!#(B + ;; 複数の emacs で SKK が起動されているときに個人辞書を整合的に + ;; 更新するために確定の動作を記録する。 (when (and (skk-share-private-jisyo-p) (< skk-jisyo-save-count (length skk-jisyo-update-vector))) (aset skk-jisyo-update-vector skk-update-jisyo-count @@ -4281,57 +4281,57 @@ WORD $B$,6&M-<-=q$K$J$1$l$P!"8D?M<-=q$N<-=q%(%s%H%j$+$i:o=|$9$k!#(B" (dolist (function skk-update-end-function) (funcall function henkan-buffer midasi okurigana word purge)) (setq skk-update-jisyo-count (1+ skk-update-jisyo-count)) - ;; skk-share-private-jisyo $B$,(B non-nil $B$N$H$-$O(B skk-jisyo-save-count - ;; $B$b(B non-nil $B$G$"$k$3$H$rA0Ds$H$9$k(B + ;; skk-share-private-jisyo が non-nil のときは skk-jisyo-save-count + ;; も non-nil であることを前提とする (when (and skk-jisyo-save-count (<= skk-jisyo-save-count skk-update-jisyo-count)) ;; auto save. (skk-save-jisyo 'quiet))))))) (defun skk-update-jisyo-1 (okurigana word old-words-list purge) - "$B8D?M<-=q$K?7$7$$%(%s%H%j$rA^F~$9$k!#(B -$B4{B8%(%s%H%j$+$i7W;;$7$?(B words[1-4] $B$NCM$H!":#2s$NJQ49$N7k2L(B word $B$H$r(B -$B7k9g$7$F!"?7$?$J%(%s%H%j$r7W;;$7!"A^F~$9$k!#(B" - ;; $BF~NO$H$J$k(B OLD-WORDS-LIST $B$O!"4X?t(B `skk-search-jisyo' $B$,=PNO$7$?$b$N$G$"$k!#(B + "個人辞書に新しいエントリを挿入する。 +既存エントリから計算した words[1-4] の値と、今回の変換の結果 word とを +結合して、新たなエントリを計算し、挿入する。" + ;; 入力となる OLD-WORDS-LIST は、関数 `skk-search-jisyo' が出力したものである。 (let ((words1 (car old-words-list)) (words2 (nth 1 old-words-list)) (words3 (nth 2 old-words-list)) (words4 (nth 3 old-words-list))) (cond ((not purge) - ;; words1 $B$r99?7(B + ;; words1 を更新 (if skk-jisyo-fix-order (if (consp words1) - ;; $B?75,$N;~$O!"B>$NF12;8l$N8e$KDI2C(B + ;; 新規の時は、他の同音語の後に追加 (unless (member word words1) (setcdr (last words1) (cons word nil))) - ;; $B:#2s$NFI$_$N8l!"$=$N$b$N$,?75,(B + ;; 今回の読みの語、そのものが新規 (setq words1 (cons word nil))) - ;; words1 $B$N@hF,$N8uJd$r(B word $B$K$9$k!#(B + ;; words1 の先頭の候補を word にする。 (setq words1 (cons word (delete word words1))))) - ;; $BAw$j$J$7!"$b$7$/$O(B skk-henkan-okuri-strictly $B$H(B - ;; skk-henkan-strict-okuri-precedence $B$,(B nil $B$N>l9g!#(B + ;; 送りなし、もしくは skk-henkan-okuri-strictly と + ;; skk-henkan-strict-okuri-precedence が nil の場合。 (t - ;; words1 $B$r(B purge$B!#6&MQ<-=q$K$"$k8uJd$@$C$?$i!"(B - ;; skk-ignore-dic-word $B$G%/%)!<%H$7$FC$9!#(B + ;; words1 を purge。共用辞書にある候補だったら、 + ;; skk-ignore-dic-word でクォートして次の変換から出力 + ;; しないようにする。共用辞書にない文字列は word を消す。 (setq words1 (if (skk-public-jisyo-has-word-p okurigana word) (skk-compose-ignore-word words1 word) (delete word words1))))) - (when words1 ;; words1 $B$,(B null $B$G$"$l$P!"$b$&2?$b$9$k$3$H$O$J$$!#(B + (when words1 ;; words1 が null であれば、もう何もすることはない。 (goto-char (if okurigana skk-okuri-ari-min skk-okuri-nasi-min)) (insert "\n" skk-henkan-key " /") - ;; words1 -- $BA48uJd72(B ($BAw$j$J$7$N>l9g(B) $B!"$^$?$O(B - ;; $BA48uJd72$N4A;zItJ,(B ($BAw$j$"$j$N>l9g(B) + ;; words1 -- 全候補群 (送りなしの場合) 、または + ;; 全候補群の漢字部分 (送りありの場合) (insert (skk-update-jisyo-2 words1) "/") (when okurigana - ;; words2 $B0J9_$N8uJd72$r=hM}$9$k$N$O!"Aw$j$"$j$N>l9g$N$_!#(B - ;; $B@h$KA^F~$9$Y$-8uJd72$r7W;;!"D4@0$9$k!#(B + ;; words2 以降の候補群を処理するのは、送りありの場合のみ。 + ;; 先に挿入すべき候補群を計算、調整する。 (cond (words3 (cond ((not purge) (if skk-jisyo-fix-order @@ -4341,57 +4341,57 @@ WORD $B$,6&M-<-=q$K$J$1$l$P!"8D?M<-=q$N<-=q%(%s%H%j$+$i:o=|$9$k!#(B" (t (setq words3 (delete word words3)) (when (null words3) - ;; words3 $B$H$7$FA^F~$9$k$b$N$,A4$/$J$1$l$P!"(B"/[$B$/(B/]/" $B$N$h(B - ;; $B$&$JAw$j2>L>$N$_$N8uJd$r:n$i$J$$$h$&$K$9$k(B ($BI,MW$G(B - ;; $B$"$l$P!"(Bwords2 $B$N:G8eJ}$H(B) words4 $B$N@hF,$N(B "]" $B$r:o=|!#(B + ;; words3 として挿入するものが全くなければ、"/[く/]/" のよ + ;; うな送り仮名のみの候補を作らないようにする (必要で + ;; あれば、words2 の最後方と) words4 の先頭の "]" を削除。 (let* ((len (length words2)) (last2 (cl-case len (0 nil) (1 (list nil (car words2))) (t (nthcdr (- (length words2) 2) words2))))) - ;; words2 $B$N:G8eJ}$O>o$K(B "[$BAw$j2>L>(B" $B$H$O8B$i$J$$!#(B + ;; words2 の最後方は常に "[送り仮名" とは限らない。 (when (and last2 (string= (nth 1 last2) (concat "[" okurigana))) (cl-case len (1 (setq words2 nil)) (t (setcdr last2 nil)))) - ;; words4 $B$N@hF,$O>o$K(B "]"$B!#(B + ;; words4 の先頭は常に "]"。 (setq words4 (cdr words4))))))) (t - ;; words3 $B$,(B null $B$G$"$l$P(B + ;; words3 が null であれば (unless (or skk-process-okuri-early purge) - ;; skk-process-okuri-early $B$,(B non-nil $B$J$iAw$j2>L>$,J,$i$J$$$N$G(B - ;; $B2?$b$7$J$$!#(B-- $B:#2s;HMQ$7$?Aw$j2>L>$,$o$+$i$J$$$^$^JQ49$7$F$$(B - ;; $B$k$N$G!"A4$F$N8uJd$,(B words2 $B$KF~$C$F$$$k(B -- words3, words4 $B$O(B - ;; null$B!#(B - ;; words3 $B$H$7$FA^F~$9$k$b$N$,A4$/$J$1$l$P!"2?$b$7$J$$(B -- words3 - ;; $B$,(B purge $BA0$+$i(B null $B$J$i!"(Bwords2 $B$NKvHx$O(B "[" $B$G$J$$$7!"(B - ;; words4 $B$O(B null $B$@$+$i(B words[234] $B$NA`:n$OITMW!#(B + ;; skk-process-okuri-early が non-nil なら送り仮名が分らないので + ;; 何もしない。-- 今回使用した送り仮名がわからないまま変換してい + ;; るので、全ての候補が words2 に入っている -- words3, words4 は + ;; null。 + ;; words3 として挿入するものが全くなければ、何もしない -- words3 + ;; が purge 前から null なら、words2 の末尾は "[" でないし、 + ;; words4 は null だから words[234] の操作は不要。 (setq words2 (nconc words2 (list (concat "[" okurigana))) words3 (list word) - ;; purge $BA0$+$i(B words3 $B$,(B null $B$@$C$?$N$@$+$i(B - ;; words4 $B$b(B null$B!#(B + ;; purge 前から words3 が null だったのだから + ;; words4 も null。 words4 (list "]")))))) (when words2 - ;; words2 -- $B:#2s;HMQ$7$J$+$C$?Aw$j2>L>$r;H$&4A;z$N8uJd72(B + ;; words2 -- 今回使用しなかった送り仮名を使う漢字の候補群 ;; + "[" - ;; + $B:#2s;HMQ$7$?Aw$j2>L>(B ($BAw$j2>L>$N$_!#$=$NAw$j(B - ;; $B2>L>$r;HMQ$9$k4A;z$N8uJd72$O!"(Bwords3 $B$K4^$^$l$k(B) + ;; + 今回使用した送り仮名 (送り仮名のみ。その送り + ;; 仮名を使用する漢字の候補群は、words3 に含まれる) (insert (skk-update-jisyo-2 words2) "/") - ;; words2 $B$,(B null $B$J$i(B words3 $B$b(B null$B!#(B + ;; words2 が null なら words3 も null。 (when words3 - ;; words3 -- $B:#2s;HMQ$7$?Aw$j2>L>$r;H$&A44A;z8uJd(B + ;; words3 -- 今回使用した送り仮名を使う全漢字候補 (insert (skk-update-jisyo-2 words3) "/")) - ;; purge $B$G(B words3 $B$,(B null $B$K$J$C$?>l9g$O(B words4 $B$,;D$C$F$$$k(B - ;; $B$H$-$,$"$k!#(B + ;; purge で words3 が null になった場合は words4 が残っている + ;; ときがある。 (when words4 - ;; words4 -- "]" + $BB>$NAw$j2>L>$r;H$&A44A;z8uJd(B - ;; (words2 $B$N;D$j(B)$B!#(B + ;; words4 -- "]" + 他の送り仮名を使う全漢字候補 + ;; (words2 の残り)。 (insert (skk-update-jisyo-2 words4) "/")))))) (defun skk-update-jisyo-2 (words) @@ -4401,9 +4401,9 @@ WORD $B$,6&M-<-=q$K$J$1$l$P!"8D?M<-=q$N<-=q%(%s%H%j$+$i:o=|$9$k!#(B" ;;;###autoload (defun skk-quote-char (word) - "WORD $B$r<-=q%(%s%H%j$H$7$F@5$7$$7A$K@07A$9$k!#(B -$B<-=q7A<0$N@)8B$+$i!"<-=q%(%s%H%jFb$K4^$a$F$O$J$i$J$$J8;z$,(B WORD $B$NCf$K$"$l$P!"(B -$BI>2A$7$?$H$-$K$=$NJ8;z$H$J$k$h$&$J(B Lisp $B%3!<%I$rJV$9!#(B" + "WORD を辞書エントリとして正しい形に整形する。 +辞書形式の制限から、辞書エントリ内に含めてはならない文字が WORD の中にあれば、 +評価したときにその文字となるような Lisp コードを返す。" (save-match-data (cond ((and word (string-match "[/\n\r\"]" word) @@ -4418,10 +4418,10 @@ WORD $B$,6&M-<-=q$K$J$1$l$P!"8D?M<-=q$N<-=q%(%s%H%j$+$i:o=|$9$k!#(B" ;;;###autoload (defun skk-quote-semicolon (word) - "WORD $B$r<-=q%(%s%H%j$H$7$F@5$7$$7A$K@07A$9$k!#(B -`skk-quote-char' $B$H;w$F$$$k$,!"Cpl9g$K$O$3$N4X?t$rMQ$$$k$H$h$$!#(B" + "見出し語をカタカナにして、リストにして返す。 +これは `skk-search-prog-list' に追加されるべき機能で、変換キーを単純にカ +タカナに変換したものを候補として返す。 +一般的な FEP は単純にカタカナに変換したものが候補に現れるものが多いが、 +そのような挙動が好みの場合にはこの関数を用いるとよい。" (unless (or skk-henkan-okurigana - (string-match ">$" skk-henkan-key) ; $B@\F,<-(B - (string-match "^>" skk-henkan-key)) ; $B@\Hx<-(B + (string-match ">$" skk-henkan-key) ; 接頭辞 + (string-match "^>" skk-henkan-key)) ; 接尾辞 (let ((key skk-henkan-key) char words) (with-temp-buffer (insert key) - ;; $B@\F,<-!&@\Hx<-$NF~NO$@$C$?$i(B ">" $B$r>C$7$F$*$/!#(B + ;; 接頭辞・接尾辞の入力だったら ">" を消しておく。 (goto-char (1- (point))) ; (when (looking-at ">") ;(looking-back ">") (delete-char 1)) @@ -4547,8 +4547,8 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" (delete-char 1)) ;; (while (and (not (eobp)) - ;; "$B!<(B" $B$G$OJ8;z3Q%+%J$K$7$F!"%j%9%H$K$7$FJV$9!#(B" + "見出し語を半角カナにして、リストにして返す。" (cdr (skk-search-katakana t))) (defun skk-search-romaji (&optional jisx0208) - "$BJQ49%-!<$r%m!<%^;z$KJQ49$7$?8uJd$rJV$9!#(B" + "変換キーをローマ字に変換した候補を返す。" (cond ((executable-find "kakasi") (unless (or skk-henkan-okurigana - (string-match ">$" skk-henkan-key) ; $B@\F,<-(B - (string-match "^>" skk-henkan-key)) ; $B@\Hx<-(B + (string-match ">$" skk-henkan-key) ; 接頭辞 + (string-match "^>" skk-henkan-key)) ; 接尾辞 (let ((key skk-henkan-key) words chars) (with-temp-buffer (insert key) - ;; $B@\F,<-!&@\Hx<-$NF~NO$@$C$?$i(B ">" $B$r>C$7$F$*$/!#(B + ;; 接頭辞・接尾辞の入力だったら ">" を消しておく。 (goto-char (1- (point))) (when (looking-at ">") (delete-char 1)) @@ -4598,12 +4598,12 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" (list skk-insert-keysequence)))) (defun skk-search-jisx0208-romaji () - "$B8+=P$78l$rA43Q%m!<%^;z$KJQ49$7$F!"%j%9%H$K$7$FJV$9!#(B" + "見出し語を全角ローマ字に変換して、リストにして返す。" (cdr (skk-search-romaji t))) (defun skk-search-upcase (&optional initial) - "$BJQ49%-!<$N(B ascii $B>.J8;z$rBgJ8;z$KJQ49$7$?8uJd$rJV$9!#(B -$B$3$N4X?t$O(B `skk-abbrev-mode' $B@lMQ!#(B" + "変換キーの ascii 小文字を大文字に変換した候補を返す。 +この関数は `skk-abbrev-mode' 専用。" (if skk-abbrev-mode (list (if initial (upcase-initials skk-henkan-key) @@ -4611,14 +4611,14 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" nil)) (defun skk-search-identity (&rest args) - "$BJQ49%-!<$r$=$N$^$^8uJd$H$7$FJV$9!#(B -$B$3$N4X?t$OAw$j$J$7JQ49@lMQ!#(B" + "変換キーをそのまま候補として返す。 +この関数は送りなし変換専用。" (if skk-henkan-okurigana nil (list (identity skk-henkan-key)))) (defun skk-search-function-usage () - "Emacs Lisp $B4X?t$N(B usage $B$rJV$9!#(B" + "Emacs Lisp 関数の usage を返す。" (unless skk-henkan-okurigana (let* ((symbol (intern (format "%s" skk-henkan-key))) def doc usage arglist result) @@ -4654,19 +4654,19 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" ;;;###autoload (defun skk-search-progs (key &optional prog-list remove-note) - ;; prog-list $B$,>JN,$5$l$?;~$O(B skk-search-prog-list $B$NA4$F$,BP>](B - ;; $B$b$70z?t$r$5$i$KDI2C$9$k$h$&$J;v$,$"$l$P(B - ;; okuri-nasi $BAw$jM-$j$N%A%'%C%/$r%Q%9(B - ;; allow-duplicate skk-nunion $B$G$J$/(B nconc $B$r;H$&(B - ;; $B$"$?$j$+(B + ;; prog-list が省略された時は skk-search-prog-list の全てが対象 + ;; もし引数をさらに追加するような事があれば + ;; okuri-nasi 送り有りのチェックをパス + ;; allow-duplicate skk-nunion でなく nconc を使う + ;; あたりか (save-match-data (let ((skk-henkan-key key) skk-henkan-okurigana skk-okuri-char skk-auto-okuri-process words) - ;; $B:.$<=q$-$J?M$C$FAw$jM-$jJQ49$9$k$N$+$J(B \cj $B$N$[$&$,$$$$(B? - (when (string-match "[$B$!(B-$B$s(B][a-z]$" key) + ;; 混ぜ書きな人って送り有り変換するのかな \cj のほうがいい? + (when (string-match "[ぁ-ん][a-z]$" key) (setq skk-henkan-okurigana "" skk-okuri-char (substring key (1- (length key))))) (ignore-errors @@ -4684,9 +4684,9 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" (skk-search-sagyo-henkaku nil (eq skk-search-sagyo-henkaku 'anything)))) (defun skk-search-sagyo-henkaku (&optional okuri-list anything) - "$B8+=P$78l$r%59TJQ3J3hMQ$NF0;l$H$_$J$7$F!"Aw$j$"$j8uJd$r8!:w$9$k!#(B" + "見出し語をサ行変格活用の動詞とみなして、送りあり候補を検索する。" (unless okuri-list - (setq okuri-list '("$B$5(B" "$B$7(B" "$B$9(B" "$B$;(B"))) + (setq okuri-list '("さ" "し" "す" "せ"))) (when (and skk-henkan-okurigana (or (member skk-henkan-okurigana okuri-list) anything)) @@ -4695,8 +4695,8 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" (1- (length skk-henkan-key)))))) (defun skk-search-ja-dic-maybe (&optional check) - ;; `skk-search-prog-list' $B$N0lMWAG$H$7$F:nMQ$9$k$[$+!"(B - ;; skk-mode $B$KF~$k$?$S(B check $B$GI>2A$5$l$k!#(B + ;; `skk-search-prog-list' の一要素として作用するほか、 + ;; skk-mode に入るたび check で評価される。 (unless (or (and (stringp skk-large-jisyo) (file-readable-p skk-large-jisyo)) (and (stringp skk-aux-large-jisyo) @@ -4706,7 +4706,7 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" skk-server-host skk-inhibit-ja-dic-search) (if check - (skk-message "$B<-=q$H$7$F(B leim/ja-dic $B$r;H$$$^$9(B" + (skk-message "辞書として leim/ja-dic を使います" "Use leim/ja-dic as dictionary") (skk-search-ja-dic)))) @@ -4731,36 +4731,36 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" list))) (defun skk-katakana-region (start end &optional vcontract) - "$BNN0h$N$R$i$,$J$r%+%?%+%J$KJQ49$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B VCONTRACT $B$,(B non-nil $B$G$"$l$P!"(B\"$B$&!+(B\" $B$r(B \"$B%t(B\" $B$KJQ49$9(B -$B$k!#(B -$B0z?t$N(B START $B$H(B END $B$O?t;z$G$b%^!<%+!<$G$bNI$$!#(B" + "領域のひらがなをカタカナに変換する。 +オプショナル引数の VCONTRACT が non-nil であれば、\"う゛\" を \"ヴ\" に変換す +る。 +引数の START と END は数字でもマーカーでも良い。" (interactive "*r\nP") (when vcontract - (skk-search-and-replace start end "$B$&!+(B" + (skk-search-and-replace start end "う゛" (lambda (matched) - nil "$B%t(B"))) - (skk-search-and-replace start end "[$B$!(B-$B$s(B]+" + nil "ヴ"))) + (skk-search-and-replace start end "[ぁ-ん]+" (lambda (matched) (skk-hiragana-to-katakana matched)))) (defun skk-hiragana-region (start end &optional vexpand) - "$BNN0h$N%+%?%+%J$r$R$i$,$J$KJQ49$9$k!#(B -$B%*%W%7%g%J%k0z?t$N(B VEXPAND $B$,(B non-nil $B$G$"$l$P!"(B\"$B%t(B\" $B$r(B \"$B$&!+(B\" $B$KJQ49$9$k!#(B -$B0z?t$N(B START $B$H(B END $B$O?t;z$G$b%^!<%+!<$G$bNI$$!#(B -\"$B%u(B\" $B$H(B \"$B%v(B\" $B$OJQ99$5$l$J$$!#$3$N(B 2 $B$D$NJ8;z$OBP1~$9$k$R$i$,$J$,$J$$$N$G!"(B -$B%+%?%+%J$H$7$F$O07$o$l$J$$!#(B" + "領域のカタカナをひらがなに変換する。 +オプショナル引数の VEXPAND が non-nil であれば、\"ヴ\" を \"う゛\" に変換する。 +引数の START と END は数字でもマーカーでも良い。 +\"ヵ\" と \"ヶ\" は変更されない。この 2 つの文字は対応するひらがながないので、 +カタカナとしては扱われない。" (interactive "*r\nP") (when vexpand - (skk-search-and-replace start end "$B%t(B" + (skk-search-and-replace start end "ヴ" (lambda (matched) - nil "$B$&!+(B"))) - (skk-search-and-replace start end "[$B%!(B-$B%s(B]+" + nil "う゛"))) + (skk-search-and-replace start end "[ァ-ン]+" (lambda (matched) (skk-katakana-to-hiragana matched)))) (defun skk-jisx0208-latin-region (start end) - "$BNN0h$N(B ascii $BJ8;z$rBP1~$9$kA43Q1QJ8;z$KJQ49$9$k!#(B" + "領域の ascii 文字を対応する全角英文字に変換する。" (interactive "*r") (skk-search-and-replace start end "[ -~]" (lambda (matched) @@ -4768,7 +4768,7 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" (string-to-char matched))))) (defun skk-latin-region (start end) - "$BNN0h$NA43Q1QJ8;z$rBP1~$9$k(B ascii $BJ8;z$KJQ49$9$k!#(B" + "領域の全角英文字を対応する ascii 文字に変換する。" (interactive "*r") (skk-search-and-replace start end "\\cj" (lambda (matched) @@ -4808,14 +4808,14 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" ;;;###autoload (defun skk-henkan-skk-region-by-func (func &optional arg) - "`skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$NJ8;zNs$rJQ49$9$k!#(B -$BJQ492DG=$+$I$&$+$N%A%'%C%/$r$7$?8e$K(B ARG $B$r0z?t$H$7$F(B FUNC $B$rE,MQ$7!"(B -`skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$NJ8;zNs$rJQ49$9$k!#(B" + "`skk-henkan-start-point' と `skk-henkan-end-point' の間の文字列を変換する。 +変換可能かどうかのチェックをした後に ARG を引数として FUNC を適用し、 +`skk-henkan-start-point' と `skk-henkan-end-point' の間の文字列を変換する。" (skk-with-point-move (cl-case skk-henkan-mode - (active ;$B"'%b!<%I(B + (active ;▼モード nil) - (on ;$B"&%b!<%I(B + (on ;▽モード (skk-set-marker skk-henkan-end-point (point)) (when (and (> skk-kakutei-history-limit 0) (< skk-henkan-start-point (point)) @@ -4825,20 +4825,20 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" (skk-update-kakutei-history (buffer-substring-no-properties skk-henkan-start-point (point)))) - ;; $BJQ492DG=$+$I$&$+$N:G=*%A%'%C%/(B + ;; 変換可能かどうかの最終チェック (when (skk-get-prefix skk-current-rule-tree) - (skk-error "$BF~NOESCf$N2>L>%W%l%U%#%C%/%9$,$"$j$^$9(B" + (skk-error "入力途中の仮名プレフィックスがあります" "There remains a kana prefix")) (when (< (point) skk-henkan-start-point) - (skk-error "$B%+!<%=%k$,JQ493+;OCOE@$h$jA0$K$"$j$^$9(B" + (skk-error "カーソルが変換開始地点より前にあります" "Henkan end point must be after henkan start point")) (when (and (not skk-allow-spaces-newlines-and-tabs) (skk-save-point (beginning-of-line) (> (point) skk-henkan-start-point))) - (skk-error "$BJQ49%-!<$K2~9T$,4^$^$l$F$$$^$9(B" + (skk-error "変換キーに改行が含まれています" "Henkan key may not contain a line feed")) ;; (apply func skk-henkan-start-point skk-henkan-end-point @@ -4849,32 +4849,32 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" ;;;###autoload (defun skk-hiragana-to-katakana (hiragana) - (let ((diff (- ?$B%"(B ?$B$"(B))) + (let ((diff (- ?ア ?あ))) (mapconcat (lambda (e) - (if (and (<= ?$B$!(B e) (>= ?$B$s(B e)) + (if (and (<= ?ぁ e) (>= ?ん e)) (char-to-string (+ e diff)) (char-to-string e))) (string-to-int-list hiragana) ""))) ;;;###autoload (defun skk-katakana-to-hiragana (katakana) - (let ((diff (- ?$B%"(B ?$B$"(B))) + (let ((diff (- ?ア ?あ))) (mapconcat (lambda (e) - (if (and (<= ?$B%!(B e) (>= ?$B%s(B e)) + (if (and (<= ?ァ e) (>= ?ン e)) (char-to-string (- e diff)) (char-to-string e))) (string-to-int-list katakana) ""))) ;;;###autoload (defun skk-henkan-face-on (&optional face) - "SKK $B$N(B face $BB0@-$r(B ON $B$K$9$k!#(B -`skk-use-face' $B$,(B non-nil $B$N>l9g!"(B`skk-henkan-start-point' $B$H(B -`skk-henkan-end-point' $B$N4V$N(B face $BB0@-$r(B `skk-henkan-face' $B$NCM$KJQ99$9$k!#(B" - ;; SKK 9.4 $B$h$j(B Text Properties $B$r;HMQ$9$k$N$r;_$a$F!"(BOverlays $B$r;HMQ$9$k$h(B - ;; $B$&$K$7$?(B (egg.el, canna.el, wnn-egg.el $B$r;29M$K$7$?(B)$B!#(B - ;; Overlays $B$O!"%F%-%9%H$N0lIt$G$O$J$$$N$G!"%P%C%U%!$+$iJ8;z$r@Z$j=P$7$F$b%3(B - ;; $B%T!<$NBP>]$K$J$i$J$$$7!"%"%s%I%%;~$bL5;k$5$l$k$N$G!"JQ49$5$l$?8uJd$NI=<((B - ;; $B$r0l;~E*$KJQ99$9$k$K$O(B Text Properties $B$h$j$b9%ET9g$G$"$k!#(B + "SKK の face 属性を ON にする。 +`skk-use-face' が non-nil の場合、`skk-henkan-start-point' と +`skk-henkan-end-point' の間の face 属性を `skk-henkan-face' の値に変更する。" + ;; SKK 9.4 より Text Properties を使用するのを止めて、Overlays を使用するよ + ;; うにした (egg.el, canna.el, wnn-egg.el を参考にした)。 + ;; Overlays は、テキストの一部ではないので、バッファから文字を切り出してもコ + ;; ピーの対象にならないし、アンドゥ時も無視されるので、変換された候補の表示 + ;; を一時的に変更するには Text Properties よりも好都合である。 (unless face (setq face skk-henkan-face)) (when (and face @@ -4887,19 +4887,19 @@ SKK $B<-=q$N8uJd$H$7$F@5$7$$7A$K@07A$9$k!#(B" ;;;###autoload (defun skk-henkan-face-off () - "SKK $B$N(B face $BB0@-$r(B OFF $B$K$9$k!#(B -`skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$NI=<($rJQ99$7$F$$$k(B -`skk-henkan-overlay' $B$r>C$9!#(B" + "SKK の face 属性を OFF にする。 +`skk-henkan-start-point' と `skk-henkan-end-point' の間の表示を変更している +`skk-henkan-overlay' を消す。" (when skk-henkan-face (skk-detach-extent skk-henkan-overlay))) (defun skk-make-face (face) - "$B?7$7$$(B FACE $B$r:n@.$9$k!#(B -FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj$9$k!#(B" - ;; hilit-lookup-face-create $B$N%5%V%;%C%H!#(Btutorial $B$G?'IU$1$r9T$&>l9g$G$b(B - ;; hilit19 $B$K0MB8$;$:$H$j$"$($:(B face $B$r<+A0$G:n$k$3$H$,$G$-$k$h$&$K!"$H$$$&(B - ;; $BL\E*$G:n$C$?$b$N$G!"4JC1$J?'IU$1$7$+$G$-$J$$!#$"$^$j8-$/$O$J$$!#J#;($J(B - ;; face $B$r:n$j$?$$?M$O(B hilit-lookup-face-create $BEy$r;H$C$F2<$5$$!#(B + "新しい FACE を作成する。 +FACE は「前景色」又は「前景色 + スラッシュ + 背景色」の形式で指定する。" + ;; hilit-lookup-face-create のサブセット。tutorial で色付けを行う場合でも + ;; hilit19 に依存せずとりあえず face を自前で作ることができるように、という + ;; 目的で作ったもので、簡単な色付けしかできない。あまり賢くはない。複雑な + ;; face を作りたい人は hilit-lookup-face-create 等を使って下さい。 (unless (car (memq face (face-list))) (save-match-data (let* ((list (split-string (symbol-name face) "/")) @@ -4910,15 +4910,15 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj (set-face-background face bg))))) face) -;; skk-auto.el, skk-rdbms.el $B$NN>J}$G;H$&$N$G!"(Bskk-auto.el $B$h$j0\F0$7$?!#(B +;; skk-auto.el, skk-rdbms.el の両方で使うので、skk-auto.el より移動した。 (defun skk-remove-common (word) - "WORD $B$NAw$j2>L>0J30$NItJ,$rJV$9!#(B -`skk-henkan-key' $B$H(B WORD $B$N4V$K6&DL$NAw$j2>L>$rL>0J30$NItJ,(B -$B$NJ8;zNs$rJV$9!#(B`skk-henkan-key' $B$H(B `skk-henkan-okurigana' $B$NCM$r%;%C%H$9$k!#(B -$BNc$($P!"(BWORD == $B;}$C$F$-$?(B $B$G$"$l$P!"(B`skk-henkan-key' := $B$b(Bt , -`skk-henkan-okurigana' := $B$C$F(B , WORD := $B;}(B $B$N$h$&$KJ,2r$7!"(BWORD $B$rJV$9!#(B -`skk-auto-okuri-process' $B$NCM$,(B non-nil $B$G$"$k$H$-$K$3$N4X?t$r;HMQ$9$k!#(B -$BJQ49$,9T$o$l$?%P%C%U%!$G%3!<%k$5$l$k(B ($B<-=q%P%C%U%!$G$O$J$$(B)$B!#(B" + "WORD の送り仮名以外の部分を返す。 +`skk-henkan-key' と WORD の間に共通の送り仮名を取り除き、送り仮名以外の部分 +の文字列を返す。`skk-henkan-key' と `skk-henkan-okurigana' の値をセットする。 +例えば、WORD == 持ってきた であれば、`skk-henkan-key' := もt , +`skk-henkan-okurigana' := って , WORD := 持 のように分解し、WORD を返す。 +`skk-auto-okuri-process' の値が non-nil であるときにこの関数を使用する。 +変換が行われたバッファでコールされる (辞書バッファではない)。" (when (and (not (skk-numeric-p)) (not skk-abbrev-mode) (or skk-henkan-in-minibuff-flag @@ -4947,17 +4947,17 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj word-tail (substring word (1- word-len) word-len)) (when (and (string= midasi-tail word-tail) - (or (and (skk-string<= "$B$!(B" midasi-tail) - (skk-string<= midasi-tail "$B$s(B")) - (member midasi-tail '("$B!"(B" "$B!#(B" "$B!$(B" "$B!%(B")))) - ;; $B8+=P$78l$HC18l$H$NKvHx$,F10l$N$+$JJ8;z$N>l9g!#(B - ;; $BAw$j$J$7$rAw$j$"$j$X(B + (or (and (skk-string<= "ぁ" midasi-tail) + (skk-string<= midasi-tail "ん")) + (member midasi-tail '("、" "。" "," ".")))) + ;; 見出し語と単語との末尾が同一のかな文字の場合。 + ;; 送りなしを送りありへ (setq pos (1- word-len) new-word new-skk-henkan-key) (while (and cont (> pos 0)) (setq char (substring word (1- pos) pos)) - (if (and (skk-string<= "$B0!(B" char) - (skk-string<= char "$Bt$(B")) + (if (and (skk-string<= "亜" char) + (skk-string<= char "瑤")) ;; char is the right-most Kanji (setq cont nil) (setq pos (1- pos)))) @@ -4967,10 +4967,10 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj (substring word pos word-len)) (setq okuri-first (substring word pos (1+ pos))) (setq skk-henkan-okurigana - (if (and (string= okuri-first "$B$C(B") + (if (and (string= okuri-first "っ") (<= (+ pos 2) word-len)) ;; in this case okuriga consits of two - ;; characters, e.g., $B!V;D$C$?!W(B + ;; characters, e.g., 「残った」 (substring word pos (+ pos 2)) okuri-first)) (setq new-word (substring word 0 pos) @@ -4984,12 +4984,12 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ((not skk-henkan-in-minibuff-flag) (setq word new-word skk-henkan-key new-skk-henkan-key)) - ;; $B<-=qEPO?%b!<%I$GEPO?$5$l$?>l9g!#(B + ;; 辞書登録モードで登録された場合。 ;; ask if register as okuri-ari word. ((y-or-n-p (format (if skk-japanese-message-and-error - "%s /%s/ $B$rAw$j$"$j8uJd$H$7$FEPO?$7$^$9$+!)(B " + "%s /%s/ を送りあり候補として登録しますか? " "Shall I register this as okuri-ari word: %s /%s/ ? ") new-skk-henkan-key new-word)) (setq word new-word @@ -4999,18 +4999,18 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj (setq skk-henkan-okurigana nil skk-okuri-char nil) (message ""))))))))) - ;; $BJ,2r$7$?(B word ($BAw$j2>L>ItJ,$r=|$$$?$b$N(B) $B$rJV$9!#(B + ;; 分解した word (送り仮名部分を除いたもの) を返す。 word) (defun skk-okurigana-prefix (okurigana) (let ((headchar (substring okurigana 0 1))) - (cond ((string= headchar "$B$s(B") + (cond ((string= headchar "ん") "n") - ((not (and (skk-string<= "$B$!(B" headchar) - (skk-string<= headchar "$B$s(B"))) + ((not (and (skk-string<= "ぁ" headchar) + (skk-string<= headchar "ん"))) nil) - ((and (string= headchar "$B$C(B") - (not (string= okurigana "$B$C(B"))) + ((and (string= headchar "っ") + (not (string= okurigana "っ"))) (aref skk-kana-rom-vector ;; assume the character is hiragana of JIS X 0208. (- (skk-char-octet @@ -5024,8 +5024,8 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj 33)))))) (defun skk-update-kakutei-history (midasi &optional word) - "$BJQ?t(B `skk-kakutei-history' $B$r99?7$9$k!#(B -$B$3$NMzNr$O(B skk-comp.el $B$K$*$$$FMxMQ$5$l$k!#(B" + "変数 `skk-kakutei-history' を更新する。 +この履歴は skk-comp.el において利用される。" (cond ((<= skk-kakutei-history-limit 0) (setq skk-kakutei-history nil)) @@ -5077,12 +5077,12 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ;;;###autoload (defun skk-preload () - "Emacs $B5/F0;~$K$"$i$+$8$a(B SKK $B$r8F$V$3$H$G(B SKK $B$N1~Ez$rB.$/$9$k!#(B -$B@hFI$_$NBP>]$K$J$k$N$O0J2e5-$N$I$A$i$N%b!<%I$G$b$J$1$l$P(B `keyboard-quit' $B$HF1$8F0:n$r$9$k!#(B" - - ;; Emacs 27 $B$^$G$O(B $BHs(B interactive $B$G$"$C$?$,!"(B - ;; Emacs 28 $B$+$i(B WARNING: Adding advice to subr keyboard-quit - ;; without mirroring its interactive spec $B$H$J$C$?$?$a(B interactive $B$H$7$?!#(B - ;; SRC/lisp/emacs-lisp/advoce.el $B$N(B @@ Advising interactive subrs: $B$,;29M$K$J$k!#(B + "▼モードであれば、候補の表示をやめて▽モードに戻す (見出し語は残す)。 +▽モードであれば、見出し語を削除する。 +上記のどちらのモードでもなければ `keyboard-quit' と同じ動作をする。" + + ;; Emacs 27 までは 非 interactive であったが、 + ;; Emacs 28 から WARNING: Adding advice to subr keyboard-quit + ;; without mirroring its interactive spec となったため interactive とした。 + ;; SRC/lisp/emacs-lisp/advoce.el の @@ Advising interactive subrs: が参考になる。 (interactive) (if (not skk-mode) @@ -5184,7 +5184,7 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ad-do-it))))) (skk-defadvice abort-minibuffers (around skk-ad activate preactivate) - "$BF1>e(B" + "同上" (interactive) (if (not skk-mode) @@ -5200,9 +5200,9 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ad-do-it))))) (skk-defadvice abort-recursive-edit (around skk-ad activate preactivate) - "$B"'%b!<%I$G$"$l$P!"8uJd$NI=<($r$d$a$F"&%b!<%I$KLa$9(B ($B8+=P$78l$O;D$9(B)$B!#(B -$B"&%b!<%I$G$"$l$P!"8+=P$78l$r:o=|$9$k!#(B -$B>e5-$N$I$A$i$N%b!<%I$G$b$J$1$l$P(B `abort-recursive-edit' $B$HF1$8F0:n$r$9$k!#(B" + "▼モードであれば、候補の表示をやめて▽モードに戻す (見出し語は残す)。 +▽モードであれば、見出し語を削除する。 +上記のどちらのモードでもなければ `abort-recursive-edit' と同じ動作をする。" ;; subr command but no arg. (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command) @@ -5219,26 +5219,26 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ad-do-it))))) (defadvice newline (around skk-ad activate) - "`skk-egg-like-newline' $B$,(B non-nil $B$G$"$l$P!"3NDj$N$_9T$$!"2~9T$7$J$$!#(B" + "`skk-egg-like-newline' が non-nil であれば、確定のみ行い、改行しない。" (if (not (or skk-j-mode skk-jisx0201-mode skk-abbrev-mode)) ad-do-it (let (;;(arg (ad-get-arg 0)) - ;; `skk-kakutei' $B$rr7o$K(B nil $B$K$J$k$N$G!"J]B8$7$F$*$/I,MW$,$"$k!#(B + ;; `skk-kakutei' を実行すると `skk-henkan-mode' の値が + ;; 無条件に nil になるので、保存しておく必要がある。 (no-newline (and skk-egg-like-newline skk-henkan-mode)) (auto-fill-function (if (called-interactively-p 'interactive) auto-fill-function nil))) - ;; fill $B$5$l$F$b(B nil $B$,5"$C$F$/$k(B :-< + ;; fill されても nil が帰ってくる :-< ;;(if (skk-kakutei) ;; (setq arg (1- arg))) ;;(if skk-mode ;; (let ((opos (point))) - ;; ;; skk-kakutei (skk-do-auto-fill) $B$K$h$C$F9T$,@^$jJV$5$l$?$i(B - ;; ;; arg $B$r(B 1 $B$D8:$i$9!#(B + ;; ;; skk-kakutei (skk-do-auto-fill) によって行が折り返されたら + ;; ;; arg を 1 つ減らす。 ;; (skk-kakutei) ;; (if (and (not (= opos (point))) (integerp arg)) ;; (ad-set-arg 0 (1- arg))))) @@ -5249,7 +5249,7 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ad-do-it)))) (defadvice newline-and-indent (around skk-ad activate) - "`skk-egg-like-newline' $B$,(B non-nil $B$G$"$l$P!"3NDj$N$_9T$$!"2~9T$7$J$$!#(B" + "`skk-egg-like-newline' が non-nil であれば、確定のみ行い、改行しない。" (if (not (or skk-j-mode skk-jisx0201-mode skk-abbrev-mode)) @@ -5267,7 +5267,7 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj (skk-defadvice exit-minibuffer (around skk-ad activate) ;; subr command but no arg. - "`skk-egg-like-newline' $B$,(B non-nil $B$G$"$l$P!"3NDj$N$_9T$$!"2~9T$7$J$$!#(B" + "`skk-egg-like-newline' が non-nil であれば、確定のみ行い、改行しない。" (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command) (if (not (or skk-j-mode @@ -5282,13 +5282,13 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj ad-do-it)))) (defadvice picture-mode-exit (before skk-ad activate) - "SKK $B$N%P%C%U%!%m!<%+%kJQ?t$rL58z$K$7!"(B`picture-mode-exit' $B$r%3!<%k$9$k!#(B -`picture-mode' $B$+$i=P$?$H$-$K$=$N%P%C%U%!$G(B SKK $B$r@5>o$KF0$+$9$?$a$N=hM}!#(B" + "SKK のバッファローカル変数を無効にし、`picture-mode-exit' をコールする。 +`picture-mode' から出たときにそのバッファで SKK を正常に動かすための処理。" (when skk-mode (skk-kill-local-variables))) (defadvice undo (before skk-ad activate) - "SKK $B%b!<%I$,(B on $B$J$i(B `skk-self-insert-non-undo-count' $B$r=i4|2=$9$k!#(B" + "SKK モードが on なら `skk-self-insert-non-undo-count' を初期化する。" (when skk-mode (setq skk-self-insert-non-undo-count 0))) @@ -5302,19 +5302,19 @@ FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj (defadvice backward-kill-sentence (before skk-ad activate) ;; C-x DEL - ;; $B$I$N$h$&$JF0:n$r$9$k$Y$-$+L$7hDj(B + ;; どのような動作をするべきか未決定 (when skk-mode (skk-kakutei))) (defmacro skk-wrap-newline-command (cmd) - "[return]$B%-!<$K3d$jEv$F$i$l$F$$$k$G$"$m$&%3%^%s%I(B (CMD) $B$r%i%C%W$7$F!"(B -skk $B$NF0:n$H@09g$5$;$k!#(B - [return]$B%-!<$K%3%^%s%I$r3d$jEv$F$F$$$k%a%8%c!<%b!<%I$G(B skk $B$r;H$&$H!"(Bskk $B$,(B -`skk-kakutei' $B$r8F$S=P$95!2q$,$J$$$?$a$KJQ49$r3NDj$G$-$:(B `$B"'(B' $B$,%P%C%U%!$K(B -$B;D$C$F$7$^$&$H$$$&LdBj$,$"$k!#(B - -$BK\%^%/%m$rMQ$$$k$H!"JQ49$r3NDj$7$F$+$i(B (`skk-kakutei' $B$r(B" . "$B$>(B")) - ("zu" nil ("$B%:(B" . "$B$:(B")) - ("zya" nil ("$B%8%c(B" . "$B$8$c(B")) - ("zye" nil ("$B%8%'(B" . "$B$8$'(B")) - ("zyi" nil ("$B%8%#(B" . "$B$8$#(B")) - ("zyo" nil ("$B%8%g(B" . "$B$8$g(B")) - ("zyu" nil ("$B%8%e(B" . "$B$8$e(B")) + '(("a" nil ("ア" . "あ")) + ("bb" "b" ("ッ" . "っ")) + ("ba" nil ("バ" . "ば")) + ("be" nil ("ベ" . "べ")) + ("bi" nil ("ビ" . "び")) + ("bo" nil ("ボ" . "ぼ")) + ("bu" nil ("ブ" . "ぶ")) + ("bya" nil ("ビャ" . "びゃ")) + ("bye" nil ("ビェ" . "びぇ")) + ("byi" nil ("ビィ" . "びぃ")) + ("byo" nil ("ビョ" . "びょ")) + ("byu" nil ("ビュ" . "びゅ")) + ("cc" "c" ("ッ" . "っ")) + ("cha" nil ("チャ" . "ちゃ")) + ("che" nil ("チェ" . "ちぇ")) + ("chi" nil ("チ" . "ち")) + ("cho" nil ("チョ" . "ちょ")) + ("chu" nil ("チュ" . "ちゅ")) + ("cya" nil ("チャ" . "ちゃ")) + ("cye" nil ("チェ" . "ちぇ")) + ("cyi" nil ("チィ" . "ちぃ")) + ("cyo" nil ("チョ" . "ちょ")) + ("cyu" nil ("チュ" . "ちゅ")) + ("dd" "d" ("ッ" . "っ")) + ("da" nil ("ダ" . "だ")) + ("de" nil ("デ" . "で")) + ("dha" nil ("デャ" . "でゃ")) + ("dhe" nil ("デェ" . "でぇ")) + ("dhi" nil ("ディ" . "でぃ")) + ("dho" nil ("デョ" . "でょ")) + ("dhu" nil ("デュ" . "でゅ")) + ("di" nil ("ヂ" . "ぢ")) + ("do" nil ("ド" . "ど")) + ("du" nil ("ヅ" . "づ")) + ("dya" nil ("ヂャ" . "ぢゃ")) + ("dye" nil ("ヂェ" . "ぢぇ")) + ("dyi" nil ("ヂィ" . "ぢぃ")) + ("dyo" nil ("ヂョ" . "ぢょ")) + ("dyu" nil ("ヂュ" . "ぢゅ")) + ("e" nil ("エ" . "え")) + ("ff" "f" ("ッ" . "っ")) + ("fa" nil ("ファ" . "ふぁ")) + ("fe" nil ("フェ" . "ふぇ")) + ("fi" nil ("フィ" . "ふぃ")) + ("fo" nil ("フォ" . "ふぉ")) + ("fu" nil ("フ" . "ふ")) + ("fya" nil ("フャ" . "ふゃ")) + ("fye" nil ("フェ" . "ふぇ")) + ("fyi" nil ("フィ" . "ふぃ")) + ("fyo" nil ("フョ" . "ふょ")) + ("fyu" nil ("フュ" . "ふゅ")) + ("gg" "g" ("ッ" . "っ")) + ("ga" nil ("ガ" . "が")) + ("ge" nil ("ゲ" . "げ")) + ("gi" nil ("ギ" . "ぎ")) + ("go" nil ("ゴ" . "ご")) + ("gu" nil ("グ" . "ぐ")) + ("gya" nil ("ギャ" . "ぎゃ")) + ("gye" nil ("ギェ" . "ぎぇ")) + ("gyi" nil ("ギィ" . "ぎぃ")) + ("gyo" nil ("ギョ" . "ぎょ")) + ("gyu" nil ("ギュ" . "ぎゅ")) + ;;("h" "" ("オ" . "お")) + ("ha" nil ("ハ" . "は")) + ("he" nil ("ヘ" . "へ")) + ("hi" nil ("ヒ" . "ひ")) + ("ho" nil ("ホ" . "ほ")) + ("hu" nil ("フ" . "ふ")) + ("hya" nil ("ヒャ" . "ひゃ")) + ("hye" nil ("ヒェ" . "ひぇ")) + ("hyi" nil ("ヒィ" . "ひぃ")) + ("hyo" nil ("ヒョ" . "ひょ")) + ("hyu" nil ("ヒュ" . "ひゅ")) + ("i" nil ("イ" . "い")) + ("jj" "j" ("ッ" . "っ")) + ("ja" nil ("ジャ" . "じゃ")) + ("je" nil ("ジェ" . "じぇ")) + ("ji" nil ("ジ" . "じ")) + ("jo" nil ("ジョ" . "じょ")) + ("ju" nil ("ジュ" . "じゅ")) + ("jya" nil ("ジャ" . "じゃ")) + ("jye" nil ("ジェ" . "じぇ")) + ("jyi" nil ("ジィ" . "じぃ")) + ("jyo" nil ("ジョ" . "じょ")) + ("jyu" nil ("ジュ" . "じゅ")) + ("kk" "k" ("ッ" . "っ")) + ("ka" nil ("カ" . "か")) + ("ke" nil ("ケ" . "け")) + ("ki" nil ("キ" . "き")) + ("ko" nil ("コ" . "こ")) + ("ku" nil ("ク" . "く")) + ("kya" nil ("キャ" . "きゃ")) + ("kye" nil ("キェ" . "きぇ")) + ("kyi" nil ("キィ" . "きぃ")) + ("kyo" nil ("キョ" . "きょ")) + ("kyu" nil ("キュ" . "きゅ")) + ("ma" nil ("マ" . "ま")) + ("me" nil ("メ" . "め")) + ("mi" nil ("ミ" . "み")) + ("mo" nil ("モ" . "も")) + ("mu" nil ("ム" . "む")) + ("mya" nil ("ミャ" . "みゃ")) + ("mye" nil ("ミェ" . "みぇ")) + ("myi" nil ("ミィ" . "みぃ")) + ("myo" nil ("ミョ" . "みょ")) + ("myu" nil ("ミュ" . "みゅ")) + ("n" nil ("ン" . "ん")) + ("n'" nil ("ン" . "ん")) + ("na" nil ("ナ" . "な")) + ("ne" nil ("ネ" . "ね")) + ("ni" nil ("ニ" . "に")) + ("nn" nil ("ン" . "ん")) + ("no" nil ("ノ" . "の")) + ("nu" nil ("ヌ" . "ぬ")) + ("nya" nil ("ニャ" . "にゃ")) + ("nye" nil ("ニェ" . "にぇ")) + ("nyi" nil ("ニィ" . "にぃ")) + ("nyo" nil ("ニョ" . "にょ")) + ("nyu" nil ("ニュ" . "にゅ")) + ("o" nil ("オ" . "お")) + ("pp" "p" ("ッ" . "っ")) + ("pa" nil ("パ" . "ぱ")) + ("pe" nil ("ペ" . "ぺ")) + ("pi" nil ("ピ" . "ぴ")) + ("po" nil ("ポ" . "ぽ")) + ("pu" nil ("プ" . "ぷ")) + ("pya" nil ("ピャ" . "ぴゃ")) + ("pye" nil ("ピェ" . "ぴぇ")) + ("pyi" nil ("ピィ" . "ぴぃ")) + ("pyo" nil ("ピョ" . "ぴょ")) + ("pyu" nil ("ピュ" . "ぴゅ")) + ("rr" "r" ("ッ" . "っ")) + ("ra" nil ("ラ" . "ら")) + ("re" nil ("レ" . "れ")) + ("ri" nil ("リ" . "り")) + ("ro" nil ("ロ" . "ろ")) + ("ru" nil ("ル" . "る")) + ("rya" nil ("リャ" . "りゃ")) + ("rye" nil ("リェ" . "りぇ")) + ("ryi" nil ("リィ" . "りぃ")) + ("ryo" nil ("リョ" . "りょ")) + ("ryu" nil ("リュ" . "りゅ")) + ("ss" "s" ("ッ" . "っ")) + ("sa" nil ("サ" . "さ")) + ("se" nil ("セ" . "せ")) + ("sha" nil ("シャ" . "しゃ")) + ("she" nil ("シェ" . "しぇ")) + ("shi" nil ("シ" . "し")) + ("sho" nil ("ショ" . "しょ")) + ("shu" nil ("シュ" . "しゅ")) + ("si" nil ("シ" . "し")) + ("so" nil ("ソ" . "そ")) + ("su" nil ("ス" . "す")) + ("sya" nil ("シャ" . "しゃ")) + ("sye" nil ("シェ" . "しぇ")) + ("syi" nil ("シィ" . "しぃ")) + ("syo" nil ("ショ" . "しょ")) + ("syu" nil ("シュ" . "しゅ")) + ("tt" "t" ("ッ" . "っ")) + ("ta" nil ("タ" . "た")) + ("te" nil ("テ" . "て")) + ("tha" nil ("テァ" . "てぁ")) + ("the" nil ("テェ" . "てぇ")) + ("thi" nil ("ティ" . "てぃ")) + ("tho" nil ("テョ" . "てょ")) + ("thu" nil ("テュ" . "てゅ")) + ("ti" nil ("チ" . "ち")) + ("to" nil ("ト" . "と")) + ("tsu" nil ("ツ" . "つ")) + ("tu" nil ("ツ" . "つ")) + ("tya" nil ("チャ" . "ちゃ")) + ("tye" nil ("チェ" . "ちぇ")) + ("tyi" nil ("チィ" . "ちぃ")) + ("tyo" nil ("チョ" . "ちょ")) + ("tyu" nil ("チュ" . "ちゅ")) + ("u" nil ("ウ" . "う")) + ("vv" "v" ("ッ" . "っ")) + ("va" nil ("ヴァ" . "う゛ぁ")) + ("ve" nil ("ヴェ" . "う゛ぇ")) + ("vi" nil ("ヴィ" . "う゛ぃ")) + ("vo" nil ("ヴォ" . "う゛ぉ")) + ("vu" nil ("ヴ" . "う゛")) + ("ww" "w" ("ッ" . "っ")) + ("wa" nil ("ワ" . "わ")) + ("we" nil ("ウェ" . "うぇ")) + ("wi" nil ("ウィ" . "うぃ")) + ("wo" nil ("ヲ" . "を")) + ("wu" nil ("ウ" . "う")) + ("xx" "x" ("ッ" . "っ")) + ("xa" nil ("ァ" . "ぁ")) + ("xe" nil ("ェ" . "ぇ")) + ("xi" nil ("ィ" . "ぃ")) + ("xka" nil ("ヵ" . "か")) + ("xke" nil ("ヶ" . "け")) + ("xo" nil ("ォ" . "ぉ")) + ("xtsu" nil ("ッ" . "っ")) + ("xtu" nil ("ッ" . "っ")) + ("xu" nil ("ゥ" . "ぅ")) + ("xwa" nil ("ヮ" . "ゎ")) + ("xwe" nil ("ヱ" . "ゑ")) + ("xwi" nil ("ヰ" . "ゐ")) + ("xya" nil ("ャ" . "ゃ")) + ("xyo" nil ("ョ" . "ょ")) + ("xyu" nil ("ュ" . "ゅ")) + ("yy" "y" ("ッ" . "っ")) + ("ya" nil ("ヤ" . "や")) + ("ye" nil ("イェ" . "いぇ")) + ("yo" nil ("ヨ" . "よ")) + ("yu" nil ("ユ" . "ゆ")) + ("zz" "z" ("ッ" . "っ")) + ("z," nil "‥") + ("z-" nil "~") + ("z." nil "…") + ("z/" nil "・") + ("z[" nil "『") + ("z]" nil "』") + ("za" nil ("ザ" . "ざ")) + ("ze" nil ("ゼ" . "ぜ")) + ("zh" nil "←") + ("zi" nil ("ジ" . "じ")) + ("zj" nil "↓") + ("zk" nil "↑") + ("zl" nil "→") + ("zo" nil ("ゾ" . "ぞ")) + ("zu" nil ("ズ" . "ず")) + ("zya" nil ("ジャ" . "じゃ")) + ("zye" nil ("ジェ" . "じぇ")) + ("zyi" nil ("ジィ" . "じぃ")) + ("zyo" nil ("ジョ" . "じょ")) + ("zyu" nil ("ジュ" . "じゅ")) ("." nil skk-current-kuten) ("," nil skk-current-touten) - ("-" nil "$B!<(B") - (":" nil "$B!'(B") - (";" nil "$B!((B") - ("?" nil "$B!)(B") - ("[" nil "$B!V(B") - ("]" nil "$B!W(B") + ("-" nil "ー") + (":" nil ":") + (";" nil ";") + ("?" nil "?") + ("[" nil "「") + ("]" nil "」") ("l" nil skk-latin-mode) ("q" nil skk-toggle-kana) ("L" nil skk-jisx0208-latin-mode) @@ -282,8 +282,8 @@ ("\\" nil skk-input-by-code-or-menu))) (setq skk-rom-kana-rule-list - '(("hh" "h" ("$B%C(B" . "$B$C(B")) - ("mm" "m" ("$B%s(B" . "$B$s(B")))) + '(("hh" "h" ("ッ" . "っ")) + ("mm" "m" ("ン" . "ん")))) (setq skk-try-completion-char ?\011) diff --git a/tut-code/skk-mkmgk.el b/tut-code/skk-mkmgk.el index 4f19ce80..de7f412a 100644 --- a/tut-code/skk-mkmgk.el +++ b/tut-code/skk-mkmgk.el @@ -24,22 +24,22 @@ ;;; Commentary: -;; M-x skk-make-mazegaki-dic ƽϤ줿 (Ǥ TMP) +;; M-x skk-make-mazegaki-dic して出力された辞書 (下記の例では TMP) を ;; $ skkdic-expr TMP | skkdic-sort > NEWDICT -;; ȲùȺ SKK (NEWDICT) 夬ޤ +;; と加工すると混ぜ書き SKK 辞書 (NEWDICT) が出来上がります。 ;; ;; - search okuri-ari entries, too. ;; - fix a know bug below. ;; -;; + ͷ /ͷ/ fixed. -;; + ꤨ /ڤ골/ڳ/ 골 /ڤ골/ Ȥꤢ̾ޤϼΤƤ뤳Ȥˤޤ -;; + ////////////// // fixed. -;; - Ϥ󲾤 /ȾҲ̾/ ɤ褦ʤ (^^;; -;; - // // (ɤߤΰʸɤߤʸƱ) ditto... +;; + お遊び /お遊び/ fixed. +;; + きりえ /切り絵/切絵/ → きりり絵 /切り絵/ とりあえず仮名を含む候補は捨てることにしました。 +;; + さく /作/冊/錯/索/策/窄/柵/朔/昨/搾/咋/削/酢/ → さ /作/ fixed. +;; - はん仮くかたかな /半角片仮名/ こりゃどうしようもないな (^^;; +;; - くさり /鎖/ → く鎖り /鎖/ (訓読みの一部の文字が音読みの文字と同一) ditto... ;;; Code: @@ -47,18 +47,18 @@ (require 'skk) (defvar skk-mkmgk-region-limit 10000 - "*꡼Υο꾮ˡХʥꥵߤ˥˰ܹԤ롣 -Ŀͼùϡ0 ꤹ롣") + "*検索リージョンのサイズがこの数より小さい場合に、バイナリサーチを止めリニアサーチに移行する。 +個人辞書を加工する場合は、0 に設定する。") ;;;###autoload (defun skk-make-mazegaki-dic (dic &optional nomsg) - "SKK μ񤫤 TUT-Code ʤɤǻȤ뺮񤭼롣 -Ϥ줿 (Ǥ TMP) + "SKK 形式の辞書から TUT-Code などで使われれる混ぜ書き辞書を作る。 +出力された辞書 (下記の例では TMP) を $ skkdic-expr TMP | skkdic-sort > NEWDICT -ȤƲùɬפꡣ" - (interactive "fե:\nP ") +として加工する必要あり。" + (interactive "f辞書ファイル:\nP ") (let ((cont t) (workbuf (get-buffer-create " *skkmkmgk working*")) max output ret) @@ -66,20 +66,20 @@ (progn (while cont (setq output (read-file-name - "ɤ˽Ϥޤ? " + "どこに出力しますか? " nil (convert-standard-filename "~/.skk-jisyo.tmp"))) (if (or (not (file-exists-p output)) (yes-or-no-p - (format "%s ˾񤭤ƤǤ? " output))) + (format "%s に上書きしてよろしいですか? " output))) (setq cont nil))) (with-current-buffer workbuf (erase-buffer)) (with-temp-buffer (let ((coding-system-for-read (cdr (assoc "euc" skk-coding-system-alist)))) (insert-file-contents (expand-file-name dic)) (re-search-forward "^;; okuri-nasi entries\\.$") - ;; abbrev skip - (delete-region (point-min) (progn (re-search-forward "^") + ;; abbrev 候補を skip + (delete-region (point-min) (progn (re-search-forward "^あ") (beginning-of-line) (point))) (setq ret (skk-make-mazegaki-dic-1 workbuf nomsg)))) @@ -93,16 +93,16 @@ ;;;###autoload (defun skk-make-mazegaki-dic-region (min max &optional reference) - "SKK μ񤫤 TUT-Code ʤɤǻȤ뺮񤭼롣 -ùȥХåե˽񤭽Ф `pop-to-buffer' 롣 -Ϥ줿Хåեե (Ǥ TMP) ¸ + "SKK 形式の辞書から TUT-Code などで使われれる混ぜ書き辞書を作る。 +加工した辞書を作業バッファに書き出し `pop-to-buffer' する。 +出力されたバッファをファイル (下記の例では TMP) に保存し $ skkdic-expr TMP | skkdic-sort > NEWDICT -ȤƲùɬפꡣ -ץʥ reference ꤹȡùκݤ˸뼭 -̤˻ꤹ뤳ȤǤ롣reference λ꤬ʤϡ꡼ -ǸǤΤߤѤƸФù롣" +として加工する必要あり。 +オプショナル引数の reference を指定すると、加工の際に検索する辞書を +別に指定することができる。reference の指定がない場合は、リージョン +内で検索できる語のみを利用して見出し語を加工する。" (interactive "r\nP") (unwind-protect (let ((outbuf (get-buffer-create " *skkmkmgk working*")) @@ -110,7 +110,7 @@ (with-current-buffer outbuf (erase-buffer)) (if reference (progn - (setq reference (read-file-name "ɤμ򻲾Ȥޤ? " + (setq reference (read-file-name "どの辞書を参照しますか? " nil nil 'mustmatch)) (with-current-buffer (get-buffer-create " *skkmkmgk working1*") (erase-buffer) @@ -118,8 +118,8 @@ (insert-file-contents (expand-file-name reference)) (goto-char (point-min)) (re-search-forward "^;; okuri-nasi entries\\.$") - ;; abbrev skip - (delete-region (point-min) (progn (re-search-forward "^") + ;; abbrev 候補を skip + (delete-region (point-min) (progn (re-search-forward "^あ") (beginning-of-line) (point))) (setq reference (current-buffer)))))) @@ -145,19 +145,19 @@ (* (/ (* (point) 100.00) (* max 100.00)) 100.0))) (beginning-of-line) - ;; Ҥ餬ʸФ e.x. "" + ;; ひらがな見出し e.x. "あいかわ" (setq header0 (buffer-substring-no-properties (point) (save-excursion (search-forward " ") (backward-char 1) (point)))) (if (= (length header0) 1) nil (search-forward " /") - ;; Ҥ餬ʸФ򥭡ˤꥹ (2 ʸʾ) e.x. "" + ;; ひらがな見出しをキーにした候補リスト (2 文字以上) e.x. "相川" (setq candidates0 (skk-mkmgk-filter (car (skk-compute-henkan-lists nil)))) (if (null candidates0) nil - ;; Ҥ餬ʸФʬ + ;; ひらがな見出しを分解 (setq header-list (string-to-list header0)) (with-current-buffer reference ; have to restore point after searching (let ((max (point-max)) (min (point-min)) @@ -168,7 +168,7 @@ n 1) (while (and header1 (> (length header0) (length header1))) (goto-char min) - ;; ʬ򤷤Ҥ餬ʸФ 1 ʸŤĸФˤƺƸ e.x. "" + ;; 分解したひらがな見出しを 1 文字づつ見出しにして再検索 e.x. "あい" (if (not (setq candidates1 (skk-mkmgk-binary-search header1 min max skk-mkmgk-region-limit))) nil @@ -178,9 +178,9 @@ ;;(string-match header1 header0 (* skk-kanji-len (1- n))))) (or (setq candidates1 (cdr candidates1)) (setq can0 (cdr can0))) - ;; ʬ򥭡 (e.x. ) ˤ e.x. "" - ;; ꥸʥ륭 (e.x. ) θ e.x. - ;; "" match + ;; 分解キー (e.x. あい) による候補 e.x. "相" が + ;; オリジナルキー (e.x. あいかわ) の候補 e.x. + ;; "相川" に match したら (setq key0 (concat (substring (car can0) 0 (match-beginning 0)) @@ -195,28 +195,28 @@ (or (string= key0 (car can0)) (with-current-buffer outbuf (goto-char (point-max)) - ;; // + ;; あい川 /相川/ (insert key0 " /" (car can0) "/\n"))) (or (string= key1 (car can0)) (with-current-buffer outbuf (goto-char (point-max)) - ;; ꤫ // + ;; 相かわ /相川/ (insert key1 " /" (car can0) "/\n"))) (setq candidates1 nil))))) (if (> (length (mapconcat 'char-to-string header-list1 nil)) n) - ;; HEADER1 򿭤ФƺƸ - ;; e.x. "" "" "" "" - ;; "" "" "" - ;; "" "" - ;; "" + ;; HEADER1 を伸ばして再検索 + ;; e.x. "あ" → "あい" → "あいか" → "あいかわ" + ;; "い" → "いか" → "いかわ" + ;; "か" → "かわ" + ;; "わ" (setq header1 (concat header1 (char-to-string (nth n header-list1))) n (1+ n)) (setq header1 nil))) - ;; char Ƭˤ - ;; e.x. "" "" "" "" + ;; 次の char を頭にした検索開始 + ;; e.x. "あ" → "い" → "か" → "わ" (setq header-list1 (cdr header-list1))))))) (setq cont (= (forward-line 1) 0))) (let ((ret (with-current-buffer outbuf (> (buffer-size) 0)))) @@ -235,8 +235,8 @@ (function (lambda (word) (setq word (if (and - (not (string-match "[--]" word)) - ;; Ѹ skip + (not (string-match "[ぁ-んァ-ン]" word)) + ;; 英語を skip (not (string-match "^[a-zA-Z]+$" word))) (if (string-match ";" word) (substring word 0 (match-beginning 0)) diff --git a/tut-code/skk-tutcdef.el b/tut-code/skk-tutcdef.el index 16873769..f5977393 100644 --- a/tut-code/skk-tutcdef.el +++ b/tut-code/skk-tutcdef.el @@ -33,10 +33,10 @@ (define-key skk-j-mode-map "\C-l" 'skk-latin-mode) (setq skk-try-completion-char ?\016) ; \C-n ;; (setq skk-latin-mode-string " sTUT") -;; (setq skk-hiragana-mode-string " $B#s$?$C$H(B") -;; (setq skk-katakana-mode-string " $B#s%?%C%H(B") -;; (setq skk-jisx0208-latin-mode-string " $B#s#T#U#T(B") -;; (setq skk-abbrev-mode-string " s$B$?(B") +;; (setq skk-hiragana-mode-string " sたっと") +;; (setq skk-katakana-mode-string " sタット") +;; (setq skk-jisx0208-latin-mode-string " sTUT") +;; (setq skk-abbrev-mode-string " sた") (setq skk-start-henkan-char ?\^@) (setq skk-rom-kana-base-rule-list @@ -60,896 +60,896 @@ ;; The first few entries are necessary to disable special treatments of (setq skk-rom-kana-rule-list '( - ("rk" nil ("$B%"(B" . "$B$"(B")) ("rlk" nil ("$B%!(B" . "$B$!(B")) ("ek" nil ("$B%+(B" . "$B$+(B")) - ("elk" nil ("$B%,(B" . "$B$,(B")) ("sk" nil ("$B%5(B" . "$B$5(B")) ("slk" nil ("$B%6(B" . "$B$6(B")) - ("dk" nil ("$B%?(B" . "$B$?(B")) ("dlk" nil ("$B%@(B" . "$B$@(B")) ("fk" nil ("$B%J(B" . "$B$J(B")) - ("tk" nil ("$B%O(B" . "$B$O(B")) ("tlk" nil ("$B%P(B" . "$B$P(B")) ("tltk" nil ("$B%Q(B" . "$B$Q(B")) - ("wk" nil ("$B%^(B" . "$B$^(B")) ("qk" nil ("$B%d(B" . "$B$d(B")) ("qlk" nil ("$B%c(B" . "$B$c(B")) - ("gk" nil ("$B%i(B" . "$B$i(B")) ("ak" nil ("$B%o(B" . "$B$o(B")) ("alk" nil ("$B%n(B" . "$B$n(B")) - ("ri" nil ("$B%$(B" . "$B$$(B")) ("rli" nil ("$B%#(B" . "$B$#(B")) ("ei" nil ("$B%-(B" . "$B$-(B")) - ("eli" nil ("$B%.(B" . "$B$.(B")) ("si" nil ("$B%7(B" . "$B$7(B")) ("sli" nil ("$B%8(B" . "$B$8(B")) - ("di" nil ("$B%A(B" . "$B$A(B")) ("dli" nil ("$B%B(B" . "$B$B(B")) ("fi" nil ("$B%K(B" . "$B$K(B")) - ("ti" nil ("$B%R(B" . "$B$R(B")) ("tli" nil ("$B%S(B" . "$B$S(B")) ("tlti" nil ("$B%T(B" . "$B$T(B")) - ("wi" nil ("$B%_(B" . "$B$_(B")) ("gi" nil ("$B%j(B" . "$B$j(B")) ("ai" nil ("$B%p(B" . "$B$p(B")) - ("ru" nil ("$B%&(B" . "$B$&(B")) ("rlu" nil ("$B%%(B" . "$B$%(B")) ("eu" nil ("$B%/(B" . "$B$/(B")) - ("elu" nil ("$B%0(B" . "$B$0(B")) ("su" nil ("$B%9(B" . "$B$9(B")) ("slu" nil ("$B%:(B" . "$B$:(B")) - ("du" nil ("$B%D(B" . "$B$D(B")) ("dlu" nil ("$B%C(B" . "$B$C(B")) ("dldu" nil ("$B%E(B" . "$B$E(B")) - ("fu" nil ("$B%L(B" . "$B$L(B")) ("tu" nil ("$B%U(B" . "$B$U(B")) ("tlu" nil ("$B%V(B" . "$B$V(B")) - ("tltu" nil ("$B%W(B" . "$B$W(B")) ("wu" nil ("$B%`(B" . "$B$`(B")) ("qu" nil ("$B%f(B" . "$B$f(B")) - ("qlu" nil ("$B%e(B" . "$B$e(B")) ("gu" nil ("$B%k(B" . "$B$k(B")) - ("rh" nil ("$B%((B" . "$B$((B")) ("rlh" nil ("$B%'(B" . "$B$'(B")) ("eh" nil ("$B%1(B" . "$B$1(B")) - ("elh" nil ("$B%2(B" . "$B$2(B")) ("sh" nil ("$B%;(B" . "$B$;(B")) ("slh" nil ("$B%<(B" . "$B$<(B")) - ("dh" nil ("$B%F(B" . "$B$F(B")) ("dlh" nil ("$B%G(B" . "$B$G(B")) ("fh" nil ("$B%M(B" . "$B$M(B")) - ("th" nil ("$B%X(B" . "$B$X(B")) ("tlh" nil ("$B%Y(B" . "$B$Y(B")) ("tlth" nil ("$B%Z(B" . "$B$Z(B")) - ("wh" nil ("$B%a(B" . "$B$a(B")) ("gh" nil ("$B%l(B" . "$B$l(B")) ("ah" nil ("$B%q(B" . "$B$q(B")) - ("rj" nil ("$B%*(B" . "$B$*(B")) ("rlj" nil ("$B%)(B" . "$B$)(B")) ("ej" nil ("$B%3(B" . "$B$3(B")) - ("elj" nil ("$B%4(B" . "$B$4(B")) ("sj" nil ("$B%=(B" . "$B$=(B")) ("slj" nil ("$B%>(B" . "$B$>(B")) - ("dj" nil ("$B%H(B" . "$B$H(B")) ("dlj" nil ("$B%I(B" . "$B$I(B")) ("fj" nil ("$B%N(B" . "$B$N(B")) - ("tj" nil ("$B%[(B" . "$B$[(B")) ("tlj" nil ("$B%\(B" . "$B$\(B")) ("tltj" nil ("$B%](B" . "$B$](B")) - ("wj" nil ("$B%b(B" . "$B$b(B")) ("qj" nil ("$B%h(B" . "$B$h(B")) ("qlj" nil ("$B%g(B" . "$B$g(B")) - ("gj" nil ("$B%m(B" . "$B$m(B")) ("aj" nil ("$B%r(B" . "$B$r(B")) ("fl" nil ("$B%s(B" . "$B$s(B")) - ("rlru" nil "$B%t(B") ("eleh" nil "$B%v(B") ("elek" nil "$B%u(B") + ("rk" nil ("ア" . "あ")) ("rlk" nil ("ァ" . "ぁ")) ("ek" nil ("カ" . "か")) + ("elk" nil ("ガ" . "が")) ("sk" nil ("サ" . "さ")) ("slk" nil ("ザ" . "ざ")) + ("dk" nil ("タ" . "た")) ("dlk" nil ("ダ" . "だ")) ("fk" nil ("ナ" . "な")) + ("tk" nil ("ハ" . "は")) ("tlk" nil ("バ" . "ば")) ("tltk" nil ("パ" . "ぱ")) + ("wk" nil ("マ" . "ま")) ("qk" nil ("ヤ" . "や")) ("qlk" nil ("ャ" . "ゃ")) + ("gk" nil ("ラ" . "ら")) ("ak" nil ("ワ" . "わ")) ("alk" nil ("ヮ" . "ゎ")) + ("ri" nil ("イ" . "い")) ("rli" nil ("ィ" . "ぃ")) ("ei" nil ("キ" . "き")) + ("eli" nil ("ギ" . "ぎ")) ("si" nil ("シ" . "し")) ("sli" nil ("ジ" . "じ")) + ("di" nil ("チ" . "ち")) ("dli" nil ("ヂ" . "ぢ")) ("fi" nil ("ニ" . "に")) + ("ti" nil ("ヒ" . "ひ")) ("tli" nil ("ビ" . "び")) ("tlti" nil ("ピ" . "ぴ")) + ("wi" nil ("ミ" . "み")) ("gi" nil ("リ" . "り")) ("ai" nil ("ヰ" . "ゐ")) + ("ru" nil ("ウ" . "う")) ("rlu" nil ("ゥ" . "ぅ")) ("eu" nil ("ク" . "く")) + ("elu" nil ("グ" . "ぐ")) ("su" nil ("ス" . "す")) ("slu" nil ("ズ" . "ず")) + ("du" nil ("ツ" . "つ")) ("dlu" nil ("ッ" . "っ")) ("dldu" nil ("ヅ" . "づ")) + ("fu" nil ("ヌ" . "ぬ")) ("tu" nil ("フ" . "ふ")) ("tlu" nil ("ブ" . "ぶ")) + ("tltu" nil ("プ" . "ぷ")) ("wu" nil ("ム" . "む")) ("qu" nil ("ユ" . "ゆ")) + ("qlu" nil ("ュ" . "ゅ")) ("gu" nil ("ル" . "る")) + ("rh" nil ("エ" . "え")) ("rlh" nil ("ェ" . "ぇ")) ("eh" nil ("ケ" . "け")) + ("elh" nil ("ゲ" . "げ")) ("sh" nil ("セ" . "せ")) ("slh" nil ("ゼ" . "ぜ")) + ("dh" nil ("テ" . "て")) ("dlh" nil ("デ" . "で")) ("fh" nil ("ネ" . "ね")) + ("th" nil ("ヘ" . "へ")) ("tlh" nil ("ベ" . "べ")) ("tlth" nil ("ペ" . "ぺ")) + ("wh" nil ("メ" . "め")) ("gh" nil ("レ" . "れ")) ("ah" nil ("ヱ" . "ゑ")) + ("rj" nil ("オ" . "お")) ("rlj" nil ("ォ" . "ぉ")) ("ej" nil ("コ" . "こ")) + ("elj" nil ("ゴ" . "ご")) ("sj" nil ("ソ" . "そ")) ("slj" nil ("ゾ" . "ぞ")) + ("dj" nil ("ト" . "と")) ("dlj" nil ("ド" . "ど")) ("fj" nil ("ノ" . "の")) + ("tj" nil ("ホ" . "ほ")) ("tlj" nil ("ボ" . "ぼ")) ("tltj" nil ("ポ" . "ぽ")) + ("wj" nil ("モ" . "も")) ("qj" nil ("ヨ" . "よ")) ("qlj" nil ("ョ" . "ょ")) + ("gj" nil ("ロ" . "ろ")) ("aj" nil ("ヲ" . "を")) ("fl" nil ("ン" . "ん")) + ("rlru" nil "ヴ") ("eleh" nil "ヶ") ("elek" nil "ヵ") ("f " nil skk-current-kuten) ("d " nil skk-current-touten) - ("/ " nil "$B!?(B") - ("q " nil "$B!H(B") ("w " nil "$B")(B") ("e " nil "$B!<(B") - ("r " nil "$B!J(B") ("u " nil "$B!K(B") ("i " nil "$B!D(B") - ("o " nil "$B!&(B") ("p " nil "$B!I(B") ("a " nil "$B!F(B") - ("s " nil "$B!y(B") ("j " nil "$B!9(B") ("k " nil "$B"((B") - ("l " nil "$B!@(B") ("; " nil "$B!G(B") ("z " nil "$B!:(B") - ("x " nil "$B!x(B") ("c " nil "$B!;(B") ("v " nil "$B!Z(B") - ("m " nil "$B![(B") (", " nil "$B!T(B") (". " nil "$B!U(B") - ("t " nil "$B!V(B") ("y " nil "$B!W(B") ("g " nil "$B!X(B") - ("h " nil "$B!Y(B") ("b " nil "$B"+(B") ("n " nil "$B"*(B") - ("zz" nil "$B;((B") ("xz" nil "$B?d(B") ("cz" nil "$BEO(B") - ("vz" nil "$B8z(B") ("bz" nil "$B1'(B") ("nz" nil "$B?6(B") - ("mz" nil "$B9[(B") (",z" nil "$BI_(B") ("az" nil "$B@1(B") - ("sz" nil "$B5v(B") ("dz" nil "$B39(B") ("fz" nil "$BNk(B") - ("gz" nil "$BDk(B") ("hz" nil "$B@:(B") ("jz" nil "$BM'(B") - ("kz" nil "$B<}(B") ("qz" nil "$BJV(B") ("wz" nil "$B6%(B") - ("ez" nil "$BJl(B") ("rz" nil "$BG.(B") ("tz" nil "$BB`(B") - ("yz" nil "$B4k(B") ("uz" nil "$BI~(B") ("iz" nil "$B9](B") - (".z" nil "$BM;(B") ("/z" nil "$B1:(B") ("lz" nil "$B;{(B") - (";z" nil "$BMz(B") ("oz" nil "$BDd(B") ("pz" nil "$B=#(B") - ("zx" nil "$B4)(B") ("xx" nil "$BFA(B") ("cx" nil "$BEP(B") - ("vx" nil "$BNd(B") ("bx" nil "$B6A(B") ("nx" nil "$BDE(B") - ("mx" nil "$BDM(B") (",x" nil "$BHx(B") ("ax" nil "$BB2(B") - ("sx" nil "$B=>(B") ("dx" nil "$BF2(B") ("fx" nil "$BJ<(B") - ("gx" nil "$B4F(B") ("hx" nil "$BIM(B") ("jx" nil "$B8M(B") - ("kx" nil "$BNA(B") ("qx" nil "$B:W(B") ("wx" nil "$BK,(B") - ("ex" nil "$B=t(B") ("rx" nil "$B=$(B") ("tx" nil "$BHG(B") - ("yx" nil "$B0K(B") ("ux" nil "$B=5(B") ("ix" nil "$B3,(B") - (".x" nil "$BC](B") ("/x" nil "$B@t(B") ("lx" nil "$B2P(B") - (";x" nil "$B:d(B") ("ox" nil "$BO+(B") ("px" nil "$BHD(B") - ("zc" nil "$Br(B") (",c" nil "$B1I(B") ("ac" nil "$BDB(B") - ("sc" nil "$B@2(B") ("dc" nil "$BFH(B") ("fc" nil "$B4Q(B") - ("gc" nil "$BJQ(B") ("hc" nil "$BFn(B") ("jc" nil "$BC+(B") - ("kc" nil "$BF;(B") ("qc" nil "$BF^(B") ("wc" nil "$BCm(B") - ("ec" nil "$BLH(B") ("rc" nil "$BCc(B") ("tc" nil "$B:r(B") - ("yc" nil "$B2J(B") ("uc" nil "$B20(B") ("ic" nil "$B1G(B") - (".c" nil "$B8K(B") ("/c" nil "$BGH(B") ("lc" nil "$B6&(B") - (";c" nil "$B9>(B") ("oc" nil "$B:e(B") ("pc" nil "$B>:(B") - ("nv" nil "$BZ(B") ("pv" nil "$B@u(B") - ("nb" nil "$B4d(B") ("mb" nil "$B>k(B") (",b" nil "$B1J(B") - ("hb" nil "$B73(B") ("jb" nil "$BEZ(B") ("kb" nil "$B?@(B") - ("yb" nil "$B><(B") ("ub" nil "$B5\(B") ("ib" nil "$B?&(B") - (".b" nil "$B=)(B") ("/b" nil "$BN&(B") ("lb" nil "$BB$(B") - (";b" nil "$B7](B") ("ob" nil "$BM:(B") ("pb" nil "$B=U(B") - ("ng" nil "$BC(B") ("an" nil "$B=u(B") - ("sn" nil "$B@-(B") ("dn" nil "$BOC(B") ("fn" nil "$B8l(B") - ("gn" nil "$BE@(B") ("qn" nil "$BI,(B") ("wn" nil "$B41(B") - ("en" nil "$B<#(B") ("rn" nil "$B@h(B") ("tn" nil "$B=i(B") - ("zm" nil "$B<:(B") ("xm" nil "$BA[(B") ("cm" nil "$BN.(B") - ("vm" nil "$B8!(B") ("bm" nil "$B:F(B") ("am" nil "$B^(B") ("oa" nil "$B;N(B") ("pa" nil "$BDZ(B") - ("zs" nil "$B0e(B") ("xs" nil "$BC1(B") ("cs" nil "$BB_(B") - ("vs" nil "$BDI(B") ("bs" nil "$B5s(B") ("ns" nil "$B4](B") - ("ms" nil "$BB4(B") (",s" nil "$BD+(B") ("as" nil "$BKh(B") - ("ss" nil "$BJ!(B") ("ds" nil "$BB>(B") ("fs" nil "$BJF(B") - ("gs" nil "$BMx(B") ("hs" nil "$BBe(B") ("js" nil "$B7n(B") - ("ks" nil "$BED(B") ("qs" nil "$B@G(B") ("ws" nil "$B&(B") ("os" nil "$BI4(B") ("ps" nil "$B@\(B") - ("zd" nil "$BI>(B") ("xd" nil "$BDm(B") ("cd" nil "$B2~(B") - ("vd" nil "$BLr(B") ("bd" nil "$B2V(B") ("nd" nil "$B5^(B") - ("md" nil "$B3$(B") (",d" nil "$B;T(B") ("ad" nil "$BLs(B") - ("sd" nil "$BM-(B") ("dd" nil "$BA4(B") ("fd" nil "$B<+(B") - ("gd" nil "$B=;(B") ("hd" nil "$BEl(B") ("jd" nil "$BFs(B") - ("kd" nil "$BF|(B") ("qd" nil "$B9u(B") ("wd" nil "$B;q(B") - ("ed" nil "$B?t(B") ("rd" nil "$BIJ(B") ("td" nil "$B:B(B") - ("yd" nil "$B3X(B") ("ud" nil "$BK\(B") ("id" nil "$BBg(B") - (".d" nil "$B;Y(B") ("/d" nil "$B?9(B") ("ld" nil "$B;~(B") - (";d" nil "$BIT(B") ("od" nil "$BO;(B") ("pd" nil "$B3t(B") - ("zf" nil "$BF$(B") ("xf" nil "$B6q(B") ("cf" nil "$BKI(B") - ("vf" nil "$BAG(B") ("bf" nil "$B2p(B") ("nf" nil "$B8w(B") - ("mf" nil "$BO:(B") (",f" nil "$BJ8(B") ("af" nil "$BD>(B") - ("sf" nil "$BAw(B") ("df" nil "$BJ](B") ("ff" nil "$B@$(B") - ("gf" nil "$B8=(B") ("hf" nil "$B?7(B") ("jf" nil "$BG/(B") - ("kf" nil "$B0l(B") ("qf" nil "$B7Y(B") ("wf" nil "$BBw(B") - ("ef" nil "$B8x(B") ("rf" nil "$B:Y(B") ("tf" nil "$BHq(B") - ("yf" nil "$B9)(B") ("uf" nil "$B;v(B") ("if" nil "$BCf(B") - (".f" nil "$BBt(B") ("/f" nil "$BGO(B") ("lf" nil "$BF1(B") - (";f" nil "$BJb(B") ("of" nil "$B6e(B") ("pf" nil "$B8a(B") - ("zh" nil "$BH=(B") ("xh" nil "$BEj(B") ("ch" nil "$B@o(B") - ("vh" nil "$BAH(B") ("bh" nil "$BB?(B") ("qh" nil "$BJ(B") ("hj" nil "$BNO(B") - ("jj" nil "$B83(B") ("kj" nil "$B4V(B") ("yj" nil "$B>!(B") - ("uj" nil "$B;a(B") ("ij" nil "$B2h(B") (".j" nil "$B7?(B") - ("/j" nil "$B8N(B") ("lj" nil "$B@_(B") (";j" nil "$B9f(B") - ("oj" nil "$B?4(B") ("pj" nil "$BHN(B") - ("zk" nil "$B(B") - ("zq" nil "$B?-(B") ("xq" nil "$B1)(B") ("cq" nil "$B@E(B") - ("vq" nil "$B:b(B") ("bq" nil "$B;O(B") ("nq" nil "$B2O(B") - ("mq" nil "$B1[(B") (",q" nil "$BE}(B") ("aq" nil "$B0-(B") - ("sq" nil "$BIB(B") ("dq" nil "$BAa(B") ("fq" nil "$B;e(B") - ("gq" nil "$B;n(B") ("hq" nil "$B>>(B") ("jq" nil "$B0B(B") - ("kq" nil "$BET(B") ("qq" nil "$BJB(B") ("wq" nil "$BBV(B") - ("eq" nil "$BN>(B") ("rq" nil "$B>h(B") ("tq" nil "$B@l(B") - ("yq" nil "$B6=(B") ("uq" nil "$B8}(B") ("iq" nil "$BMN(B") - (".q" nil "$B=((B") ("/q" nil "$BL}(B") ("lq" nil "$BM?(B") - (";q" nil "$B@6(B") ("oq" nil "$BA%(B") ("pq" nil "$B5W(B") - ("zw" nil "$BN"(B") ("xw" nil "$BC;(B") ("cw" nil "$B2?(B") - ("vw" nil "$B@Q(B") ("bw" nil "$B7^(B") ("nw" nil "$B85(B") - ("mw" nil "$BB"(B") (",w" nil "$B8)(B") ("aw" nil "$B:,(B") - ("sw" nil "$B;E(B") ("dw" nil "$BL5(B") ("fw" nil "$B0F(B") - ("gw" nil "$B3[(B") ("hw" nil "$BF0(B") ("jw" nil "$B@n(B") - ("kw" nil "$B5k(B") ("qw" nil "$BEA(B") ("ww" nil "$B7r(B") - ("ew" nil "$BBT(B") ("rw" nil "$BGr(B") ("tw" nil "$B9A(B") - ("yw" nil "$B?e(B") ("uw" nil "$B;:(B") ("iw" nil "$BL3(B") - (".w" nil "$BC[(B") ("/w" nil "$B3Q(B") ("lw" nil "$BLZ(B") - (";w" nil "$B:4(B") ("ow" nil "$B1X(B") ("pw" nil "$BF,(B") - ("ze" nil "$BN`(B") ("xe" nil "$BHs(B") ("ce" nil "$BJd(B") - ("ve" nil "$B7Z(B") ("be" nil "$BN((B") ("ne" nil "$B:j(B") - ("me" nil "$B=I(B") (",e" nil "$B2D(B") ("ae" nil "$BE7(B") - ("se" nil "$B:#(B") ("de" nil "$B3F(B") ("fe" nil "$B4X(B") - ("ge" nil "$B1?(B") ("he" nil "$B9b(B") ("je" nil "$B9q(B") - ("ke" nil "$B;0(B") ("qe" nil "$B@D(B") ("we" nil "$B3h(B") - ("ee" nil "$B7k(B") ("re" nil "$BM%(B") ("te" nil "$B:G(B") - ("ye" nil "$B6b(B") ("ue" nil "$BCO(B") ("ie" nil "$BK|(B") - (".e" nil "$B<<(B") ("/e" nil "$B=B(B") ("le" nil "$BH,(B") - (";e" nil "$BKL(B") ("oe" nil "$B7z(B") ("pe" nil "$BE4(B") - ("zr" nil "$BI|(B") ("xr" nil "$BM7(B") ("cr" nil "$B;\(B") - ("vr" nil "$B5"(B") ("br" nil "$BJX(B") ("nr" nil "$BH>(B") - ("mr" nil "$B2,(B") (",r" nil "$B@P(B") ("ar" nil "$BN@(B") - ("sr" nil "$B9-(B") ("dr" nil "$BJ?(B") ("fr" nil "$B2;(B") - ("gr" nil "$B7W(B") ("hr" nil "$B;3(B") ("jr" nil "$BEE(B") - ("kr" nil "$B8^(B") ("qr" nil "$B@0(B") ("wr" nil "$B>/(B") - ("er" nil "$B?.(B") ("rr" nil "$BJs(B") ("tr" nil "$BB@(B") - ("yr" nil "$BD.(B") ("ur" nil "$B<7(B") ("ir" nil "$B5~(B") - (".r" nil "$B5Y(B") ("/r" nil "$BK-(B") ("lr" nil "$B>.(B") - (";r" nil "$B86(B") ("or" nil "$BM}(B") ("pr" nil "$B1D(B") - ("nt" nil "$BNS(B") ("mt" nil "$BLg(B") (",t" nil "$B3J(B") - ("ht" nil "$BL>(B") ("jt" nil "$BIt(B") ("kt" nil "$B6H(B") - ("yt" nil "$BBh(B") ("ut" nil "$BOB(B") ("it" nil "$B6h(B") - (".t" nil "$B5H(B") ("/t" nil "$BNp(B") ("lt" nil "$BLd(B") - (";t" nil "$B6a(B") ("ot" nil "$B@>(B") ("pt" nil "$BIY(B") - ("zy" nil "$BMn(B") ("xy" nil "$B>p(B") ("cy" nil "$B;d(B") - ("vy" nil "$Bl(B") ("dy" nil "$B2q(B") ("fy" nil "$B>e(B") - ("gy" nil "$BDL(B") ("qy" nil "$B?)(B") ("wy" nil "$B;}(B") - ("ey" nil "$B;R(B") ("ry" nil "$B=P(B") ("ty" nil "$B9T(B") - ("zu" nil "$B9%(B") ("xu" nil "$B4[(B") ("cu" nil "$BD4(B") - ("vu" nil "$BCN(B") ("bu" nil "$B@Z(B") ("nu" nil "$BD#(B") - ("mu" nil "$BG7(B") (",u" nil "$BN9(B") ("au" nil "$BL\(B") - ("hu" nil "$B@=(B") ("ju" nil "$B(B") - ("g/" nil "$B5,(B") ("h/" nil "$B=`(B") ("j/" nil "$BFq(B") - ("k/" nil "$B:[(B") ("q/" nil "$BE8(B") ("w/" nil "$BF@(B") - ("e/" nil "$B;`(B") ("r/" nil "$BM"(B") ("t/" nil "$BL#(B") - ("y/" nil "$BCz(B") ("u/" nil "$BA1(B") ("i/" nil "$B:`(B") - ("./" nil "$B67(B") ("//" nil "$B7J(B") ("l/" nil "$BE,(B") - (";/" nil "$B?^(B") ("o/" nil "$B:9(B") ("p/" nil "$B@v(B") - ("zl" nil "$BG$(B") ("xl" nil "$B0z(B") ("cl" nil "$BE^(B") - ("vl" nil "$Bu(B") - ("a;" nil "$B2N(B") ("s;" nil "$BL@(B") ("d;" nil "$BD9(B") - ("f;" nil "$BJ}(B") ("g;" nil "$B@/(B") ("h;" nil "$B0L(B") - ("j;" nil "$B:_(B") ("k;" nil "$B<0(B") ("q;" nil "$B6u(B") - ("w;" nil "$B@~(B") ("e;" nil "$B9g(B") ("r;" nil "$B2H(B") - ("t;" nil "$B=8(B") ("y;" nil "$B2&(B") ("u;" nil "$B1R(B") - ("i;" nil "$B7`(B") (".;" nil "$BB((B") ("/;" nil "$BJU(B") - ("l;" nil "$B:Q(B") (";;" nil "$B5f(B") ("o;" nil "$B?F(B") - ("p;" nil "$BGz(B") ("zo" nil "$BFI(B") ("xo" nil "$B5a(B") - ("co" nil "$B1i(B") ("vo" nil "$B=Q(B") ("bo" nil "$B?H(B") - ("no" nil "$B;z(B") ("mo" nil "$BM\(B") (",o" nil "$B7b(B") - ("ao" nil "$B4|(B") ("so" nil "$BH/(B") ("do" nil "$B?M(B") - ("fo" nil "$B0w(B") ("go" nil "$B@8(B") ("ho" nil "$BM3(B") - ("jo" nil "$B6I(B") ("ko" nil "$BBN(B") ("qo" nil "$B2r(B") - ("wo" nil "$B5$(B") ("eo" nil "$Bo(B") - ("po" nil "$BNN(B") ("zp" nil "$BC#(B") ("xp" nil "$B8B(B") - ("cp" nil "$B1~(B") ("vp" nil "$BGc(B") ("bp" nil "$B46(B") - ("np" nil "$B3U(B") ("mp" nil "$BC4(B") (",p" nil "$B>-(B") - ("ap" nil "$BB3(B") ("sp" nil "$BAm(B") ("dp" nil "$BDj(B") - ("fp" nil "$B=w(B") ("gp" nil "$B@.(B") ("hp" nil "$B5i(B") - ("jp" nil "$B2](B") ("kp" nil "$B0i(B") ("qp" nil "$BG[(B") - ("wp" nil "$BM=(B") ("ep" nil "$B5D(B") ("rp" nil "$BFC(B") - ("tp" nil "$BK!(B") ("yp" nil "$B2L(B") ("up" nil "$BEy(B") - ("ip" nil "$B(B") - ("hnz" nil "$B:7(B") ("jnz" nil "$BMZ(B") ("knz" nil "$B3/(B") - ("ynz" nil "$B5x(B") ("unz" nil "$B:@(B") ("inz" nil "$BKV(B") - (".nz" nil "$BEF(B") ("/nz" nil "$B3p(B") ("lnz" nil "$B84(B") - (";nz" nil "$BA'(B") ("onz" nil "$B;9(B") ("pnz" nil "$BBO(B") - ("nmz" nil "$BDY(B") ("mmz" nil "$B8'(B") (",mz" nil "$B<5(B") - ("hmz" nil "$BMV(B") ("jmz" nil "$B:s(B") ("kmz" nil "$B0+(B") - ("ymz" nil "$B9[(B") ("umz" nil "$B<6(B") ("imz" nil "$B1e(B") - (".mz" nil "$BD5(B") ("/mz" nil "$B@H(B") ("lmz" nil "$BFf(B") - (";mz" nil "$B:|(B") ("omz" nil "$BI*(B") ("pmz" nil "$BKs(B") - ("nnx" nil "$BC((B") ("mnx" nil "$BB|(B") (",nx" nil "$B0q(B") - ("hnx" nil "$B8{(B") ("jnx" nil "$BHZ(B") ("knx" nil "$BJ0(B") - ("ynx" nil "$B2e(B") ("unx" nil "$BNg(B") ("inx" nil "$B7T(B") - (".nx" nil "$BCP(B") ("/nx" nil "$B3k(B") ("lnx" nil "$BME(B") - (";nx" nil "$B7d(B") ("onx" nil "$B7X(B") ("pnx" nil "$B4;(B") - ("nmx" nil "$BC7(B") ("mmx" nil "$BCI(B") (",mx" nil "$B?A(B") - ("hmx" nil "$B9i(B") ("jmx" nil "$B:H(B") ("kmx" nil "$B26(B") - ("ymx" nil "$BNb(B") ("umx" nil "$BK1(B") ("imx" nil "$B0k(B") - (".mx" nil "$B2W(B") ("/mx" nil "$BL'(B") ("lmx" nil "$B(B") - ("nmd" nil "$B:>(B") ("mmd" nil "$BKQ(B") (",md" nil "$B?x(B") - ("hmd" nil "$B4T(B") ("jmd" nil "$BHa(B") ("kmd" nil "$B4m(B") - ("ymd" nil "$B>b(B") ("umd" nil "$BK;(B") ("imd" nil "$B7K(B") - (".md" nil "$B=v(B") ("/md" nil "$B=Y(B") ("lmd" nil "$BLv(B") - (";md" nil "$B=C(B") ("omd" nil "$BKa(B") ("pmd" nil "$B2^(B") - ("nnf" nil "$B0<(B") ("mnf" nil "$BC*(B") (",nf" nil "$B?#(B") - ("hnf" nil "$BL2(B") ("jnf" nil "$B55(B") ("knf" nil "$B)(B") ("jng" nil "$B3((B") ("kng" nil "$BM&(B") - ("yng" nil "$B4:(B") ("ung" nil "$BC{(B") ("ing" nil "$BG&(B") - (".ng" nil "$B=T(B") ("/ng" nil "$BK+(B") ("lng" nil "$BD`(B") - (";ng" nil "$B4$(B") ("ong" nil "$BBz(B") ("png" nil "$BK6(B") - ("nmg" nil "$BA@(B") ("mmg" nil "$BBW(B") (",mg" nil "$B8k(B") - ("hmg" nil "$BG:(B") ("jmg" nil "$BF8(B") ("kmg" nil "$BBX(B") - ("ymg" nil "$BJm(B") ("umg" nil "$B5=(B") ("img" nil "$B4~(B") - (".mg" nil "$BL{(B") ("/mg" nil "$B8H(B") ("lmg" nil "$BFJ(B") - (";mg" nil "$B?;(B") ("omg" nil "$BIe(B") ("pmg" nil "$BA8(B") - ("nnq" nil "$BL^(B") ("mnq" nil "$BIl(B") (",nq" nil "$BAo(B") - ("hnq" nil "$B6T(B") ("jnq" nil "$B21(B") ("knq" nil "$B2E(B") - ("ynq" nil "$BOD(B") ("unq" nil "$B1=(B") ("inq" nil "$B<4(B") - (".nq" nil "$BK#(B") ("/nq" nil "$B(B") ("onq" nil "$B9"(B") ("pnq" nil "$B0;(B") - ("nmq" nil "$B>*(B") ("mmq" nil "$BDv(B") (",mq" nil "$B<`(B") - ("hmq" nil "$B(B") - ("ynw" nil "$B1Z(B") ("unw" nil "$B=[(B") ("inw" nil "$B69(B") - (".nw" nil "$BB](B") ("/nw" nil "$B>+(B") ("lnw" nil "$B6~(B") - (";nw" nil "$BGe(B") ("onw" nil "$B4r(B") ("pnw" nil "$B7V(B") - ("nmw" nil "$BD_(B") ("mmw" nil "$BIQ(B") (",mw" nil "$B2c(B") - ("hmw" nil "$B1j(B") ("jmw" nil "$B=n(B") ("kmw" nil "$B=x(B") - ("ymw" nil "$BMg(B") ("umw" nil "$B9#(B") ("imw" nil "$BAx(B") - (".mw" nil "$B0t(B") ("/mw" nil "$BE.(B") ("lmw" nil "$BK9(B") - (";mw" nil "$B<_(B") ("omw" nil "$BER(B") ("pmw" nil "$BJ~(B") - ("nne" nil "$B5|(B") ("mne" nil "$BA)(B") (",ne" nil "$B2K(B") - ("hne" nil "$B=D(B") ("jne" nil "$BA{(B") ("kne" nil "$B<-(B") - ("yne" nil "$B6y(B") ("une" nil "$B1}(B") ("ine" nil "$B=F(B") - (".ne" nil "$B3i(B") ("/ne" nil "$BBv(B") ("lne" nil "$BJI(B") - (";ne" nil "$B?l(B") ("one" nil "$BK"(B") ("pne" nil "$B:x(B") - ("nme" nil "$BAg(B") ("mme" nil "$BJJ(B") (",me" nil "$BJ"(B") - ("hme" nil "$BC8(B") ("jme" nil "$B8X(B") ("kme" nil "$BHo(B") - ("yme" nil "$B4}(B") ("ume" nil "$B7w(B") ("ime" nil "$B>W(B") - (".me" nil "$B1>(B") ("/me" nil "$B5&(B") ("lme" nil "$B4S(B") - (";me" nil "$BNt(B") ("ome" nil "$B4t(B") ("pme" nil "$BAs(B") - ("nnr" nil "$BIK(B") ("mnr" nil "$B6i(B") (",nr" nil "$B63(B") - ("hnr" nil "$BNC(B") ("jnr" nil "$BH)(B") ("knr" nil "$BKR(B") - ("ynr" nil "$BHb(B") ("unr" nil "$BF-(B") ("inr" nil "$BK$(B") - (".nr" nil "$BFW(B") ("/nr" nil "$BOH(B") ("lnr" nil "$B?f(B") - (";nr" nil "$B:6(B") ("onr" nil "$B7"(B") ("pnr" nil "$BHA(B") - ("nmr" nil "$B;=(B") ("mmr" nil "$B3C(B") (",mr" nil "$B9U(B") - ("hmr" nil "$B2B(B") ("jmr" nil "$B>X(B") ("kmr" nil "$B=L(B") - ("ymr" nil "$B4A(B") ("umr" nil "$B88(B") ("imr" nil "$BKe(B") - (".mr" nil "$B2U(B") ("/mr" nil "$B?P(B") ("lmr" nil "$BMr(B") - (";mr" nil "$BJ.(B") ("omr" nil "$B1o(B") ("pmr" nil "$BF{(B") - ("nnt" nil "$B0Z(B") ("mnt" nil "$Ba(B") ("xg," nil "$BDf(B") ("cg," nil "$BNo(B") - ("vg," nil "$B7}(B") ("bg," nil "$B?c(B") ("ag," nil "$BC%(B") - ("sg," nil "$BO*(B") ("dg," nil "$BF}(B") ("fg," nil "$B4G(B") - ("gg," nil "$B9x(B") ("qg," nil "$BI](B") ("wg," nil "$BKd(B") - ("eg," nil "$B9K(B") ("rg," nil "$BB#(B") ("tg," nil "$B3M(B") - ("zgh" nil "$B?}(B") ("xgh" nil "$BDF(B") ("cgh" nil "$BA,(B") - ("vgh" nil "$BD"(B") ("bgh" nil "$B6M(B") ("agh" nil "$BE](B") - ("sgh" nil "$B>P(B") ("dgh" nil "$B:'(B") ("fgh" nil "$B@d(B") - ("ggh" nil "$B>c(B") ("qgh" nil "$B>0(B") ("wgh" nil "$B7{(B") - ("egh" nil "$BFy(B") ("rgh" nil "$B0a(B") ("tgh" nil "$BHK(B") - ("zgj" nil "$B4*(B") ("xgj" nil "$BMb(B") ("cgj" nil "$BN$(B") - ("vgj" nil "$BA](B") ("bgj" nil "$BM#(B") ("agj" nil "$B0](B") - ("sgj" nil "$BHW(B") ("dgj" nil "$B44(B") ("fgj" nil "$BD(B") - ("vgk" nil "$B4J(B") ("bgk" nil "$BE~(B") ("agk" nil "$B3H(B") - ("sgk" nil "$B9_(B") ("dgk" nil "$B6!(B") ("fgk" nil "$B05(B") - ("ggk" nil "$BA!(B") ("qgk" nil "$B2w(B") ("wgk" nil "$BKc(B") - ("egk" nil "$B?y(B") ("rgk" nil "$BJa(B") ("tgk" nil "$BKG(B") - ("zgy" nil "$BG](B") ("xgy" nil "$B4.(B") ("cgy" nil "$B9@(B") - ("vgy" nil "$B1U(B") ("bgy" nil "$BE[(B") ("agy" nil "$BG<(B") - ("sgy" nil "$B6?(B") ("dgy" nil "$B1|(B") ("fgy" nil "$BKt(B") - ("ggy" nil "$BI.(B") ("qgy" nil "$BE/(B") ("wgy" nil "$BCF(B") - ("egy" nil "$BC:(B") ("rgy" nil "$B0p(B") ("tgy" nil "$B0Y(B") - ("zgu" nil "$B9W(B") ("xgu" nil "$B4N(B") ("cgu" nil "$B=S(B") - ("vgu" nil "$B7@(B") ("bgu" nil "$B28(B") ("agu" nil "$BDK(B") - ("sgu" nil "$B=g(B") ("dgu" nil "$B<~(B") ("fgu" nil "$B9S(B") - ("ggu" nil "$B>{(B") ("qgu" nil "$B6S(B") ("wgu" nil "$B:a(B") - ("egu" nil "$B@S(B") ("rgu" nil "$BCk(B") ("tgu" nil "$B7'(B") - ("zgi" nil "$B>z(B") ("xgi" nil "$BCr(B") ("cgi" nil "$B1@(B") - ("vgi" nil "$BLi(B") ("bgi" nil "$BDq(B") ("agi" nil "$B5m(B") - ("sgi" nil "$B?%(B") ("dgi" nil "$B2F(B") ("fgi" nil "$B1g(B") - ("ggi" nil "$BLA(B") ("qgi" nil "$B3w(B") ("wgi" nil "$B8u(B") - ("egi" nil "$B@9(B") ("rgi" nil "$B7c(B") ("tgi" nil "$BHc(B") - ("zg." nil "$B;"(B") ("xg." nil "$B6|(B") ("cg." nil "$BLW(B") - ("vg." nil "$BIn(B") ("bg." nil "$BKZ(B") ("ag." nil "$B<"(B") - ("sg." nil "$BCE(B") ("dg." nil "$BK4(B") ("fg." nil "$BE((B") - ("gg." nil "$BK^(B") ("qg." nil "$B1B(B") ("wg." nil "$B2:(B") - ("eg." nil "$B0_(B") ("rg." nil "$B@;(B") ("tg." nil "$BKM(B") - ("zg/" nil "$BHu(B") ("xg/" nil "$BAd(B") ("cg/" nil "$B1z(B") - ("vg/" nil "$BM4(B") ("bg/" nil "$BNU(B") ("ag/" nil "$B6r(B") - ("sg/" nil "$BNQ(B") ("dg/" nil "$B95(B") ("fg/" nil "$B1t(B") - ("gg/" nil "$BD((B") ("qg/" nil "$BH;(B") ("wg/" nil "$B;1(B") - ("eg/" nil "$B14(B") ("rg/" nil "$BH3(B") ("tg/" nil "$B2i(B") - ("zgl" nil "$B<'(B") ("xgl" nil "$B>$(B") ("cgl" nil "$BE0(B") - ("vgl" nil "$B1x(B") ("bgl" nil "$BAS(B") ("agl" nil "$B6X(B") - ("sgl" nil "$BDl(B") ("dgl" nil "$B@a(B") ("fgl" nil "$B>F(B") - ("ggl" nil "$B0\(B") ("qgl" nil "$B9|(B") ("wgl" nil "$BAq(B") - ("egl" nil "$BBS(B") ("rgl" nil "$BA\(B") ("tgl" nil "$B5U(B") - ("zg;" nil "$BGf(B") ("xg;" nil "$B>S(B") ("cg;" nil "$B4O(B") - ("vg;" nil "$B35(B") ("bg;" nil "$BAB(B") ("ag;" nil "$BCn(B") - ("sg;" nil "$B:Z(B") ("dg;" nil "$B0[(B") ("fg;" nil "$BEX(B") - ("gg;" nil "$B:$(B") ("qg;" nil "$B7$(B") ("wg;" nil "$B4q(B") - ("eg;" nil "$B9H(B") ("rg;" nil "$BAk(B") ("tg;" nil "$B3](B") - ("zgo" nil "$B>g(B") ("xgo" nil "$BIS(B") ("cgo" nil "$B7<(B") - ("vgo" nil "$B91(B") ("bgo" nil "$B?T(B") ("ago" nil "$BLo(B") - ("sgo" nil "$B>5(B") ("dgo" nil "$B0h(B") ("fgo" nil "$B7/(B") - ("ggo" nil "$BKk(B") ("qgo" nil "$BM6(B") ("wgo" nil "$B:^(B") - ("ego" nil "$BJ[(B") ("rgo" nil "$B;u(B") ("tgo" nil "$B>M(B") - ("zgp" nil "$B>[(B") ("xgp" nil "$BG+(B") ("cgp" nil "$BEM(B") - ("vgp" nil "$BG^(B") ("bgp" nil "$B1S(B") ("agp" nil "$BE:(B") - ("sgp" nil "$B5Q(B") ("dgp" nil "$BH((B") ("fgp" nil "$B?L(B") - ("ggp" nil "$BEt(B") ("qgp" nil "$B>"(B") ("wgp" nil "$BJ%(B") - ("egp" nil "$B=!(B") ("rgp" nil "$B54(B") ("tgp" nil "$B47(B") - ("nhz" nil "$B75(B") ("mhz" nil "$BMe(B") (",hz" nil "$B3L(B") - ("hhz" nil "$BB[(B") ("jhz" nil "$BB:(B") ("khz" nil "$BNm(B") - ("yhz" nil "$B?W(B") ("uhz" nil "$B@7(B") ("ihz" nil "$BM^(B") - (".hz" nil "$BA((B") ("/hz" nil "$BBi(B") ("lhz" nil "$BIk(B") - (";hz" nil "$BA2(B") ("ohz" nil "$BD$(B") ("phz" nil "$B2}(B") - ("nhx" nil "$B4a(B") ("mhx" nil "$BH2(B") (",hx" nil "$B7v(B") - ("hhx" nil "$B3a(B") ("jhx" nil "$B;j(B") ("khx" nil "$BCh(B") - ("yhx" nil "$B0N(B") ("uhx" nil "$BBs(B") ("ihx" nil "$BDb(B") - (".hx" nil "$B?D(B") ("/hx" nil "$BD8(B") ("lhx" nil "$BNH(B") - (";hx" nil "$B?](B") ("ohx" nil "$B36(B") ("phx" nil "$BJ>(B") - ("nhc" nil "$B9J(B") ("mhc" nil "$BN!(B") (",hc" nil "$B2u(B") - ("hhc" nil "$B;i(B") ("jhc" nil "$B57(B") ("khc" nil "$B5J(B") - ("yhc" nil "$B3@(B") ("uhc" nil "$BGS(B") ("ihc" nil "$BF((B") - (".hc" nil "$B4h(B") ("/hc" nil "$B3n(B") ("lhc" nil "$Bf(B") ("ohb" nil "$BAN(B") ("phb" nil "$B4y(B") - ("nha" nil "$B6v(B") ("mha" nil "$B?O(B") (",ha" nil "$BI^(B") - ("hha" nil "$B7s(B") ("jha" nil "$B0x(B") ("kha" nil "$B6Z(B") - ("yha" nil "$B=_(B") ("uha" nil "$B0$(B") ("iha" nil "$B:~(B") - (".ha" nil "$BMy(B") ("/ha" nil "$B0?(B") ("lha" nil "$BOQ(B") - (";ha" nil "$BMB(B") ("oha" nil "$BK@(B") ("pha" nil "$B?((B") - ("nhs" nil "$BAK(B") ("mhs" nil "$B8b(B") (",hs" nil "$B0O(B") - ("hhs" nil "$BHS(B") ("jhs" nil "$B>](B") ("khs" nil "$B7O(B") - ("yhs" nil "$BN8(B") ("uhs" nil "$BMp(B") ("ihs" nil "$BK<(B") - (".hs" nil "$B9r(B") ("/hs" nil "$BKE(B") ("lhs" nil "$B=}(B") - (";hs" nil "$BLx(B") ("ohs" nil "$BEI(B") ("phs" nil "$BA<(B") - ("nhd" nil "$B1K(B") ("mhd" nil "$BJq(B") (",hd" nil "$BC<(B") - ("hhd" nil "$B@U(B") ("jhd" nil "$B9/(B") ("khd" nil "$B?K(B") - ("yhd" nil "$B5*(B") ("uhd" nil "$B2l(B") ("ihd" nil "$BFM(B") - (".hd" nil "$BHn(B") ("/hd" nil "$B8J(B") ("lhd" nil "$BDy(B") - (";hd" nil "$B:D(B") ("ohd" nil "$B8_(B") ("phd" nil "$BCx(B") - ("nhf" nil "$B@R(B") ("mhf" nil "$BB)(B") (",hf" nil "$B5((B") - ("hhf" nil "$B0M(B") ("jhf" nil "$BKB(B") ("khf" nil "$BEL(B") - ("yhf" nil "$BNX(B") ("uhf" nil "$B=c(B") ("ihf" nil "$BE|(B") - (".hf" nil "$B:X(B") ("/hf" nil "$BL&(B") ("lhf" nil "$B49(B") - (";hf" nil "$B5%(B") ("ohf" nil "$BN5(B") ("phf" nil "$B8((B") - ("nhg" nil "$BKP(B") ("mhg" nil "$BF'(B") (",hg" nil "$B2.(B") - ("hhg" nil "$BEp(B") ("jhg" nil "$B<1(B") ("khg" nil "$B4n(B") - ("yhg" nil "$BO7(B") ("uhg" nil "$BF`(B") ("ihg" nil "$B43(B") - (".hg" nil "$BDD(B") ("/hg" nil "$B9*(B") ("lhg" nil "$BHH(B") - (";hg" nil "$B1v(B") ("ohg" nil "$BL4(B") ("phg" nil "$BJ#(B") - ("nhq" nil "$B:5(B") ("mhq" nil "$B>8(B") (",hq" nil "$BO$(B") - ("hhq" nil "$B?2(B") ("jhq" nil "$B07(B") ("khq" nil "$B9k(B") - ("yhq" nil "$BH!(B") ("uhq" nil "$B9'(B") ("ihq" nil "$B?X(B") - (".hq" nil "$BCZ(B") ("/hq" nil "$B3l(B") ("lhq" nil "$B4c(B") - (";hq" nil "$BMR(B") ("ohq" nil "$B4K(B") ("phq" nil "$BBE(B") - ("nhw" nil "$BMJ(B") ("mhw" nil "$B(B") - (".hw" nil "$BN:(B") ("/hw" nil "$BDi(B") ("lhw" nil "$B:R(B") - (";hw" nil "$BAr(B") ("ohw" nil "$BIu(B") ("phw" nil "$BB%(B") - ("nhe" nil "$B;#(B") ("mhe" nil "$B>;(B") (",he" nil "$BDa(B") - ("hhe" nil "$B?\(B") ("jhe" nil "$BI[(B") ("khe" nil "$BIq(B") - ("yhe" nil "$B90(B") ("uhe" nil "$B1d(B") ("ihe" nil "$BI'(B") - (".he" nil "$BDA(B") ("/he" nil "$B@{(B") ("lhe" nil "$BGK(B") - (";he" nil "$BCi(B") ("ohe" nil "$B7(B") ("jht" nil "$B7l(B") ("kht" nil "$B1s(B") - ("yht" nil "$BK`(B") ("uht" nil "$B5l(B") ("iht" nil "$B3K(B") - (".ht" nil "$B>x(B") ("/ht" nil "$BFF(B") ("lht" nil "$BF&(B") - (";ht" nil "$BAC(B") ("oht" nil "$BN;(B") ("pht" nil "$BM5(B") - ("zvn" nil "$BAL(B") ("xvn" nil "$BJw(B") ("cvn" nil "$B:g(B") - ("vvn" nil "$BIo(B") ("bvn" nil "$BM](B") ("avn" nil "$BI?(B") - ("svn" nil "$BO3(B") ("dvn" nil "$B@](B") ("fvn" nil "$BHQ(B") - ("gvn" nil "$B23(B") ("qvn" nil "$BO>(B") ("wvn" nil "$BJK(B") - ("evn" nil "$BA-(B") ("rvn" nil "$B8Q(B") ("tvn" nil "$BD1(B") - ("zbn" nil "$B1a(B") ("xbn" nil "$B>V(B") ("cbn" nil "$B1^(B") - ("vbn" nil "$B:S(B") ("bbn" nil "$BG?(B") ("abn" nil "$B:t(B") - ("sbn" nil "$BFz(B") ("dbn" nil "$B0X(B") ("fbn" nil "$B<\(B") - ("gbn" nil "$BIg(B") ("qbn" nil "$B<^(B") ("wbn" nil "$BC!(B") - ("ebn" nil "$BKK(B") ("rbn" nil "$BD*(B") ("tbn" nil "$BL=(B") - ("zvm" nil "$BB{(B") ("xvm" nil "$B4g(B") ("cvm" nil "$BLQ(B") - ("vvm" nil "$BGN(B") ("bvm" nil "$B:k(B") ("avm" nil "$B2g(B") - ("svm" nil "$B4Y(B") ("dvm" nil "$B08(B") ("fvm" nil "$BE3(B") - ("gvm" nil "$BN_(B") ("qvm" nil "$B1m(B") ("wvm" nil "$B:q(B") - ("evm" nil "$BJn(B") ("rvm" nil "$BMt(B") ("tvm" nil "$B6,(B") - ("zbm" nil "$BEK(B") ("xbm" nil "$BK)(B") ("cbm" nil "$BNK(B") - ("vbm" nil "$BA?(B") ("bbm" nil "$B2@(B") ("abm" nil "$BLm(B") - ("sbm" nil "$B6U(B") ("dbm" nil "$B56(B") ("fbm" nil "$BNw(B") - ("gbm" nil "$B9B(B") ("qbm" nil "$BI5(B") ("wbm" nil "$BFx(B") - ("ebm" nil "$BJ:(B") ("rbm" nil "$B6)(B") ("tbm" nil "$B@y(B") - ("zv," nil "$BLe(B") ("xv," nil "$BA.(B") ("cv," nil "$B<[(B") - ("vv," nil "$B3!(B") ("bv," nil "$BL*(B") ("av," nil "$BFu(B") - ("sv," nil "$B2M(B") ("dv," nil "$B8[(B") ("fv," nil "$B5g(B") - ("gv," nil "$B>=(B") ("qv," nil "$B5d(B") ("wv," nil "$BG((B") - ("ev," nil "$B:2(B") ("rv," nil "$B>w(B") ("tv," nil "$B0y(B") - ("zb," nil "$B=6(B") ("xb," nil "$BA9(B") ("cb," nil "$BA:(B") - ("vb," nil "$BO4(B") ("bb," nil "$BL`(B") ("ab," nil "$B>?(B") - ("sb," nil "$BHR(B") ("db," nil "$B>#(B") ("fb," nil "$BEa(B") - ("gb," nil "$B@X(B") ("qb," nil "$B0P(B") ("wb," nil "$B0|(B") - ("eb," nil "$B2v(B") ("rb," nil "$B@e(B") ("tb," nil "$BGp(B") - ("zvh" nil "$B:-(B") ("xvh" nil "$B1\(B") ("cvh" nil "$B3x(B") - ("vvh" nil "$B6E(B") ("bvh" nil "$B3%(B") ("avh" nil "$B3j(B") - ("svh" nil "$B>\(B") ("dvh" nil "$BCs(B") ("fvh" nil "$BE&(B") - ("gvh" nil "$BG;(B") ("qvh" nil "$BA6(B") ("wvh" nil "$B;w(B") - ("evh" nil "$BBY(B") ("rvh" nil "$BHB(B") ("tvh" nil "$BLB(B") - ("zbh" nil "$B6z(B") ("xbh" nil "$B4(B") ("dbj" nil "$B4x(B") ("fbj" nil "$B79(B") - ("gbj" nil "$BF<(B") ("qbj" nil "$B0r(B") ("wbj" nil "$B>1(B") - ("ebj" nil "$BHU(B") ("rbj" nil "$B@x(B") ("tbj" nil "$BK3(B") - ("zvk" nil "$B<.(B") ("xvk" nil "$B7B(B") ("cvk" nil "$B>N(B") - ("vvk" nil "$BA~(B") ("bvk" nil "$B6(B") ("avy" nil "$B0S(B") - ("svy" nil "$BFp(B") ("dvy" nil "$BC$(B") ("fvy" nil "$BAD(B") - ("gvy" nil "$BD&(B") ("qvy" nil "$B;7(B") ("wvy" nil "$B:"(B") - ("evy" nil "$BJS(B") ("rvy" nil "$B1n(B") ("tvy" nil "$B@O(B") - ("zby" nil "$B8?(B") ("xby" nil "$B3A(B") ("cby" nil "$BF_(B") - ("vby" nil "$B>_(B") ("bby" nil "$B(B") ("dvu" nil "$BN4(B") ("fvu" nil "$B1h(B") - ("gvu" nil "$BKb(B") ("qvu" nil "$B?V(B") ("wvu" nil "$BI:(B") - ("evu" nil "$BC\(B") ("rvu" nil "$BKW(B") ("tvu" nil "$BNv(B") - ("zbu" nil "$BNF(B") ("xbu" nil "$BEc(B") ("cbu" nil "$BF=(B") - ("vbu" nil "$B9d(B") ("bbu" nil "$BHm(B") ("abu" nil "$BG!(B") - ("sbu" nil "$B9L(B") ("dbu" nil "$BNP(B") ("fbu" nil "$BOS(B") - ("gbu" nil "$BOF(B") ("qbu" nil "$B0*(B") ("wbu" nil "$B4w(B") - ("ebu" nil "$BBZ(B") ("rbu" nil "$BNu(B") ("tbu" nil "$BIP(B") - ("zvi" nil "$BKj(B") ("xvi" nil "$B8d(B") ("cvi" nil "$BGl(B") - ("vvi" nil "$BJW(B") ("bvi" nil "$B5}(B") ("avi" nil "$BB5(B") - ("svi" nil "$B>Q(B") ("dvi" nil "$BMj(B") ("fvi" nil "$BJv(B") - ("gvi" nil "$B=K(B") ("qvi" nil "$B7y(B") ("wvi" nil "$BHI(B") - ("evi" nil "$BKO(B") ("rvi" nil "$BHd(B") ("tvi" nil "$BGu(B") - ("zbi" nil "$BKj(B") ("xbi" nil "$B1M(B") ("cbi" nil "$BE=(B") - ("vbi" nil "$BGE(B") ("bbi" nil "$B5#(B") ("abi" nil "$BB5(B") - ("sbi" nil "$B9Z(B") ("dbi" nil "$BGw(B") ("fbi" nil "$BL<(B") - ("gbi" nil "$B3-(B") ("qbi" nil "$BEi(B") ("wbi" nil "$BE)(B") - ("ebi" nil "$B6](B") ("rbi" nil "$BIz(B") ("tbi" nil "$BH&(B") - ("zv." nil "$BIs(B") ("xv." nil "$BB\(B") ("cv." nil "$B>E(B") - ("vv." nil "$B6*(B") ("bv." nil "$BDJ(B") ("av." nil "$BMl(B") - ("sv." nil "$BFk(B") ("dv." nil "$B9!(B") ("fv." nil "$B9?(B") - ("gv." nil "$B:K(B") ("qv." nil "$B9m(B") ("wv." nil "$B:*(B") - ("ev." nil "$B0T(B") ("rv." nil "$B:/(B") ("tv." nil "$BNJ(B") - ("zb." nil "$B@C(B") ("xb." nil "$B4#(B") ("cb." nil "$BMd(B") - ("vb." nil "$BDP(B") ("bb." nil "$BC?(B") ("ab." nil "$B1C(B") - ("sb." nil "$BBC(B") ("db." nil "$B>L(B") ("fb." nil "$B;s(B") - ("gb." nil "$B?[(B") ("qb." nil "$BC>(B") ("wb." nil "$B10(B") - ("eb." nil "$B7=(B") ("rb." nil "$BN<(B") ("tb." nil "$BGW(B") - ("zv/" nil "$B8S(B") ("xv/" nil "$B?Q(B") ("cv/" nil "$B2k(B") - ("vv/" nil "$BA=(B") ("bv/" nil "$BDu(B") ("av/" nil "$B5@(B") - ("sv/" nil "$BOK(B") ("dv/" nil "$B6o(B") ("fv/" nil "$B22(B") - ("gv/" nil "$BL~(B") ("qv/" nil "$B7q(B") ("wv/" nil "$BFg(B") - ("ev/" nil "$B0H(B") ("rv/" nil "$BFd(B") ("tv/" nil "$B4\(B") - ("zb/" nil "$BJ\(B") ("xb/" nil "$B6}(B") ("cb/" nil "$BGb(B") - ("vb/" nil "$B4H(B") ("bb/" nil "$B6B(B") ("ab/" nil "$B3_(B") - ("sb/" nil "$B1b(B") ("db/" nil "$B1,(B") ("fb/" nil "$BLw(B") - ("gb/" nil "$B2`(B") ("qb/" nil "$BO.(B") ("wb/" nil "$BFh(B") - ("eb/" nil "$BAW(B") ("rb/" nil "$BD|(B") ("tb/" nil "$B4f(B") - ("zvl" nil "$B3.(B") ("xvl" nil "$B4-(B") ("cvl" nil "$BMO(B") - ("vvl" nil "$B00(B") ("bvl" nil "$BNl(B") ("avl" nil "$B=&(B") - ("svl" nil "$BA&(B") ("dvl" nil "$B7;(B") ("fvl" nil "$B1"(B") - ("gvl" nil "$BGU(B") ("qvl" nil "$B0I(B") ("wvl" nil "$B=A(B") - ("evl" nil "$B2|(B") ("rvl" nil "$B>,(B") ("tvl" nil "$BMk(B") - ("zbl" nil "$BGJ(B") ("xbl" nil "$BKr(B") ("cbl" nil "$B?g(B") - ("vbl" nil "$B?+(B") ("bbl" nil "$BK{(B") ("abl" nil "$B?j(B") - ("sbl" nil "$B>t(B") ("dbl" nil "$B9o(B") ("fbl" nil "$B8m(B") - ("gbl" nil "$B6<(B") ("qbl" nil "$B0}(B") ("wbl" nil "$B8U(B") - ("ebl" nil "$BH1(B") ("rbl" nil "$B6n(B") ("tbl" nil "$B@+(B") - ("zv;" nil "$B4C(B") ("xv;" nil "$BJp(B") ("cv;" nil "$Bj(B") ("dbo" nil "$BK'(B") ("fbo" nil "$BCC(B") - ("gbo" nil "$BBU(B") ("qbo" nil "$BKS(B") ("wbo" nil "$B3f(B") - ("ebo" nil "$BOE(B") ("rbo" nil "$B7_(B") ("tbo" nil "$B2I(B") - ("zvp" nil "$BLX(B") ("xvp" nil "$BH$(B") ("cvp" nil "$Bm(B") ("tvp" nil "$B1V(B") - ("zbp" nil "$BDG(B") ("xbp" nil "$BAM(B") ("cbp" nil "$B@r(B") - ("vbp" nil "$BIZ(B") ("bbp" nil "$B8C(B") ("abp" nil "$B=m(B") - ("sbp" nil "$B92(B") ("dbp" nil "$BA>(B") ("fbp" nil "$BF6(B") - ("gbp" nil "$B2'(B") ("qbp" nil "$B3r(B") ("wbp" nil "$B1y(B") - ("ebp" nil "$BDR(B") ("rbp" nil "$B@((B") ("tbp" nil "$B4b(B") - ("ztn" nil "$B3u(B") ("xtn" nil "$B5B(B") ("ctn" nil "$BI3(B") - ("vtn" nil "$BD?(B") ("btn" nil "$BI`(B") ("atn" nil "$B?0(B") - ("stn" nil "$B>n(B") ("dtn" nil "$BLV(B") ("ftn" nil "$B8W(B") - ("gtn" nil "$B@K(B") ("qtn" nil "$BK[(B") ("wtn" nil "$BCT(B") - ("etn" nil "$B0R(B") ("rtn" nil "$BBQ(B") ("ttn" nil "$B;x(B") - ("ztm" nil "$B6f(B") ("xtm" nil "$BA"(B") ("ctm" nil "$B;$(B") - ("vtm" nil "$B64(B") ("btm" nil "$BDX(B") ("atm" nil "$BGy(B") - ("stm" nil "$B:?(B") ("dtm" nil "$BH*(B") ("ftm" nil "$BO2(B") - ("gtm" nil "$BL[(B") ("qtm" nil "$B?1(B") ("wtm" nil "$BB7(B") - ("etm" nil "$B45(B") ("rtm" nil "$B6g(B") ("ttm" nil "$BE+(B") - ("zt," nil "$B@m(B") ("xt," nil "$BD^(B") ("ct," nil "$BMo(B") - ("vt," nil "$B97(B") ("bt," nil "$BGV(B") ("at," nil "$BA5(B") - ("st," nil "$B9Y(B") ("dt," nil "$BHi(B") ("ft," nil "$BLD(B") - ("gt," nil "$BHy(B") ("qt," nil "$BC@(B") ("wt," nil "$BIO(B") - ("et," nil "$BN,(B") ("rt," nil "$B9n(B") ("tt," nil "$B6`(B") - ("zth" nil "$BD<(B") ("xth" nil "$B9s(B") ("cth" nil "$BJD(B") - ("vth" nil "$BR(B") - ("eth" nil "$BAv(B") ("rth" nil "$B9a(B") ("tth" nil "$BAX(B") - ("ztj" nil "$BAz(B") ("xtj" nil "$B1#(B") ("ctj" nil "$B4z(B") - ("vtj" nil "$BGq(B") ("btj" nil "$B;L(B") ("atj" nil "$B@^(B") - ("stj" nil "$B;o(B") ("dtj" nil "$B4_(B") ("ftj" nil "$B>y(B") - ("gtj" nil "$B5{(B") ("qtj" nil "$B5_(B") ("wtj" nil "$BNW(B") - ("etj" nil "$B:J(B") ("rtj" nil "$B=h(B") ("ttj" nil "$BN1(B") - ("ztk" nil "$BAe(B") ("xtk" nil "$B8-(B") ("ctk" nil "$BGQ(B") - ("vtk" nil "$B4E(B") ("btk" nil "$BH(B") - ("stl" nil "$BLC(B") ("dtl" nil "$B5y(B") ("ftl" nil "$B:y(B") - ("gtl" nil "$B@k(B") ("qtl" nil "$B5M(B") ("wtl" nil "$BAP(B") - ("etl" nil "$BB0(B") ("rtl" nil "$B93(B") ("ttl" nil "$BH<(B") - ("zt;" nil "$B3s(B") ("xt;" nil "$B@B(B") ("ct;" nil "$BJ$(B") - ("vt;" nil "$B?S(B") ("bt;" nil "$BC3(B") ("at;" nil "$B;](B") - ("st;" nil "$BE`(B") ("dt;" nil "$BC&(B") ("ft;" nil "$B>'(B") - ("gt;" nil "$BFG(B") ("qt;" nil "$B@#(B") ("wt;" nil "$B8.(B") - ("et;" nil "$BG>(B") ("rt;" nil "$B@W(B") ("tt;" nil "$B68(B") - ("zto" nil "$B@&(B") ("xto" nil "$B7p(B") ("cto" nil "$B7f(B") - ("vto" nil "$BO#(B") ("bto" nil "$B@M(B") ("ato" nil "$B2x(B") - ("sto" nil "$B>G(B") ("dto" nil "$BLJ(B") ("fto" nil "$BB'(B") - ("gto" nil "$BMY(B") ("qto" nil "$B2G(B") ("wto" nil "$BB;(B") - ("eto" nil "$BNY(B") ("rto" nil "$B7D(B") ("tto" nil "$B4{(B") - ("ztp" nil "$BG|(B") ("xtp" nil "$B7&(B") ("ctp" nil "$B?b(B") - ("vtp" nil "$B=G(B") ("btp" nil "$BFr(B") ("atp" nil "$B7\(B") - ("stp" nil "$BIh(B") ("dtp" nil "$BJY(B") ("ftp" nil "$B=<(B") - ("gtp" nil "$B=o(B") ("qtp" nil "$BC2(B") ("wtp" nil "$Bv(B") ("jyc" nil "$B9`(B") ("kyc" nil "$B>K(B") - ("yyc" nil "$BBL(B") ("uyc" nil "$B1l(B") ("iyc" nil "$B>I(B") - (".yc" nil "$B4Z(B") ("/yc" nil "$B?*(B") ("lyc" nil "$B=k(B") - (";yc" nil "$B@F(B") ("oyc" nil "$BI!(B") ("pyc" nil "$BC"(B") - ("nyv" nil "$B1H(B") ("myv" nil "$B6J(B") (",yv" nil "$B8`(B") - ("hyv" nil "$BEm(B") ("jyv" nil "$B8c(B") ("kyv" nil "$B?C(B") - ("yyv" nil "$BDC(B") ("uyv" nil "$B?5(B") ("iyv" nil "$B5r(B") - (".yv" nil "$B7[(B") ("/yv" nil "$BH+(B") ("lyv" nil "$BE%(B") - (";yv" nil "$B:O(B") ("oyv" nil "$BLG(B") ("pyv" nil "$B<@(B") - ("nyb" nil "$B3*(B") ("myb" nil "$BDr(B") (",yb" nil "$B9N(B") - ("hyb" nil "$B0=(B") ("jyb" nil "$B4l(B") ("kyb" nil "$BHh(B") - ("yyb" nil "$BIf(B") ("uyb" nil "$B@N(B") ("iyb" nil "$B7*(B") - (".yb" nil "$B?$(B") ("/yb" nil "$BC,(B") ("lyb" nil "$B1Y(B") - (";yb" nil "$BJP(B") ("oyb" nil "$B;l(B") ("pyb" nil "$B2{(B") - ("nya" nil "$BCv(B") ("mya" nil "$BO6(B") (",ya" nil "$B?R(B") - ("hya" nil "$B7G(B") ("jya" nil "$B3Y(B") ("kya" nil "$BB(B") - ("nyg" nil "$BB1(B") ("myg" nil "$BD:(B") (",yg" nil "$B5[(B") - ("hyg" nil "$BMm(B") ("jyg" nil "$BJ)(B") ("kyg" nil "$B;Q(B") - ("yyg" nil "$B2Y(B") ("uyg" nil "$BB.(B") ("iyg" nil "$BE!(B") - (".yg" nil "$BC`(B") ("/yg" nil "$B8O(B") ("lyg" nil "$BC0(B") - (";yg" nil "$BHr(B") ("oyg" nil "$B;I(B") ("pyg" nil "$BB+(B") - ("nyq" nil "$B11(B") ("myq" nil "$BD7(B") (",yq" nil "$BJi(B") - ("hyq" nil "$BI$(B") ("jyq" nil "$B=\(B") ("kyq" nil "$B3c(B") - ("yyq" nil "$B8<(B") ("uyq" nil "$B4U(B") ("iyq" nil "$BN=(B") - (".yq" nil "$BK*(B") ("/yq" nil "$B=l(B") ("lyq" nil "$B@p(B") - (";yq" nil "$B?,(B") ("oyq" nil "$B<*(B") ("pyq" nil "$BK5(B") - ("nyw" nil "$B1L(B") ("myw" nil "$B94(B") (",yw" nil "$B25(B") - ("hyw" nil "$B9D(B") ("jyw" nil "$B>~(B") ("kyw" nil "$BGn(B") - ("yyw" nil "$BI9(B") ("uyw" nil "$BLP(B") ("iyw" nil "$BJ4(B") - (".yw" nil "$B2y(B") ("/yw" nil "$B98(B") ("lyw" nil "$BFO(B") - (";yw" nil "$BIR(B") ("oyw" nil "$BCy(B") ("pyw" nil "$B2f(B") - ("nye" nil "$BM1(B") ("mye" nil "$B8/(B") (",ye" nil "$BL8(B") - ("hye" nil "$B8P(B") ("jye" nil "$B:N(B") ("kye" nil "$B6-(B") - ("yye" nil "$B?"(B") ("uye" nil "$B5n(B") ("iye" nil "$B0W(B") - (".ye" nil "$B:0(B") ("/ye" nil "$BD~(B") ("lye" nil "$BJ;(B") - (";ye" nil "$B27(B") ("oye" nil "$B>O(B") ("pye" nil "$BD6(B") - ("nyr" nil "$B8](B") ("myr" nil "$BMs(B") (",yr" nil "$B8*(B") - ("hyr" nil "$B@g(B") ("jyr" nil "$BN%(B") ("kyr" nil "$B wrote: -;; > $B;d$O!V$F$#!<$f!<$F$#!<$3!<$I!W$HFI$s$G$$$^$9$,!"$b$&>/$78@$$0W$$J}$,(B -;; > $B$h$$$H;W$$$^$9!#(BTUT$B$O$3$l$r3+H/$7$?K-665;=Q2J3XBg3X$NN,>N$G$9!#(B -;; > $BJF9q?M$K8+$;$?$i!"!V$?$C$H!W$HFI$_$^$7$?!#$D$?$s$+!<$a$s2&$N$3$H$r1Q8l(B -;; > $B$G$O(B king TUT $B$H8F$S!"H/2;$O!V$?$C$H!W$J$N$@$=$&$G$9!#!V$?$C$H$3!<$I!W(B -;; > $B$NJ}$,$h$$$+$b$7$l$^$;$s!#8f0U8+$r$*J9$+$;2<$5$$!#(B +;; > 私は「てぃーゆーてぃーこーど」と読んでいますが、もう少し言い易い方が +;; > よいと思います。TUTはこれを開発した豊橋技術科学大学の略称です。 +;; > 米国人に見せたら、「たっと」と読みました。つたんかーめん王のことを英語 +;; > では king TUT と呼び、発音は「たっと」なのだそうです。「たっとこーど」 +;; > の方がよいかもしれません。御意見をお聞かせ下さい。 ;; To get more information, access following URL; ;; http://www.crew.sfc.keio.ac.jp/~chk/ @@ -81,7 +81,7 @@ ;; `skk-tutcode-'. ;;;###autoload (defcustom skk-tutcode-use-touch16+ nil - "*Non-nil $B$G$"$l$P!"(BTouch16+ $B3HD%%3!<%I$rMxMQ$9$k!#(B" + "*Non-nil であれば、Touch16+ 拡張コードを利用する。" :type 'boolean :group 'skk-tutcode) @@ -93,16 +93,16 @@ ;;;###autoload (defun skk-tutcode-display-code (&optional arg) ;; adapted from skk-kcode.el - "$B%]%$%s%H$K$"$kJ8;z$N(B EUC $B%3!<%I!"(BJIS $B%3!<%I!"(BTUT $B%3!<%I$rI=<($9$k!#(B" + "ポイントにある文字の EUC コード、JIS コード、TUT コードを表示する。" (interactive "P") (if (eobp) - (skk-error "$B%+!<%=%k$,%P%C%U%!$N=*C<$K$"$j$^$9(B" + (skk-error "カーソルがバッファの終端にあります" "Cursor is at the end of the buffer") (skk-tutcode-display-code-1 (buffer-substring-no-properties (point) (skk-save-point (forward-char 1) (point)))) - ;; $B%(%3!<$7$?J8;zNs$r%+%l%s%H%P%C%U%!$KA^F~$7$J$$$h$&$K!#(B + ;; エコーした文字列をカレントバッファに挿入しないように。 t)) (defun skk-tutcode-display-code-1 (str) @@ -125,14 +125,14 @@ (char2-e (+ char2-j 128)) (char3 (skk-tutcode-get-code str))) (message - "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d), KUTEN: (%2d, %2d), TUT: `%s'" + "『%s』 EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d), KUTEN: (%2d, %2d), TUT: `%s'" str char1-e char2-e char1-e char2-e char1-j char2-j char1-j char2-j char1-k char2-k char3))) ((memq charset '(ascii latin-jisx0201)) (message "\"%s\" %2x (%3d)" str (skk-char-octet char 0) (skk-char-octet char 0))) (t - (skk-error "$BH=JL$G$-$J$$J8;z$G$9(B" + (skk-error "判別できない文字です" "Cannot understand this character"))))) ;; some new stuff