|
こんばんは。秀丸愛用者の「でるもんた・いいじま」です。
> 現在、文章の編集中に Ctrl+N を押す事でカーソルが下に
> 動くようにキー割り当てをしているのですが
> 検索ダイアログ上で、Ctrl+N を押しても反応がありません。
>
> 検索ダイアログにて、キーボードのカーソルキーの下を
> 押すと、過去の検索語の履歴が表示されると思いますが
> 要はこれをキーボードだけで実現したいのです。
検索ダイアログ(に限らず、他のダイアログでも)でのキー操作は、
秀丸のキー割り当て機能では基本的にいじれません。このへんが、
Windowsべったりの設計でC言語(+VB?)で書かれている秀丸と、
ほとんどすべての機能をマクロで実装しているEmacsあたりとの
大きな違いです。
なので、たとえば Ctrl+X にメニューを割り当てたとしても、
ダイアログ上では Ctrl+X は常に「カットしてクリップボードへ」
として働きます。また、ダイアログが出ている状態でマクロを
起動することもできません。
検索ダイアログの「上検索」「下検索」は秀丸のキー割り当てが
反映されますが、こちらのほうが例外的存在です。
> どのような方法がありますでしょうか?
sendmessage が理解できるのであれば、たとえばAutoHotkey という
ソフトを別途インストールして、そちらのスクリプトを書くことで
可能です。
ただ、秀丸の検索ダイアログはウィンドウクラス名が「#32770」と
なっていて、これは他の各種ダイアログ、たとえばありとあらゆる
アプリのファイル読込・保存ダイアログやエクスプローラの「○○の
プロパティ」などとも共通なので、AHKで組むにしても結構面倒です。
パッと手元の #32770 関係のコードを書き写した限りでは、
こんな感じでしょうか?
#IfWinActive ahk_class #32770
^n::
WinGetTitle t, A
WinGet, f, ProcessName, A
if ( f = "Hidemaru.exe" && (t == "検索" || t == "置換" ) )
{
Send {Down}
}
else if (...)
{
; 他の同名ダイアログで Ctrl+N を変更したいものがあれば
; ここにつらつらと書き連ねる
}
else
{
Send ^n
}
return
#IfWinActive
AHKもかなり奥が深いので、いろいろ試行錯誤してみてください。
|
|