Total Commander命令面板,搜索内部命令回车执行

功能复杂的软件都应该有一个命令面板,就像VSCode、Obsidian。因为有大量的不常用功能命令,记不住那么多快捷键,搜索是最方便的方式。

参考VimDesktop代码写了个单独的Ahk脚本,实现快捷键 Alt+q 打开搜索框,回车执行命令。

#Requires AutoHotkey v2

; 搜索命令并运行
!q::
{
    A_Clipboard := ""
    SendTCCommand("cm_CommandBrowser", 0)
    if (ClipWait(20) and StrLen(A_Clipboard) >= 3)
    {
        if (SubStr(A_Clipboard, 1, 3) = "cm_")
            SendTCCommand(A_Clipboard, 0)
    }
}
    
SendTCCommand( xsTCCommand,  xbWait:=1 )
{
    COMMANDER_PATH := "E:\TotalCMD64\"
    loop Read COMMANDER_PATH . "TotalCMD.inc"
    {
        if not InStr(A_LoopReadLine, "=")
            continue
        asCommands:=StrSplit(A_LoopReadLine,  "=")
        if(asCommands[1] = xsTCCommand)
        {
            asCommandsValues:=StrSplit(asCommands[2], ";")
            break
        }
    }
    ; MsgBox(asCommandsValues[1])
    asCommandsValuesInt := Number(asCommandsValues[1])
    if !( asCommandsValuesInt > 0)
        return
    
    if(xbWait)
        SendMessage(1075,  asCommandsValues[1],  0, , "ahk_class TTOTAL_CMD")
    else
        PostMessage(1075,  asCommandsValues[1],  0, , "ahk_class TTOTAL_CMD")
}

记得修改其中的TotalCMD路径 COMMANDER_PATH

需要TotalCMD 窗口在打开状态,否则会报错,可以自行加个if判断。

2 个赞