Mitchell is to be commended for maintaining the editor solo for so many years and keeping the LOC count really low (2000 lines of C, 4000 lines of Lua). If you’re willing to read the source it’s really easy to wrap your head around the whole thing, which can’t be said for Emacs or Vim. When I find the time I’ll finish my vi mode…
It uses Lua LPEG lexers, which are extremely easy way to de develop syntax parsers/LSPs for new or unsupported languages.
Eventually our project moved to Pragtical, which has SDL as a cross-platform backend and uses the more modern meson as the build system, which made developing for it much easier.
Ok, well now I have to find out what hapoens if I get enough splits to make the width of each less than a pixel.
TextAdept - https://news.ycombinator.com/item?id=39571814 - March 2024 (31 comments)
I don’t see it mentioned.
The only thing missing is for me is the "save temporary file" behavior, as I have this habit of making a quick note, close to save up space, both in RAM and view, then later on, fire it up again. Will see if there's a Lua api for this later.
- Configurable key bindings, including language-specific keys, key chains, and key modes.
Does this include being able to make it feel like vi/vim?
The documentation for Scintillua also gets pulled into Textadept's API documentation as a dependency, so the syntax is also explained there. It's basically a bridge between Scintilla's native lexing and LPeg.
https://github.com/Fwirt/textadept-minimap
Textadept's biggest strength is also its biggest weakness: Scintilla allows for a lot of features that are nigh-impossible in the likes of Vim and Emacs due to their reliance on terminal behavior. However, Scintilla is not terribly well optimized and does not support GPU rendering, meaning that while there is very little bloat, Textadept can still chug in some edge cases. The most notable instance right now is large files with no line breaks (e.g. minified js libraries). Other Scintilla-based editors also suffer from this to varying degrees, although Notepad++ has some performance optimizations that seem to mostly mitigate it. Notepad++ is also Windows only and not as easily extensible.
/s
- (Fairly) low memory footprint
- Nice approach to buffers which seems to borrow from vi
- Apparent very high extensibility using lua
But as a guy that teaches kids about computing and system administration, having another option to demonstrate is excellent. For many things something like nano is fine, but for something a bit more robust? And is available for many platforms? And is small and self-contained? It's a great option. The Lua extensibility is also a bonus.
Teaching teenagers how to use vim or emacs is, not surprisingly, a bit of a chore.
The default behavior of Notepad++ is a very real security risk. So many system admins and developers will throw passwords and API keys into there and just forget about it. The scratch files are all sitting there unencrypted and with easy to exploit permissions.
Alas, my first thought after seeing TextAdept was that it could serve as a more secure alternative to Notepad++.
You can see a zillion examples here: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
The purpose is to satisfy extra-curious readers (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...) who might want to read previous discussions of the same story.
No criticism is intended! I add this because sometimes people think there's an implied "why did you repost this, it's already been discussed" - but not at all: reposts on HN are fine after about a year or so: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
* than you could possibly want, but oh well
of course, knowledge of VIM is essential to anyone when doing CLIs.
Searching for alternatives, Textadept seemed to fill the gap between features, speed and simplicity.
The plugin mentioned by the parent is really easy to grasp and tailor to my needs, which would not be the case with Notepad++, well, not for me at least.
The great thing about Textadept’s extensibility (and use of Lua specifically) is that it’s easy to pull in other Lua modules to add functionality. I don’t think it would be much work to modify the scratch file extension to prompt you for an encryption key on startup and then run the scratch files through libsodium (via luasodium) if you want to have your cake (scratch files) and eat it (some cursory level of security).
Tell HN: Announcing tomhow as a public moderator - https://news.ycombinator.com/item?id=43558671 - April 2025 (462 comments)
Everything else is explicitly saved (without secrets) or just an ephemeral buffer in Neovim.
Textadept is a fast, minimalist, and remarkably extensible cross-platform text editor for programmers.
Quick links: Download | Manual | Lua API Docs | Project Page
Textadept’s pre-built binaries require the following:
You can compile Textadept from source for use with different UI library versions, such as Qt 6 and GTK 2.24.
Note: Lua and other third-party dependencies are compiled into the application itself, and a Qt runtime is distributed with Windows and macOS builds.
You can download pre-built binaries for various platforms, as well as source code from the links below.
| Stable Release
(12.9) | Unstable Release
(13.0 beta) | Experimental
nightly build | | --- | --- | --- | | Windows | Windows | Windows | | macOS | macOS (Apple Silicon) | macOS (Apple Silicon) | | Linux x64 / ARM | Linux x64 / ARM | Linux x64 / ARM | | Extra modules | Extra modules | Extra modules | | Source code | Source code | Source code |
A list of all released versions is here along with their release notes.
Note: while Textadept contains plenty of built-in productivity tools, some extra features and functionality are available as optional modules in the “Extra modules” links above. This includes:
Simply unpack the pre-built binary archive anywhere you have permission to and run one of the following executables:
| Platform | GUI version | Terminal version |
|---|---|---|
| Windows | textadept.exe | textadept-curses.exe |
| macOS | Textadept.app | |
| ta (shell script) | Textadept.app/Contents/MacOS/textadept-curses | |
| Linux | textadept (Qt version) | |
| textadept-gtk (GTK version) | textadept-curses |
macOS Note: if you get a notice that Textadept “is damaged and can’t be opened,” you will need to remove the quarantine attribute from the app by running the following command in your terminal: xattr -d com.apple.quarantine /path/to/Textadept.app.
The “Help > Show Manual” menu item, or the F1 keyboard shortcut opens Textadept’s comprehensive user manual. There is also an online version. The manual covers all of Textadept’s main features, including installation, usage, configuration, theming, scripting, and compiling from source.
The “Help > Show LuaDoc” menu item, or the Shift+F1 keyboard shortcut opens Textadept’s extensive API reference for users interested in scripting the editor. There is also an online version.
If you downloaded the optional set of modules, unpack it into the .textadept/ directory in your home folder (keeping the top-level modules/ directory intact). You could instead unpack it into Textadept’s directory (thus merging the two modules/ directories), but this is not recommended, as it may make upgrading more difficult.
Note: Textadept generally does not auto-load modules. To use any of modules from the optional set, select the “Edit > Preferences”, use Lua’s require() function for each module to load, save the file, and restart Textadept. For example:
require('lsp')
require('file_diff')
require('spellcheck')
Compiling Textadept from source requires the following:
patch commandBasic procedure:

For example:
cmake -S . -B build_dir -D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D CMAKE_INSTALL_PREFIX=build_dir/install
cmake --build build_dir -j # compiled binaries are in build_dir/
cmake --install build_dir # self-contained installation is in build_dir/install/
Note: if you would like to build the nightly development version of Textadept, enable the NIGHTLY option during the configuration phase (e.g. -D NIGHTLY=1).
The “Compiling” section of the manual contains more information about this process.
Textadept is an open-source project, released under the MIT License.
You can contact me personally at code att foicica.com.