1 件の投稿を表示中 (合計 1 個)
  • 作成者
    投稿
  • #8217
    yosshin
    メンバー

    テキスト編集時のカーソル移動まわりを自分好みにするため、マクロを使ってカスタマイズしていたところ、どうしても良いカタチでクリアできない問題がありましたので、以下の 2 つの要望(提案)を出させてください。

    要望 1 : WIN32 API で言うところの GetAsyncKeyState 相当の関数が欲しいです。

    現状ですと、GetAsyncKeyState は、SfcMini (http://kandk.cafe.coocan.jp/sfcmini/catid-19.html)などをインストールした状態で、以下のような方法で代替する必要があります。

    Win32API = new ActiveXObject( “SfcMini.DynaCall” );
    Win32API.LoadLibraries( “kernel32” , “user32” );
    var IsShift = Win32API.GetAsyncKeyState( 0x10 ) & 0xFFFFFFE ;
    var IsCtrl = Win32API.GetAsyncKeyState( 0x11 ) & 0xFFFFFFE ;
    var IsAlt = Win32API.GetAsyncKeyState( 0x12 ) & 0xFFFFFFE ;
    :

    しかしこの手法は、カーソル移動まわりのカスタマイズで利用するにはオーバーヘッドが大きく、キビキビとした操作系が実現できませんでした。とくに重いのは最初の 2 行でした。
    GetAsyncKeyState 相当の関数が EmEditor の組み込み関数として実装されていれば、この問題は解消すると思いますので、是非とも用意して欲しいです。

    要望 2 : マクロ起動にかかる時間を最小化する何らかの手段が欲しいです。

    その具体的な目的は、要望 1 と同じく、カーソル移動まわりのカスタマイズをマクロで行う場合の、応答時間の最小化です。従って、ここで言うマクロ起動時間短縮は、数ミリセカンドのオーダーで妥協しない短縮を意味しています。

    例えば、ユーザー側で明示的に指定したマクロは、EmEditor のプロセス内でオンメモリにキャッシュしてしまい、マクロを読むためのファイルシステムへのアクセス~応答待ちの時間を短縮するというようなアプローチが考えられます(すでにそうなっていたらすみません)。

    以上です。
    細かい要望で申し訳ありませんが、エディタに自分好みかつキビキビした操作系を追及したいユーザーの意見として、とらえていただければと思います。

    # 過去にも KeyState 取得の要望は出ていましたが、切り口が違うので別途スレッドを立てさせていただきました。

1 件の投稿を表示中 (合計 1 個)
  • このトピックに返信するにはログインしてください。