B(ug)log

開発とかぼやきとかLINEスタンプとか http://line.me/S/sticker/1245783 職探し中

Windows の Vim あるいは Emacs 化計画

前回の続きで、UIAssistant でのキーバインド変更計画です。

u338steven.hateblo.jp

本日のメニュー:Vimf,F,t,T の機能を実現してみようと悪足掻きする内容となっております。

前書き

前回までは、モード変更によって各キーを入れ替える(j は ↓キー、k は ↑キーに入れ替えるみたいな)ことを考えていたのですが、他にも Keysnail のように組み込みコマンドを実行できたら便利だと思ったので、組込みコマンドを用意してみようと思います。そこで一旦 VimEmacs で便利な機能ってなにがあるかな?を考えてみました。Vimf,F,t,T が便利だけど実現できるのかな?とふと思い、試してみることに。

その前に f,F,t,T について

知っている方は、次の見出しまで読み飛ばしてください。

ff* で、キャレットの右側にある * まで移動する機能です。; で繰り返し移動ができます。 例えば、| をキャレットとして、h|oge hoge という文章があったとします。fg と入力すると、hog|e hoge とキャレットが g の後ろに移動します。 ここで ; を入力すると、再び fg と同じ挙動をして、hoge hog|e と次の g の後ろに移動します。

t は文字の手前に、F, T はそれぞれ f, t とは逆向きに左方向へキャレットが移動します。

試してみました

Oem1 はセミコロンのことです。foToo に移動します。

f:id:u338steven:20160513214327g:plain

できました。が、あれです。問題多数。

問題

  • 今のところ Win32API で作成されたアプリケーションじゃないと動かない(WinForms、WPF は駄目)
  • WPF の場合、Windows Automation API で実現できそうだけど、WinForms は駄目っぽい(詳細な調査が必要)
  • というか、WinForms は無理じゃね?(軽く試して絶望中)
  • ぶっちゃけ、有用かどうか現段階ではよく分からない

後書き

諦めたい

f:id:u338steven:20160513215651p:plain