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の記事

 他にも、KanzenSKKSekkaという非文法解析型の日本語入力の進化の歴史は試験に出ます。

あとはGoogle先生、お願いします!

SKK日本語入力FEPについて

 前述の通り、SKK日本語入力FEP(以下SKKFEP)はSKK方式による日本語入力をWindows上で実現するソフトウェアです。
 SKKFEPはWindowsのテキストサービスフレームワーク(TSF)によるキーボード系テキスト入力プロセッサ(TIP)として実装されています。

 SKKFEPは、SKK10系の動作を参考に『SKKの操作感覚』をWindows環境に移植することを目指しており、新規に開発した小規模なプログラムで軽快な動作を実現しています。
 なお、既に同種のソフトウェアとしてskkimeCorvusSKKなどの完成度の高い作品が存在します。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. 送りがなのない単語を変換する場合は、単語を入力してスペースキーを押します。(例: UmiharakawaseSPACE → 海腹川背)
5. 送りがなのある単語を変換する場合は、送りがなのローマ字をシフトキーを押しながら入力します。(例: MimeuruwaShi → 見目麗し)
6. 辞書に単語が存在しない場合は即座に辞書への登録状態になります。登録した単語は学習すると同時にアプリケーションに入力されます。
7. 操作を間違えた時はCTRL+Gを押すと操作を中断できます。

 SKKの基本はこれだけです。上記で使用した基本操作のキー一覧をまとめてみました。
操作
CTRL+Jひらがな入力状態へ
l (小文字のL)半角英数入力状態へ
SHIFTを押しながらAZ編集開始・送りがな開始
SPACE変換・次候補
CTRL+G中断

 シフトキーを併用して単語の開始や送りがな位置を人間が直接指定できることこそがSKKの最大の特色です。
 人間による変換タイミングの指示ができるおかげで、小型で単純な仕組みだけで作られたSKKが、大規模で複雑な文法解析処理の塊である最新の日本語入力ソフトウェアを相手に「文法解析ミスが原理上発生しない」究極の変換精度で太刀打ちできるのです。

 慣れないうちは、変換開始のシフト押下をつい忘れてしまって

シフトキーの操作を…強いられているんだ!

…などと派手なエフェクトと共に全力で叫びたくなる衝動に駆られるかもしれませんが、楽器の演奏と同じで少しづつ上達を実感でき、慣れてくると自然と指が動くようになります。

キー操作一覧

 主なキー操作を以下に示します。何やらたくさん種類がありますが特に必要な操作はさきほど説明した5つの操作といくつかの補助操作だけです。これらの基本操作には星印を付けてあります。5つの基本操作を覚えるだけで、日本語の漢字かな混じり文の入力を自由に行なうことができます。

