This shows you the differences between two versions of the page.
stack [2006/08/29 16:08] |
stack [2006/08/29 16:08] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======Synopsis:====== | ||
+ | __stack__ push|pop|list alias|assign|bind|on|set [<item>] | ||
+ | |||
+ | ======Description:====== | ||
+ | __STACK__ is a convenient mechanism for storing current aliases, variables, | ||
+ | hooks, sets, and binds in a stack. New aliases, variables, hooks, etc | ||
+ | with the same names or scopes can be created without disturbing the | ||
+ | stacked ones. Those that are stacked can be restored at any time | ||
+ | (clobbering any current settings in favor of the saved ones). | ||
+ | |||
+ | There are three commands currently available to __STACK__. The first, push, | ||
+ | pushes an item onto a stack bearing its name. The second, pop, removes | ||
+ | the most recent pushed item off its stack. The last, list, shows the | ||
+ | contents of the named stack. | ||
+ | |||
+ | ======Examples:====== | ||
+ | To push the current WHO hook onto the stack: | ||
+ | stack push on who | ||
+ | |||
+ | To pop the most recently pushed $foo variable off its stack: | ||
+ | stack pop assign foo | ||
+ | |||
+ | To list the current alias stack: | ||
+ | stack list alias | ||
+ | |||
+ | ======Bugs:====== | ||
+ | __STACK__ LIST works, but not quite as one would expect. Instead of listing | ||
+ | each individual alias, variable, or hook separately, all are clumped | ||
+ | together. Their order is correct, but the output may be confusing. | ||
+ | |||
+ | Behavior between the five varieties can be confusing. Aliases, assigns, | ||
+ | and hooks (ons) disappear when pushed on to the stack. Keybindings and | ||
+ | sets do not (nor do they revert to defaults.) Also, the on stack | ||
+ | requires a hook type when accessed with the 'list' command. | ||