Seems to work smoothly, but I would be very happy if any AHK-PRO could review/tweak its timing. If you input WW you'll get it replaced with WinWait, which is correct -
but you'll get the same if you try to input WWA (= WinWaitActive), which isn't.
Have phun ...
-----
Code:
ABBREV = ATR,BL,BR,BI,CONT,CC,CF,CGF,CGT,CS,CST,CW,DHT,DHW,DSF,EL,ED,EX,EADD,EAPP,EDIV,EMUL,ESET,ESUB,EUPD,FA,FC,FCD,FCRD,FCS,FD,FGA,FGS,FGT,FGV,FI,FM,FMD,FRD,FRL,FSA,FSFL,FSFO,FST,GT,GADD,GA,GC,GD,GKS,GSUB,IN,IB,ID,IEX,IEQ,IFS,IIS,IMB,IR,IW,IWA,IWE,KH,L,LF,LH,LL,LOOP,LP,LR,LRF,LV,MN,MB,MC,MCD,MGP,MM,PAU,PGC,PS,PMSG,R,RAND,RD,REL,RET,RGR,RGW,SL,SBGT,SBL,SBW,SCD,SCS,SMSG,SDMS,SE,SF,SG,SGP,SGWV,SHUT,SKD,SL,SLEN,SLO,SM,SMD,SND,SCLS,SP,SREP,SS,SSCM,SSPL,SSWV,ST,STL,STMM,STO,SUS,SWD,URLD,WA,WAB,WC,WGAS,WGAT,WGP,WGT,WGTX,WH,WK,WM,WMAL,WMAX,WMIN,WMSI,WR,WS,WST,WW,WWA,WWC,`#WAF,`#UH,#SI,`#NTI,`#MTPH,`#MTB,`#MT,`#MHPI,`#IMH,`#IKH,`#I,`#HMT,`#HI,`#EC,`#CF,`#ASLC
COMMAND = AutoTrim,Block,Break,BlockInput,Continue,ControlClick,ControlFocus,ControlGetFocus,ControlGetText,ControlSend,ControlSetText,ClipWait,DetectHiddenText,DetectHiddenWindows,DriveSpaceFree,Else,Edit,Exit,EnvAdd,ExitApp,EnvDiv,EnvMult,EnvSet,EnvSub,EnvUpdate,FileAppend,FileCopy,FileCopyDir,FileCreateDir,FileCreateShortcut,FileDelete,FileGetAttrib,FileGetSize,FileGetTime,FileGetVersion,FileInstall,FileMove,FileMoveDir,FileRemoveDir,FileReadLine,FileSetAttrib,FileSelectFile,FileSelectFolder,FileSetTime,Goto,GroupAdd,GroupActivate,GroupClose,GroupDeactivate,GetKeyState,Gosub,Input,InputBox,IniDelete,IfExist,IfEqual,IfIs,IfInString,IfMsgBox,IniRead,IniWrite,IfWinActive,IfWinExist,KeyHistory,Loop,LoopFile,ListHotkeys,ListLines,Loop,LoopParse,LoopReg,LoopReadFile,ListVars,Menu,MsgBox,MouseClick,MouseClickDrag,MouseGetPos,MouseMove,Pause,PixelGetColor,PixelSearch,PostMessage,Run,Random,RegDelete,Reload,Return,RegRead,RegWrite,Sleep,StatusBarGetText,SetBatchLines,StatusBarWait,SetControlDelay,StringCaseSense,SendMessage,SetDefaultMouseSpeed,SetEnv,SetFormat,SoundGet,StringGetPos,SoundGetWaveVolume,Shutdown,SetKeyDelay,StringLeft,StringLen,StringLower,StringMid,SetMouseDelay,Send,SetNumScrollCapsLockState,SoundPlay,StringReplace,SoundSet,SetStoreCapslockMode,StringSplit,SoundSetWaveVolume,SetTimer,StringTrimLeft,SetTitleMatchMode,SplashTextOn,Suspend,SetWinDelay,URLDownloadToFile,WinActivate,WinActivateBottom,WinClose,WinGetActiveStats,WinGetActiveTitle,WinGetPos,WinGetTitle,WinGetText,WinHide,WinKill,WinMove,WinMinimizeAll,WinMaximize,WinMinimize,WinMenuSelectItem,WinRestore,WinShow,WinSetTitle,WinWait,WinWaitActive,WinWaitClose,`#WinActivateForce,`#UseHook,`#SingleInstance,`#NoTrayIcon,`#MaxThreadsPerHotkey,`#MaxThreadsBuffer,`#MaxThreads,`#MaxHotkeysPerInterval,`#InstallMouseHook,`#AllowSameLineComments,`#CommentFlag,`#EscapeChar,`#HotkeyInterval,`#HotkeyModifierTimeout,`#Include,`#InstallKeybdHook
StringSplit, COMMAND, COMMAND,`,
~space::
Input, UserInput, VT5L4CI, {enter}`,{tab}{space}, %ABBREV%
SetKeyDelay, -1
Loop, parse, ABBREV, `,
{
If A_LoopField = %UserInput%
{
StringLen, UILen, UserInput
StringTrimLeft, AHKCOMMAND, COMMAND%A_Index%, 0
Send, {backspace %UILen%}%AHKCOMMAND%
}
}
return
BTW: It would have been a li'll smarter if AHK would have had included a hash command
