diff options
Diffstat (limited to 'docs/SPECIAL_VARS')
-rw-r--r-- | docs/SPECIAL_VARS | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/docs/SPECIAL_VARS b/docs/SPECIAL_VARS new file mode 100644 index 00000000..e8020558 --- /dev/null +++ b/docs/SPECIAL_VARS @@ -0,0 +1,104 @@ +NOTE: This is just a slightly modified file taken from EPIC's help. +'!' at start of the line means that the feature doesn't work yet.. + +Special Variables and Expandos + +Irssi supports a number of reserved, dynamic variables, sometimes +referred to as expandos. They are special in that the client is +constantly updating their values automatically. There are also +numerous variable modifiers available. + + Modifier Description + $variable A normal variable, expanding to the first match of: + | 1) an internal SET variable + | 2) an environment variable + $[num]variable Expands to the variables value, with 'num' width. If + | the number is negative, the value is right-aligned. + | The value is padded to meet the width with the + | character given after number (default is space). + | The value is truncated to specified width unless + | '!' character precedes the number. + $#variable Expands to the number of words in $variable. If $variable + | is omitted, it assumes $* + $@variable Expands to the number of characters in $variable. if + | $variable is omitted, it assumes $* + $($subvariable) This is somewhat similar to a pointer, in that the + | value of $subvar is taken as the name of the + | variable to expand to. Nesting is allowed. + ${expression} Permits the value to be embedded in another string + | unambiguously. +! $!history! Expands to a matching entry in the client's command + | history, wildcards allowed. +! $"some text" Uses 'text' as an input prompt, and returns whatever + | is typed next. This usage is deprecated, use the + | INPUT command instead. +! $'some text' Same as $"text" except that it only returns the first + | next typed character. + +Whenever an alias is called, these expandos are set to the arguments passed +to it. If none of these expandos are used in the alias, or the $() form +shown above, any arguments passed will automatically be appended to the last +command in the alias. + + Expando Description + $* expands to all arguments passed to an alias + $n expands to argument 'n' passed to an alias (counting from zero) + $n-m expands to arguments 'n' through 'm' passed to an alias + $n- expands to all arguments from 'n' on passed to an alias + $-m expands to all arguments up to 'm' passed to an alias + $~ expands to the last argument passed to an alias + +These variables are set and updated dynamically by the client. The case of +$A .. $Z is important. + + Variable Description +! $, last person who sent you a MSG +! $. last person to whom you sent a MSG +! $: last person to join a channel you are on +! $; last person to send a public message to a channel you are on + $A text of your AWAY message, if any +! $B body of last MSG you sent + $C current channel +! $D last person that NOTIFY detected a signon for +! $E idle time +! $F time client was started, $time() format +! $H current server numeric being processed +! $I channel you were last INVITEd to + $J client version text string + $K current value of CMDCHARS +! $L current contents of the input line + $M modes of current channel, if any + $N current nickname +! $O value of STATUS_OPER if you are an irc operator + $P if you are a channel operator in $C, expands to a '@' + $Q nickname of whomever you are QUERYing +! $R version of current server + $S current server name + $T target of current input (channel or QUERY nickname) +! $U value of cutbuffer +! $V client release date (numeric version string) + $W current working directory +! $X your /userhost $N address (user@host) + $Y value of REALNAME + $Z time of day (hh:mm) + $$ a literal '$' + +For example, assume you have the following alias: + + alias blah msg $D Hi there! + +If /blah is passed any arguments, they will automatically be appended to the +MSG text. For example: + + /blah oops /* command as entered */ + "Hi there! oops" /* text sent to $D */ + +Another useful form is ${}. In general, variables can be embedded inside +strings without problems, assuming the surrounding text could not be +misinterpreted as part of the variable name. This form guarantees that +surrounding text will not affect the expression's return value. + + /eval echo foo$Nfoo /* breaks, looks for $nfoo */ + /eval echo foo${N}foo /* ${N} returns current nickname */ + fooYourNickfoo /* returned by above command */ + |