SKK日本語入力FEP
SKKFEP - Simple kana to kanji conversion front end processor
- S K 拳 ─────
- それはシフト空手道と
- ローマ字変換をくみあわせた
- まったくあたらしい日本語入力・・・
ダウンロード
概要
SKK日本語入力FEPはWindows用の日本語入力ソフトです。
インストールするとWindowsのすべてのアプリケーションに作用し、SKK方式による日本語のかな漢字変換入力が可能になります。
- ご注意
- 本ソフトウェアは試作版です。
- 将来予告なく仕様が変更される可能性があります。
日本語入力方式SKKについて
SKKは佐藤雅彦教授により開発されたEmacs用の日本語入力プログラムです。日本語の文法解析を一切行なわないという斬新な設計思想で作られており、シフトキーによる補助操作で語句の区切りを人間側が明示することで、口語や方言、未知の造語といった従来の日本語入力方式が特に苦手とする文に対しても送りがなの誤認識が原理的に発生しないという優れた特性を持っています。
なお、文法解析がない故に同音異義語が苦手であるといった問題はありますが、それを補うために接頭辞・接尾辞の変換操作やシンプルな学習機能が塔載されており、変換と辞書への追加削除による出現順序の調整といった一連の操作を、日本語入力の操作途中であることを意識せずシームレスに行なえる独特の操作形態を持ちます。
他にも、他の日本語入力方式では必須だった「入力の確定」操作がほぼゼロで済むという特長も持ちます。日本語で最も出現率の多いひらがな・カタカナが即座に入力でき、漢字変換の操作中でも構わず次の文字を入力できてしまう暗黙の確定操作などの工夫によって打鍵数を確実に減らすことができます。
現代の日本語入力システムの多くは、複雑な辞書による高度な言語解析を駆使することで、説明不要で誰もが初見で使える『親切設計』が主流となっていますが、SKKはこうした流れとは明らかに一線を画しています。特殊なシフトキー操作は、あたかも乗り物を操縦するかのように熟練を要する、一見『不親切設計』とも取れる作りですが、それ故に文法解析ミスによる無駄な訂正操作や思考の中断のない、流れるような日本語入力が可能となっています。最初は戸惑うこともありますが、『シフトキーを押す』という操作は単純明解であり、それほど時間をかけずに「思った通りに」日本語を入力できている、という実感が得られることでしょう。
もしSKKに興味が湧いたら、ぜひSKK日本語入力FEPや原作のSKKを体験してみてください。
さらなる知的好奇心を満たすべく、めくるめくSKKの世界へあなたを誘う魅惑の情報をいくつかご紹介しておきます。
*SKKとは (エスケイケイとは) [単語記事] - ニコニコ大百科♺
- SKKへの愛に満ちたすばらしい紹介記事です。ふーん、SKKに興味があるんだ?とりま、これ読み?大丈夫だ、問題ない。ちょっとだけ!先っちょだけ!恐くない痛くない考えるな感じるんだSKKは初めてか?力抜けよ
*SKK Openlab♺
- 開発終了した本家SKKに代わって開発を行なっているSKK Openlabのページです。SKK辞書ダウンロードやメンテナンス情報、SKKの生い立ちに関する資料など
*SKK - Wikipedia♺
- ウィキペディア創設者ジミー・ウェールズからの緊急のお願いです。で有名なWikipediaよりSKKの記事
他にも、
Kanzen♺→
SKK♺→
Sekka♺という非文法解析型の日本語入力の進化の歴史は試験に出ます。
あとはGoogle先生、お願いします!♺
SKK日本語入力FEPについて
前述の通り、SKK日本語入力FEP(以下SKKFEP)はSKK方式による日本語入力をWindows上で実現するソフトウェアです。
SKKFEPはWindowsのテキストサービスフレームワーク(TSF)によるキーボード系テキスト入力プロセッサ(TIP)として実装されています。
SKKFEPは、SKK10系の動作を参考に『SKKの操作感覚』をWindows環境に移植することを目指しており、新規に開発した小規模なプログラムで軽快な動作を実現しています。
なお、既に同種のソフトウェアとして
skkime♺や
CorvusSKK♺などの完成度の高い作品が存在します。SKKFEPは、個々の機能や完成度においてはこうした著名な作品には遠く及ばないものの、Windowsアプリケーション自体の利便性を向上させるための独自の機能を備えています。正攻法では到底敵わない相手なので
色仕掛変化球で勝負(ry
- UNIX用漢字入力フロントエンド skkfep♺という同名のソフトウェアが存在することが判明したため、名称を「日本語入力システムSKKFEP」から「SKK日本語入力FEP」へと改名することにしました。どちらもSKKによる日本語入力という志を同じくするソフト同士ではありますが、中身は別物ですのでご注意ください。
特長
SKKの持つ小型・軽量といったメリットを引き出すために再設計を行ない、徹底的にプログラムの軽量化を図りました。実行ファイルのサイズで見ると、フロントエンド部が34.5KB、バックエンド部が14KBとなっており、日本語処理に詳しい方なら一目でその
異常さ特殊さを見て取れるかと思います。SKKならば
初期のファミコンゲームほどの小さなサイズで、老舗のジャストシステムやGoogle・マイクロソフトなどの最先端の製品に負けずとも劣らぬ、実用的な日本語入力処理が実現できることをここに証明します。
ドライバ不要のSandS入力機能を搭載しています。SandSとは、スペースキーを擬似的にシフトキーとして代用する入力方式です。従来のキーボードドライバを用いた方式では適用が困難だった、リモートデスクトップ環境下においても操作可能となっています。
豊富なシフトキーの代替操作を用意しています。標準では
変換キーがSandSとして動作し、また設定によって
変換無変換などの特殊キーに自由にSandSや順次打鍵操作(skk-sticky-key相当)を割り当てることが可能です。基本的に外部アプリの支援は一切必要とせず、すべて自力で動作しますが、他の便利なキー操作支援アプリとの連携も可能となっています。
アプリケーション側で
IMEの状態を意識せずに使えるようになります。特殊なキー判定処理を持つアプリケーションに対しても、キー操作情報を極力そのまま渡すことで、常時IME有効で動作するよう工夫を行なっています。IMEの切り替え操作による思考の中断やストレスから解放されていろいろ捗ります。さあ心を無にして
CTRL+
J連打だ!S・K・K!S・K・K!
ローマ字変換ルールを
チャットや実況用途向きに改良することで、SKKのモード切り替えを減らし打鍵数を減らします。数字キーの後のカンマやピリオドをモード変換なしでそのまま入力することができ、口語で多用する「あ行小文字」の連続入力や、ネットスラングで多用される全角子音アルファベットを、変換に破綻のない範囲でひらがなモードのまま入力可能となっています。気軽に雑草を生やすこともでき、wktkなどのMicrosoft IMEによる入力を前提としたネットスラングをそのままの形で入力可能です。
また、SKKIME1.5改と同様、
z(または
x,
f,
j)キーとアルファベット以外の文字を組み合わせたEgg風の2ストローク記号入力ルールを標準で持っています。SKK標準の入力ルールの上位互換操作となっています。
ブラウザや表計算ソフト等の
日本語の予測入力欄との親和性が向上しています。SKKの特色でもある「▽」による変換の目印に関しては一切表示されませんが、それでも視認性を損わずに入力状況を確認できるよう工夫してあります。
辞書を含むインストーラとアンインストーラを完備しています。インストーラはインターネットからの辞書のダウンロード(あるいはローカルファイルのコピー)までを自動で行ない、入力言語の切り替え操作を行なうだけですぐに使えます。最新のCランタイムなしでも動作するので、OSインストール直後にそのままインストールして使うことができます。また、既存のIMEとの共存が可能で、いつでも自由に切り替えることができ、不要の際には痕跡を残さずアンインストールが可能です。
Windows 7/Vistaで動作します。一応Windows XPでも動作します(後述)。どちらの環境に対しても同一のプログラムで対応します。
宇宙ヤバイ
すごい機能不足を感じる。今までにない何か熱い機能不足を。駄目・・・なんだろう不足している致命的に、壊滅的に、いろいろと。中途半端でいいや、というか殆どのSKKの便利機能は使えないしそもそもLispエンジンなんてステキ機能はOut of眼中につきEmacsぽい挙動や変換動作は永遠に望めない。計画通り…!
入力バッファ内のカーソル移動による編集操作は一切できません。バックスペースで1文字づつ消去するか一気に全消去するかしかできません。SKK入力方式において、バッファ中間部分の編集操作などというものは思考の阻害以外に意味を持たず、自分には永遠に必要ないとの信念を貫き、誰が何と言おうと
最終版でもこの仕様のままロケットで突き抜ける予定です。
SKK原作とは一部異なるキー操作があります。特に
CTRL+
Jによるひらがな状態への遷移は原作と異なり、元の状態に関らずひらがな状態に戻るようになっています。日本語入力時の99%がひらがな状態であるSKK入力方式において、ニュートラルに戻すために画面を注視しないといけないという元の仕様こそが欠陥であるという信念を貫(以下略)
基本的なコンフィグ皆無だけどどっこい生きてる。設定画面?何そr
文字コード入力はできません。標準の文字コード表アプリを使って貼り付けて代用してください。
数値変換やlispコマンドによる変換はできません。外部SKKサーバとの接続もできません。対応めんど…頑張れ頑張れできるできる絶対できる頑張れもっとやれるってやれる気持ちの問題だよ頑張れ頑張れそこだそこで諦めるな絶対に頑張れ積極的にポジティブに(ry
導入
インストールと基本操作について解説します。
導入方法
書庫内にインストーラとアンインストーラが同梱されています。まずダウンロードしたら作業用フォルダに展開し、以下の操作を行なってください。インストール作業後は作業用フォルダごと削除してしまって問題ありません。
その前に…Emacsをお使いの方へ
SKKFEPのSandS機能はEmacs系と猛烈に相性が悪いです。ですが、回避方法もきちんと用意されていますのでご安心ください。
インストール後にコマンドラインから以下の設定を1回行なうことで、EmacsのみSandS機能が無効化され、今まで通りの操作感で使うことができるようになります。
コマンドプロンプト起動→下記のコマンド部分の文字をブラウザからコピー→コマンドプロンプトのタイトルバーで右クリックして編集→貼り付け、で設定完了となります。
rule emacs.exe m5 s0 # emacsでは本来のSKKを使い、SKKFEPは使わない
または
rule emacs.exe s0 # emacsでSKKFEPを使い、本来のSKKは使わない
インストール・アップデート方法
エクスプローラでsetup.jsをダブルクリックするとインストーラが起動します。あとは「インストール」ボタンを押すと管理者権限の取得が行なわれ、インストールが行なわれます。既にインストール済みの場合はソフトウェアが更新されます。
インストール時に辞書ファイルが存在しない場合(初回インストール時など)、インストーラと同じフォルダにあるskkdict.txtをSKK辞書ファイルとみなしてシステムフォルダにコピーします。この辞書ファイルをカレントディレクトリ上に見つけられなかった場合は、インターネットからL辞書をダウンロードしUnicodeに変換してskkdict.txtの名前でシステムフォルダにコピーします。
また、辞書プロセス(バックエンド側の辞書検索プログラム)がシステムフォルダに転送され、自動起動プログラムにに登録されます。
インストーラの「入力言語」のボタンを押すことで「テキストサービスと入力言語」のダイアログが表示されます。「既定の言語」設定で「日本語(日本) - SKKFEP」を選択するか、入力したいアプリケーションの言語バーを変更するとSKKをすべてのアプリケーションで使う準備が完了します。
インストールによって主要なファイルは全てシステムフォルダにコピーされます。これ以上設定変更やアンインストールを行なう必要がない場合は、書庫を展開した作業用フォルダは不要となります。今まさに読んでいるこの文書ファイルを含め、全て消してしまって構いません。俺の屍を超えて行け!
アンインストール方法
「アンインストール」を選択するとアンインストールが行なわれます。
また、辞書プロセス(バックエンド側プログラム)の自動起動が解除され、プロセス停止も行なわれます。
上記のアンインストールでは辞書ファイルは削除されません。削除が必要な場合は手動で消すか、後述のsetup u d eの辞書削除オプションを使ってください。
アンインストール直後はファイルやフォルダをシステムがロックしていて削除できない場合があります。完全にファイルを削除したい場合は、アンインストール後に再起動を行ない、もう一回アンインストール操作を行なってください。
辞書データ・レジストリなども含めて全てのファイルと設定を完全に削除するには、アンインストール操作を一度行なった後再起動し、管理者権限でコマンドプロンプトを開いてsetup u d e f gと入力してください。詳細については「?」ボタンを押すと表示される説明文を参照してください。
操作方法
SKK方式ではローマ字かな変換による入力が基本となっています。以下に基本操作を記します。
1.
CTRL+
Jを押すとひらがな入力状態になります。
l(小文字のL)を押すと英数の入力状態になります。
2. 入力したひらがなは、そのまま即座に入力されます。 (一般的なIMEと異なり、確定操作は不要)
3. ローマ字の一文字目をシフトキーを押しながら入力することで漢字入力の開始となります。
4. 送りがなのない単語を変換する場合は、単語を入力してスペースキーを押します。(例: Umiharakawase
SPACE → 海腹川背)
5. 送りがなのある単語を変換する場合は、送りがなのローマ字をシフトキーを押しながら入力します。(例: MimeuruwaShi → 見目麗し)
6. 辞書に単語が存在しない場合は即座に辞書への登録状態になります。登録した単語は学習すると同時にアプリケーションに入力されます。
7. 操作を間違えた時は
CTRL+
Gを押すと操作を中断できます。
SKKの基本はこれだけです。上記で使用した基本操作のキー一覧をまとめてみました。
| 操作 |
| CTRL+J | ★ひらがな入力状態へ |
| l (小文字のL) | ★半角英数入力状態へ |
| SHIFTを押しながらA〜Z | ★編集開始・送りがな開始 |
| SPACE | ★変換・次候補 |
| CTRL+G | ★中断 |
シフトキーを併用して単語の開始や送りがな位置を人間が直接指定できることこそがSKKの最大の特色です。
人間による変換タイミングの指示ができるおかげで、小型で単純な仕組みだけで作られたSKKが、大規模で複雑な文法解析処理の塊である最新の日本語入力ソフトウェアを相手に「文法解析ミスが原理上発生しない」究極の変換精度で太刀打ちできるのです。
慣れないうちは、変換開始のシフト押下をつい忘れてしまって
シフトキーの操作を…強いられているんだ!
…などと派手なエフェクトと共に全力で叫びたくなる衝動に駆られるかもしれませんが、楽器の演奏と同じで少しづつ上達を実感でき、慣れてくると自然と指が動くようになります。
キー操作一覧
主なキー操作を以下に示します。何やらたくさん種類がありますが特に必要な操作はさきほど説明した5つの操作といくつかの補助操作だけです。これらの基本操作には星印
★を付けてあります。5つの基本操作を覚えるだけで、日本語の漢字かな混じり文の入力を自由に行なうことができます。
| 全般 |
| CTRL+J | ★確定・ひらがな入力状態へ |
| q | ★カタカナ入力状態へ |
| cを押してからq | 半角カナ入力状態へ (独自拡張) |
| l (小文字のL) | ★半角英数入力状態へ |
| L (SHIFT+L) | 全角英数入力状態へ |
|
| SHIFTを押しながらA〜Z | ★編集開始・送りがな開始 |
SPACEを押しながらA〜Z 変換を押しながらA〜Z | 編集開始・送りがな開始 (SandS) |
| Q (SHIFT+Q) | 編集開始 |
| / | 英語編集開始 |
|
| CTRL+M (ENTER) | 確定・登録完了 |
CTRL+G CTRL+[ (ESC) | ★中断 |
| CTRL+H (BS) | 後退 |
|
| CTRL+] | 表示方式切り替え |
| 半角/全角, ALT+漢字 | 入力メソッド(IME)のオン⇔オフ切り替え |
|
| 編集中 |
| q | ひらがな⇔カタカナ反転確定 |
| CTRL+Q | 半角カナ化確定・全角英数化確定 |
|
| SPACE, 変換 | ★変換・次候補 |
| CTRL+N, ., ↓ | 補完して変換 (独自拡張) |
| > | 接頭辞変換 |
| ; | 送りがな入力(順次打鍵シフト) |
| CTRL+X, / | 日本語⇔英語編集の切替 (独自拡張) |
| CTRL+L | 英語の大文字⇔小文字切替 (独自拡張) |
| CTRL+I (TAB) | 補完開始・次補完 |
| CTRL+U, SHIFT+TAB | 前補完 |
|
| 変換中 |
| x (小文字のX) | ★前候補 |
| X (SHIFT+X) | 削除 |
| ; | 再編集 (独自拡張) |
| > | 接尾辞編集開始 |
|
| 登録中 |
CTRL+Y, CTRL+V SHIFT+INSERT | 貼付 |
| CTRL+I (TAB) | 特殊文字の入力 |
異世界ではクリスタルに選ばれしSKK戦士だったはずなのに、記憶喪失になってしまって自分の名前すら思い出せない!とお悩みのアナタも、日本語がわかるなら大丈夫です。とにかく最初はCQCの基本となる
CTRL+
Jと
CTRL+
Gの使いかたを思い出してください。あとはシフトキーを16連射しながら城の回りでスライム退治でもしていれば、いつの間にかMPが増えて他の呪文も使えるようになります。戦士とは名ばかりの近接格闘型の魔法使いでOK牧場。ガンガンいこうぜ
- SKKとは互換性のない操作について
- ひらがなモードへの変更: CTRL+J (カタカナモードであっても常にひらがなに戻る)
- 半角カナモードへの変更: cを押してからq
- 註釈の変更: 註釈を修正したい単語が変換候補として表示されている状態で;を押し、セミコロンの後に註釈を追加・変更
- 表示されている候補を即変換: .
日本語入力モードの切り替え
SKKFEPを標準の入力方式に選択した状態では、アプリケーション起動直後からSKKに関する操作を受け付けるようになります。(レジストリ設定により、初期状態を変更したり、アプリケーションごとの有効・無効を選択できます)
アプリケーション起動直後は半角英数モードになっているので、CTRL+Jを押すと日本語入力が可能になります。半角英数モードに戻す場合はl(小文字のL)を、全角英数モードにする場合はSHIFT+Lを押します。
SKKFEP有効時、標準設定ではCTRL+Jの入力は一切アプリケーション側に渡りません(後述する設定で変更可能です)。従来通り全てのキー入力をアプリケーション側に渡す場合は、半角/全角(またはALT+漢字キー)を押して日本語入力モードをオフにしてください。
SPACEキーによるシフトキー代替操作
SKKFEPの初期設定では日本語入力状態の時のみSandS操作が有効となっています。後述する設定により、英数入力状態であっても常に有効にしたり、アプリケーションごとに別々のSandSの適用を選べるようになっています。
一部のアプリケーション(Windows標準ではないリモート制御ツールなど)でスペースキーの押下が認識されないものが存在します。この場合、半角英数モードに変更するか、或いはSHIFT、CTRL、変換などのキーを押しながらスペースキーを押すことで、生のキーイベントがそのままアプリ側に渡るようになっています。うまく活用してピンチを切り抜けてください。
変換キーによるシフト・変換操作
SandSは便利なのですが、やっぱりスペースバーは押した瞬間に反応してほしい…というピュアな心を持つ貴方のために、変換キーでもシフト・変換操作を行なうことができます。SPACEキーのSandS機能が無効となっている状態でも機能するので、ここぞという時に「こんなこともあろうかと」とか言いながら押してください。(セーフモードによるMSWordバグ自動回避時のみ無効化されます)
なお、代替シフトキーは同時に1つだけ判定が行なわれます。例えば変換と無変換を代替シフトに割り当てた場合、先に押した側がシフトキーとして動作し、他のキーは生のキーイベントがアプリケーションに渡ります。
クリップボードからの貼付
単語登録時はCTRL+YまたはCTRL+Vを押すことでクリップボードからの文字の貼付が可能です。標準アプリである文字コード表と組み合わせてお使いください。
変換マークの表示
入力内容が空の時のみ、他アプリの補完動作に影響しないよう、No-Break Spaceの反転文字を使って変換状態下であることをひっそりと表示するようになっています。
SKKの特長でもあった、編集状態・変換状態における▽マークは一切表示されませんが、たかがメインマーカーをやられただけなので、操作感覚には微塵の影響もありません。
なぜなら、SKKでは変換の主導権を握っているのは利用者である人間だからです。そう、▽マークはあなたの心の中に。目に見えていることだけが全てじゃない。考えるな感じろ。フォースがともにあらんことを。
暗黙の確定
SKKでは変換操作中に次の語の入力を開始することで、自動的に確定操作が行なわれます。これは「暗黙の確定」と呼ばれるSKKの特長の1つです。標準設定では
CTRL+
Hや
BSでもSKK10同様に暗黙の確定が行なわれます。
例えば「火曜」の「火」だけを入力したい時に、「かよう」で変換して
CTRL+
Hや
BSを押すことで確定と文字削除を同時に行ない素早く入力することができます。単漢字や同音異義語の高速選択を苦手とするSKKにおける重要な操作テクニックの一つとして、覚えておくと役立ちます。
なお、よく訓練されたSKK使いは、この時脳内に
暗黙の…確定ッ!(すぱーん)
…とエフェクトの効いた必殺技の発動音が響くといわれ、恐れられています。容量用法を守って正しくお使いください。(入力中のカチャ音やッターン!には個人差があります)
接頭辞と接尾辞の変換
単語変換が基本となるSKKにおいて、同音異義語の高速入力は最重要課題の一つです。SKKではその解決策として、接頭辞・接尾辞の変換機能を塔載しています。ていうか今までこんな機能があるなんて知らなかっ…ぐはー(残響音)
SKKは接頭辞・接尾辞の変換用の辞書データを持っています。「約〜」や「総〜」(接頭辞)や、「〜的」や「〜氏」(接尾辞)のような単語です。接頭辞・接尾辞変換はこの辞書データを明示的に指定する手法です。
操作は非常に簡単です。以下の例を見てください。
- 入力例
- Chou> AnkokuSPACE >kaSPACE → 超暗黒化
上記の入力例は三種類の操作によって構成されています。これが勝利の鍵だ。
| 操作 | 動作 | 解説 |
| 1. Chou> | 接頭辞の変換 | 変換の時にスペースではなく>を押すと接頭辞の検索が行なわれます。 |
| 2. AnkokuSPACE | 通常変換 | ここは普通の操作です。 |
| 3. >kaSPACE | 接尾辞の入力開始と変換 | 変換候補の表示中に>を押すと暗黙の確定が行なわれ、接尾辞の入力開始となります。 あとは通常の変換と同様、SPACEで変換することで接尾辞の検索が行なわれます。 |
なお、カタカナ語との接尾辞の組み合わせなど、暗黙の変換のない場面では
SHIFT+
Q>と操作することで接尾辞を単独で入力することも可能です。
SKKを使い始めたうちは最小限の操作方法だけ覚えておけば十分なので、いきなりすべての機能を使いこなす必要はありません。
操作に慣れ、技を極めたくなってきた時に、この機能を駆使して入力の高速化を狙ってみてください。
註釈の編集
SKKFEPは独自の註釈編集機能を持ち、単語の登録時や変換時にいつでも自由に註釈を変更することができるようになっています。
登録時は特別な操作は必要ありません。単語の登録の際、セミコロンの後に註釈文を続けて記述するだけです。文字列の最後のセミコロンを註釈の区切りと自動的に解釈して単語と註釈の登録が行なわれます。
以下は註釈の入力例です。
| 入力内容 | 単語 | 註釈 | 解説 |
| 1. 蟹;うま | 蟹 | うま | セミコロンは通常入力でもTABでもよい |
| 2. (^_^;;顔文字 | (^_^; | 顔文字 | 最後のセミコロンの後が註釈になる |
なお、註釈文側にセミコロンを含めたい場合に備えて、
TABを押すことで通常の三倍(謎)の赤い特殊セパレータを1文字だけ入力できるようになっています。赤いセパレータが存在する時は、前後のセミコロンの状態に関らず必ずその部分で単語と註釈が分割されます。この説明ではわかりづらいかもしれませんが、赤いセミコロンを見たら「
ヤツが来たここで分割なんだな」と思えばOKです。
また、註釈は後からいつでも再編集することができます。註釈を書き忘れたので書き直したい、またはSKK辞書にもとからある註釈を消したり変更したい、という場合に便利です。
まず、註釈を書き換えたい単語を変換します。変換中、該当する単語が表示されている状態で
;を押すと再編集状態になります。
- 入力例
- KaniSPACE;
註釈のセパレータの文字(セミコロン)は自動的に入力された状態となっているので、あとは続けて註釈文を入力して
ENTERを押せば編集完了です。なお、既に註釈がある場合は註釈部分を
BSで消して
ENTERを押すと註釈を削除することもできます。
- 入力例
- かに 登録 蟹;umaENTER
編集後は自分が入力したアノテーションが変換時に表示されるようになり、使い込んでいくことでより分かりやすくなってゆきます。ぜひ活用してください。
補完
TAB(
CTRL+
I)で補完。
SHIFT+
TABまたは
CTRL+
Uで1つ戻る。
CTRL+
Gで補完キャンセル。補完中に文字入力や他の操作を行なうと補完部分の暗黙の確定。
あとはわかるな?
- 入力例
- UmiTABTABTAB
動的補完
文字を入力した瞬間に補完候補が表示され、変換可能な候補なら外部表示領域にその内容が表示される。
.や
CTRL+
N、カーソルキー
↓を押すと補完と変換を同時に行なう(
TABを押して補完状態にして
SPACEで変換する操作とほぼ等価)。
- 入力例
- Umi.
和英切替操作(雪花方式)
日本語入力方式「石火(Sekka)」にヒントを得た、和洋折衷の入力操作が可能です。日本語、英語問わず単語の先頭を大文字で打ち込むだけで、途中で
/または
CTRL+
Xを押せば日本語入力状態と英語入力状態を自由に切り替えられるようになっています。(標準設定では双方向切替となっていますが、設定を変更することで日本語入力途中の場合のみ
/で英語に切り替える設定も可能です)
また、入力中に気を利かせて英単語を自動認識し、日本語の読みが存在しない場合は自動的に英単語側に切り替えを行ないます。最初は学習情報もろくに持たないため、ちょっとドジっ子かもしれません。
インストール直後はカタカナ語に関する日本語辞書が貧弱なため、意図しないタイミングで英語側に切り替わってしまうことがあるので注意が必要です。例えば初期状態では「アウト」「フォント」「ガンガン」などのカタカナ語は入力途中で操作が切り替わってしまいます。日本語側に読みが存在しない語を見つけたら、カタカナ語として辞書登録しておくことでより賢く育てていくことが可能です。
- 入力例
- Maki///
ローマ字かな変換ルールの拡張
SKKFEPでは、一般的なローマ字かな変換ルールに以下の拡張を施してあります。このルールは定義ファイルによって自由に編集できるため、後から不要な機能を部分的に無効化することも可能です。
- 子音確定 (システム設定で変更)(予定)
ローマ字ルールから外れた文字を入力した場合にMS-IMEと同じように全角英数でそのまま出力します。一部のMS-IMEを前提としたネットスラングを入力する時、モード変更を行なわず直感的に素早く入力することが可能となっています。ミリ秒単位での反応時間が問われるチャットや実況などの用途において威力を発揮します。外部から行単位で文字出力タイミングを観測された場合でもMS-IMEと違いがほとんどないため、誤字脱字のパターンを含めMS-IME使いであるかのように偽装できるという、地味かつ重要な意味を持っています。
- 入力例
- wktk → wktk
- 雑草入力 (ルール設定で変更可能)
wまたは
kを連打することでwやkを大量かつ高速に入力できます。こうした文字は大抵の場合、チャットにおける語尾として使われます。そのため、チャットの確定である
ENTERや
CTRL+
Jを押すことで(または関係ない文字を入力することで)通常のローマ字かな変換状態に戻るようになっています。
雑草入力と送りがな変換時の挙動の共存させるため、2種類の変換ルールを動的に切り替えて処理しています。
- 入力例
- uhawwwskkwwwww → うはwwwskkwwwww
- 小書きかな母音入力 (ルール設定で変更可能)
xを押した後の小文字母音はキー連打で連続入力可能です。擬音や感動詞の入力を容易にします。
- 入力例
- uwaxaaaaa → うわぁぁぁぁぁ
- 記号入力 (ルール設定で変更可能)
小文字
cの後に記号を入力することで、その文字を直接入力することが可能です。
- 入力例
- c/c. → /.
- 数字入力 (ルール設定で変更可能)
0〜
9のキーを押した直後の
,カンマ、
.ピリオド、
−マイナスは半角で入力されます。
本来の全角を入力したい場合は、間に
CTRL+
Jを挟むことで動作をキャンセルできます。
- 入力例
- 12,345.00a. → 12,345.00あ。
- 記号入力 (ルール設定で変更可能)
SKKIME1.5改同様、かつてSKKが参考にしたと思われる
Eggの記号入力ルールの一部を採用し、利用頻度の高い文字を二回の打鍵で簡単に入力できるよう拡張されています。
z(または
x,
f,
j)の後にアルファベット以外の文字を押すと入力可能です。この操作はSKK10の完全な上位互換となっています。
標準ではJIS配列キーボードに合わせた設定となっています。ASCII配列キーボードなどの場合は後述する設定ファイルの変更方法を参照して書き換えて使ってください。
| 文字 | zSPACE | zH | zJ | zK | zL | z, | z. | z/ |
| 記号 | 全角空白 | ← | ↓ | ↑ | → | ‥ | … | ・ |
| 文字 | z! | z” | z# | z$ | z% | z& | z’ | z( | z) | | z= | z〜 | z| |
| 記号 | ● | ▼ | ▲ | ■ | ◆ | ★ | ♪ | 【 | 】 | | ≒ | ≠ | 〒 |
|
| 文字 | z1 | z2 | z3 | z4 | z5 | z6 | z7 | z8 | z9 | z0 | z− | z^ | z¥ |
| 記号 | ○ | ▽ | △ | □ | ◇ | ☆ | ◎ | 〔 | 〕 | ∞ | 〜 | ※ | ¥ |
| 文字 | z` | z{ | z} | z+ | z* | z< | z> | z? | z_ |
| 記号 | “ | | | ± | × | ≦ | ≧ | ÷ | ― |
|
| 文字 | z@ | z[ | z] | z; | z: | z, | z. | z/ | |
| 記号 | 〃 | 『 | 』 | ゛ | ゜ | ‥ | … | ・ | |
- (参考)ASCII配列用設定例
| 文字 | z! | z@ | z# | z$ | z% | z^ | z& | z* | z( | z) | z_ | z+ | z〜 |
| 記号 | ● | ▼ | ▲ | ■ | ◆ | ★ | ♪ | × | 【 | 】 | ― | ± | ≠ |
|
| 文字 | z1 | z2 | z3 | z4 | z5 | z6 | z7 | z8 | z9 | z0 | z− | z= | z` |
| 記号 | ○ | ▽ | △ | □ | ◇ | ☆ | ◎ | ∞ | 〔 | 〕 | 〜 | ≒ | ※ |
| 文字 | z{ | z} | z| | z: | z” | z< | z> | z? |
| 記号 | | | 〒 | ゜ | “ | ≦ | ≧ | ÷ |
|
| 文字 | z[ | z] | z\ | z; | z’ | z, | z. | z/ |
| 記号 | 『 | 』 | ¥ | ゛ | 〃 | ‥ | … | ・ |
- (参考)記号入力を使わずに単体でキーを押下した場合の全角文字
| 文字 | , | . | − | 〜 | ! | ? | [ | ] | { | } |
| 出力 | 、 | 。 | ー | 〜 | ! | ? | 「 | 」 | 『 | 』 |
UNICODE拡張文字の入力
- か行小書き文字
- わ行濁音
| ローマ字 | ひらがな | カタカナ |
| xva | ゔぁ | ヷ |
| xvi | ゔぃ | ヸ |
| xvu | ゔ | ヴ |
| xve | ゔぇ | ヹ |
| xvo | ゔぉ | ヺ |
- アイヌ語仮名
| ローマ字 | ひらがな | カタカナ | 発音(参考) |
| xku(xkk) | ㇰ | ㇰ | 音節末k 台灣語破裂音k |
| xsi/xshi(xss) | ㇱ | ㇱ | 音節末s |
| xsu | ㇲ | ㇲ | 音節末s(稀) |
| xto(xtt) | ㇳ | ㇳ | 音節末t |
| xnu(xnn) | ㇴ | ㇴ | 音節末n |
| xha | ㇵ | ㇵ | 音節末h/f |
| xhi | ㇶ | ㇶ | 音節末h/f |
| xhu/xfu | ㇷ | ㇷ | 音節末h/f |
| xhe | ㇸ | ㇸ | 音節末h/f |
| xho | ㇹ | ㇹ | 音節末h/f |
| xmu(xmm) | ㇺ | ㇺ | 音節末m |
| xra | ㇻ | ㇻ | 音節末r |
| xri | ㇼ | ㇼ | 音節末r |
| xru | ㇽ | ㇽ | 音節末r |
| xre | ㇾ | ㇾ | 音節末r |
| xro | ㇿ | ㇿ | 音節末r |
| xpu(xpp) | ㇷ゚ | ㇷ゚ | 音節末p 台灣語破裂音p |
|
| xnse(xche/xtse) | セ゚ | セ゚ | 鼻濁音ce「チェ」(稀) 江戸方言「ツェ」 |
| xntu/xntsu | ツ゚ | ツ゚ | 鼻濁音tu「トゥ」(稀) |
| xnto(xtwu) | ト゚ | ト゚ | 鼻濁音tu「トゥ」 |
括弧内は検討中
- か行鼻濁音
| ローマ字 | ひらがな | カタカナ |
| xnga | か゚ | カ゚ |
| xngi | き゚ | キ゚ |
| xngu | く゚ | ク゚ |
| xnge | け゚ | ケ゚ |
| xngo | こ゚ | コ゚ |
送りがなの順次打鍵操作 (ルール設定で変更可能)
シフトキーの代替操作として、DDSKKでのskk-sticky-keyに相当する操作が行なえます。標準では送りがなの指定操作を
;キーで行なうことができます。標準では変換開始の操作はSKKとの互換性と持たせるため
Qに割り当てられています。これは設定変更によって
;キーや
変換無変換などのキーに割り当て直すことも可能です。次章の設定方法を参照してください。
これにより、従来のSKKで多用されていた「シフトキーを押しながらキーを押す」という操作を「
;を押した後、キーを打鍵する」という操作で代用できます。この操作はSKK10にはなかった操作ですが、従来の操作を阻害せずに両立させることが可能となっています。
- 入力例
| | 入力内容 | 変換結果 |
| 標準操作 | ATatteKudaKero! | 当たって砕けろ! |
| 送りがな指定 | A;tatteKuda;kero! | 当たって砕けろ! |
| 順次打鍵操作のみ | Qa;tatteQkuda;kero! | 当たって砕けろ! |
|
| 次章の設定変更後 | | |
| 順次打鍵操作のみ | 変換a変換tatte変換kuda変換kero! | 当たって砕けろ! |
設定
SKKFEPは基本的には設定不要でレジストリ類を一切設定せず、インストール直後の状態ですぐに使えるようになっていますが、付属の設定ファイルを編集することで動作を変更することができます。
各種設定方法
SKKFEPの設定を変更する方法について解説します。
キー入力・ローマ字かな変換ルールの変更 (rオプション)
同梱のskkrule.txtをメモ帳で編集して設定ユーティリティを使うと、SKKFEPの動作設定を変更することができます。詳細はskkrule.txtを参照ください。(オンライン用リンク
skkrule.txt)
設定ファイルをメモ帳で開くと、20行目付近に以下のような感じで設定項目が並んでいます。
- 設定S 改行通過 0 改行キーによる確定時にキー操作を伝える
- 設定S タブ通過 0 タブキーによる確定時にキー操作を伝える
- 設定S 下方向通過 0 カーソルキー下による確定時にキー操作を伝える
- 設定X シフト拡張 1 スペース押下でシフト 0.なし 1.日本語時のみ 2.常に有効
- 設定X 変換動作 1 変換キーの動作 0.なし 1.シフト 2.順次打鍵
- 設定X 無変換動作 0 無変換キーの動作 0.なし 1.シフト 2.順次打鍵
- 設定X セミコロン 1 セミコロンの動作 0.なし 1.送りがな開始 2.順次打鍵
- 設定X 註釈操作 1 註釈の再編集の操作 0.なし 1.セミコロン 2.シフトQ
- 設定X 接辞操作 1 接頭辞と接尾辞の操作 0.なし 1.>のみ 2.<と>
- 設定X 選択操作 1 選択中の後退で中断する
いかにも書き換えてくれと言わんばかりに並んでいる数字の部分を
0にすれば無効となり、
1(または機能に対応する値)にすれば有効となります。
他にもいろいろな設定があるのでお好みで書き換えて保存してください。
その後、コマンドプロンプトを開き
例 rule r または # 設定ファイルskkrule.txtを読み込んでレジストリに保存
rule skkrule.txt
と実行することで、設定ファイルの内容がシステムに保存されます。
(キー操作を反映させるには、対象アプリケーションを一度終了して実行しなおすか、システムを再起動する必要があります。動的な反映はまだ行なわれないのでご注意ください。)
例 rule rd # レジストリ設定の解除
上記を実行することで設定が消去され元の設定に戻ります。
各設定の簡単な解説を以下に列挙します。
| 設定項目 | 初期値 | 内容 |
| 改行通過 | 0 | 改行キーによる確定時にキー操作を伝える。 (0だとegg-like-newline相当/1だとSKK標準動作) |
| タブ通過 | 0 | タブキーによる確定時にキー操作を伝える |
| 下方向通過 | 0 | カーソルキー下による確定時にキー操作を伝える |
|
| シフト拡張 | 1 | スペース押下でシフト (0.なし 1.日本語時のみ 2.常に有効) |
| 変換動作 | 1 | 変換キーの動作 (0.なし 1.シフト 2.順次打鍵) |
| 無変換動作 | 0 | 無変換キーの動作 (0.なし 1.シフト 2.順次打鍵) |
| セミコロン | 1 | セミコロンの動作 (0.なし 1.送りがな開始 2.順次打鍵) |
| 註釈操作 | 1 | 註釈の再編集の操作 (0.なし 1.セミコロン 2.シフトQ) |
| 接辞操作 | 1 | 接頭辞と接尾辞の操作 (0.なし 1.>のみ 2.<と>) |
| 選択操作 | 1 | 選択中の後退で中断する |
|
| 動的補完 | 1 | 編集時に補完候補を薄字で表示する |
| 自動切替 | 1 | 日本語編集中に英単語を自動認識する |
| 和英特化 | 1 | 日本語編集中に小文字Lの入力を許容する |
| スラッシュ | 1 | スラッシュで和英切替 (0.なし 1.常に有効 2.日本語時のみ) |
| ピリオド | 1 | ピリオドで推定変換 (0.なし 1.常に有効 2.日本語時のみ) |
|
| 子音優先 | 1 | ローマ字変換中の確定で子音を優先する (例「un」の場合、0だとSKK準拠「うん」/1だとMS-IME準拠「うn」) |
| 子音表示 | 1 | ローマ字変換中の子音を全角で表示する |
| 子音確定 | 1 | ローマ字規則外の子音を全角で確定する |
| 雑草連打 | 1 | チャット用文字を高速入力する |
| 小書連打 | 1 | 小書きかな母音を高速入力する |
| 記号拡張 | 1 | 小文字cの直後の記号を直接入力する |
| 数字拡張 | 1 | 数字の直後の記号を直接入力する |
| 拡張文字 | 1 | UNICODE拡張文字を利用する |
| 長音表記 | 1 | ヘボン式ohの長音表記を利用する |
|
| 全角カンマ | 0 | 読点を全角カンマにする |
| 全角ピリオド | 0 | 句点を全角ピリオドにする |
| 全角セミコロン | 0 | セミコロンを全角にする |
| 全角コロン | 0 | コロンを全角にする |
| 全角括弧 | 0 | 括弧を全角にする |
|
| 全角空白 | 0 | 空白を全角にする |
| 全角空白入力 | 0 | シフト押下時は全角空白を入力する |
|
| 過剰全角 | 0 | 空白以外の数字や記号を全角にする |
| 過剰後退 | 0 | 後退操作で前候補を選択する |
| 過剰通過 | 0 | 既にひらがなの時キー操作を伝える |
| 過剰仮名 | 0 | 既にカタカナの時はひらがなにしない(※) |
| 過剰反応 | 0 | 未定義のキー操作も暗黙の確定として扱う |
| 過剰斜線 | 0 | スラッシュで英語編集を開始しない(c/に変更) |
なお、設定項目と設定内容は定義ファイルを作った人が自由に決定できるため、他の設定ファイルでは名称や内容が変化している可能性があります。
(※)従来のSKKと互換性のある動作になりますが、この設定は操作ミスを誘発し使い勝手を下げるだけの害悪でしかありません。これは明らかにSKKの設計ミスであり、こんな不可解な仕様を崇拝し盲信するSKK原理主義なんてラ○ュタの雷に焼かれてしまえばいいし、こんな最低の欠陥仕様をあえて使いたい人がいるなんて思ってないし、そういった面も寛大な心で許容し受けとめてSKKに慣れ親しんでいた方々の操作感覚なんて永遠に失われてしまえばいいのよ!べっ、べべ別に互換性を確保することが大事だなんてちっとも思っていないんだからねっ!(赤面)
変換中の注釈表示の変更 (pオプション)
標準では常に註釈を表示する設定になっていますが、不要な場合は表示を抑制できます。
例 rule p0 # 註釈を表示しない
上記を実行すると、普段の操作では一切註釈を表示しなくなります。(変換中および候補一覧表示中に表示しない)
例 rule p2 # 候補一覧時のみ註釈を表示する
上記を実行すると、変換中のみ註釈を表示しなくなります。候補一覧表示中は註釈を表示します。
元の設定に戻す場合は
例 rule pd # 初期状態に戻す (註釈を表示する)
上記を実行することで設定が消去され、再び註釈が表示されるようになります。
表示領域の設定
候補一覧や変換中のアノテーションの表示領域の設定を変更できます。
例 rule w [透明度 [反発力 [最大幅]]]
- 透明度: 表示領域の透明度を0〜255の数値で指定します。値が小さいほど透明になります。標準値は224です。
- 反発力: 画面端でのばねの反発力を0〜128の数値で指定します。値が小さいほど反発力が小さくなります。128にすると常にディスプレイ内に収まるように動作します。初期値は96です。
- 最大幅: ウィンドウの最大幅を1〜65535の数値で指定します。0の場合は制限なしです。初期値は0です。
例 rule f
- 表示領域で使用するフォントを選択します。
例 rule wd
上記を実行することで設定が消去され、元の動作に戻ります。
起動時の変換モード (mオプション)
標準では半角英数モードになっています。以下から起動時のモードを選択可能です。
- m0: ひらがな m1: カタカナ m2: 半角カナ
- m3: 全角英数 m4: 半角英数 m5: IMEオフ
- md: 半角英数 (標準設定)
例 rule m5 # 全てのアプリで起動時にIMEをオフ (お勧めしません)
コマンドプロンプトで上記を実行すると、他のIMEと同様に起動時オフにすることができます。が、全てのアプリに対して設定が効いてしまうため、かなり使いづらくなりお勧めできません。後述するアプリケーション別の設定で個別に設定するのをお勧めします。
例 rule md # 初期設定に戻す (半角英数モードで起動)
上記を実行することで設定が消去され、元の動作に戻ります。
シフトキー拡張操作 (sオプション)
標準では日本語入力中のみSandSが有効となっています。以下からSandSの作動範囲を選択可能です。
- s0: SandS無効 s7: 日本語入力中のみSandS有効 s31:常にSandS有効
- sd: 日本語入力中のみ有効 (標準設定)
例 rule s31 # 全てのアプリで常にSandSを有効
コマンドプロンプトで上記を実行することで、SandSの動作を常に有効化できます。
アプリケーション別の設定
上記オプションのうち、mオプションとsオプションはアプリケーションごとに別々の設定にすることができます。例えば、emacs.exeのみ起動時にIMEオフ/SandS無効にしたい場合は以下のように設定します。
rule emacs.exe m5 s0 # emacs.exeのみ起動時にIMEオフ/SandS無効 (Emacs側のSKKを使う場合にお勧め)
個別設定を削除するには以下のように実行します。
rule emacs.exe md # emacs.exeの個別設定を解除
辞書について
本ソフトウェアで利用可能な辞書ファイルは、原作のSKK辞書と同じテキスト形式となっています。
辞書は内容がソートされていてもいなくても問題ありません。
辞書の漢字コードはシフトJIS/EUC/UTF-8N/UTF-8/UTF-16LEが利用可能で、改行コードは1文字/2文字どちらでも認識します。(なおEUCの場合は利用可能な文字種類に制限があります)
このため、L辞書やJIS第二水準辞書の文字範囲であればダウンロードしたファイルのまま利用できます。既にEmacsなどで利用中のL辞書やユーザ辞書をそのまま流用することもできます。
辞書ファイルの場所
辞書の置き場所は以下の通りです。
- SKK辞書(共通辞書)
C:\Windows\IME\SKK0\DICTS\*
- ユーザ辞書(学習情報)
(環境変数APPDATAの示す場所)\SKKFEP\skkuser.txt
Windows 7の場合は C:\Users\ユーザ名\AppData\Roaming 以下に配置されます。
辞書の扱い
SKK辞書は、インストール時にカレントディレクトリにあるskkdict.txtがコピーされます。このファイルが存在しない場合は、openlab.jpより自動的に最新版のL辞書がダウンロードされます。
辞書は複数同時に利用することができます。インストーラでは便宜上L辞書のみインストールしますが、手動で前述の辞書フォルダを開き、適当に辞書ファイルを放り込んでおくだけでPC起動時にすべての辞書を認識します。
辞書を扱う上でいくつか注意点があります。
- このフォルダはシステムフォルダなので操作の際は管理者権限が必要です。
- 辞書を読み込む順序はファイルシステムの並び順――現在のWindowsではNTFSが使われているので、要するにファイル名順――に読み込まれます。
- 辞書はすべてメインメモリ上に読み込まれます。辞書ファイル読み込み後は検索処理におけるディスクアクセスは一切発生しません。この特性のため辞書ファイルをシステムフォルダに放り込だり削除した場合、すぐに使えるわけではありません。インストール操作を行なうか、PC再起動、ログオン/ログオフを行なうことで認識されます。
ユーザ辞書の更新
ユーザ辞書は更新操作(単語の確定または削除)を行なってもすぐには保存されません。
ユーザ辞書は最初の更新から3分が経過すると自動的に保存されます。すなわち、連続して日本語入力を続けている場合は3分おきに辞書が保存されます。
なお、単語の変換を行なって
CTRL+
Gで確定を中止した場合は辞書更新とは見なされません。
ユーザ辞書を任意のタイミングで保存したい場合は、辞書プロセスskks.exeを手動で実行してください(エクスプローラでダブルクリックするなど)。実行すると常駐している辞書プロセスに対して辞書保存要求が送られ、辞書が更新されていた場合はユーザ辞書ファイルに反映されます。
なお、ユーザ辞書はUTF-16LEで保存されるため、メモ帳で直接編集が可能です。
編集したものを再度読み込ませるには、以下の手順を踏みます。
- 1. skks.exeを実行して辞書内容を書き出す
- 2. メモ帳などでskkuser.txtの内容を編集(辞書プロセスを刺激しないように注意)
- 3. ログオフまたは再起動
上記の方法だと、うっかり日本語の確定操作を行なって辞書プロセスを刺激してしまい、せっかく書き換えたはずの辞書が元に戻ってしまう恐れがありますので、確実に読み込ませるには以下の手順で行なってください。
- 1. SKKFEPをアンインストール(再起動不要)
- 2. メモ帳などでskkuser.txtの内容を編集
- 3. SKKFEPをインストール(再起動不要)
他のSKKユーザ辞書の流用
SKKやSKKIMEで使っていたユーザ辞書をインポートして使い続けることが可能です。
あらかじめインストール前にユーザ辞書の場所にskkuser.txtの名前でコピーしておくか、前述の手順を参考に「内容の編集」ではなくファイルの差し替えを行なえばユーザ辞書を入れ換えることができます。
インポート後も語句の順序はそのまま保存されます。インポート後、SKKFEPによって更新された辞書はUTF-16で保存されているため、文字コードを変換することよって(変換せずそのままでも)SKK辞書ファイルとして復元することも恐らく可能ですが逆変換は動作対象外です。インポート前に元の辞書のバックアップを取っておくことをお勧めします。
SKK辞書の連結
なんか複数辞書の読み込みができるようになってしまったのでもう辞書の連結機能は実質不要ではありますが…。
SKKにはさまざまな種類の辞書が存在します。従来、SKKでは辞書読み込み順序などをきめ細かく指定することで複雑な挙動を制御することができました。しかし裏を返せば、利用者に複雑な知識が要求され、敷居を上げる要因となっていると考えます。多くの人にSKKを使ってもらうには、例えばある程度スキルのある人がまとめた辞書や便利な設定(ディストリビューション)の一部または全部を、単一のファイルにしてメール添付やURLの形で簡単に人に渡せて、ボタン一発で適用できる程度まで簡略化していかねばなりません。
また、現状ではJIS第三・第四水準の辞書などをWindows上で正確に結合できるツールが見当たらず、「できないからやらない」という悪循環に陥っている可能性もあります。
そこでSKKFEPでは、辞書プロセス側に辞書の結合機能が暫定的に組み込まれています。
利用者が行なう作業は、複数のSKK辞書を
適当なテキストエディタで連結して1つの大きなテキストファイルにしておくだけです。
あとはSKKFEP側が辞書内容を自動的に結合して読み込みます。具体的には、Emacsなどで適当に辞書を継げた後、coding: utf-16le-with-signature-dosとしてskkdict.txtを置き換えればOKです。辞書のソート順序、見出し単語の重複、送りがなあり/なしのエントリの順番などはすべて自動判定します。
単語は辞書ファイルに出現した順に認識されます。同一の変換結果がある場合は先に登録されたものが有効となり、註釈(アノテーション)が異なっていたとしても後から登録した漢字は破棄されます。以下に例を示します。
- ;#連結前の辞書の例
- あ /亜;亜細亜/阿;阿吽/
- あ /阿/娃/亜/
上記の辞書データを読み込んだ場合、内部の並び順は以下のようになります。
- ;#連結後の内部状態
- あ /亜;亜細亜/阿;阿吽/娃/
なお、ユーザ辞書の送りありエントリについては、漢字部分は結合されますが、個別の送りがな部分については、最後に読み込んだ行のものだけが有効になります。
なんか余計細かい知識が必要な状態に陥ってしまっているような気がしないでもないですが、いつかインストーラや辞書ツールが発達し、辞書の差分更新なども含めてマウスひとつでらくらく操作になる日を目指す第一歩になるはずですので、生暖かい目で見守ってやってください。
文字コードの制限
伝統的にSKK辞書はEUCで記述されているのですが、Windowsのテキスト入力プロセッサはUTF-16LEと呼ばれるUnicodeで動作しています。文字コードが異なるため、元データのままではWindowsのテキスト入力プロセッサでは利用できません。そのためSKKFEPでは、Windows APIを用いて文字コード変換を行なう機能を持っています。
この変換処理は、シフトJISで表現できる範囲の文字(L辞書やJIS第二水準辞書等)であれば問題なく動作しますが、それ以外の範囲の文字を正常に変換できません。具体的に言うと、JIS第三、第四水準やJIS2004の文字等が用いられている辞書は、EUCのままでは正常に扱うことができません。
こうした文字を利用している辞書を使う場合には、事前に漢字コード変換を行なう必要があります。Emacsなどの文字コードの相互変換が可能なエディタを用いて文字コードをUTF-8やUTF-16LEに変換することができます。
漢字コードの変換には、Corvus Solis氏の作成された漢字コード変換ツール
cveuc♺がお勧めです。ダウンロードし解凍後、Releaseフォルダ内の実行ファイルをパスの通った場所に置くだけで簡単に導入できます。
例えば以下のように実行することで、L辞書をメモ帳で編集可能なUTF-16LEのテキストファイルskkdict.txtに手軽に変換することができます。
httpget http://openlab.jp/skk/skk/dic/SKK-JISYO.L
cveuc SKK-JISYO.L skkdict.txt
こうして文字コードをUTF-8やUTF-16LEなどのUnicodeに変換しておくことで、Emacsなどの高級エディタに頼らずに標準アプリであるメモ帳だけで簡単に辞書を切り貼りできるようになり、辞書の結合やメンテナンスの敷居が大幅に下がります。
補足
その他の情報など
Windows XPをお使いの方へ
SKKFEPは一応Windows XPでも動作しますが、Windows XPでのTSFはいろいろと不可解で不安定な動作が多く、正直なところ導入はお勧めできません。Windows XP環境では、素直にIMEとして実装されているSKKIME 1.5改のWindows XP版を使うことをお勧めします。
それでも、どうしてもWindows XPで使ってみたいという場合は、以下の注意点を読んで導入してみてください。
インストール時の注意点
Windows XPの場合、標準設定のままではSKKFEPは動作しません。
システムの設定変更が必要です。
インストール操作の前後どの時点でもよいので、コントロールパネルの「地域と言語のオプション」の「言語」タブの「詳細(D)」ボタンを押し「テキスト サービスと入力言語」のダイアログを開きます。
ダイアログの「詳細設定」タブを開き、「詳細なテキスト サービスをオフにする(T)」のチェックが外れていることを確認し、
「詳細なテキスト サービスのサポートをプログラムのすべてに拡張する(E)」を有効にしてください。この設定を行なうことで、ctfmon.exeというシステムプロセスが動作し、Windows XPでもTSFによる日本語入力処理が利用可能となります。
設定変更後、不要になった場合は同様の操作でいつでも設定を戻せます。
もしもこの設定を行なわない場合、インストールを行なっても「テキスト サービスと入力言語」の「インストールされているサービス(I)」の一覧に表示されるだけで、IMEとしては選択できない状態となります。万が一こうなってしまった場合でも、上記の設定を後から行なえば正常になりますし、そのままアンインストールしてしまっても問題ありませんので落ち着いて対処してください。
設定後は、再び「テキスト サービスと入力言語」の設定を開き、「設定」タブにある「既定の言語(L)」で「日本語 - SKKFEP」を選択し、OSを再起動することで、標準の日本語入力として動くようになります。
なお、この設定はWindows XPではあまり一般的ではなく、経験上高い確率でアプリケーションが正常に動作しなくなったり、システムが不安定になったりする可能性があります。利用は自己責任でお願いします。
利用時における問題点
XPでのTSFの利用は多くが謎に包まれており、ひとまず以下は仕様となってしまっています。他にもいろいろと問題が出ているような気もするのですが超法規的措置。情報求む!
- Windows XPではコマンドプロンプトなどの一部のアプリケーション上ではSKKFEPを利用できません。
- Windows XPにおいて、言語バーにSKKFEPの状態が正常に反映されない。(起動後に一度言語バーを最小化←→復元の切り替え操作を行なうと直ることもある)
- Windows XPにおいて、既存のIME制御ツールで制御した瞬間にアルファベットしか入力できなくなる。(一度ウィンドウのフォーカスを別のものに切りかえてから戻すと直ることもある)
- Windows XPにおいて、漢字変換候補の表示が異様に遅いことがある。
…ま、慣れちゃえばわりとなんとかなる話なんですけどね。こちらの持っている不利な情報はすべて提示しました。あとは任せた。
ご意見・ご要望
SKKのこんな機能があったら便利、ここに違和感を感じる、という利用者の意見はとても貴重です。どんな些細なご意見でも構いませんのでお知らせください。次回作の参考などにしたいと思います。
SKKで入力する時の癖や、使いにくい挙動を少しでも緩和するアイディアなどありましたらお気軽にご連絡ください。また、JIS配列ではないキーボードや、原作SKKの標準動作(skk-egg-like-newlineなしとか)で使っている方、SKK原作の使用感について詳しく話を聞かせてください。びっくりするほど誰も乗ってこなかったぞ俺。自分で使ってみるぞ俺。なんか自分好みの操作感だぞ俺。
つか意見も要望もあんま来ないし好き勝手にやってるだけなんで「この機能が欲しい」とか「それ以上いけない」といった意見があればお気軽にどうぞ。お気軽でない要望なんかも、もうそれこそ大歓迎です。こちらの魂が震えるような熱い要望や本音の不満をぜひともぶちまけてください。亀の歩みではありますが、数直線の遥か彼方を走るMSGoog…ウサギに追いついて虚数軸から友情パワーで必殺技を一緒にたたき込んでみませんか。夢オチで。
更新履歴
チラシの裏へようこそ(日記はここで終わっている)
2011.09.19
- α版公開
2012.01.11
- β0版公開
2012.01.20
- 日本語入力 (問題あり)
- ローマ字かな変換ルールskkrule.txtの表記を改良
- 変換ルールの見直し(SKK10との互換性向上)
- 変換発動キー変更機能を追加
- 候補選択キー変更機能を追加
- 子音置換機能を追加(AZIKなどの表音と異なるキー操作に対応)
- 標準定義のテーブルサイズを追加情報込みで66バイト削減
- 処理アルゴリズムの見直しとコード最適化により、上記機能を追加しつつ32ビット版/64ビット版ともに実行ファイルのサイズを0.5KB削減
- キー入力関連処理を改良。MSWordにて数字入力回りが正常に動作しないバグを修正
- コンポジションが空の時にNo-Break Spaceを反転表示して視認性を向上
- 設定補助 (影響度大)
- 辞書管理 (安定度向上)
- シャットダウン時に辞書の保存が行なわれないバグを修正
2012.01.23
- 日本語入力
- 編集開始時に例外的に子音確定の対象を外側に追い出すように改良
子音確定における暗黙の確定のような感覚で使える。要するに「おk把握」とかの入力途中で確定キーを押す必要がなくなった。
- シフトキー拡張時、スペースキーとシフトを組みあわせた入力時の反応性を向上。SandSを使わない人でも常時SandS有効のままでも違和感を少なくするよう改良。SPACE押下SHIFT押下SPACE離上文字押下SHIFT離上のようなタイミングが微妙に遅れた時などにスペースキーの入力を認識する。
- キー入力関連処理のエンバグでウィンドウフォーカスが切り替わった後の確定などのキー入力に失敗する問題を修正。
- サイズが増えてしまった…
- 辞書管理
- 他のプロセス探索ツール類からウィンドウハンドルを未使用として認識されるよう改良
2012.01.24
- 全般
- アプリケーション名称を「日本語入力システムSKKFEP」から「SKK日本語入力FEP」に変更
- 日本語入力 (安定度向上)
- レジストリ設定がないと表示スクリプトが破損するバグ(2012.01.20版のエンバグ)を修正
- 20120123版で増えたプログラムサイズを0.5KB縮小
2012.01.28
- 日本語入力 (安定度向上)
- キー押下イベントだけしか通知されない一部の
どう考えてもバグってるとしか言いようのないウィンドウ内ではセーフモード(一時的なSandS無効状態)で動作するよう改良。
- ちなみに怪奇現象はMSWordの検索窓で発生。MSWordの妙ちくりんな動作も大概にシーテクーダサーイ。怒髪が有頂天を通り越してへそで茶を沸かしマース。MSWordの特殊攻撃回避処理がどんどん増えるデース。
- なお、WINWORD.EXEでSandSを無効化に設定することでも回避できるようにもなっていますが、無効化したら負けだと思っている。
- ちなみにMSWordバグ(…あれ?)を検出できるのは、同じキーを2回押すか、スペース押下後(または押しながら)別のキーを押した瞬間となっています。最初のスペースキー押下時には判定ができず何も反応しないのですが、これは仕様です。大抵、SPACE+文字を入力した瞬間に判定されるので、1回目の変換まではセーフモードになったことすら気づかずに使えるはず。2回目以降?諦メロン
- CAPSロックが常時ONでも使いやすいように改良。やっぱりMHz台のプロセッサのニーモニックは大文字に限る。
- タイマーではなく状態遷移だけで確実にMSWordバグを検出できるよう改良
- 変換キーでもシフト代替操作可能とした。SandS無効の時にも機能するのがポイント
- 半角英数モード時はキーボードモードオフ扱いにする実験開始
- abbrevモードの操作を/キーに変更して使っている利用レポートが多いため、デフォルト設定をSKK互換に変更
- 将来数値変換が利用可能になった時、操作が衝突する可能性があるためデフォルトの再編集操作を;に変更
- >キーによる接頭辞・接尾辞の操作を追加「Chou>AnkokuSPACE>kaSPACE」で「超暗黒化」
- 接頭辞・接尾辞変換コマンド追加により、設定コマンド番号に互換性がなくなりました。過去の版で設定したレジストリ上のルール定義はバージョンチェックで弾かれて無効化されます。定義ファイルの再設定が必要です。前述の通りabbrevモードのデフォルト設定が変更となったので、デフォルト設定のままで問題なければそのまま放置でも問題なし。
2012.01.29
- 日本語入力
- CorvusSKKの顔文字対応が羨ましかったので、顔文字が使えるように改良。注釈のセパレータとして最初のセミコロンが選択されてしまっていたのが問題だったので最後のセミコロンを認識するよう変更
- 登録操作時にTABキーで1文字だけ入力できる通常の三倍(謎)の赤いセパレータを追加
- 再編集時の操作性を向上。再編集開始時に行末にセパレータを自動的に追加し、登録時に行末にセパレータがあれば自動的に削除する
- 変換動作をSKKに近づけ、カタカナで入力した場合も変換するよう改良。「ハレ晴レ」のような入力も可能となった。これでようやくSKKとして一般的な単語が扱えるようになり、辞書サーバと接続する下地が整った
- 辞書管理
- SKKIMEが生成したユーザ辞書など、同一行に同じ単語(異なる注釈)があった場合の補正処理を追加
- 異常なフォーマットの辞書を読み込むとまれにプロセスが異常終了する問題を修正
- 複数セミコロンを持つ単語を含む行の辞書フォーマットを極力SKKに合わせた。従来は単語全体をまとめて処理していたが、これはSKKのフォーマットと異なるため注釈の前後を別々にエンコードするよう改良
2012.01.31
- 日本語入力 (機能追加)
- Corvus Solis氏の調査により、ホットキーALT+VK_OEM_3の動作の詳細や歴史的経緯が判明。不要と思ってSKKIME1.5改の時から削除していたが、海外版OSなどの日本語以外のキーボードドライバと併用した時に必要となるため、機能を復活。過去の互換性のためには必要だったのだ…!この条件に該当するユーザは一人もいないかもしれないけど、Windows環境でのSKK普及のためにはCorvus SKKと同じ条件にしておくことが(コードサイズより)重要だと考え採用。
- アプリケーションからのIME制御に対応(実験中)。ホットキー動作とは異なり完全にIMEがオフにならないように動作する。標準設定では半角英数←→ひらがなの切り替えで偽装(レジストリ設定で起動時にIME無効に設定しているプロセスのみ、従来のIMEと同等の制御が行なわれる)。ぎまんに満ちた世界で闘う、全ての『サイバー・パンカー』に捧げる
2012.02.01
- 日本語入力 (問題あり)
- Corvus Solis氏の要望を受け、CorvusSKKの目玉機能の一つ、ふりがな情報の出力機能を追加。ただし書き換えるのは変換処理を施した文字列のみを対象としています(例え英語入力モードであった場合でも)。CorvusSKKと異なる結果になって困るという場合は連絡を
- 実行ファイルのサイズ維持が困難になってきたのでコンポジションの書き換え処理を簡素化…というか今まで無駄にAPIを呼んでいたような気がする。記憶にございません。とはいえものすごい基礎部分の変更をやっちまった気もするので、もしかすると影響の出るアプリがあるかもしれない。そして調子に乗って他もいろいろ簡略化しちゃったてへぺろ♥行くぜ禁断の領域!「それ以上いけない」
2012.02.03
- 日本語入力 (安定度向上)
- やばい。やっぱり処理を削りすぎてた。むしゃむしゃしてやった。今は反芻している。見た目は子供、頭脳も子供。刑事さん…私はやりましたよ。サイズ削減のためなら何度だってやるでしょう。後悔はしていない。
- というわけでMSWordやLive Messengerでコンポジションの文字出力が1文字だけの場合に文字がシフトされずまともに文字入力できないエンバグを起こしていたのに気付いて慌てて修正の巻。要するにこの三日間まともに動作してなかったことになる。どうせ誰も使ってないんだろうな…否!MSWordとかと組み合わせて使ってないだけさ!ううん、知らないけど絶対そう
2012.02.04
- 日本語入力 (安定度向上)
- 単語編集中に未確定の子音を残してキャンセルを行なうと文字が残るバグを修正。
- 64ビット版のWindows XP/Server2003専用の初期化処理を廃止し他OSと処理を共通化。
- COMのIDチェックを厳密に行なうように改良。
2012.02.05
- 日本語入力 (機能追加)
- 英単語入力時(SKKのabbrevモードに相当)の文字表示属性が通常時と同じ色で表示されるバグを修正。要するに表示属性の1つが未使用のままずっと放置されてた。孤独。この機能まったく使わないから気づかなかった。
- 候補一覧の黒の文字色を黒固定からシステムカラーに変更。該当するカラーは、コントロールパネル→デスクトップのカスタマイズ→個人設定→ウィンドウの色とデザイン→デザインの詳細設定の「指定する部分(I)」の「ヒント」のフォント色となる。ながい…
- β0最終版になるといいな
2012.02.06
- 日本語入力 (機能追加)
- 現実は非情である。β0最終第二版(ぉ
- 全ての拡張シフトキーで一定時間押下時にキーリピートを有効化。
- 表示スクリプトのレジストリ読み込みにもバージョンチェックを追加。rule p系は再設定が必要。
2012.02.08
- 日本語入力 (安定度向上)
- はいはい無常無常。β0最終第三(ry
- 単語登録時にlを押すと状態がクリアされてしまい半角英数が単語登録できない問題を修正。SKKFEPの特殊動作であるキーボードモードの自動制御関連で懸念された問題をすべて捻じ伏せた。他の入力プロセッサじゃ満足できない機械の体になるためにはこの処理をどうしても乗り越えなければならなかった。長い戦いだった。正直この機能が実現したくて開発していたので僕、満足!
- 中身が空の辞書データを変換・確定・登録した際、文字入力不可能になるバグを修正。
- レジストリの内部バージョンを設定項目別に管理するよう改良。
- 表示スクリプトの内部バージョンを変更。rule p系は再設定が必要。
- 単語登録中に註釈部分を別の色で表示し視認性を向上。表示にはこだわってみた。けっこう気に入ってる。
- 単語登録開始時に入力モードを保存しSKKに操作感覚を近づけた。
2012.02.12
- 日本語入力 (機能追加)
- β0最終第四アッ――!
- 『うわっ…私の能力、低すぎ…?』いきなりGUI設定ツールの作成に挫折。たかしくんがn回目の挫折を経験した後に無限ループから抜けるまであと何回の試行が必要か求めよ。まだだ、まだ終わ○んよ!で、副産物の設定処理を追加。
- 改行・コントロールキーのアプリケーションへの通知(skk-egg-like-newlineのないSKKの初期設定に近い動き)を実装。ピーキーすぎて俺によし。でもちょっと癖が強いのでデフォルトではオフにしておく。
- BSの挙動を変更可能とし、ローマ字かな変換ルール設定側からのカスタマイズの幅を広げた。
- SKKの使い手の生命線であるCTRL+Jの挙動を変更可能とし、操作に不要なキーをアプリケーションに通知するモードも選べるようにした。現在のSKKFEPではCTRL+Jが数値入力や雑草入力の解除操作を兼ねており相性が悪いという理由により残念ながら非推奨設定となる(他にも、SKKの操作感から逸脱してしまい原作の修得が困難となるという危惧もある)。それでもなお、著名なSKKクローンの操作性との互換性は確保しておくべきと判断。移行・併用時の操作感緩和用としてきっと役立つ場面があるはず。
- 表示スクリプトを10バイト短縮。関連処理64バイト短縮。FORTHェ…
- その他細かな修正(単体変換0回でも一覧表示へ移行とか、再編集と削除の開始条件を揃えるとか、キーリピートタイミング指定をミリ秒単位で指定可能にしたとか仮想マーカーの文字コードを16ビット幅で指定できるようにしたとか)。大幅に書き直してるからもう何が同じで何が違うのかよーわからんちん
- 2012.01.23の子音確定の押し出し処理におけるエンバグを修正。通常確定の時に子音が残った状態でENTERなどで確定した時、子音アルファベットが押し出されてしまう現象が一部のパターンで発生していた。
- そして公開直前にFlash Playerプラグインの文字入力欄(要するにニコ動)でコンポジションの書き込みに失敗するバグが発覚し一日延期。旧方式は没としskkimeと同等の処理で確定とキー出力を行なうように修正。これで安定度はskkimeに追いついたはず。
- やばい。z[ z] のルールをずっと勘違いしていたことに気付いた。でももう今さら直すわけにもいか…ふんぬ!SKKに合わせて直した。あと、z7のルールがEggと異なっていた(これまた勘違いしていた…あれを使っていたのは相当に昔の話で記憶が曖昧なんで勘弁してたもれ…)のでこれも正しいものに修正。他にも、z{ z}は全角ダブルクォートから縦書き用ノノカギに変更。これでいいんだ!自分が信じた道を行く!SKK最強!うぉぉぉぉ
- こんだけ詰め込んだけどまだ初期の頃からプログラムサイズは変わってないんよ…サイズ維持するために何度も上位下位階層ごっそり書き直しとかやってるんよ…無駄なこだわりだし強いられてないけどがんばってるんよ…「あのたたかいはむだだせかいはラブアンドピースあんぜんなところにいたガキがおれにそううた(放送禁止)」
- 全般
2012.02.13
- 日本語入力 (機能追加)
- β0最終ファンタジー5
- 2012.02.12版でのエンバグを修正。skk-egg-like-newlineにしていても単語登録中にENTERで確定した時ENTERによる登録が行なわれてしまうバグが混入していた。
- z‘の初期割り当てを全角ハイフンから全角ダブルクォート左に変更。全角英数モードと組み合わせることで、シングルクォートの左右、ダブルクォートの左右が入力可能となる。
- skk-sticky-key相当の機能を追加。シフトキー操作なしだとかなり操作感覚が異なるというか、本来のSKKとは完全に別物だこれー。かなり癖があるな…DDSKKの機能だし仕方ないか。だがしかし!文字種が6ビット程度に制限された極限状態(スマホとか、MCUのシリアル経由とか)で日本語入力しなければならないような絶体絶命のピンチの局面で「こんなこともあろうかと」とか言いながら有効化すると超気持ちイイかもしれない。そして将来JISかな入力を導入した時にこの状態遷移がきっと役立つはず。
その後発見・修正されたバグなど
- 日本語入力
- オートコンプリート時に内部状態の初期化が不十分で余分にキー操作を要する可能性があるバグを修正。
- 設定補助
- 規模の大きな設定ファイルを読み込んだ時に音素と文字の対応がおかしくなるバグを修正。
以上をもって「単独動作可能な世界最小のバイナリサイズSKKクローン」のβ0の開発を完了。
skkimeに反逆せよ
行くぜ虚数空間へ!
2012.02.18
- β0+i版公開
- 外部表示領域(候補一覧やアノテーション、単語登録などの表示領域)を実装。
- 初期設定では文字はコントロールパネル→デスクトップのカスタマイズ→個人設定→ウィンドウの色とデザイン→デザインの詳細設定の「指定する部分(I)」の「メッセージ ボックス」のフォントのサイズ14を使用。フォントを変更したい場合は「rule f」でフォント選択。
2012.02.23
- 日本語入力 (機能追加)
- 擬似石火こと雪花入力方式に仮対応。見た目はSKKっぽいけど中身は液体金属。自分は人間だと思い込み何も知らず平穏に暮らしていたSKKFEPに訪れる転機。
- 接頭辞変換直後のキャンセルで記号が残らないよう仕様変更。この挙動はSKK10とは異なるが、こちらのほうが自然であるという信念からあえて互換性を外す。外すったら外す。
- 子音確定の挙動をMS-IME側に近づけた。これによりSKKではモード切り替えが不可避だったふたば系ネットスラング「うn」の出力が可能となる。MS-IME同様、直後に疑問符など別の文字を続ける場合はこまめな確定操作が必要。これもSKK10と異なる挙動だが試験的に導入。
2012.02.24
- 日本語入力 (機能追加)
- 未確定の子音を残したまま変換を行なった場合は子音の評価を遅延するよう改良。SandS操作字にスペースを早目に操作した場合に発生しやすい操作の前後逆転時に対応。
- 送りあり変換途中でローマ字かな変換が完了していない状態で変換しようとした場合(いわゆるSKK10で「空の送り仮名で漢字を登録しようとしています」と出て操作がロックされる状況)、SKK同様に操作をロックするよう改良。
2012.02.25
- 日本語入力 (安定度向上)
- 送りがな入力中の子音と通常の入力中の子音の表示が区別されるよう改良。
- 変換中に遅延評価用の子音が残っている場合に状態を提示するよう改良。
- 2文字以上のローマ字による送りがな入力中に1回目のBS押下の時点で送りがな入力状態が解除されてしまう仕様を変更し、完全に送りがなを削除した時に解除するよう変更。ちなみにこの状況でのBSの挙動はSKKと互換性がない。SKKの動きは直感的ではないため、あえてここは互換性を切ってある。斬って斬って斬りまくる。
- 子音確定後に送りがな変換を行ないキャンセルした場合に子音の再評価が行なわれないバグを修正。
- 直接確定による文字入力(数字等)が雪花で処理されていなかったバグを修正。
- 再帰登録時にスタックに無駄な子音情報を積まないよう処理を最適化。
- 雪花関連処理と子音遅延評価関連処理を分離。(内部動作のみで操作上は変化なし)
- 設定補助
- rule p系を変更して使っていた場合は再設定が必要です。
2012.02.25
- 日本語入力 (機能追加)
- β0+i初版から試験中だったローマ字かな変換のUNICODE拡張ルールを標準設定に統合。
- 順次打鍵操作による送りがな指定を標準設定に統合。
- 送りがな指定操作回りの処理順序を修正。既に送りがなが存在する場合は送りがな入力と通常入力の切り替えを行なうよう改良。遅延評価用の子音を使って送りがな変換が行なえるようになった。送りがなが存在しない場合、二回連続で入力すると対象の文字そのものを入力できるよう改良。
- 順次打鍵操作中であることを画面に反映するよう改良。BSによる状態解除操作を追加。
- 順次打鍵操作の後のLの操作は誤操作と判断して無視するよう改良。
- 子音確定直後に直接入力系を行なうとBSで削除できないエンバグを修正。
- 遅延評価用の子音が残っている時に漢字変換してBSで暗黙の確定をした時の動きがいまひとつ直感的ではない。子音確定の遅延という意味では正しい動きなのだが動作変更すべきか悩み中。
- そろそろβ0+i初版とは見た目も内部動作も別物になってきた…はず。ほとんどの通常操作に関しては関操作感覚をα版から一切変えずに維持しているつもりだが、何か問題がある場合はぜひ連絡を。
2012.02.26
- 日本語入力 (安定度向上)
- ちょっと子音遅延評価についてはやりすぎたかもしれないが反省は絶対にしない。むしゃむしゃしてやった。反芻している。そもそも子音の遅延評価はSandSの押下タイミングやキー誤操作を極力回復するために導入した措置だったはずで、BSで修正される対象としては一番優先度が高い箇所になるはずなのだ。というわけで見た目通りに最優先で削除されるよう変更。
- 遅延評価対象の子音を残したまま次候補・前候補操作を繰り返していると表示色が通常の子音色ではなく送りがな色で表示されてしまうバグを修正。
- 順次打鍵操作状態で大文字小文字の区別がついていなかったバグを修正。Lとlの区別がついてないだけでいまひとつ実害はなかったけど修正。
- 順次打鍵中の誤操作判定はlのみを対象に変更。他のコマンドには影響が出ないよう変更。
- 通常編集から英語編集モードに移行後文字入力したとき、まれにエラーが発生するバグを修正。
- ・・・こちら外宇宙探査隊、・・・答願います・・・
2012.02.26
- 日本語入力 (安定度向上)
- そういえば2012.02.25版から定義ファイルの内容が変わった(しかしフォーマットは従来通りなのでデフォルト設定には切り替わらない)ため従来版でルール設定していた人が新機能を有効にするためには定義ファイルの再登録が必要。
- コマンドプロンプト(というかconhost.exe)でコンポジションの残像が発生する(というか実体が残る)バグを修正。キーボードモードの変更時にOnCompositionTerminatedを発生しないプロセスが存在するとか…それどこ情報よ…。MSのテキストサービスをベースとして作ったものはこの挙動を残している可能性が高い。とはいえ深刻な問題は起きないので問題なし(現に今までこの挙動が問題になったことなんて一度もなかったし)。
- 作業用BGM動画のタグに「もう作業しなくていいや」とか書いてあってわろた
2012.02.26
- 日本語入力 (安定度向上)
- 接頭辞変換中に母音のみまたは遅延評価の子音と組み合わせて暗黙の確定を行なった時、コンポジション内の送りがなに接頭辞変換用の記号が混ざる不具合を修正。これに加え記号1文字だけの時の特別扱いを廃止。
- UNICODE拡張ルールのアイヌ語鼻濁音「チェ」「トゥ」系が、カタカナ出力専用として記述されているにもかかわらずひらがなモード時にひらがなで出力されてしまう不具合を修正。なお、ひらがな側も出したい場合は文字をひらがなで記述することで以前と同じ動作とすることも可能。
- 遅延評価用の子音が単語登録を中断した時に再評価されない不具合を修正。
- 発覚した問題点は根性で全部潰した。これで問題がなければ(フラグ)このまま雪花導入後初の安定バージョンとする予定。
2012.02.27
- 日本語入力 (機能追加)
- 単語削除操作からのキャンセルで直前の変換状態に戻らないのはSKKと操作感覚が違いすぎて気に入らなかったため、SKKの挙動と同じ動作となるよう変更。さらに、β0の頃のプログラムサイズ縮小の影響で削除時の情報提示方法はいまいちだったのではないか…とずっと思っていたので実際に直してみたら(コンポジション側の表示が変化しないようにして外部領域に読み/単語/アノテーション/削除確認の順に全て表示するようにしてみたら)なんだかひどく冗長に感じるので結局元の表示に戻すことにした。シンプルな表示スタイルに慣れすぎてしまって戻れなくなってしまった。
2012.03.03
- 日本語入力 (機能追加)
- 我輩はSKKFEPである。GUIはまだない。ワレワレ ハ ALL YOUR BASE ARE BELONG TO GUIェ…
- てなわけで(?)謎の新基軸GUIツクール(仮)、爆誕。設定ファイルを書いた人によって未来(GUI)が変わる。SQ4の「カジュアルモードがあった方が、安心してノーマルの難易度を上げられる」という本気な発想に魂を揺さぶられて実装されたカジュアル設定方式となる。これで設定を大幅に単純化…したとでも思ったか?クックック…馬鹿め!残像だ。闇のSKKFEPの裏設定の難易度を光速まで加速するための第一歩。今までの設定ファイル?窓から投げ捨てろ!カジカジ設定の0と1を書き換えるツールを自作せよ!今日から君もG・U・I!G・U・I!――てな感じの他力本願寺で南無三!五七三!夜露死苦!ビキィ!?
- ついでに特殊キー判定も追加。つかこっちが主役のはずだったけど残念だったな!残像だ。ちなみに特殊キー判定はローマ字かな変換シーケンスの途中だろうがお構いなしにホイホイ組み込めてしまうという実は相当に強力な仕組みで当初からずっと実現したかった構想の1つだったりするんだけどざんねん!残像ちゃんでした。…真面目に書いとくと、ローマ字かな変換のフリーダムさに関して『だけ』はskkimeをマッハで追い越したと思ってます。「ね、簡単でしょう?」とか言いながらファンクションキー全部にSandSとかSticky Shiftを割り当てたりできます。GUIとかないけどな。難解すぎてわけわかんないけどな。いいじゃねーかよぅたまにはかませ犬にだって虚勢を張らせてくれよぅ…えぐっえぐっ
- ALTキー関連に機能割り当てが一切できないのは
手抜き仕様です。SHIFTとCTRLだけでガンバレ!
- 特殊キー判定処理を追加。スクリプト言語風味のプリプロセス処理を追加。ホットキー割り当て機能追加。SandS割り当て機能追加。未定義のキーコードへの反応追加、確定時の子音優先選択追加、子音確定有効無効機能追加、などなど今までハードコーディングとなっていた箇所の設定変更機能を追加。追加。追加。破ァ!
- …てな具合に今までの設定ファイルとの互換性は一見ありそうでまるでないので過去の設定ファイルは一切使えません。AZIKなどの設定ファイルはこれから少しづつ修正していきます。
- 他にも他にもミサワはミサワはシフトJISしか文字が扱えない環境下でも設定ファイルを正確にやりとりできるように改良してみたり!(ドヤ顔モーフィングしながら)…でもさ、いまどきSJISしか扱えない環境なんてあるの?…いや…ほらまぁ…ワンチップMCU…とか?(ドヤ顔モーフィング途中のまま毛布に包まって寝てしまう)
2012.03.04
- 日本語入力 (機能追加)
- 色設定のレジストリ取得に対応。
- 全角ベクタのレジストリ取得に対応。
- まだレジストリの生成処理がないためよほどのバイナリアンでもない限り設定変更はできないけど、GUIとの連携で必要となる基本処理はこれでほぼ完成。
- 書き忘れていたけど20120303版からSandSのデフォルト設定を「日本語入力中のみ有効」に変更してある。日本語入力を必要としないアプリケーションで相性問題が起きることを防ぎ、アプリ個別設定に辿りつく前に「使えないプログラム」と早合点されないようにして利用者の間口を広げるのが狙い。
- 書き忘れていたけど20120303版からテキストサービスCOMの初期化タイミングをActivate後に変更しコンストラクタ軽量化の試験中。
- 完全改行設定の時、文字数0の特殊な候補を確定した時にキーイベントがアプリ側に伝わらず吸い取られてしまう(かなりどうでもいい)バグを修正。
2012.03.05
- 日本語入力 (安定度向上)
- 外部領域の背景色がシステムカラー固定で色設定を変更した際に見栄えが悪かった問題を修正。外部領域の標準背景色(8番)で塗り潰すように変更。
- 伝説の戦(中略)カラーサンプルを作成。
2012.03.07
- 辞書管理 (機能追加)
- ユーザ辞書に単語の利用順序を正確に保存するよう改良。ユーザ辞書の情報量がようやくSKKに追いついた。初代Playstation風のO(1)ソートを使い、カネは人の命よりも重い8ビットMCUにも優しい作りとしたので多い日も安心。こんだけ十分な速度が出るなら遅延時間を取らずに毎回即座に保存しても何も問題ないんじゃね?否ァ!ストレージのスタンバイ時間を増やして電池寿命を数マイクロ秒でも伸ばせる可能性があるなら何でもやったるァ!あ、BSOD(ry
- 内部処理の安定度を検証するため、この版では作業用RAMサイズをあえて4KBまで狭めているので、人間には知覚できない程度の低速動作となっています。PC向け最終版ではサイズを数十〜数千倍してさらに高速化するかも(むしろL2を汚さないので今の版のほうが速いかも…)。サイズを数万倍しても痛くも痒くもないとは最高の熱損失だとは思わんかね。あっはっは、見ろ!メモリがゴミのようだ!メモリが、メモリガー!
- 今回の版は機能上の違いは一切ありません。安定度を求める人は一つ前の安定版を使ってください。お待たせようこそ皆さん。これはただの技術検証用の試作です。利用前に必ずユーザ辞書のバックアップを取ってから使ってください。いのちきけん!
- 辞書マージ時(同一の読みの追加時)に無駄なメモリ転送が発生しないよう改良。
2012.03.09
- 日本語入力 (安定度向上)
- AZIK等の拡張ローマ字かな変換で使用する子音置換ルールが正常に動作していなかったバグを修正。「Ko+」「KoQ」「KoNq」などが正常に動作するようになったはず。もしかしてこのバグ、当初からずっと抱えてたのかも。
- 辞書管理 (機能追加)
- メモリ確保回数若干増加を犠牲にメモリ消費量を平均24%削減。ROM化用データの場合はもっと刻むことで理論上ほぼ隙間なく詰められるはず。
2012.03.12
- 辞書管理 (機能追加)
- ねんがんの ほかんきのうをてにいれたぞ!
- な なにをする きさまらー!
- SKK10の補完では「個人辞書だけなのは、共有辞書では先頭の文字を共通にする見出し語が多すぎて、望みの補完が行える確率が低い」という理由によって個人辞書のみが対象となっているらしいのだが、果たしてこれは本当なのだろうか…?
否!SKKを疑え!
- というわけでSKKFEPでは辞書の全領域を補完対象にした。絶対にこっちのほうが便利なはずなんだ!己の信念を貫き通してロケットで突き抜けろ!…今どきの携帯電話ですらROMの全領域を見て補完してくれる時代なんだし。え?予測変換?音声認識?ボク子供だからよくわかんないハーイチャーン(幼児退行)
- それにしても、こういう補完処理を入れるとなると外部サーバをあとで結合するとき苦労しそう。ううん、知らないけど絶対そう
2012.03.17
- 日本語入力 (機能追加)
- オレは高校生探偵S.KK
- 幼馴染で同級生の藍澤光と遊園地に遊びに行って(実写)
- 黒ずくめの男の怪しげな取引現場を目撃した!
- 取引を見るのに夢中になっていたオレは、
- 背後から近付いて来る、もう一人の仲間に気付かなかった!
- オレはその男に毒薬を飲まされ、気がついたら…
- 実行ファイルが 肥大化してしまった――!?
- (バタン!)第3.17話 自動推定事件
- 警告!警告!例によって機能検証版なのでまともに動きません。警告!警告!
- 自動推定機能の技術検証版。入力途中の段階で
犯人最終候補が推定できちゃった場合は外部領域に赤で表示される。たった一つの真実見抜く、見た目は大人、頭脳は子供!その名は瞑探偵シンイ(検閲)脳内で「あれれー?ここ候補が1つしかないよー?(CV.高山みなみ)」と補完するとなおよし。
- しかしここで新たな悲劇が!なんと補完候補は二次元の彼方の存在だったのだ。電子の妖精なので触れられません。左手は添えるだけ。究極の寸止めプレイに さ あ 、 ふ る え る が い い !
- …ごめ時間なくてテキトー版作ったった。まだ基本機能の一部しかできてないんよ。全国大会が終わるまで待て!次号!
- 擬似カーソル表示とか登録中の全段同時表示とかいろいろ追加したような気がするけど忘れた。ア゛ー
- IE/MozillaやDOSプロンプトで補完対象語が見づらいので伝説の戦(中略)カラーサンプルの設定を変更。
- あんまりにも寸止めすぎたのでちょっと反省してCTRL+N(補完+変換)だけハードコーディングで実装。
2012.03.19
- かゆ う
2012.03.20
- うぉォン
2012.03.22
- 前後
2012.03.26
- 『みんなSKKFEPを使ってくれるのか…』
- 「ギャハハハハハ」『えっ』
- 「ウ・ソ・だ・よ」
- 「SKKFEPなんていらないよ」
- 「いらないいらない」
- 「帰って漢直やろーっ」
- 『おぉぃ待ってくれ ア゛―――』
- 日本語入力 (機能追加)
- TABキーによる補完処理を実装。ついに、ようやく、SKK10の操作感覚に追いついた。長い戦いだった。
- SKKの世界を変える第一歩になるはずだったのに存在感が薄すぎた雪花機能の続編をこっそり実装。日本語編集中に単語を自動判定して入力状態を勝手に変更しちゃう、ちょっとドジっ子なムードメーカー。こっそりついでに編集中のLキーの挙動に関する互換性が一部失なわれた気がするが見なかったことにしよう。もちろん設定で1を0にするだけで完全にSKKと互換の動作に戻せるけど、この機能に体が慣れてしまったらこっちじゃないと相当使いにくく感じるはず。そしてもう後に引けないところまで来てしまった己の運命を悟り、独断と偏見でデフォ動作を根本から変更して「あばよSKK!よろしくSekka!」…みたいな展開にしたかったけど、ギリギリのところでなんとか踏みとどまるのであった。そう、少しづつでいい、ゆっくりと蝕むがいいさ…フフ…
- などと悪の組織を気取りつつ数値変換機能や外部サーバ対応をまるっとスルーする気満々なこの男、ノリノリである。
- ローマ字かな変換処理を単純化しつつ設定自由度を『若干』向上。反動で定義ファイルの互換性が失われたあげく記述が『若干』複雑化しちゃった気がするけど見なかったことにしよう。まだまだ行けそうな道筋が見えているので、そのうちまた定義ファイルの互換性が失われる可能性あり。
- 補完周りのバグを掃討後、安定したら次バージョンへ移行予定。バージョン番号が日付だの虚数だのでかなりいい加減だが主要機能の開発状況のふいんき(略)的に今はバージョン3.0RC2くらいのレベルなのかもしれない。主要機能以外は壊滅的でも人類最強なので気にしない。それならちゃんとバージョンを付けろ?だが断る!
- 辞書管理 (安定度向上)
- 補完範囲を正常に認識しないバグを修正。
- 送りありの接尾辞を送りなしと認識するバグを修正。
- skk-henkan-okuri-strictlyとその他不思議機能の技術検証コードを追加(フロントエンド側は未対応)。プロセス間通信フォーマット変更につき、インストール後の再起動推奨。
2012.03.28
- 日本語入力 (安定度向上)
- バッファが消えても英単語の認識中と間違えてしまうバグを修正。単語登録を挟むと忘れっぽくなったりする問題が残ってるけどドジっこ仕様として残しておく。
- 順次打鍵操作時に補完候補が正常に表示されないバグを修正。
2012.04.01
- サクラ サク
- 設定補助 (隠し機能)
- 標準の16色アイコンはダセェと思ってるんじゃないですか?アイコンを変えるなんてこと、無理だって諦めてるんじゃないですか?駄目だ駄目だ!諦めちゃだめだ!できる!できる!絶対にできるんだから!
- というわけで(?)、アイコンデータさえ用意すればどんなものでも(サンプルアイコンのように32ビットの透明色つきでもOK!)いつでも自由に変えられるという安心感の演出と、テキスト入力プロセッサ側のモジュールを一切書き換える必要がないという、ただのOSの設定変更の盲点を突くというローテク感溢れる隠し機能ネタでした。
- 名前も変えられるので"Microsoft IME"(空白を含む場合はダブルクォートで囲めばOK!)とかに簡単に偽装できちゃうけどダメ!絶対!
2012.04.03
- インストーラ (安定度向上)
- 爆裂言語VBScriptから暗黒言語JScriptに焼き直し。辞書のダウンロード時にIEのプロキシ設定に従うよう改良。イントラネットなどの環境でインストールする際は事前にIEで外部サイトが見れる状態になっているか確認してから使ってください。
2012.04.05
- 「インストーラがGUI対応するんですか!」
- 「もう操作で困らないんですか!」
- 「やった──!」
- 「…ただのIEじゃないすか!」
- 「やだ───!」
- インストーラ (斜め上)
- 祝!GUI対応!喋る!
- 「やめて!私にActiveXするつもりでしょう?IE6みたいに」激しく抵抗したものの、JScriptの卑劣な策略によってマインドコントロールされ従順になっちゃったIE8の運命やいかに!……てな感じで、インストーラは今までの常識を軽く外れた動作をするよう、謎の技術を全力全開で投入してゼロから作ったものなので、もしかすると動かない環境があるかもしれません。むしろ動いてしまうほうが奇跡。動いた、動かなかった等報告もらえると助かります。
2012.04.07
- 日本語入力 (機能追加)
- β0+i最終版への道は遠い
- 小文字cの直後の記号を直接入力する「記号拡張」設定を追加。変換開始指定の亜種としても利用可能。lでモード変更せずに1文字だけ半角文字を入れたいという場面に役立つはず。もちろん設定オフ可能。
- 日本語編集中に半角記号をそのまま入力できるようになったことに伴い、「スラッシュ」設定と「ピリオド」設定のデフォルト動作の変更を決断。これにより、SKK10のabbrevモードをlatinの一時入力として使っていた利用者にとっては操作感が変化する可能性がある。設定を戻す場合は設定ファイル「スラッシュ」「ピリオド」の行の値を2にすれば従来通りの動作となる。
- OS依存処理の分離が不十分だった箇所を修正。コンポジションに文字が残っていた時の判定処理を簡略化……ん!?まちがったかな……こまけぇこたぁ(ry
- シフトキー判定と独立した送りがな入力判定を追加。通常ルールでは使わないコマンドのため少々難解だがAZIKなどの特殊用途での利用のみを想定しているのでこれでいいや。
- まだまだ日本語入力時の思考と操作、理想と現実が剥離しすぎている件について。雪花動作はあらゆる辞書が大量にあってこそ輝くはずなのだが、カタカナ語辞書を標準で持たないSKKとは相性が悪すぎる。例えば未学習状態でカタカナ語「フォント」を入力するため"Fontoq"とタイプしようとすると、初期状態では「ふぉん」で開始する日本語側の単語(カタカナ語)が存在しないので4文字目のtを入力した時点でドジっこ判定が発動し英語モードになってしまう(なお、同様の問題は「オート」「ガンガン」などの他の単語でも頻発する。他にも「ウィザード」なんてのも。報告dクス!)。「フォント」のカタカナを英語"font"でこれまで思考・入力していた人たちにとってはこの動作は理想的とも言えるわけだが、そうでない使いかたをしていた人にとっては悪夢以外の何者でもない。しかし!これは実は深刻な問題というわけでもなくて、この手の動作を見つけたら即カタカナ語(この場合は「ふぉんと /フォント/」を登録して辞書を強化していくことで簡単に解決する……解決はするのだが……。初心者にカタカナ語登録を毎回やれなんて言うのはかなり「強いられているんだ!」感が漂うのでそれ以上いけない。一刻も早くカタカナ語辞書の扱いについて考えねばならない。「一方ロシアは邪魔な機能をオフにした。」的展開だけはジッチャンの名にかけて回避したい。
- 問題とその背後関係が見えてきた。SKKの名に恥じぬ程度にシンプルな機構で、面倒な初期設定を一切必要とせず、これらの問題全てを一撃で解決するには一体どうすれば……どうすればいいんだ……。次回、「また仕様変更?」太正桜に浪漫の嵐!
- 辞書管理 (機能追加)
- 複数辞書読み込み機能を追加。読み込み順序はファイルシステムに依存するという
手抜き前衛的手法で大胆に解決。これが勝利の鍵だ。
2012.04.08
- 日本語入力 (機能追加)
- あるぇー?(・3・)追加辞書なしでもなんだか解決できちゃった。原理は単純で「変身をあと2回も俺は残している…その意味がわかるな?」方式。もっと気合×3の学習ベースでがんばろうと意気込んでいたけどあっさり単純シンプルすぎる方法で動いちゃってワロタ
- これまでの雪花では1回入力状態を切り替えたらそれっきりだったが、今回はそこからあと1回、変身のチャンスがある。これで「Fontoq」「Ganganq」「Wiza-doq」は解決。ほとんどの英単語は子音パターンが日本語と異なるのでこの条件でだいたい解決する(第一条件)。よし、解決!
- あとは「Autoq」「Fantaq」のように最後の文字が変換コマンドの時に即変換するように改良。第一条件をすり抜けた単語であっても、その後にqを含むものは殆どないためここで99%のケースを解決できる(第二条件)。ちょっと動作中の見た目が泥臭いのが難点だが、これは「アウト」「ファンタ」のカタカナを登録するかカタカナ辞書を自動生成してやれば(twitterに書いたスクリプトを使うべし)SKK10と寸分違わぬ操作感覚になる。よし、解決!
- しかしこの二つの条件をすり抜けるケースもわずかに存在する。簡単に思いつくものだと「Dominiq」「Metaseq」「Veroniq」など。これらはカタカナ語辞書がないと解決できない。しかしカタカナ3文字だけで寸止めして入力したいなんて場面は実運用では皆無だし、もしどうしても必要な時は上記3パターンを手動で辞書登録するだけで解決できる。よし、解決!
- というわけでインストーラの複数辞書対応をしようと思っていたが必要なかった。
なんかもう面倒だよパトラッシュ今はまだその時ではない。明日から本気出す。
2012.04.09
- インストーラ (安定度向上)
- 辞書のダウンロード時に漢字コードと改行を変更しメモ帳で直接編集できる形式で保存するように改良。
- インストール時に複数辞書の簡易チェックを追加。辞書フォルダを開くボタンを追加。ぽちっとな。
- 日本語入力 (安定度向上)
- 子音nで終了するカタカナ語(「Amazonq」など)が正常に出力されないエンバグを修正。
2012.04.11
- 日本語入力 (安定度向上)
- 動的補完を無効化できるよう改良。
- アルファベット大文字小文字変換操作を入れてみたけどなんつーかビミョー。入力したものを後から修正するというのはSKK操作中の思考の流れと符合しない。次の版で廃止の時間だゴルァ。
2012.04.15
- 日本語入力 (機能削減)
- インストーラ (安定度向上)
- Vista以降のネットワークドライブ上(管理者権限を持つプロセスから見えないドライブ上)でも最低限インストール・アンインストール操作ができるよう改良。初期のバッチファイル版からようやく一歩前進。
- 辞書管理 (機能追加)
- lisp命令がきちんと除外できていなかったバグを修正。
- 複雑検索のための技術検証コードを追加(フロントエンド側は未対応)。プロセス間通信フォーマットは上位互換。
2012.04.21
- 設定補助 (機能追加)
- テーブルの最適化をコードサイズを増やさない程度に中途半端に実装。最適化実装に合わせて定義ファイル内容を微調整。標準設定の出力サイズを14バイト削減。本気で実装するとさらに20バイトくらい削減できそうだがサイズがうなぎ登りなので断念。
- 日本語入力 (安定性向上)
- 積みゲー遊びまくりでヘヴン状……通信フォーマット変更に対応。
- 辞書管理 (安定性向上)
- 補完時に欲張りすぎてバッファが溢れて通信バッファ内で文字の上書きが発生する可能性があるバグを修正。発生してもTABを100回以上叩かないと発覚せず、文字化けだけの実害の少ない動作だったため
コードサイズ増加するし対応めんどいボスキャラっぽく「どこまでやれるか見てみるとしようぞ」とあえて見逃していたが、終盤で死亡フラグまっしぐらの予感しかしないので蛹のうちに対処。バッファ最大利用効率を1割ほど落とし、バッファ溢れが根本的に発生しないよう修正。安全度が上がったので補完時のランキング最大サイズを拡張。でもってコードサイズ増減なし。プロセス間通信フォーマットがわずかに変更されたためインストール後になるべく再起動推奨。再起動なしでもそれなりに動くけど保証外ってことで。
2012.04.22
- 設定補助 (安定性向上)
- 画面サイズが取得できなかった時にウィンドウが画面外に表示される不具合を修正。
2012.05.03
- 日本語入力 (機能追加)
- 〜伝説から変態へ〜
- 蝶はその美しい羽根を得るために幼虫から蛹を経て二回も変身するという。そう……それは完全変態。だからSKKFEPの自動切替による変身も二回だけ……なんて決めつけたのは誰だァ!変態がたったの二回じゃ使えない、使いにくい!料理長を呼べ!回数を増やせ!この変態プログラムを作ったのは誰だぁ!……ぁ俺か!俺、参上!というわけで上限二回の制限を撤廃。変態は……億・千・万!まだだ……もっと、もっとだ!変態は……無限大ッ!俺が、俺たちが……変態FOREVER城伝説!フォォォォォォォ
- 「教授!!」「これはいったい!?」
- 『第三の補完だよ』
- というわけで二回切り替わった程度で弾切れになるとか、子音が確定するまで補完が動かないとか……なんつーかこー、
パンツズボンをはき忘れたような齒痒さというか違和感がどうも拭えず納得いかなかったので処理を全部書き直し。はいてない?それは私のお稲荷さんだ。
- 操作と表示スタイルはSKKとSekkaを足し合わせて割りそこなったような不思議なユーザインタフェースとなっている。内部は大幅に書き換えたけど今までの操作方法はほぼ変更なし。入力状態の表示情報を増やした版も試作してみたけど、一度に目に入る情報が多過ぎると認識に時間がかかってかえって操作しづらいと感じたため、最小限の表示内容としている。下線赤の時に英語が表示されていたら、その裏には日本語が存在していると考えるとよい。逆もまた然り。見えているものだけが真実ではない。SKKでは変換の主導権は常に人が握っている。そのことを、どうか諸君らも思い出していただきたい。つまり……我々がその気になれば日本語側も英語側も自由に選んで変換できる……ということ……!
- 一番大きな違いとして、操作ミスで間違った文字を入れてしまってモードが変わった場合でも、BSを押すだけで文字削除だけでなく表示状態すらも一手前に戻せるのが一番の変態…改善点かもしれない。
- SKKでローマ字逆変換の処理を実装するくらいならGoogleに魂を売り渡して人間電池になったほうがましという方針で作っているので日本語の候補をTAB補完した時に英語側の探索が日本語側の補完結果とかけ離れた(入力に忠実な)不思議な踊りが見られることがありますが仕様です。べっ別にバグってるんじゃないんだからっ(赤面)
- 第三世代補完で補完精度がさらに向上。撥音でローマ字の後続が明らかに存在する場合、さらに1手先の文字まで探索することで人間が入力しようとしている内容をより的確に推定する。補完状態への遷移は子音入力中であってもお構いなしに変更可能。補完のランク付けは日本語と英語を同時に評価。
例えば「Mir」と入力した場合の動作は以下の通り。
| 世代 | 探索空間 | 補完結果 |
| 第一世代 | み | みせ(店) みっか(三日) みらい(未来) |
| 第二世代 | み[ら-ろ] みっ mir | みっか(三日) mirror(ミラー) みらい(未来) |
| 第三世代 | み[ら-ろ] みっ[ら-ろ] mir | mirror(ミラー) みらい(未来) |
- 第四世代以降はローマ字かな変換の状態遷移の頻度を集計してwuとかyiみたいな利用率の低い候補を除外してみたり、POBox的な未来予測エンジンを乗っけてみたりして(全部冗談だってばさ)、ますますSKKとは違うコムギコカナニカを目指して光の速さで明後日へダッシュだ!SKKって何だ?ためらわないこ・と・さ。Sekkaを見た時に妄想したSKKの未来形の基礎部分を実現できたので、僕、満足!
- 警告: これはβ0+2iの技術検証用の先行試作版です。安定度を求める人は一つ前の安定版を使ってください。プロセスが突然落ちても泣かない。
2012.05.05
- 日本語入力 (安定性向上)
- 子音確定コマンドが何も出力しないエンバグ(過剰全角=1や雑草入力の誤作動を引き起こしていた)を修正。
- 過剰全角=1のときとことん全角化しすぎてしまって読点や句読点まで記号側を入力してしまうエンバグを修正。ルール定義ファイルを利用していた場合は更新が必要です。
- 英語入力時の予測変換が正常に動作しないエンバグを修正。
- ローマ字かな変換ルールの多重検索が正常に機能しない(AZIKなどのような複雑な木構造のとき発現)エンバグを修正。
- 文字がどんどん溜まる現象はバッファ上限越えないし面白いから仕様にして放置(キリッ
- 接辞変換の補完結果を英語と誤認識するエンバグを修正。
- 完全に英語と判定された状態(赤下線の英語表示中)で確定した際に日本語が出力されてしまうバグを修正。
2012.05.06
- 日本語入力 (安定性向上)
2012.05.08
- 日本語入力 (安定性向上)
- 英単語を無理矢理日本語側で変換→キャンセルした時、変換直前の状態に戻らないエンバグを修正。
- 内部処理を大幅に書き直してサイズ軽量化を試みるも挫折。くっ…
2012.05.09
- 日本語入力 (安定性向上)
- 編集内容が空の時に推定変換すると動作停止するバグを修正。
- ローマ字かな変換のルールに半角英数のみの文字を定義し入力した際、補完結果を正常に表示できないバグを修正。
2012.05.15
- 辞書管理 (機能追加)
- プロセス間通信フォーマットを変えずにフロントエンド側から受け取るパラメータの情報量が実質1ビットだったのを8ビットに増強。これで「この単語や送りがなは学習済みか」みたいなクエリも理論的には可能になった。未対応だけど。
- 日本語入力 (機能追加)
- henkan-okuri-strictly相当の処理を実装。送りがなを含んだ語の検索時の挙動を以下の3種類から選択可能とした。標準設定以外の動作は検索範囲に制限が発生するため、単語登録時は標準動作に自動的にフォールバックする。この動作はDDSKKのhenkan-okuri-strictlyのマニュアルにある動作サンプルと同等の動きとなるはず。多少は違うかもしれないけどこの動きが一番自然で使いやすいはず。
- モード0. (henkan-strict-okuri-precedence t)で(henkan-okuri-strictly nil) これまでのSKKFEPのデフォ動作
- モード2. (henkan-strict-okuri-precedence t)で(henkan-okuri-strictly t) SKK10でhenkan-okuri-strictlyを設定した時に相当
- モード1. (henkan-strict-okuri-precedence t)でユーザ辞書の単語のみ(henkan-okuri-strictly t) AquaSKKのデフォルト動作がこれと同じと推測。(AquaSKKがhenkan-okuri-strictlyにきちんと対応したら消す)
- つーかhenkan-strict-okuri-precedenceとhenkan-okuri-strictly、ストリクトなんちゃらで紛らわしすぎ。ずっと感じていた違和感の原因がわかってようやく断言できる。AquaSKKの、メイン辞書側とユーザ辞書側とで挙動が変わるという実装は不自然だと思う。しかしそれでも操作感覚の再現には最大限挑戦したい。よって全て実装する。そ、そうだ!どうせこれはフラグ1ビット比較する処理を追加するだけだから。512バイトのブロック内にコードサイズが収まる限り何の影響もないし。あっ!そうだついでだから、単語登録中のフォールバック動作も実装しちゃおう。たまたま、たまたまついでにコーディングしただけ!なんだかんだでSKKの設計ミス云々と文句を言いまくりだった原作のCTRL+Jの挙動もきっちり完全互換のコードをわざわざ実装したのだってたまたまだし。どれも判定一箇所だけなんだし。こ、これはコードサイズが余ってたからちょっと実装してみただけで、べっべつにMacintoshのことなんか好きじゃないんだからねっ(赤面)うおぉツン期に二言なし!全部やったるぁぁぁぁ!…などと0.03秒くらいで思いついたツンデレネタを思考が追いつく前に書ききってしまえるのがSKKの最強なところ。だいたいコードを書くより操作のドキュメントを書くほうが何倍も面倒で敷居が高いのが一番の問題。丁寧?推敲?反省?退かぬ!媚びぬ!省みぬ!
- 送りがなの先頭を「n+母音以外」で入力した後BSで削除した時、送りがな表示がみさくら語化してしまうバグを修正。β0+i初期の頃から存在していたものと思われる。文字化けや浜の真砂は尽きるとも世にみさくらの種は尽きまじ――β0時代はMS Office絡みで散々発生したみさくら語バグ。人類との果てしなき戦いに終わりはあるのか。
謝辞
本ソフトウェアの開発にさまざまな形でご協力いただいた皆様に感謝します。
- h.takeda様
- じじ様
- 仁義偉王様
- Corvus Solis様
- れづ様
- bird rhea様
- tadakiti様
- kazy111様
- 三木里 秀予様
- HicoHoriuchi様
開発当初、完成度が極端に低かった本作を、辞書の消失やアプリケーションの異常停止などのバグをものともせずに使いこなし、ソフトウェアの設計や理念に関する有意義な意見をくださった皆様、本作を無事公開することができたのは、ひとえに皆様のご協力のおかげです。ありがとうございました。
そして、無限の可能性を秘めた日本語入力方式であるSKKに興味を持っていただき、ここまで読んでくださった貴方に感謝します。
俺達の戦いはこれからだ!
ありがとうございました!
co氏の次回作にご期待ください
最後に
本ソフトウェアは無保証です。配布制限は特にありません。
このソフトを使ってみた感想や、SKKでMSGoogleジャストシステムを打ち砕く斬新なビジネスプランの提案などがあればぜひお知らせください。
また、うまく文字が入力できないとか、光が眩しくて肝心な部分がよく見えないといった深刻な問題点に気づいた時はお気軽にご連絡ください。「動かしてみた」のようなツイートを送っていただけるだけでもとても励みになります。
co (mail twitter)
竹輪
例によって「以下書き途中」
上の文章に紛れ込ませる予定のネタなど
TODO
- 記号(+ とか ; とか / とか)のキーを押下したら半角英数モードにする機能
- カタカナ変換した単語を補助辞書に自動的に記録する程度の機能
- 辞書登録モードになった場合、ユーザの注意を引き付けるため音や画面フラッシュ等で通知するオプション
- 送りがなの決定方式の改良または登録時に不要文字を自動で削除。母音以外でもローマ字かな変換ルールの区切りによって変換開始となり、ユーザ辞書に意味不明な送りがなが追加される場面を抑制
- エアリス殺しましょう ティファ出しましょう → ソーシャルIME
- 変換途中の子音がコンポジションの残っている状態でアプリケーションの(マウスクリック等のキー操作を伴わない)カーソル移動を行なった場合に、変換がキャンセルされず、変換中のまま子音表示ごとカーソルが移動する(その後確定すると新しいカーソル位置に文字が入る)仕様を修正
- TSF/TIP以外へのSandS入力で生じる相性問題(Emacs20+SKK10.62a改の操作時など)の解明
- かなロック状態の認識、かなや親指シフトでのSKK動作の考察
- corrupted-consonantの設定項目を実装
- 変換不可能な子音の確定 - 無効 / 確定・文字追加時に有効(デフォルト) / 常に有効
- 常に有効、にすると、Googleのマッチ時にカーソル上下などをした瞬間、子音が確定されてしまうので使いづらいと思われる
実装状況やSKKIME 1.5aとの比較
利点
- 完全新規設計によるコンパクト化
- XP/Vista共通バイナリ
- ドライバやキーボードフックが一切不要の、変換モードと連動したSandS操作(現在は強制オンのみ)
- corrupted-consonant(雑草やwktk等をモード遷移なしで入力)や変換ルール改良による自然かつモード切り替え不要の打鍵数削減
- 送りがな候補の変換キャンセル時の挙動をより自然に(「買っちゃ」をキャンセルすると「か」になる)
- DLLインストール先の見直し (MSIMEと同様、Windows/IMEは辞書、Windows/System32/IMEにDLL)
- ユーザ辞書インストール先は従来通り
- レジストリに設定を書き込む必要なし。お試しインストールでレジストリが空でも標準設定で動作可能
欠点
- 猛烈に機能が貧弱 (lisp関数まわりは全滅、漢数字変換はスタンドアロンでは不可能など、各種便利機能はお察し下さい状態)
- 内部サーバプロセスの消費メモリが多い(skkime比で1.5倍程度。ただしディスクアクセスが一切不要で高速動作のメリットを持つ)
予定/ネタ (最終的に実装しないとしても面白そうなネタは残しておく)
日本語入力部
- プロセス名依存のモード設定表を用いてXKeymacsによる部分的な補助を不要にする (全てのアプリケーションに対して利用者の『IMEモード切り替え』という概念を完全になくし思考の中断を防ぐ)
- 漢字変換がまだできないので何とかしたい→学習処理以外は実装完了
- TAB候補のリアルタイム表示(ユーザ辞書だけでなく全ROMエントリを常に補完対象とする)
- デフォルト変換処理は外部プロセスではなくMSIMEのような方式で実装し、辞書の初期設定やプロセス常駐処理をなくし導入の敷居を下げる
- 設定GUIの簡略化
- FEPとTwitterクライアントの連動。例えばCTRL+Jを素早く二回入力した場合、候補表示ウィンドウにタイムラインが出るなんてのがいいかもしれない。この時直前に変換が行なわれた数語をもとにGoogleにqueryして超短周期ダイナミック広告なんて一発ネタもありか。
- アンチかなロック機能 → ようやくJISかなの入力方法判明
- 特殊かな配置やローマ字変換ルール(JISかなとか親指シフトとか花とかAZIKとか)との共存。つーか親指シフトにSKK用シフトキーが追加されたら無敵じゃね?どうせ半濁音なんて送りがなにほとんど使わないし親指ダブルシフト入力で送りがな変換とかどうよ?
- JISかな入力どうする…?FJ同時押しとか絶対デフォルトにしたくない。シフトキーは使えない(使いたくない)から所謂「SKKシフト」に変換キーを割り当てると仮定して、変換+あ,変換+SHIFT+っで「▽合tっ」になり、変換+あ,変換+か,゛で「▽上gが」みたいに動かすか。ここまでくると完全にSKKから逸脱した別の入力方式だは…。→ 順次打鍵シフトで生きろ!
- しかし、細かな設定が合わないと参加しづらいローマ字入力派と違い、JISかな入力ならキーバインドの設定なしでほぼ全ての人に通用するので、とにかくどんな形であれ入力できるようになれば、JISかな入力派のユーザのほぼ全員が参加できるようになるはず。たまにローマ字を試してみたくなるかもしんまい!
- でもローマ字逆変換処理を入れねばならないのは嫌すぎる…。だめだこいつはやくなんとかしないと(棒読み)
- 初級対応とJISかな入力は同時に入れる
- 特殊英数配置(DvorakとかColemakとか)との共存
- 石火方式との共存→30%
- ローマ字かな変換規則の途中に特殊キーを利用する設定(例えばZ,0とZ,SHIFT+0に異なる機能を割り当てる)→完了
- さらに解明が進んだらホットキー関連処理は全削除できるかも→たぶんできるけどIME無効(とユーザが思っている時)にIMEがバリバリ動いてしまう挙句コードが複雑になりそうなので挫折。
- 操作ロックに関する機能強化。状況表示機能。ユーザ辞書にない単語の削除には反応しないとか。
- ~/.skkfep ~/.skk-user SKK侵略計画
- Sekkaの曖昧検索 vs POBoxの曖昧検索
- 4078パーセクの隔絶
- GUIェ…
- 新規入力(過去60秒以上キー入力がない場合)かつ、未知の子音が連続した場合(wktkやwwwwなどのよく使う単語はユーザ辞書の特殊領域に持っておく)、自動的に半角英数モードに切り替える「自動コレジャナイ機能」
- 逆にローマ字っぽい入力だったら自動的に日本語モードに切り替える(石火そのもの)
- どちらもサポートするには数秒間キー入力を遅延させる必要あり。どうやってIME常時オンと共存するか?
- 辞書登録モードになった時に点滅や効果音によってモード遷移を認識しやすくする
- 辞書登録モードになった直後のx入力でキャンセル動作
- 辞書登録モードになった直後のq/l入力でカタカナ語を候補として表示する
- 辞書登録モードになった直後のq/l入力でカタカナ語を確定・登録する
- n文字以上の単語かつ候補が1つのみの場合は強制確定
- n文字以上の単語かつ候補が1つのみの場合は学習しない
- 辞書の特定の単語を変換候補から外すブラックリスト機能
辞書管理部
- 「英数字のみのエントリはユーザ辞書に記録しない」設定
- 「英数字のみのエントリは排除する」設定
- 「英数字のみのアノテーションは削除する」設定
SKKのユーザ辞書は冗長すぎるのだ。ROM辞書にある単語はROMとの差分だけ記録し、新規に登録した語や特殊な送りがなだけをまとめて簡単に一覧できる本当の意味での『個人設定』が必要。他の流派からSKKの門を叩いてまず拒絶反応が発生するのは恐らくこの膨大でメンテが困難なユーザ辞書ではなかろうか。長期間使うと送りがなにノイズがどんどん混ざっていってメンテする気が起きないくらいに危険な香りがするのもなんとかしたい。
ていうかユーザ辞書の送りあり部分の「ん」と「っ」で始まる箇所は2文字目以降の送りがな全削除でいいよね?ね?送りがななんて1文字で十分じゃねーか…強いられてるんだよ…ヒック…
- ユーザ辞書もTCP/IP経由でやりとり/emacs用ラッパー
- サーバから受け取った全角「/」は半角に直して処理するとか必要かもしれない。
- ほかにも括弧の半角・全角が両方あったりするので辞書読み込み時点でどちらかに統一しておくオプションとか。
自分がほとんど使ったことがない機能
有用そうなもの
関わりたくないもの
- skk-auto-okuri-process
- skk-henkan-okuri-strictly
- skk-process-okuri-early
- skk-jisyo-fix-order
- 小戯れた機能(括弧の対応とかauto-okuri-processとか)は絶対に実装しない。特にauto-okuriは論外。ローマ字変換の逆をやるなんてナンセンスにも程がある。鍛えろよ、辞書を。
- DDSKKとは相容れない部分が多すぎるのでアノテーション関連はかなり好き放題に実装されている。一度確定しないと編集できないなんてのはEmacsの思想でWindowsの日本語入力システムには向いてないし、アノテーションがユーザーかシステムかなんて複数レイヤの情報をなぜ区別する必要があるのか理解できない。ただでさえカオスなユーザ辞書に複数レイヤの情報を増やしてシンプルさを奪うだけで百害あって一理なし。
他にも機能が多すぎてあんまり考えたくない
設定補助部
数値変換や接頭辞・接尾辞変換をやりたくない理由。
1. 他のIMEにおいて解釈できない、しづらい。→送りがなと同様、バックエンドに数値情報も渡すことで解決できるはず。
2. 操作が直感的ではない(助数詞を入れた瞬間に反射的にスペースを押してしまう癖が抜けない、スペース以外で変換というのは追加訓練が必要)→助数詞の後の数字入力でキャンセル処理を行なうとか…?シンプルじゃなさすぎる…どうしよう。
本当は自分が使おうとしなかったというだけの話。それならコードサイズ制限解除された頃にでも実装してみたらいいんじゃね?
当初はホットキーの改造(CTRL+Jをホットキーにする)をベースに考えていたが、実は普通の制御だけで問題なく動くことが判明。現在はホットキー処理はMSサンプルとほぼ同等の動作となっている。
改行などのキーを上位に返す処理、当初はSendInputなしで作っていたが、よりによってFlash Playerプラグインでコンポジションの文字列が残る(悪夢のOfficeみさくら化現象に似ている)問題が発覚し没。仕方ないのでskkimeと同じ処理を行なっている。SendInputなしで動く良い案はないものか…。つーかEatしないって返してもEatされるしどうにもならん。
Q. どうしてSKKFEPの変換中の色が青と赤なのはなんでだぜ?
IMEにおける文字の色と性格の関連性
黒(茶系):お嬢様、清純
赤:底抜けに明るい、一途、男勝り
青:冷静で口数が少ない、ミステリアス
黄:ワガママ、ツンデレ
緑:馬鹿
ピンク:淫乱
青「違うわ!!赤は馬鹿なだけよ!!」
赤「青なんて暗くて陰険なだけじゃない!!」
赤青「「むぅぅぅぅぅぅぅぅぅぅぅぅぅぅ」」
メタルダー「待ちたまえ君たち」
キカイダー01「君が待ちたまえ」
仮面ライダーW「プ○キュアは俺一人でいい…」
「人は五分だ五分だと言うけれど、本当は七三くらいが丁度いい。ザ・センターマ「星条旗ビキニにむせび泣く男!スパイダーマッ」」
実のところあまり考えがあったわけではなく、宅急便のコワレモノシールを見てなんとなく真似してみた。床屋のマークみたいな色使いなら視線誘導や注意力喚起を促せるのでは?という狙いもある。でも一番使いどころが多いはずのブラウザで使いものにならないのでほとんど意味ナッシング。
- ニールセンの10項目
1. シンプルで自然な対話
2. ユーザの言葉を話す
3. ユーザの記憶負荷を最小にする
4. 一貫性を保つ
5. フィードバックを与える
6. 出口をあきらかにする
7. ショートカットを用意する
8. 適切なエラー・メッセージ
9. エラーを防ぐ
10. ヘルプとドキュメンテーション
- ユニバーサル・デザインの7原則
- シンプルで直感的な使用
- 公平である
- 気づきやすい情報
- エラーに対して頑健である
- 好みや努力に応じた調整ができる
- 身体的努力が少なくてよい
- アプローチと利用の空間
lispインタプリタ排除による機能不足はgoogle/twitter連携プラグインで補完予定。
ローマ字かな変換の快適さを追求するため、変換ルールを独自拡張。
- ひらがなモードで「12,345.00-1」と打っても「12、345。00ー1」とはならない。数字キー直後の区切り、小数点、マイナスはそのままキー入力される。元の文字を入れたい場合はCTRL+Jなどを挟む。
- 子音の連続をMS-IME風に出力する機能を塔載。「w」や「ktkr」等のネット向け慣用句を入力モード変更操作不要で入力可能とした。
- 単純に拡張すると送りがな変換操作と衝突が発生するため、通常入力時と単語変換時とで2種類の子音変換ルールを自動的に切り替えて対応。
- 送りがなの確定ルールは原作と微妙に異なる。操作ミスで意味不明な送りがなが確定されてしまう問題を原作より減らそうという試み。
- 変換中状態をSKKIMEの最大3種類から最大15種類(標準設定では14種類を使用)に拡張。「うわぁぁぁぁ」「ぶひぃぃぃぃ」などの口語における、あ行小文字の連続音を最小のキーストロークで入力可能としつつ、「ティアリング」などの小文字+母音の組み合わせで誤認識しないようルールを拡張。
- SKKIME1.5改相当のローマ字かな変換の自由度を持ち、SKKIME1.5改相当+上記拡張を含む変換ルールを1.3KBのROM化可能な(展開不要の)テーブルで実現。テーブルの定義ファイルは自由に変更可能。
辞書関連処理も完全独自設計。
- 全てのローカル辞書はオンメモリかつ極力省メモリになるよう処理。内蔵サーバ安定後は一切ディスクアクセスが発生しない。SSD非塔載の一昔前の機器でも高速動作可能。
- 内蔵サーバはROM容量が乏しい環境でも動作するよう、メモリ利用効率を考えた設計。ディスクアクセス必須だったSKKIME1.5改の内蔵サーバが6MB程度、ディスクアクセス完全不要のSKKFEPの内蔵サーバは9MB程度(L辞書+第二〜第四水準辞書を読み込んだ場合。あまりきちんと検証してないので突っ込み歓迎)。
SandS有効時に「方式検討」のような文字列の入力に失敗しやすい…理由を分析してみた。
- 押下H離上oushiki押下離上押下K離上entou
高速打鍵時は子音のキー押下がシフトキー離上より早い傾向にある(もっと言うならホームポジションに近いキーは押下が早く、シフト/スペースキーは押下は早いが離すという反応が遅い傾向があるように感じる)が、この場合
- 押下HO離上ushiki押下K離上押下離上entou
SandSだとこんな感じになってしまう。最初のシフト押しっぱなしは問題ない(こういうシーケンスは疲れている時などにかなり頻繁に発生する)。問題は二回目の押下と離上で、シフトキー離上のタイミングで変換処理が走ってしまいユーザの脳内思考とのずれが発生してしまう(SandSを使わなければ、こんな変換は常識的な操作をやっている限りは発生しない)。これはSandS最大の弱点ではなかろうか。
そういえば、このシーケンスが入力された時、SKK10では「空の送り仮名で漢字を登録しようとしています」と出て操作がロックされる。まさか、まさか、そこまで考えていたというのかSKK…!SKKFEPにはまだこの状態がない。というかこんな操作起きるはずねーべ?と設計段階で排除していた。設計を見直さなければなるまい。
さらに一歩先へ進むなら、SandSの時にこの操作が行われたら子音アルファベットを一度保存して子音なしで変換を試み、その後保存した子音を再入力する手がある。これで上記の問題は完全に気にならなくなるはずだ。→20120224版から対応開始
単語の末尾をきちんと打ち込まずに先に変換操作を行なってしまった場合(例えば「だいいち」と入れようとして「だいいch」の時点で変換操作を行なってしまった場合など)、その後操作をキャンセルし、子音を消し、また同じ文字を入れ直す確率が非常に高い(というかそれ以外の操作が思いつかない)。これはいけない。キャンセルした時点でローマ字かな変換の状態を直前の状態に復帰させるべき。ここは無理に子音確定せず、子音状態を残したまま「だいい」+未確定の「ch」であえて変換を行なうとか。むしろ変換を行なわず警告音を出す程度にしたほうが有用かもしれない。ただし例外として「ん」の場合はnだけで変換を行なうことがあるため、確定できる文字がなかった場合のみに限定するべき。→20120224版から対応開始
→Unit
SPACEで「雲丹t」となるのでまだまだ不自然。ここは「ユニット」になるほうが美しいはず。そのあたりも加味。この時キャンセルするとUnitではなく「うにt」に戻すべきかもしれない。
セミコロンを順次打鍵の送りがな開始に使っているとブラインドタッチの時勢い余って隣の
lも押してしまい、(入力内容が確定されてしまうため)操作がすべて水の泡になってしまうことが多い気がする。これはキーの機能配置デザインに根本的な欠陥が存在することを意味しているがキー配列は簡単には変えられない。そこで対処療法的に
;の直後の
l(モード変更に関連する確定動作を持つコマンド類すべて)を無視する仕様とする。これでブラインドタッチの際の誤入力に関してはだいぶ緩和されるはず。→20120225版から対応開始。これにより操作上の問題は解決したと考え標準操作に取り入れる。→20120326版からlはモード変更ではなく文字入力になったため現在はこの機能は無効化済
英単語の辞書エントリに大文字小文字の区別があるのが納得いかねぇ…。
既知の不具合
現時点では不具合の塊を操っているようなものですので何が起きても不思議ではありません。
- 常識的な範囲で使う限りは問題が起きないようにしたつもりですが、極端に長い単語、例えば単語の総数が数十KBなどといったものを扱おうとすると問題が発生する可能性があります(保存できないとか表示できないとか爆発するとか)。現在はSKKのL辞書の内容と長さであればストレスなく読み書きできるというのを一つの指標としています(ユーザ辞書の初期データとしてL辞書を与えて確認)。なお、スラッシュとバックスラッシュ、ダブルクォートを含む文字列を登録しまくると一瞬で辞書の1行の文字数が数キロバイト台に突入するので注意が必要です。concatで表記が行なわれた際にエスケープが必要な文字があると通常の4倍の領域を消費します。
- 一部のアプリケーション(某Office系アプリなど)において、変換操作中にコントロールコードを持たないキー操作やウィンドウのフォーカスの変更を行なうと表示が消えてしまいます。メモ帳などの普通のアプリでは起きない、あまり見慣れない挙動です。しかしながらこれは不具合ではなく、テキストサービス側の内部状態と表示内容を正確に同期させた結果であり、正常な動作です。MSIMEなどで同様の操作を行なうと、一見、変換中のまま状態が維持されているように見えますが、表示と内部状態が一致しておらず実は勝手に文字が確定されてしまっている、などの問題が発生しています。MSIME側こそがバグです。
- シフトキーの判定を独自に行なうタイプのアプリケーションにおいてやや相性が悪いものが存在します。例えば、Emacs系のエディタでは、普段の操作については問題なく使えるのですが、よりによって原作のSKKと併用した時のみ、シフトキーの入力がうまく認識されない問題が発生します。あと一歩のところまで来たのですが、手を尽くしましたがこちら側から対応することは断念しました。この問題についてはEmacs側の判定処理の修正が必要ではないかと考えています。この場合、個別設定でEmacs系を除外することで問題を回避することができます。
何か変だなと思ったら、落ち落ち落ち着いて
CTRL+
Gを連連連打しましょう。
万が一、何も入力できなくなってしまった場合は、
半角/全角を何度か押してみると内部が初期化されて入力できるようになるかもしれません。たぶん。それでも駄目ならウィンドウのフォーカスを何回か切り替えてみてください。
Windows XP上で動作させた場合は完全に無保証です。Windows XPでのテキストサービスの利用はいつか必ず不具合が起きるといっても過言ではありません。君もしくは君のプロセスが捉えられ、あるいは殺されても当局は一切感知しませんのでそのつもりで。
SKKのL辞書にはSKKFEPで問題となるエントリが1つ存在します。『ao』のエントリだけ、concatではなく別のlisp命令を使ってスラッシュの文字を表現しているため、SKKFEPでは正常に変換できません。
あと、『bsd』『dosv』『ioport』のそれぞれ2番目の候補に不要な候補が含まれており、原作でもおかしな変換結果が出力されます。手動で辞書を修正する際は併わせて直してしまうとよいでしょう。
その他
SandSはこれまであまり使われていなかった方式(ドライバでもなくキーフックでもない、TSF/TIP側のキーイベント直読み)で実現しています。ブラウザやオフィス系、OS標準のエディタではそれなりに動作しているようです。しかし、標準的なIMEによる文字入力に頼らず独自にシフトキー状態を判定する(あまり行儀のよくない)アプリケーションではSandSは正常に動作しません。たとえばMeadow/Emacsとか。つまり一番SandSが動いてほしい環境でSandSが動かなかったりします。誰かEmacsのシフトキー判定とIME入力処理にパッチを…たのむ…。
ねるぽ
メインRAM2KBのワンチップマイコンを最終ターゲットとしたSKK操作感移植のための超コンパクト設計――などと言うと響きだけはいいのですが、このせいで見出し語が63文字制限みたいなえげつない条件がごっそり入っていたりします。だがしかし!普通の使いかたをしている限り誰も気にしないであろう…クックック。
CP/Mもどき(DOS)時代の著名な日本語入力ソフトウェアと比べても相当にコンパクトになり、SKKの持つ可能性の一端を十分に示せたと考えます。でもポケコン版には余裕でサイズ負けてるしメリットは残りの他のものを全力で捨てた結果であるとも言えますが。少し泣く。
20KB程度でコンパクトなどと、どや顔ダブルピースで書いてしまっていますが、かつての8ビットマイコンでは5KB程度で日本語入力対応のスクリーンエディタを手動でカリカリと書けていたわけで、それと比べたらこのアプリは相当に肥大化してしまっている気もするのです。結局のところ、プログラムなんてバグがなければ規模なんてどうでもいい時代になってしまったので、この手の小粒なプログラムの一発芸はもはや誰にも見向きもされない終わったプログラミング野郎いとをかし。
でも裏を返せば、誰もが大規模アプリをお手軽に使えるようになっているわけです。例えばワンチップマイコン用のC++コンパイラが無料でご家庭で簡単にソースから構築できるなんて進歩を亨受してたりもします。いい時代すぎてワロタ。追いつけなさすぎワロタ。わろた…。
今日も明日から本気出す
終劇
- そしてこのソフトの名はSKKFEP
- SK拳の奥義をきわめた入力方式だ
- いま最強のIMEに挑む
うおおおおおぉぉぉ――――っ!!!!
co (mail twitter)