全般
CTRL+J確定・ひらがな入力状態へ
qカタカナ入力状態へ
cを押してからq半角カナ入力状態へ (独自拡張)
l (小文字のL)半角英数入力状態へ
L (SHIFT+L)全角英数入力状態へ
SHIFTを押しながらAZ編集開始・送りがな開始
SPACEを押しながらAZ
変換を押しながらAZ
編集開始・送りがな開始 (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+JCTRL+Gの使いかたを思い出してください。あとはシフトキーを16連射しながら城の回りでスライム退治でもしていれば、いつの間にかMPが増えて他の呪文も使えるようになります。戦士とは名ばかりの近接格闘型の魔法使いでOK牧場。ガンガンいこうぜ

SKKとは互換性のない操作について
ひらがなモードへの変更: CTRL+J (カタカナモードであっても常にひらがなに戻る)
半角カナモードへの変更: cを押してからq
註釈の変更: 註釈を修正したい単語が変換候補として表示されている状態でを押し、セミコロンの後に註釈を追加・変更
表示されている候補を即変換:

日本語入力モードの切り替え

 SKKFEPを標準の入力方式に選択した状態では、アプリケーション起動直後からSKKに関する操作を受け付けるようになります。(レジストリ設定により、初期状態を変更したり、アプリケーションごとの有効・無効を選択できます)
 アプリケーション起動直後は半角英数モードになっているので、CTRL+Jを押すと日本語入力が可能になります。半角英数モードに戻す場合はl(小文字のL)を、全角英数モードにする場合はSHIFT+Lを押します。
 SKKFEP有効時、標準設定ではCTRL+Jの入力は一切アプリケーション側に渡りません(後述する設定で変更可能です)。従来通り全てのキー入力をアプリケーション側に渡す場合は、半角/全角(またはALT+漢字キー)を押して日本語入力モードをオフにしてください。

SPACEキーによるシフトキー代替操作(SandS - Space and Shift)

 SKKFEPの初期設定では日本語入力状態の時のみSandS操作が有効となっています。後述する設定により、英数入力状態であっても常に有効にしたり、アプリケーションごとに別々のSandSの適用を選べるようになっています。
 一部のアプリケーション(Windows標準ではないリモート制御ツールなど)でスペースキーの押下が認識されないものが存在します。この場合、半角英数モードに変更するか、或いはSHIFTCTRL変換などのキーを押しながらスペースキーを押すことで、生のキーイベントがそのままアプリ側に渡るようになっています。うまく活用してピンチを切り抜けてください。

変換キーによるシフト・変換操作

 SandSは便利なのですが、やっぱりスペースバーは押した瞬間に反応してほしい…というピュアな心を持つ貴方のために、変換キーでもシフト・変換操作を行なうことができます。SPACEキーのSandS機能が無効となっている状態でも機能するので、ここぞという時に「こんなこともあろうかと」とか言いながら押してください。(セーフモードによるMSWordバグ自動回避時のみ無効化されます)
 なお、代替シフトキーは同時に1つだけ判定が行なわれます。例えば変換と無変換を代替シフトに割り当てた場合、先に押した側がシフトキーとして動作し、他のキーは生のキーイベントがアプリケーションに渡ります。

クリップボードからの貼付(ペースト)

 単語登録時はCTRL+YまたはCTRL+Vを押すことでクリップボードからの文字の貼付が可能です。標準アプリである文字コード表と組み合わせてお使いください。

変換マークの表示

 入力内容が空の時のみ、他アプリの補完動作に影響しないよう、No-Break Spaceの反転文字を使って変換状態下であることをひっそりと表示するようになっています。
 SKKの特長でもあった、編集状態・変換状態における▽マークは一切表示されませんが、たかがメインマーカーをやられただけなので、操作感覚には微塵の影響もありません。
 なぜなら、SKKでは変換の主導権を握っているのは利用者である人間だからです。そう、▽マークはあなたの心の中に。目に見えていることだけが全てじゃない。考えるな感じろ。フォースがともにあらんことを。

暗黙の確定

 SKKでは変換操作中に次の語の入力を開始することで、自動的に確定操作が行なわれます。これは「暗黙の確定」と呼ばれるSKKの特長の1つです。標準設定ではCTRL+HBSでもSKK10同様に暗黙の確定が行なわれます。
 例えば「火曜」の「火」だけを入力したい時に、「かよう」で変換してCTRL+HBSを押すことで確定と文字削除を同時に行ない素早く入力することができます。単漢字や同音異義語の高速選択を苦手とする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を大量かつ高速に入力できます。こうした文字は大抵の場合、チャットにおける語尾として使われます。そのため、チャットの確定であるENTERCTRL+Jを押すことで(または関係ない文字を入力することで)通常のローマ字かな変換状態に戻るようになっています。
 雑草入力と送りがな変換時の挙動の共存させるため、2種類の変換ルールを動的に切り替えて処理しています。

入力例
uhawwwskkwwwww → うはwwwskkwwwww

小書きかな母音入力 (ルール設定で変更可能)
 xを押した後の小文字母音はキー連打で連続入力可能です。擬音や感動詞の入力を容易にします。

入力例
uwaxaaaaa → うわぁぁぁぁぁ

記号入力 (ルール設定で変更可能)
 小文字cの後に記号を入力することで、その文字を直接入力することが可能です。

入力例
c/c. → /.

数字入力 (ルール設定で変更可能)
 09のキーを押した直後のカンマ、ピリオド、マイナスは半角で入力されます。
 本来の全角を入力したい場合は、間にCTRL+Jを挟むことで動作をキャンセルできます。

入力例
12,345.00a. → 12,345.00あ。

記号入力 (ルール設定で変更可能)
 SKKIME1.5改同様、かつてSKKが参考にしたと思われるEgg(たまご)の記号入力ルールの一部を採用し、利用頻度の高い文字を二回の打鍵で簡単に入力できるよう拡張されています。z(またはx,f,j)の後にアルファベット以外の文字を押すと入力可能です。この操作はSKK10の完全な上位互換となっています。
 標準ではJIS配列キーボードに合わせた設定となっています。ASCII配列キーボードなどの場合は後述する設定ファイルの変更方法を参照して書き換えて使ってください。

文字zSPACEzHzJzKzLzzz
記号全角空白

文字zzzzzzzzz zzz
記号 
文字zzzzzzzzzzzzz
記号

文字z`zzzzzzzz_
記号±×÷
文字zzzzzzzz 
記号 

(参考)ASCII配列用設定例
文字zzzzzzzzzzz_zz
記号×±
文字zzzzzzzzzzzzz`
記号

文字zzzzzzzz
記号÷
文字zzzzzzzz
記号

(参考)記号入力を使わずに単体でキーを押下した場合の全角文字
文字
出力

UNICODE拡張文字の入力

か行小書き文字
ローマ字ひらがなカタカナ
xka
xke

わ行濁音
ローマ字ひらがなカタカナ
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行目付近に以下のような感じで設定項目が並んでいます。


  1. 設定S 改行通過 0 改行キーによる確定時にキー操作を伝える
  2. 設定S タブ通過 0 タブキーによる確定時にキー操作を伝える
  3. 設定S 下方向通過 0 カーソルキー下による確定時にキー操作を伝える
  4. 設定X シフト拡張 1 スペース押下でシフト 0.なし 1.日本語時のみ 2.常に有効
  5. 設定X 変換動作 1 変換キーの動作 0.なし 1.シフト 2.順次打鍵
  6. 設定X 無変換動作 0 無変換キーの動作 0.なし 1.シフト 2.順次打鍵
  7. 設定X セミコロン 1 セミコロンの動作 0.なし 1.送りがな開始 2.順次打鍵
  8. 設定X 註釈操作 1 註釈の再編集の操作 0.なし 1.セミコロン 2.シフトQ
  9. 設定X 接辞操作 1 接頭辞と接尾辞の操作 0.なし 1.>のみ 2.<と>
  10. 設定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数字の直後の記号を直接入力する
拡張文字1UNICODE拡張文字を利用する
長音表記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起動時にすべての辞書を認識します。

 辞書を扱う上でいくつか注意点があります。

ユーザ辞書の更新

 ユーザ辞書は更新操作(単語の確定または削除)を行なってもすぐには保存されません。
 ユーザ辞書は最初の更新から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です。辞書のソート順序、見出し単語の重複、送りがなあり/なしのエントリの順番などはすべて自動判定します。

 単語は辞書ファイルに出現した順に認識されます。同一の変換結果がある場合は先に登録されたものが有効となり、註釈(アノテーション)が異なっていたとしても後から登録した漢字は破棄されます。以下に例を示します。


  1. ;#連結前の辞書の例
  2. あ /亜;亜細亜/阿;阿吽/
  3. あ /阿/娃/亜/

 上記の辞書データを読み込んだ場合、内部の並び順は以下のようになります。

  1. ;#連結後の内部状態
  2. あ /亜;亜細亜/阿;阿吽/娃/

 なお、ユーザ辞書の送りありエントリについては、漢字部分は結合されますが、個別の送りがな部分については、最後に読み込んだ行のものだけが有効になります。

 なんか余計細かい知識が必要な状態に陥ってしまっているような気がしないでもないですが、いつかインストーラや辞書ツールが発達し、辞書の差分更新なども含めてマウスひとつでらくらく操作になる日を目指す第一歩になるはずですので、生暖かい目で見守ってやってください。

文字コードの制限

 伝統的に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の利用は多くが謎に包まれており、ひとまず以下は仕様となってしまっています。他にもいろいろと問題が出ているような気もするのですが超法規的措置。情報求む!

 …ま、慣れちゃえばわりとなんとかなる話なんですけどね。こちらの持っている不利な情報はすべて提示しました。あとは任せた。

ご意見・ご要望

 SKKのこんな機能があったら便利、ここに違和感を感じる、という利用者の意見はとても貴重です。どんな些細なご意見でも構いませんのでお知らせください。次回作の参考などにしたいと思います。

 SKKで入力する時の癖や、使いにくい挙動を少しでも緩和するアイディアなどありましたらお気軽にご連絡ください。また、JIS配列ではないキーボードや、原作SKKの標準動作(skk-egg-like-newlineなしとか)で使っている方、SKK原作の使用感について詳しく話を聞かせてください。びっくりするほど誰も乗ってこなかったぞ俺。自分で使ってみるぞ俺。なんか自分好みの操作感だぞ俺。

 つか意見も要望もあんま来ないし好き勝手にやってるだけなんで「この機能が欲しい」とか「それ以上いけない」といった意見があればお気軽にどうぞ。お気軽でない要望なんかも、もうそれこそ大歓迎です。こちらの魂が震えるような熱い要望や本音の不満をぜひともぶちまけてください。亀の歩みではありますが、数直線の遥か彼方を走るMSGoog…ウサギに追いついて虚数軸から友情パワーで必殺技を一緒にたたき込んでみませんか。夢オチで。

更新履歴

 チラシの裏へようこそ(日記はここで終わっている)

2011.09.19
α版公開

2012.01.11
β0版公開

2012.01.20
日本語入力 (問題あり)

設定補助 (影響度大)

辞書管理 (安定度向上)

2012.01.23
日本語入力
 子音確定における暗黙の確定のような感覚で使える。要するに「おk把握」とかの入力途中で確定キーを押す必要がなくなった。

辞書管理

2012.01.24
全般

日本語入力 (安定度向上)

2012.01.28
日本語入力 (安定度向上)

2012.01.29
日本語入力

辞書管理

2012.01.31
日本語入力 (機能追加)

2012.02.01
日本語入力 (問題あり)

2012.02.03
日本語入力 (安定度向上)

2012.02.04
日本語入力 (安定度向上)

2012.02.05
日本語入力 (機能追加)

2012.02.06
日本語入力 (機能追加)

2012.02.08
日本語入力 (安定度向上)

2012.02.12
日本語入力 (機能追加)

全般

2012.02.13
日本語入力 (機能追加)

その後発見・修正されたバグなど

日本語入力

設定補助

以上をもって「単独動作可能な世界最小のバイナリサイズSKKクローン」のβ0の開発を完了。

skkimeに反逆せよ

行くぜ虚数空間へ!

2012.02.18
β0+i版公開

2012.02.23
日本語入力 (機能追加)

2012.02.24
日本語入力 (機能追加)

2012.02.25
日本語入力 (安定度向上)

設定補助

2012.02.25
日本語入力 (機能追加)

2012.02.26
日本語入力 (安定度向上)

2012.02.26
日本語入力 (安定度向上)

2012.02.26
日本語入力 (安定度向上)

2012.02.27
日本語入力 (機能追加)

2012.03.03
日本語入力 (機能追加)

2012.03.04
日本語入力 (機能追加)

2012.03.05
日本語入力 (安定度向上)

2012.03.07
辞書管理 (機能追加)

2012.03.09
日本語入力 (安定度向上)

辞書管理 (機能追加)

2012.03.12
辞書管理 (機能追加)
ねんがんの ほかんきのうをてにいれたぞ!
な なにをする きさまらー!

否!SKKを疑え!

2012.03.17
日本語入力 (機能追加)
オレは高校生探偵S.KK
幼馴染で同級生の藍澤光と遊園地に遊びに行って(実写)
黒ずくめの男の怪しげな取引現場を目撃した!
取引を見るのに夢中になっていたオレは、
背後から近付いて来る、もう一人の仲間に気付かなかった!
オレはその男に毒薬を飲まされ、気がついたら…
実行ファイルが 肥大化してしまった――!?

2012.03.19
かゆ う

2012.03.20
うぉォン

2012.03.22
前後

2012.03.26
『みんなSKKFEPを使ってくれるのか…』
「ギャハハハハハ」『えっ』
「ウ・ソ・だ・よ」
「SKKFEPなんていらないよ」
「いらないいらない」
「帰って漢直やろーっ」
『おぉぃ待ってくれ ア゛―――』

日本語入力 (機能追加)

辞書管理 (安定度向上)

2012.03.28
日本語入力 (安定度向上)

2012.04.01
サクラ サク

設定補助 (隠し機能)

2012.04.03
インストーラ (安定度向上)

2012.04.05
「インストーラがGUI対応するんですか!」
「もう操作で困らないんですか!」
「やった──!」
「…ただのIEじゃないすか!」
「やだ───!」

インストーラ (斜め上)

2012.04.07
日本語入力 (機能追加)

辞書管理 (機能追加)

2012.04.08
日本語入力 (機能追加)

2012.04.09
インストーラ (安定度向上)

日本語入力 (安定度向上)

2012.04.11
日本語入力 (安定度向上)

2012.04.15
日本語入力 (機能削減)

インストーラ (安定度向上)

辞書管理 (機能追加)

2012.04.21
設定補助 (機能追加)

日本語入力 (安定性向上)

辞書管理 (安定性向上)

2012.04.22
設定補助 (安定性向上)

2012.05.03
日本語入力 (機能追加)
〜伝説から変態へ〜
蝶はその美しい羽根を得るために幼虫から蛹を経て二回も変身するという。そう……それは完全変態。だからSKKFEPの自動切替による変身も二回だけ……なんて決めつけたのは誰だァ!変態がたったの二回じゃ使えない、使いにくい!料理長を呼べ!回数を増やせ!この変態プログラムを作ったのは誰だぁ!……ぁ俺か!俺、参上!というわけで上限二回の制限を撤廃。変態は……億・千・万!まだだ……もっと、もっとだ!変態は……無限大ッ!俺が、俺たちが……変態FOREVER城伝説!フォォォォォォォ

「教授!!」「これはいったい!?」
『第三の補完だよ』

例えば「Mir」と入力した場合の動作は以下の通り。
世代探索空間補完結果
第一世代みせ(店) みっか(三日) みらい(未来)
第二世代み[ら-ろ] みっ mirみっか(三日) mirror(ミラー) みらい(未来)
第三世代み[ら-ろ] みっ[ら-ろ] mirmirror(ミラー) みらい(未来)

警告: これはβ0+2iの技術検証用の先行試作版です。安定度を求める人は一つ前の安定版を使ってください。プロセスが突然落ちても泣かない。

2012.05.05
日本語入力 (安定性向上)

2012.05.06
日本語入力 (安定性向上)

2012.05.08
日本語入力 (安定性向上)

2012.05.09
日本語入力 (安定性向上)

2012.05.15
辞書管理 (機能追加)

日本語入力 (機能追加)
モード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にきちんと対応したら消す)

