The Commandline Input Features
Commandline input features
Principles of operation

The idea is simple: anything that starts with a slash / character is interpreted as a command. Anything else is plain text that is sent to the target of the window (channel, query, DCC chat etc.).
The two operating modes

The commandline input has two operating modes: the user friendly mode and the KVS mode. In the user friendly mode all the parameters of the commands are interpreted exactly like you type them. There is no special interpretation of $, %, -, ( and ; characters. This allows you to type /me is happy ;), for example. In the KVS mode the full parameter interpretation is enabled and the commands work just like in any other script editor. This means that anything that starts with a $ is a function call, anything that starts with a % is a variable, the dash characters after command names are interpreted as switches and ; is the command separator. This in turn does not allow you to type /me is happy ;) because ; is the command separator and ) will be interpreted as the beginning of the next command. In KVS mode you obviously have to escape the ; character by typing /me is happy \;). The user friendly mode is good for everyday chatting and for novice users while the KVS mode is for experts that know that minimum about scripting languages. Please note that in the user-friendly mode you're not allowed to type multiple commands at once :).
Also look at the keyboard shortcuts reference.
If you drop a file on this widget, a <a href="parse.kvihelp">/PARSE <filename></a> will be executed.
You can enable word substitution in the preferences dialog.
For example, if you choose to substitute afaik with As far as I know,
when you will type afaik somewhere in the command line, and then press Space or Return, that word will be replaced with As far as I know.
Experiment with it :)
The Tab key activates the completion of the current word.
If a word is prefixed with a /, it is treated as a command to be completed, if it begins with $, it is treated as a function or identifier to be completed, otherwise it is treated as a nickname or filename to be completed.

/ec<Tab> will produce /echo<space>
/echo $loca<Tab> will produce /echo $localhost
Multiple matches are listed in the view window and the word is completed to the common part of all the matches.

$sel<Tab;> will find multiple matches and produce $selected
Experiment with that too :)

Index, Miscellaneous