インクリメンタル検索のキーバインド

Windows GUI版のREPLはいわゆるWindowsの"メモ帳" + S式評価機能のような機能性にする予定*1。どちらかというとMathematicaのノートブックか。要するにいわゆるlive coding向けのREPLを追求しようとしている。
このとき、長い文字列を折りたたんで表示したり、過去の入力に戻ったりするためにはインクリメンタル検索を使いたい。

alternate shift key方式

元々採用する予定だったのは、長年の伝統であるところの、106キーの"無変換"と"変換"をシフトキーとして使って(言うまでもなくCanon Catのパクりである)、無変換を押しながらキータイプなら前方検索、変換なら後方検索という方式。101キーでは左右Altを使う。
ところがこれは結構問題があって、

  • 一部の106キーボードではこのキーシーケンスを認識できない可能性がある。ようするに、無変換と他のキーを同時に押せないキーボードが無いとは言い切れない。
    • 手元のキーボードではだいたい問題なかったが。。
  • Alt + 通常キーは一部のWMで予約されている

という問題があって採用しづらい。
あと、かな漢字変換に"変換"や"無変換"を使っている人も希に居る。

emacs方式

emacsのインクリメンタル検索はC-sとC-rに割り当てられている。しかし、ここだけemacsにすると、他もemacsにしなきゃいけなくなるのが微妙。。

emacsにはS式のためのMeta+Ctl+?形式のカーソル移動ショートカットが幾つかある。
もちろんemacsを同梱すれば良いという話も有るけど、emacsの画面の中に絵を描く上手い方法が思い当たらなかったので*2。。

*1:プロポーショナルフォントの選択動作が地味に難しくて難航している。

*2:ターミナルエミュレータを作る以外の方法で。