创建热键/键盘快捷键以关闭 Notepad++ 查找结果窗口

创建热键/键盘快捷键以关闭 Notepad++ 查找结果窗口

我一直希望Notepad++有一个键盘快捷键来关闭在执行以下操作之一时出现的“查找结果”窗格/窗口:

  • 在所有打开的文档中查找全部内容
  • 在当前文档中查找全部
  • 查找全部(在多个文件中)

没有内置的,正如在这个问题, 也这个这个F7打开窗格或窗口,但不关闭它。上面的第二个问题链接建议Esc关闭窗格或窗口,但这对我来说不起作用,至少在 Notepad++ >= 6 中不起作用。

有没有办法创建热键或键盘快捷键来关闭“查找结果”窗格/窗口?

答案1

有,使用自动热键。以下脚本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++

已编辑修复检测未停靠窗口的错误。

相关内容