Windows の Vim あるいは Emacs 化計画
前回の続きで、UIAssistant でのキーバインド変更計画です。
本日のメニュー:Vim の f
,F
,t
,T
の機能を実現してみようと悪足掻きする内容となっております。
前書き
前回までは、モード変更によって各キーを入れ替える(j は ↓キー、k は ↑キーに入れ替えるみたいな)ことを考えていたのですが、他にも Keysnail のように組み込みコマンドを実行できたら便利だと思ったので、組込みコマンドを用意してみようと思います。そこで一旦 Vim や Emacs で便利な機能ってなにがあるかな?を考えてみました。Vim の f
,F
,t
,T
が便利だけど実現できるのかな?とふと思い、試してみることに。
その前に f
,F
,t
,T
について
知っている方は、次の見出しまで読み飛ばしてください。
f
は f*
で、キャレットの右側にある *
まで移動する機能です。;
で繰り返し移動ができます。
例えば、|
をキャレットとして、h|oge hoge
という文章があったとします。fg
と入力すると、hog|e hoge
とキャレットが g
の後ろに移動します。
ここで ;
を入力すると、再び fg
と同じ挙動をして、hoge hog|e
と次の g
の後ろに移動します。
t
は文字の手前に、F
, T
はそれぞれ f
, t
とは逆向きに左方向へキャレットが移動します。
試してみました
Oem1
はセミコロンのことです。fo
と To
で o
に移動します。
できました。が、あれです。問題多数。
問題
- 今のところ Win32API で作成されたアプリケーションじゃないと動かない(WinForms、WPF は駄目)
- WPF の場合、Windows Automation API で実現できそうだけど、WinForms は駄目っぽい(詳細な調査が必要)
- というか、WinForms は無理じゃね?(軽く試して絶望中)
- ぶっちゃけ、有用かどうか現段階ではよく分からない
後書き
諦めたい