Due to its modular design, almost any aspect of the editor can be changed. Even seemingly core packages, like those taking care of search and replace functionality, can be forked on GitHub, and changed and replaced in the editor. The documentation for creating new plugins is also great, making it...

When compared to modern graphical editors like Atom and Brackets (which have underlying HTML5 engines, browsers, Node, etc.), Vim uses a sliver of the system's memory and it loads instantly, all the while delivering the same features. Vim is also faster than Emacs.

You'll spend a lot of time learning all the commands and modes supported in Vim. You'll then spend more time tuning settings to your needs. Although once it's tuned to your needs, you can take your .vimrc to any machine you need and have the same experience across all your computers.

Many plugins depend on optional Python and Lua features, which may or may not be included in whatever binaries are available for your system. And without platform-specific hacks, it is difficult for plugins to operate in the background or use external tooling.

Though basic features like syntax checking, autocompletion, and file management are all available out of the box or with minimal configuration, this is not obvious to new users, who might get intimidated or assume they need to install complex plugins just so they can have this functionality. Other...

With LT's inline evaluation, you don't have to re-compile your whole source file. Each time you want to see an output, all you have to do is hover your cursor over the line you'd like to evaluate and press ctrl+enter; LT will evaluate that line of code for you.

LT has a plugin manager built directly inside of it. This plugin manager connects to LT's own registry of plugins, so whenever you want assistance while writing your HTML, JS, or even Python, just open up the plugin manager, search for it, and click the little install button beside it's nam...

Customizations can be made to a wide range of Emacs' functions through a Lisp dialect (Emacs Lisp). A robust list of existing Lisp extensions include the practical (git integration, syntax highlighting, etc) to the utilitarian (calculators, calendars) to the sublime (chess, Eliza).

At the heart of Spacemacs, the configuration layers group packages configuration into semantic units that can be toggled on and off. The architecture is simple but powerful, allowing the user to easily manage configuration dependencies between hundreds of packages.

Spacemacs combines many packages from many different authors that were never designed to work together. Sometimes they interact in unexpected ways, and things randomly break as one package interferes with another's features. This combined with delayed auto-loading of packages in unpredictable o...

To configure Spacemacs, settings for Emacs/Evil/Spacemacs may need editing. It's not always clear which need to be changed or how to change settings globally: sometimes hooks are needed, other times Spacemacs provides options.

Although configuration is heavily loaded, the starting time of Spacemacs is usually between two and five seconds. Emacs can be run as a daemon though which reduces the client's startup time to a few milliseconds.

Sublime Text has a minimap on the side that provides a top-down view of the file and keyboard shortcuts for most actions. It also supports a large number of languages and general text editing features out of the box.

Sublime Text uses TextMate's syntax declaration files to support new languages, it has all its menus and keybindings generated from JSON files, and it can be scripted to add new features using Python. If Sublime Text doesn't support a desired language or feature, it's usually not long...

Does not have an IRC channel or some kind of forum where a community of developers/plugin writers could evolve around. Has a mailing list which is said to be active but that does not feel that attractive.

Kakoune works on selections, which are oriented, inclusive range of characters, selections have an anchor and a cursor character. Most commands move both of them, except when extending selection where the anchor character stays fixed and the cursor one moves around.

BBEdit is commercial software, the paid counterpart to their free application Textwrangler. Though BBEdit comes off as pricey, this allows for stable and consistent updates from the developers. BBEdit has been around since 1992.

NeoVim was a complete rewrite of Vim, with new features added and underlying issues resolved thanks to the Vim code base. The keybindings and configuration are the same as Vim, so the switch can be pretty simple.

The core text editor is "headless", meaning it's detached from the user-interface so other programs can hook into it. This enables better integration with IDEs and browsers, where "Vim mode" has typically been a poor substitute because it was a partial rewrite or a partial p...

Vim plugins have always been useful, but tied to specific languages. Neovim's architecture provides better separation between plugins and the core product, so that plugins are completely flexible and can be written in any language.

IDEA places an emphasis in safe refactoring, offering a variety of features to make this possible for a variety of languages. These features include safe delete, type migration and replacing method code duplicates.

Slap is written in JavaScript and it requires something to interpret it in a local machine. That something is node.js, but for people who don't need node, it would be a hindrance and an overkill to install node just to use a simple text editor. Furthermore, it can only be used remotely if the r...

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 p...

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.

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 ls or dir commands to show the files in a directory.

Brackets will automatically refresh the browser and load the latest saved version of a file open in the browser. This works with php as well. Editing a css will even highlight the tag that's currently being worked on. However, it only works with Chrome.

Some gaps have to be filled by plugins, while these features should be built in. For example: Jump to matching brace (bracket / parenthesis); Gutter selection of lines; Recall previous searches / replacements; Autofill of search field with text under caret (text has to be selected...