謝辞

 本ソフトウェアの開発にさまざまな形でご協力いただいた皆様に感謝します。

h.takeda様
じじ様
仁義偉王様
Corvus Solis様
れづ様
bird rhea様
tadakiti様
kazy111様
三木里 秀予様
HicoHoriuchi様

 開発当初、完成度が極端に低かった本作を、辞書の消失やアプリケーションの異常停止などのバグをものともせずに使いこなし、ソフトウェアの設計や理念に関する有意義な意見をくださった皆様、本作を無事公開することができたのは、ひとえに皆様のご協力のおかげです。ありがとうございました。

 そして、無限の可能性を秘めた日本語入力方式であるSKKに興味を持っていただき、ここまで読んでくださった貴方に感謝します。

俺達の戦いはこれからだ!
ありがとうございました!

co氏の次回作にご期待ください

最後に

 本ソフトウェアは無保証です。配布制限は特にありません。

 このソフトを使ってみた感想や、SKKでMSGoogleジャストシステムを打ち砕く斬新なビジネスプランの提案などがあればぜひお知らせください。
 また、うまく文字が入力できないとか、光が眩しくて肝心な部分がよく見えないといった深刻な問題点に気づいた時はお気軽にご連絡ください。「動かしてみた」のようなツイートを送っていただけるだけでもとても励みになります。

