Targeting without clicking
Most macro frustration is really a targeting problem in disguise: the cast hit the wrong unit because the target was wrong. Targeting macros fix that at the source by deciding what the bind aims at, so every cast goes where you meant it.
Three commands do the aiming, plus the [@unit] gates from theconditionals page for everything finer:
#showtooltip/targetenemy/cast Charge
Tab-free damage: /targetenemy
/targetenemy targets the nearest enemy and cycles further targets on repeat presses. Opening a damage macro with it means the bind always has something to aim at, even when your clicky brain left you targeting the tank.
The healer weave: /targetlasttarget
The healer's return key: /targetlasttarget snaps you back to whoever you were targeting before the current target. Damage something, then instantly bounce back to the tank. Build it as a hover-on-enemy and return-to-tank pair:
#showtooltip/targetlasttarget/cast [@mouseover,harm,nodead] Smite; Flash Heal
Assist: follow the leader
/assist copies your target's target. In a raid, everyone presses assist at the pull call and the whole group is on the marked mob instantly, whether or not anyone can click fast:
#showtooltip/assist/cast Shadow Bolt
Focus: your second target
Focus is a persistent secondary target separate from your current one. Set it on the arena healer, the raid's add-caller, or the healer of the enemy team, and any macro can reach it with the [@focus] gate no matter what your actual target is.
#showtooltip/focus [@mouseover] [harm]
#showtooltip/stopcasting/cast [@focus,harm,nodead] Counterspell; [harm] Counterspell
Bind the focus setter to a key, bind the interrupt, and the arena game writes itself: focus their healer once, interrupt on demand forever. /clearfocus drops the focus for the next assignment.
One binding pattern to steal
The "aim, then act" skeleton: a targeting line first, then the cast that uses it. This tiny shape covers charge-openers, assist-assignments, and focus interrupts, and it composes with mouseover (cursor aim) andlazy fallbacks (context aim). Aim lines first, act lines second, and your bars will always point somewhere real.