功能复杂的软件都应该有一个命令面板,就像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判断。