Editing

The text surface is a RichTextFX CodeArea with line numbers, a fold gutter, a minimap, and a current-line highlight. Most of the editing help is automatic; the rest is a command away. See the full list on the Commands page.

Multiple cursors

Edit many places at once, VS Code style.

Movement chords act on the primary caret and don’t fan out, so use the arrow keys to move several carets together. Multiple cursors can be turned off in Settings, and they’re disabled in Simple UI mode.

Auto-indent

Enter does the right thing per language: it keeps the current line’s indent, adds a level after a block opener (braces, a trailing : in Python or YAML, do / then in shell, an open tag in XML or HTML), and splits a matching pair into an indented stanza with the closer dropped below. Typing a closer such as ), ], }, or a keyword like end / fi / done re-aligns the line to its opener.

Smart backspace removes a whole indent level in one press. On a blank, auto-indented line, a single Backspace jumps back to the end of the previous line. The indent unit (tabs or spaces) is inferred from the file.

Brackets and quotes

Typing (, [, {, ", ', or ` inserts the matching closer and keeps the caret between them. Type the closer when it’s already next to the caret and Editora types over it. Type an opener with a selection and it wraps the selection. Backspace inside an empty pair deletes both halves. Quotes aren’t auto-paired next to a word character, so the apostrophe in don't is left alone. Whenever the caret sits next to a bracket, it and its match are highlighted.

Comments

M-; (Emacs comment-dwim) comments or uncomments using the language’s own syntax. A single line toggles a line comment; a multi-line selection toggles a block or region comment. It covers // and /* */, #, <!-- -->, --, and the rest, preserving indentation, and toggles back off when the text is already commented.

Small operations

OperationCommandDefault key
Transpose charactersedit.transposeCharsC-t
Transpose wordsedit.transposeWordsM-t
Transpose linesedit.transposeLinesC-x C-t
Duplicate lineedit.duplicateLine(keymap-specific)
Move line up / downedit.moveLineUp / Down(keymap-specific)
Select alledit.selectAll(keymap-specific)
Fill paragraphedit.fillParagraphM-q
Set fill columnedit.setFillColumnC-x f

Fill re-wraps a paragraph to the fill column (70 by default), repeating any comment or quote prefix on each wrapped line.

String manipulation

Convert the case style of the selection or the identifier at the caret (camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case, dot.case), with a Cycle Case Style that steps a token through the styles on repeated presses (edit.case.cycle) and a Swap Case (edit.case.swap). Whole-line transforms work on the selection or the whole file: sort ascending/descending (numeric-aware, case-insensitive), sort by length, reverse, shuffle, remove duplicate or empty lines, and trim trailing whitespace. Each is a palette command, or reach them all from one filterable picker, Edit: String Manipulation… (C-c x).

Hex viewer

Opening a binary file (an executable, archive, .class, .pdf, and so on) shows a read-only offset | hex | ASCII dump instead of garbage text. Binaries are detected by content, and large files show their first slice with a truncation note. View: Open as Hex (view.openAsHex) force-opens any file’s bytes as hex, and View: Open as Text switches back.

Read-only and View mode

Toggle a buffer read-only with C-x C-q so it can’t be edited by accident. Typing and edit commands are blocked, while highlighting, folding, search, and copy keep working. A file that isn’t writable on disk opens read-only automatically. A Word-style View Mode banner docks above the editor with an Enable Editing button when the file is writable, and while read-only, Space pages down and Backspace pages up like a pager.

Whitespace and the column ruler

View options in Settings toggle whitespace markers, a configurable column ruler, the minimap, and line numbers. These render as lightweight overlays drawn only for the visible lines, so they stay cheap on large files.