===== Interactive Stack ===== The interactive stack mode is entered by pressing **UP** while on the stack. A cursor on the left of the stack indicates the stack is in interactive mode. Pressing **ON** will exit interactive mode. ==== Selecting items ==== While in the interactive stack, you can operate on a single item __by simply moving the cursor to that item__ or on multiple items __by selecting them first, then operating on them__. To select multiple items, move the cursor to the item in question, then press **SP**. The item will be highlighted on the screen. Moving the cursor to other items will extend the selection, and pressing **SP** again will fix the selection, so the cursor is free to move. The selection is also cleared by another tap of **SP**. ==== Stack operations ==== === Rotating items and ranges === The most common stack operations are performed using **LF** and **RT**. When there's no selection, **LF** will move the item at the cursor to level 1, while **RT** will move the item on level 1 to the position pointed by the cursor. Other items in between will move accordingly, effectively causing ''[[manual:chapter6:stack:cmd_roll|ROLL]]'' and ''[[manual:chapter6:stack:cmd_rolld|ROLLD]]'' with the items between level 1 and the cursor. When there's a selection, and __only if the cursor is within the selected range__, **LF** and **RT** will do the same but only within the selected range, effectively rotating the selected items. === Cutting and pasting === When there's a selection but the cursor is pointing outside the selected range, **LF** will move the selected items to the cursor position, while **RT** will make a copy of the selected items at the cursor position, preserving the original selected range. The standard clipboard shortcuts will also work on selected items or the item at the cursor location: * **LShold-LF** will __copy__ the selected objects to the stack; * **LShold-RT** will __paste__ the clipboard at the current cursor location; * **LShold-DN** will __cut__ the selected objects, removing them from the stack and leaving a copy on the clipboard. === Picking an item === Pressing **EN** will create a copy of the object at the cursor position at level 1 (similar to ''[[manual:chapter6:stack:cmd_pick|PICK]]''). It works on individual items only. === Removing items === Pressing **BK** will drop the item at the cursor position, or the selected items if a selection exists. === Creating and exploding composite items === The interactive stack makes it simple to create composite objects: * Pressing **MUL** will create a vector with the items in the selection or at the cursor position. If the items include vectors or individual items of compatible dimensions, it will create a matrix. It is flexible with the arrangement of individual items and vectors: as long as there is one vector that determines the number of columns in the matrix, individual items can be used to fill the matrix in row order; * Pressing **SUB** when there are exactly 2 items selected will create a complex number; * Pressing **ADD** will create a list with the items in the selection or at the cursor position. * Pressing **DIV** will explode a composite object into its components.