Ratchet has a rather complex and flexible alias system, it allows command chaining, the use of specific arguments, etc.
There are several sequences that Ratchet parses and replaces:
$<n> - insert the nth argument passed to the alias (counted from 0), negative numbers are counted from the end of the array (-1 is last argument, -2 is second last, etc) $<n>..<m> - insert a range of arguments between n and m. This is essentially a ruby range, if the last argument should be omitted, use 3 dots(...). Unlike ruby, Ratchet allows reverse ranges ($4..1, $-1..0), etc.
$@ - all arguments passed
$^ - all unused arguments for that line at the point the substitution is encountered
$! - force the line to have no arguments appended
$network, $presence, $username, $buffername are also substituted with the appropiate values
; - used to split commands, however as long as the next non-whitespace character isn't a /, Ratchet won't split by it so you can have ; in your alias strings for other purposes(eg. /alias test $0; $1)
Ratchet will append all arguments passed to a line if there are no $ substitutions performed, use $! to prevent this behaviour. Ratchet also defaults to sending a message if there is no command in the alias (eg. /alias test $@ will just send all arguments to the current buffer using Ratchet's cmd_message method), this only works for the initial command, for subsequent commands you must specify a command.
Examples A nickserv nickname recover alias:
/alias ghost /msg nickserv recover $0 $1; /msg nickserv release $0 $1; /nick $0; /msg nickserv identify $1 Usage is /ghost username password
Invert all arguments and send em as a message
/alias invert $-1..0
Cycle a channel:
/alias cycle /join; /part
To list all defined aliases use /aliases, to remove an alias use /unalias. Aliases are included in the /help and command completion for easy usage.