Keys that cannot be changed
These are the same under every profile.
| Key | Action |
|---|---|
| F1 | Open or close keyboard help |
| ↑ ↓ ← → | Move the cursor |
| Shift + a movement key | Extend or reverse the selection |
| PageUp PageDown | Move one page up or down |
| Home End | Move to the start or end of the current line |
| Ctrl+Home Ctrl+End | Move to the start or end of the document |
| Enter | Insert a new line |
| Backspace Delete | Delete a character or the selection |
| Tab | Insert a tab |
| Esc | Cancel the current operation or selection |
The tables in 4.4.2 to 4.4.6 have three columns: default key (Erya Terminal Safe), action, and action name. The third is what you write in a config file (see 4.1.5).
Files and tabs
| Default key | Action | Action name |
|---|---|---|
| Ctrl+N | Create a blank tab | new_tab |
| Ctrl+O | Open a file in a new tab | open_file |
| F4 | Choose left and right files for comparison | compare_file |
| F9 | Switch to the previous tab | previous_tab |
| F10 | Switch to the next tab | next_tab |
| F11 | Close the current tab | close_tab |
| Ctrl+S | Save the document | save |
| F12 | Save under another name | save_as |
| Ctrl+X | Exit Erya | quit |
Editing and the clipboard
| Default key | Action | Action name |
|---|---|---|
| Ctrl+Z | Undo the last edit | undo |
| Ctrl+Y | Redo the last undone edit | redo |
| Ctrl+C | Copy the selection, or the current line | copy |
| Shift+Delete | Cut the selection, or the current line | cut |
| Ctrl+V / Shift+Insert | Paste and replace the selection | paste |
| Ctrl+K | Cut the current line | cut_line |
| Ctrl+D | Delete the current line | delete_line |
| Ctrl+A | Move to line start; Shift extends | line_start |
| Ctrl+E | Move to line end; Shift extends | line_end |
| Insert | Toggle insert and overwrite mode | toggle_insert |
| Ctrl+B | Start or cancel block selection | toggle_rectangular_selection |
Search and replace
| Default key | Action | Action name |
|---|---|---|
| Ctrl+W / Ctrl+F | Search for text | search |
| F3 | Find the next match | find_next |
| Ctrl+R | Enter search and replacement text | replace |
| F5 | Replace the next match | replace_next |
| F6 | Replace all matches | replace_all |
| Ctrl+G | Go to a line, or line and column (42:8) | go_to_position |
Views and conversions
| Default key | Action | Action name |
|---|---|---|
| Ctrl+L | Toggle line wrapping | toggle_line_wrap |
| Ctrl+P | Toggle the hexadecimal view | toggle_hex_view |
| Ctrl+T | Format a TOML, YAML, or JSON document | format_document |
| F7 | Cycle the save encoding | convert_encoding |
| F8 | Toggle LF / CRLF line endings | toggle_line_ending |
| F2 | Open system settings | open_settings |
Advanced: actions with no default key
Sixteen of them. Bind them yourself, or switch to Erya Classic (see 4.1).
| Key in Classic | Action | Action name |
|---|---|---|
| Alt+M | Set the paragraph reflow width | set_paragraph_width |
| Alt+Q | Reflow the current paragraph | reflow_paragraph |
| Alt+F | Fill the block selection with a character | fill_rectangle |
| Alt+Shift+← | Move the block selection left | move_rectangle_left |
| Alt+Shift+→ | Move the block selection right | move_rectangle_right |
| Alt+Shift+↑ | Move the block selection up | move_rectangle_up |
| Alt+Shift+↓ | Move the block selection down | move_rectangle_down |
| F9 | Capture the selection or line as a phrase | capture_phrase |
| F10 | Insert the next saved phrase | insert_phrase |
| Shift+F9 | Load phrases from .erya-phrases.json | load_phrases |
| Shift+F10 | Save phrases to .erya-phrases.json | save_phrases |
| Ctrl+F2 | Start or stop macro recording | toggle_macro_recording |
| Ctrl+F3 | Run the recorded macro | run_macro |
| Ctrl+Shift+F2 | Load a macro from .erya-macro.json | load_macro |
| Ctrl+Shift+F3 | Save the macro to .erya-macro.json | save_macro |
| Ctrl+C | Show the current cursor position | cursor_position |
Keys specific to each screen
These work only on that screen, and cannot be rebound.
| Screen | Keys |
|---|---|
| File dialog | ↑↓ select / Enter → open or enter / ← Backspace parent / HomeEnd first and last / Esc Q cancel |
| Hexadecimal view | W 16/32 bytes / O offset base / G go to offset / Esc back |
| Byte editing (binary) | 0–9 A–F write a byte / I overwrite or insert / Backspace Delete delete |
| Comparison | N next difference / P previous / Shift+→ copy left to right / Shift+← right to left / Ctrl+←Ctrl+→ scroll eight columns / Esc back |
| Keyboard help | ↑↓ scroll / PageUpPageDown page / HomeEnd first and last / F1 Esc back |
| System settings | ↑↓ field / ←→ value / E edit keys / Enter apply / Esc cancel |
| Keymap editor | ↑↓ select / Enter edit / Delete disable / S save as / Esc back |
| Confirmation (unsaved) | S save and go / Y discard / N Esc return |
| Confirmation (external change) | O overwrite / R reload / N Esc cancel |
| Confirmation (apply comparison) | Y overwrite / N cancel (on exit, Esc also returns) |
Glossary
Every term used in this manual, with the chapter that explains it.
| Term | In one sentence | See |
|---|---|---|
| Tab | One of several open files, each with its own cursor, search terms, and undo history. | 2.1.3 |
| Hint bar | Row 2, listing the keys that work on the current screen. | 1.3.3 |
| Status bar | Second from the bottom: filename, position, mode, syntax, encoding, line endings. | 1.3.5 |
| Message row | The last row. Yellow reports, white waits for input, red waits for a decision. | 1.3.6 |
| Insert / overwrite | Whether typing pushes text along or replaces the character under the cursor. | 2.2.8 |
| Grapheme cluster | What looks like a single character on screen; Erya's unit of movement and deletion. | 2.2.3 |
| Block selection | A rectangular selection that can be filled with a character or shifted as a unit. | 2.2.5 |
| Line wrap | Soft wrapping that changes the display only, never the file. Exclusive with block selection. | 2.2.5 |
| Paragraph reflow | Real line breaks inserted into the file to fit a given width. | 3.1.8 |
| Phrase | A captured string inserted in rotation, stored as JSON. | 2.4.3 |
| Macro | A recorded key sequence replayed on demand, stored as JSON. | 2.4.6 |
| Atomic save | Write a temporary file beside the original and swap it in; a failure never leaves a partial file. | 2.1.6 |
| External change | Another program modified the file. Clean documents reload; modified ones ask first. | 2.1.7 |
| Encoding | How text becomes bytes. Erya supports UTF-8, UTF-8 BOM, Big5, GBK, and Shift_JIS. | 3.1.1 |
| Line endings | LF or CRLF; the last cell of the status bar. | 3.1.4 |
| Large-file mode | The read-only reading mode used from 64 MiB up, which can follow a growing log. | 3.2 |
| Sparse line index | One file offset every 4096 lines, so a large file need not be loaded whole. | 3.2.3 |
| Hexadecimal view | The document laid out as bytes; read-only for text files. | 3.3.1 |
| Binary file | A file with NUL bytes or undecodable content; opens straight into the byte view. | 3.3.5 |
| Nibble | Half a byte. Changing a byte takes two hexadecimal digits. | 3.3.6 |
| Difference block | Consecutive differing lines in a comparison, treated as one unit. | 3.4.3 |
| Temporary copy | The working file used during a comparison; originals are untouched until you apply. | 3.4.1 |
| Key profile | A TOML file mapping actions to keys, swappable as a set. | 4.1 |
| Action name | The fixed identifier for a feature in a config file, such as save. | 4.4.2 |
| Erya Terminal Safe | The default profile, avoiding combinations terminals do not deliver. | 4.1.1 |
| Erya Classic | The original 1.0 bindings, including every advanced action. | 4.1.2 |
| Translation file | locales/*.toml, which decides the interface language and can be extended. | 4.2.5 |