TTT 1.7: a TUI editor that feels like a GUI. Now with textmate syntax highlighting engine.

Wait 5 sec.

Hi, I'm the author of TTT, a terminal text editor that tries to feel like a GUI editor: VS Code-style keybindings, full mouse support, tabs, sliding panels, a command palette, LSP, Git integration, an integrated terminal, themes, and Lua plugins. It's a single Go binary, open source, and I've been building it in the open with a growing group of contributors. The goal is simple: an editor you can use in the terminal, over SSH or in a tmux pane without giving up the comforts you're used to from VS Code, Zed, or Sublime, and without memorizing a new modal langauge. What makes TTT different It's a TUI that feels like a GUI. A serious amount of work went into: Ergonomics. The editor features are discoverable when you look for something and invisible when you don't. You shouldn't need a manual to find what TTT can do; you find it by exploring. But the moment you're working, the interface quiets down and your code is the only thing asking for attention. TTT is there to help you do the work, not to become the work. Performance. A diff-based renderer only redraws the cells that changed, highlighting is incremental, and per-language editor benchmarks run in CI so regressions get caught before release. Stability. Every release goes through unit tests, end-to-end tests on a simulated screen, functional tests that drive the real binary, and a chaos monkey that hammers the editor with random input looking for crashes. I am not joking when I say the editor only crashed on me twice and that was months ago. Who is TTT for TTT tries to inspire GUI editor users to move into the terminal. Maybe you're spending more time over SSH, living in tmux, or working alongside CLI tools, and you want an editor there that feels familiar from the first minute instead of one you have to learn before you can use it. "How is this different from Fresh?" I get asked this every time, so here's the answer up front. IMHO Fresh's goal is IDE functionality in a TUI. It's about putting IDE productivity into a terminal interface, and it nails that. TTT's goal is the IDE feel in a TUI. And editor you can jump in and know where everything is when you need it. There's some overlap, and honestly I love that too. And in a terminal you don't have to choose: split your screen and run them side by side. What's new in 1.7 Syntax highlighting that matches VS Code. I spent the last few weeks porting VS Code's TextMate engine (vscode-textmate) from JavaScript to Go. The result, textmate-go, now powers TTT's highlighting with 124 embedded grammars, so code is colored the way you'd see it in VS Code, including tricky cases like multi-line JSX and HTML tags. Themes also get finer token styles, and edits only re-tokenize what changed. A better welcome page. It lists recently opened folders and can clone a Git repository directly. Smaller things: a regrouped settings editor, read-only files that are flagged with a lock icon and confirm before saving, an LSP: Server Restart command, a toggle for LSP hover popups, panel size remembered between sessions, and a long list of fixes. From the last few releases An integrated terminal rebuilt on xterm-go, with proper reflow on resize Inline images (PNG, JPEG, GIF) through the Kitty graphics protocol Optional Nerd Font icons and Git status colors in the Explorer Panels you can dock to the bottom or the right Quick Open backed by rg --files, respecting .gitignore Transparent backgrounds and a VS Code Dark+ theme VIM and Emacs keyboard compatibility plugin Community TTT is increasingly community-built Thanks to @SimonOcampo1, @anyingiit, @risixdzn, @YodHeVauHe, @LetMeSleep8h, @RhenCloud, @DBinK, @w3lld1 and @O1sumitkumar for code, and to everyone who opened issues. Several of this release's fixes started as a report. If you'd like to contribute, issues labeled good first issue are written so you can pick them up without much context. Also create an issue or a discussion, would love to hear how are you using ttt and things you would like to see in the feature. (Really! Roadmap is made by community requests) Site: https://tttedit.dev Source: https://github.com/eugenioenko/ttt Feedback is very welcome!   submitted by   /u/FitDirector3051 [link]   [comments]