Fast. Clean. Yours.
Copyright © 2026, Roberto J Dohnert
Visual Editor is a pure, no-frills console text editor built for speed and simplicity. Where Visual CodeXR is the full IDE with build systems, debuggers, and toolchain detection, Visual Editor strips it all away and gives you exactly one thing done brilliantly: editing text. Keyboard-first, mouse-aware, UTF-8 correct, and ready in an instant — no dependencies, no configuration, no nonsense.
Open a file. Edit it. Save it. Done.
Visual Editor only redraws the screen when something actually changes. Mouse movement alone doesn't trigger a repaint. The result is a silky-smooth editing experience with zero flicker, even in constrained terminal environments.
The moment you change anything, the title bar appends * to the filename — a tiny but unmistakable signal that you have unsaved work. It disappears the instant you save.
This is not "UTF-8 as bytes." Visual Editor splits text into Unicode code points (glyphs) and operates on them correctly everywhere:
- Cursor movement steps by character, not byte
- Backspace and Delete remove characters, not bytes
- Menus, dialogs, path displays, and status messages all truncate and pad at glyph boundaries
- Left-side ellipsis (
…path/to/file.txt) keeps the meaningful end of long strings visible
Search forward from the cursor and it wraps back to the top automatically. You'll always find what you're looking for — and the status bar tells you when a match came from a wrap. No manual "search from beginning" needed.
| Action | Behavior |
|---|---|
| Type any character | Inserted at cursor position with correct glyph handling |
Enter |
Splits the current line at the cursor — content after cursor moves to next line |
Backspace |
Deletes the character before the cursor; joins lines when at column 0 |
Delete |
Deletes the character under the cursor; joins the next line when at end |
Tab |
Inserts a tab character |
| Key | Action |
|---|---|
Arrow keys |
Move cursor one character or line |
Home |
Jump to start of line |
End |
Jump to end of line |
Page Up |
Scroll up one full page |
Page Down |
Scroll down one full page |
All clipboard actions work on whole lines — fast, predictable, and consistent.
| Action | Effect |
|---|---|
| Cut | Removes the current line and puts it in the clipboard |
| Copy | Copies the current line to the clipboard |
| Paste | Inserts the clipboard line above the current position |
| Clear | Blanks the current line and returns the cursor to column 0 |
- Find — opens an input dialog, searches forward from the current cursor position
- Repeat Last Find — re-runs the previous query instantly, no dialog
- Replace — finds every exact match in the file and replaces all of them in one pass, reporting the count
- Wrap-around search — if the query isn't found below the cursor, the search continues from the top of the file, clearly noted in the status bar as
Found match (wrapped)
- New — clears the buffer and resets to
UNTITLED.TXT - Open — launches the file picker in list-only mode; navigate, select, open
- Save — writes the buffer to the current path; if the file is new, promotes to Save As
- Save As — file picker in name-input mode; choose directory and type a filename
- Exit — if unsaved changes exist, prompts with a yes/no/cancel dialog before quitting
The built-in file browser is a full interactive dialog:
- Directories and files are listed separately, each sorted alphabetically
..is always at the top for one-click parent navigation- Double-click a directory to enter it instantly
- Single-click a file to select it and populate the filename input
- Double-click a file to open it immediately without pressing OK
- Tab cycles focus between the filename input, the file list, OK, and Cancel
- The current directory path is displayed with left-side ellipsis so the deepest part of the path is always visible
- Path is shown as
Dir: …/current/pathwith smart truncation for narrow terminals
The help dialog is fully scrollable:
Arrow Up / Down— scroll one linePage Up / Page Down— scroll one full screen- A scroll hint appears automatically when the content is taller than the dialog
| Menu | Items |
|---|---|
| File | New, Open…, Save, Save As…, Exit |
| Edit | Cut, Copy, Paste, Clear |
| Search | Find…, Repeat Last Find, Replace… |
| Help | Help / Hotkeys, About |
| Shortcut | Action |
|---|---|
Alt+Shift+M |
Open / close the menu bar |
Alt+Shift+S |
Save the current file |
Alt+Shift+F |
Open the Search menu |
Alt+Shift+R |
Repeat last find |
Alt+Shift+H |
Open help & hotkeys |
Alt+Shift+C |
Copy current line |
Alt+Shift+X |
Cut current line |
Alt+Shift+V |
Paste from clipboard |
Alt+Shift+K |
Clear current line |
Alt+Shift+Left |
Highlight current line |
Alt+Shift+Right |
Highlight current line |
Arrow keys |
Move cursor |
Home |
Start of line |
End |
End of line |
Page Up |
Scroll up one page |
Page Down |
Scroll down one page |
Enter |
Split line at cursor |
Backspace |
Delete character before cursor / join line |
Delete |
Delete character at cursor / join next line |
Tab |
Insert tab / cycle dialog focus |
Esc |
Close menu or dialog |
Visual Editor is fully mouse-driven alongside the keyboard:
- Click a menu name in the top bar to open that menu
- Click a menu item to execute it
- Hover highlights menu items as the pointer moves
- Click in the editor area to position the cursor at that exact character
- Click OK or Cancel in any dialog to confirm or dismiss
- Double-click a file in the file picker to open it immediately
- Double-click a folder in the file picker to navigate into it
- Click the filename input in Save/Save As to switch focus to typing
The status bar runs across the bottom of the screen at all times.
- Left side — live status messages: what just happened, search results, error notices
- Right side — current cursor position:
Line:N Col:N
Status messages are truncated with ellipsis when the terminal is too narrow to show both position and message — the position readout is always preserved.
Visual Editor uses a clean white-on-dark-blue palette:
| Element | Colors |
|---|---|
| Editor background | White on Black |
| Menu bar & status bar | White on Dark Blue |
| Selected / active menu item | White on Black |
| Dialog boxes | Black on Light Grey |
| File name input | Black on Cyan |
| Drop shadows | Dark Grey on Black |
| Feature | Visual Editor | Visual CodeXR |
|---|---|---|
| Text editing | ✓ | ✓ |
| UTF-8 glyph-correct UI | ✓ | ✓ |
| Mouse support | ✓ | ✓ |
| File picker | ✓ | ✓ |
| Find & replace | ✓ | ✓ |
| Syntax highlighting | — | ✓ (18 languages) |
| Build & compile | — | ✓ |
| Run files | — | ✓ |
| Script execution | — | ✓ |
| Debugger detection | — | ✓ |
| Toolchain management | — | ✓ |
| Workspace trust | — | ✓ |
| Integrated terminal | — | ✓ |
| Dirty-state smart rendering | ✓ | — |
| Double-click file navigation | ✓ | — |
| Wrap-around find | ✓ | — |
| Scrollable help dialog | ✓ | — |
Because not every editing job needs an IDE. Sometimes you're on a remote machine, in a container, or just need to fix a config file without pulling in the full Visual CodeXR experience. Visual Editor gives you a real editor — not notepad.exe, not vi, not some half-baked nano clone — that launches instantly, handles Unicode correctly, and gets out of your way. Lean, sharp, and exactly what it needs to be.