co (mail twitter)

竹輪

例によって「以下書き途中」
上の文章に紛れ込ませる予定のネタなど

TODO

変換不可能な子音の確定 - 無効 / 確定・文字追加時に有効(デフォルト) / 常に有効
常に有効、にすると、Googleのマッチ時にカーソル上下などをした瞬間、子音が確定されてしまうので使いづらいと思われる

実装状況やSKKIME 1.5aとの比較

利点

欠点

予定/ネタ (最終的に実装しないとしても面白そうなネタは残しておく)

日本語入力部

辞書管理部

 SKKのユーザ辞書は冗長すぎるのだ。ROM辞書にある単語はROMとの差分だけ記録し、新規に登録した語や特殊な送りがなだけをまとめて簡単に一覧できる本当の意味での『個人設定』が必要。他の流派からSKKの門を叩いてまず拒絶反応が発生するのは恐らくこの膨大でメンテが困難なユーザ辞書ではなかろうか。長期間使うと送りがなにノイズがどんどん混ざっていってメンテする気が起きないくらいに危険な香りがするのもなんとかしたい。

 ていうかユーザ辞書の送りあり部分の「ん」と「っ」で始まる箇所は2文字目以降の送りがな全削除でいいよね?ね?送りがななんて1文字で十分じゃねーか…強いられてるんだよ…ヒック…

