SciTE is a lightweight, yet powerful, portable and flexible text editor.
Ranked in these QuestionsQuestion Ranking
It's property files allow for fine tweaks of its behavior, at a global or per language / project level. These textual settings might be confusing for those used to preference dialogs, but prove to be powerful, flexible, and fine grained.
With less than 2 MB of binary on Windows, SciTE starts instantly. Plus, if you don't need all the config, syntax files, blah, there's a 678k standalone .exe version. Nothing is going to beat that for lightweight and start-up times. Stick it in a folder that is already on your PATH.
Pro Built-in shell
The console window can show the result of ran commands (like build current file, reporting warnings, and errors), but also accept interactive shell commands.
SciTE works on Windows and Linux, and it also has a commercial port on MacOS.
Pro Powerful syntax highlighting for numerous languages
Lexers providing folding and syntax highlighting are based on code, not on regular expressions. They support context, nesting, special rules, etc.
Pro Free (except on Mac) and open source
SciTE is written in C++, with lot of contributors, both to the core and to the numerous lexers.
Based on the Scintilla source code editor, SciTE has some advanced features like rectangular editing, simple regular expression search and replace, code folding, etc. It allows the user to launch a compiler or interpreter, and it can also interpret the error messages, jumping at the location they point to.
Lua scripting is key to SciTE's power and flexibility. The Lua scripting language can be used to perform complex text transformations. It's relatively simple syntax and its large user-base makes it a great choice for a scripting feature.
Con Missing file browser
SciTE's greatest weakness is perhaps the file browser. It does not really have one, just a poor substitute which works a little bit like a terminal window with
dir commands to show the files in a directory.
Con Hard to config
The configuration is mainly a file-based config, which can be unintuitive and difficult to use for new users.