An RPN interface for the TI Nspire CX
As I really liked the rpn application for the TI-89 but could not find a usable RPN implementation for the TI nSpire, I've created rpnSpire, a powerful RPN implementation with many features such as searchable menus, autocompletion, an application framework in lua, a matrix editor, and many more.
Use the latest build from the GitHub actions and put it under MyWidgets
on your nspire CX.
Building rpnspire depends on luabundler
(install from npm
) and luna
.
make tns
The input field of rpnspire supports autocompletion for functions, variables and units. To trigger completion,
press tab. Completion uses characters left to the cursor as compeltions prefix. Typing so<tab>
will
present you the first entry of a list of completion candidates starting with so
. Pressing tab multiple times loops through all candidates. To accept a completion press hit enter. Completions are sorted by use (see config/stats.lua). Typing with the completion pop-up open, further filters the candidates.
RPN-mode is the default mode of rpnspire. In RPN-mode, pressing an operator or function key submits the current input and directly evaluates the operator or function pressed. If the cursor is not at the last position, input mode is set to non-rpn (alg) automatically.
Calling functions from RPN-mode is done by just entering the function name without parentheses. To set the argument for variable argument functions, use parentheses.
RPNspire features a matrix editor to write and edit matrixes.
See config/config.lua, to adjust defaults.
See config/bindings.lua, to configure your own bindings.
rpnspire uses key-sequences for its bindings. .e means: Press .
and then press e
.
The current sequence of keys pressed (that are part of a binding) is displayed by a dialog at the
top of the screen.
Key | Function |
---|---|
.u | Undo |
.r | Redo |
left | Move cursor left; if empty: roll up |
right | Move cursor right; if empty: roll down |
up | Focus stack |
down | Swap stack 1 & 2 |
enter | Submit input; if empty: dup 1 |
tab | Start completion for current input |
.left | Roll up beginning |
.right | Roll down end |
Key | Function |
---|---|
.= | Store Y in X |
.+-*/^ | Push dot operator |
.s | Store interactive |
.x | Solve interactive |
.e | Edit last expression |
.l | Push list |
., | Join X and Y as Vector or List (depending on type of Y) |
./ | Explode interactive |
------------------------------ | --------------------------------------------------------- |
.v | Display variables |
.a | Display apps/tool |
.b | Display bindings |
.m | Open matrix editor |
.return | Show command palette editor |
Key | Function |
---|---|
left | Roll stack up (1) |
right | Roll stack down (1) |
up | Move selection up |
down | Move selection down, focus input if out of bounds |
backspace | Delete selected item |
enter | Duplicate selected item |
c | Copy selected expression to input |
r | Copy selected result to input |
7 | Select bottom (oldest) |
3 | Select top (newest) |
tab/escape | Focus input |
Key | Function |
---|---|
.left | Move to column 1 |
.right | Move to last column |
.up | Move to first row |
.down | Move to last row |
= | Evaluate cell |
ctx | Show context menu |
Key | Function |
---|---|
, | Submit input and move to next column |
enter | Submit input and move to next row |
- RPN interface supporting (nearly) all of the nspires operators
- Stack manipulation functions (See global keybindings)
- Undo and redo (.u/r)
- Autocompletion for functions, variables and units
- Nested keyboard shortcuts
- It is not possible to call TI-Basic Apps from Lua