---
title: "The ISPF editor and key presets"
---

# The ISPF editor and key presets

ISPF's prefix area and command line in the Editor, line and primary commands, HEX display, edit profiles, EDIT, VIEW and BROWSE, and the ISPF and IDz key presets.

**Verification state:** **modelled.** The commands are tested by unit tests against expectations derived by hand from IBM's "z/OS ISPF Edit and Edit Macros" (SC19-3621-60), and by a rendering test in a real code editor. **No ISPF or IDz session was run beside them**, and the hand-derived readings have not been rechecked against the manual for your z/OS level.

## Turn on the prefix area and command line

Set `neuralInverse.mainframe.ispf.prefixArea`, or run **Toggle ISPF Prefix Area and Command Line**. COBOL programs, copybooks, JCL and z/OS members then show ISPF's prefix area beside each line and a `Command ===>` line above the text. `==ERR>` and `==CHG>` flags mark lines as ISPF marks them.

## Line commands

Type in the prefix area, as in ISPF:

| Command | What it does |
|---|---|
| I, D, R | Insert, delete, repeat lines (with counts and block forms) |
| C, M with A, B, O and OO | Copy or move lines after, before or over a target |
| X, F, L, S | Exclude lines, and show the first, last or some excluded lines |
| `(`, `)`, `<`, `>` | Column shifts and data shifts |
| TE | Text entry |
| UC, LC | Upper and lower case |
| COLS, TABS, BNDS, MASK | The column ruler, tabs line, bounds line and mask line |
| Labels (`.A`) | Named lines for primary command ranges |
| TF, TS | Text flow and text split |
| MD, MDD | Make a special line (ruler, tabs, bounds, mask, `=PROF>` or `=NOTE=`) a data line |
| MODEL | Inserts a model with its `=NOTE=` lines; the models are the module's own |

## Primary commands

Type on the `Command ===>` line:

- **FIND, CHANGE, EXCLUDE** with NEXT, PREV, FIRST, LAST, ALL, CHARS, PREFIX, SUFFIX, WORD, X and NX, column and label ranges, and strings as `C''`, `T''`, `X''` (through IBM-1047) and `P''` picture strings; **RFIND**, **RCHANGE**.
- **RESET**, **BOUNDS**, **SORT** (in the EBCDIC sequence), **LOCATE**.
- **COPY**, **MOVE**, **CREATE**, **REPLACE**. MOVE and REPLACE are confirmed, naming the system.
- **NUMBER**, **RENUM**, **UNNUM**.
- **SUBMIT**, **SAVE**, **END**, **CANCEL**, **UNDO**, **HELP**.
- **HEX**, **PROFILE**, and **EDIT**, **VIEW** and **BROWSE** of another member (VIEW and BROWSE open read-only).

`neuralInverse.mainframe.ispf.scrollAmount` (`PAGE` by default) sets how far PF7 and PF8 scroll.

## HEX display

**Toggle Hexadecimal Display (ISPF HEX)**, or HEX ON on the command line, shows each byte under its character in the connection's code page, in ISPF's vertical layout. Type over the digits to change a character. Tested on the IBM-037 and IBM-1047 tables.

## Edit profiles

`neuralInverse.mainframe.ispf.profiles` holds edit profiles by the data set's last qualifier or the file's extension, with CAPS, NUMBER, AUTONUM, NULLS, TABS, BOUNDS, RECOVERY, AUTOSAVE and HILITE. The profile is applied when a member opens; PROFILE on the command line shows and changes it, with LOCK, UNLOCK and RESET.

RECOVERY applies only to files on this machine, never to z/OS members: unsaved host data is kept out of backups by design (see [Protect production data](https://neuralinverse.com/docs/modules/mainframe/datasets/#protect-production-data)).

## Key presets

`neuralInverse.mainframe.keymap` chooses the keys:

| Preset | Keys |
|---|---|
| `default` | The Editor's own keys |
| `ispf` | ISPF's default keylist in the ISPF editor: PF1 HELP, PF2 SPLIT, PF3 END, PF5 RFIND, PF6 RCHANGE, PF7 UP, PF8 DOWN, PF9 SWAP, PF10 LEFT, PF11 RIGHT, PF12 RETRIEVE; Shift with a function key for PF13 to PF24 |
| `idz` | About 45 bindings of the Eclipse default scheme IDz keeps |

The JCL editor's menu names the submit action **Submit**, as IDz does.

Not yet compared with a live ISPF: VIEW here is read-only, where ISPF's VIEW allows changes that cannot be saved.
