VIMEが欲しい(Vim-IME)
VIMEが欲しい
— ラクダエン (@catfist) August 9, 2025
ローマ字テーブルとキーバインドを一体化し、全ての文字(アルファベットと記号)を修飾キーなんぞ抜きで全ての機能に割り当てられる
VIMでありIMEであるものが
大体これで話終わりなんだけどもうちょっと深堀りする
かな漢字変換のキーバインドが煩雑すぎる
大体スペースキーだけでできるんじゃないの? っていうとそれはそうなのだが
カタカナ変換をF7じゃなくてCtrl Iでやれとかそういう話でもない。ファンクションキーが遠いなら近くに置けばいいのであってそれはキーボードの問題だ。主に連文節変換における分節操作の話である。
まず標準キーボードにおける矢印キーはクソみたいに遠く、Shiftキーは小指である。これは本当にお話にならない。キーボードが悪い。日常的に長文を書くならSandSくらいはすべきだ。
自作キーボードだと、矢印キー(またはそれを代替するロータリーエンコーダー等)をもっとホームポジション寄りに配置する例は多くあるが、親指操作でない限りホームポジションは崩れる。そして親指操作とするには矢印キーの頻度は高すぎる。
フィンガーに担当させるには4キーはあまりに多すぎ、バックスペースエンターより優先すべきでもない。ロータリーエンコーダーや5方向スイッチをフィンガー射程内に置くならあり得る、くらいだろう。
そこで文節操作にもCtrl Bとか、修飾キーコンビネーションを用いる手はある。が、そうすると修飾キーの打鍵数がえらいことになってくる。この問題は、矢印キーをレイヤーでホームポジションに置くファームウェア的解決でも同様につきまとう。
ライブ変換しろよという意見も出てくるものと思うが、入力中に的外れな候補が表示される体験は、何度試しても二度と使いたくないと思わされるものがある。正解が出ているときに入力を続けるとブレる可能性が常にあるのもキツい。
チャットAIを体験したことではっきりと理解できたが、要するにライブ変換の変換前テキストはコマンドではなくプロンプトであるわけだ。定型的な構文に落とし込む類の文書ならともかく、表現をやるならお伺いを立てるようでは使い物にならない。誰の文章か、という話だ。
ここでは小説もゲームレビューも演劇脚本もクソツイも全部文章表現と呼ぶが、そういうのでは作品によって文の組み方も表記方針も違う、なんならキャラによっても違うわけで、作者以外が制御できるものでは原理的にない。
つまり結局、かな漢字変換のキーバインドが煩雑すぎるのが問題だ。日本語入力メインの運用において、かな漢字変換の打鍵数は文字そのものと比較しても到底誤差に収まらない量になる。文字そのものの打鍵数が少ないかな入力においてはなおさらだ。
かな漢字変換のキーバインドは文字キーの単打であるべき
だっていっばい押すから。Ctrlキーを小指で押す前提ならなおさら無理だ。
これはMicrosoftも認識していて、だってMicrosoft IMEのキッッッッショい文節違い候補ってそういうことでしょ? 文節操作を毎度行うのが無理だからスペースキー連打で片付けようとしてんじゃん。
修飾キーを親指とかでホームポジションのまま押せたらどうかというと、それでもキツいというのが実際そうしている者からの威厳。
でも文字入力中にどうやって文字キー単打使うねんというのは、Vimのモード切替のようにすればいい。要するに、変換キーを押したら変換モードに入り、確定かキャンセルで抜けるという設計。
僕は←↓↑→をHJKLに割り当てるのが正しいとは思わない(頻度多い方の二つが両方人差し指なのは流石に無茶だ)が、いったんそれ前提で考えてみると、
h: 文節を左に移動
l: 文節を右に移動
j: 次候補を選択
k: 前候補を選択
Shift h: 文節を左に拡張
Shift l: 文節を右に拡張
m(Enter): 確定
u(Escape): キャンセル
例えばこんなところだろう。
ただしこれには、次文字入力による確定が利かないという問題がある。細かく変換をかけるほど確定回数も多くなるので、どこかに単打キーバインドとコンビネーションキーバインドの有利不利が入れ替わる限界点がある。
よって、これこそが正解とはいえない。これもできるべきだと言っているだけだ。
IME以外も使えばできるんじゃね?
それはそう。
変換キーで変換する前提なら、リマッパーで変換キーとモードチェンジを同時に発行すればいい。(モードチェンジのやり方はリマッパーによって色々ある。keymapperならVirtualKey)
一応、外部からIMEが「変換中であるか」を監視する方法はなくもないっぽいので、スペースキーとか↓で変換する場合でもできるはできる。多分。
あと、VimをIMEとして使うという手があるらしいのだが、
これはちょっと違うというか、IMEじゃないというか……
どの入力フィールドでも使えてこそのIMEでしょう。
日本語入力メソッドはIMEで実装できるべき
そもそもIMEというのはそういうもん。
べき論をおいといても、キーイベントをフックするような危ないもんは少ないに越したことはない。リマッパーやキーボードファームウェアでしか実装できない日本語入力メソッドは普及論としては無理がある。
しかし、過去提案されてきたかな入力メソッドの多くは現行IMEの能力では実装できない。富士通親指シフトすら(Windows・Macでは)無理だ。同時押しを解釈できないからだ。
一応、Google日本語入力にはタイムアウトという隠し機能があって、擬似的な同時押しは実現できる。しかし、タイムアウトの仕組みでは3キー同時押しがめちゃくちゃ難しく、実用レベルではないと思う。また、文字キー以外(例えばスペースキー)との同時押しは実装できない。
かな入力をIMEで実装するには、同時押しを解釈できる機能が必要だ。
VIME-Chordが欲しい。欲しいよぅ……
追記:LinuxだとVIMEまではいけるっぽい
多分IBusでできるっていう話だと思う。多分。
追記2:あわわわわわわ
こんな簡単なことを言われるまで試してなかったなんて
しっかり検証してからあらためて追記します
コメント