自分がほとんど使ったことがない機能
有用そうなもの
関わりたくないもの

他にも機能が多すぎてあんまり考えたくない

設定補助部

 数値変換や接頭辞・接尾辞変換をやりたくない理由。
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連携プラグインで補完予定。
 ローマ字かな変換の快適さを追求するため、変換ルールを独自拡張。
 辞書関連処理も完全独自設計。

 SandS有効時に「方式検討」のような文字列の入力に失敗しやすい…理由を分析してみた。
押下H離上oushiki押下離上押下K離上entou
 高速打鍵時は子音のキー押下がシフトキー離上より早い傾向にある(もっと言うならホームポジションに近いキーは押下が早く、シフト/スペースキーは押下は早いが離すという反応が遅い傾向があるように感じる)が、この場合
押下HO離上ushiki押下K離上押下離上entou
 SandSだとこんな感じになってしまう。最初のシフト押しっぱなしは問題ない(こういうシーケンスは疲れている時などにかなり頻繁に発生する)。問題は二回目の押下と離上で、シフトキー離上のタイミングで変換処理が走ってしまいユーザの脳内思考とのずれが発生してしまう(SandSを使わなければ、こんな変換は常識的な操作をやっている限りは発生しない)。これはSandS最大の弱点ではなかろうか。
 そういえば、このシーケンスが入力された時、SKK10では「空の送り仮名で漢字を登録しようとしています」と出て操作がロックされる。まさか、まさか、そこまで考えていたというのかSKK…!SKKFEPにはまだこの状態がない。というかこんな操作起きるはずねーべ?と設計段階で排除していた。設計を見直さなければなるまい。
 さらに一歩先へ進むなら、SandSの時にこの操作が行われたら子音アルファベットを一度保存して子音なしで変換を試み、その後保存した子音を再入力する手がある。これで上記の問題は完全に気にならなくなるはずだ。→20120224版から対応開始

 単語の末尾をきちんと打ち込まずに先に変換操作を行なってしまった場合(例えば「だいいち」と入れようとして「だいいch」の時点で変換操作を行なってしまった場合など)、その後操作をキャンセルし、子音を消し、また同じ文字を入れ直す確率が非常に高い(というかそれ以外の操作が思いつかない)。これはいけない。キャンセルした時点でローマ字かな変換の状態を直前の状態に復帰させるべき。ここは無理に子音確定せず、子音状態を残したまま「だいい」+未確定の「ch」であえて変換を行なうとか。むしろ変換を行なわず警告音を出す程度にしたほうが有用かもしれない。ただし例外として「ん」の場合はnだけで変換を行なうことがあるため、確定できる文字がなかった場合のみに限定するべき。→20120224版から対応開始
→UnitSPACEで「雲丹t」となるのでまだまだ不自然。ここは「ユニット」になるほうが美しいはず。そのあたりも加味。この時キャンセルするとUnitではなく「うにt」に戻すべきかもしれない。

 セミコロンを順次打鍵の送りがな開始に使っているとブラインドタッチの時勢い余って隣のlも押してしまい、(入力内容が確定されてしまうため)操作がすべて水の泡になってしまうことが多い気がする。これはキーの機能配置デザインに根本的な欠陥が存在することを意味しているがキー配列は簡単には変えられない。そこで対処療法的にの直後のl(モード変更に関連する確定動作を持つコマンド類すべて)を無視する仕様とする。これでブラインドタッチの際の誤入力に関してはだいぶ緩和されるはず。→20120225版から対応開始。これにより操作上の問題は解決したと考え標準操作に取り入れる。→20120326版からlはモード変更ではなく文字入力になったため現在はこの機能は無効化済

 英単語の辞書エントリに大文字小文字の区別があるのが納得いかねぇ…。

既知の不具合

 現時点では不具合の塊を操っているようなものですので何が起きても不思議ではありません。

 何か変だなと思ったら、落ち落ち落ち着いて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)

inserted by FC2 system