web-dev-qa-db-ja.com

ホットキー/キーボードショートカットを作成して、Notepad ++の[結果の検索]ウィンドウを閉じます

私はいつもそれを望みましたNotepad++次のいずれかを実行すると表示される[結果の検索]ペイン/ウィンドウを閉じるためのキーボードショートカットがありました。

  • 開いているすべてのドキュメントですべてを検索
  • 現在のドキュメントですべてを検索
  • すべて検索(複数のファイルで)

この質問 、および これこれ で説明されているように、組み込みのものはありません。 F7ペインまたはウィンドウを開きますが、閉じません。上記の2番目の質問リンクは、Escがペインまたはウィンドウを閉じることを示唆していますが、少なくともNotepad ++> = 6では、これは機能しません。

「結果の検索」ペイン/ウィンドウを閉じるためのホットキーまたはキーボードショートカットを作成する方法はありますか?

2
elixenide

AutoHotKey を使用してあります。次のスクリプトは、F7をオープン専用ショートカットからトグルに変換します。まだ開いていない場合は開き、開いている場合は閉じます。

スクリプトは次のとおりです。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Ed Cottrell's AutoHotKey script for toggling the "Find Results" pane/window in Notepad++
; Released under the MIT License (http://opensource.org/licenses/MIT)
; Version: 1.1
; Release Date: January 15, 2014
; Released on Superuser.com: http://superuser.com/questions/700357/create-a-hotkey-keyboard-shortcut-to-close-the-notepad-find-results-window
; Also released at www.edcottrell.com/2014/01/11/toggle-find-results-window-notepad-hotkey/
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Turn F7 into a toggle for the Notepad++ search results window; currently it shows it, but doesn't hide it.
; The $ prevents this from firing itself
*$F7::
Open := 0
SetTitleMatchMode 2  ; AHK doesn't seem to recognize the window title otherwise
; See if Notepad++ is the active window or if the undocked results window (ahk_class #32770) is the active window
If WinActive("Notepad++")
{
    ; If the results pane is open, close it
    ; Button1 is the class name for the title bar and close button of the results pane when docked
    ControlGet, OutputVar, Visible,, Button1, Notepad++
    if ErrorLevel = 0
    {
        If OutputVar > 0
        {
            ; Found it docked
            Open := 1
            ; Get the size and coordinates of the title bar and button
            ControlGetPos, X, Y, Width, Height, Button1
            ; Set the coordinates of the close button
            X := Width - 9
            Y := 5
            ; Send a click
            ControlClick, Button1,,,,, NA x%X% y%Y%
        }
    }
}
; If it is undocked, use ahk_class #32770
else If WinExist("Find result ahk_class #32770")
{
    ; Found it undocked
    Open := 1
    ; Close it
    WinClose
}
; It's not open, so open it
if Open = 0
{
    SendInput {F7}
}
return

これがNotepad++を愛する他のすべての人に役立つことを願っています!

編集して、ドッキングされていないウィンドウの検出エラーを修正しました。

1
elixenide