/cancelform is special as it doesn't wait for the server to confirm before changing the
[form] flag. It also doesn't consume the GCD, so the
/cast after successfully runs. Additionally, TBC allows directly shifting between forms.
/cancelform was only required in vanilla.
This is what I use for shifting. I usually have aquatic/travel/flight forms combined in their own macro so underwater fights are more manageable.
Combat Shift Macro:
Code:
/cast [form:1,nomod][noform:1,mod] Bear Form; Cat Form
Travel Macro:
Code:
/cast [swimming] Aquatic Form; [flyable] Flight Form; Travel Form
Note: You will want to omit Flight Form until you have learned it as it'll prevent shifting into Travel Form in Outland.