For nearly 30 years, Vim has been the text editor of choice of many Linux programmers. Despite its notoriously steep learning curve, unintuitive editing modes, and text-based user interface, it continues to convince a new generation of Linux programmers that old-school open-source software applications still have a lot to offer.
In particular, Vim can offer rock-solid stability, powerful search and replace functionality, support for all common and not-so-common programming languages and file formats, extensive customizability, plugin support, extreme portability, and minimal hardware requirements.
The only problem is that Vim is one of the most difficult text editors to learn. If the idea of learning a text editor sounds daft to you, we recommend you select a different text editor instead. But if you find the required time investment acceptable, go ahead and fire up vimtutor in a terminal. This interactive, built-in tutorial explains everything you need to know to use Vim for programming in 2020.
The original Vim text editor is a brainchild of Bram Moolenaar, a Dutch computer programmer who has been working in Google’s Zürich office since 2006. Just like Linus Torvalds has the ultimate authority when it comes to deciding which features will be included in a new version of the Linux Kernel, it’s up to Bram to steer the development of Vim.
Wanting to remove barriers to entry and make Vim usable and easily extendable so that new generations of users are encouraged not only to use it for programming but also to contribute, Neovim is a Vim-based text editor built for users who want the good parts of Vim without the bad parts.
Neovim comes with sane defaults, several new features (including Lua scripting, remote plugins, and embedded terminal), and it delivers a consistent user experience across all platforms. Most Vim plugins are supported, and there’s a growing number of Neovim-specific plugins that take advantage of its unique features.
Some Linux programmers like to describe Emacs as a great operating system, lacking only a decent text editor, and there’s some truth hiding behind this joke.
The fact is that Emacs, which was first released in 1976 and later ported by Richard Stallman for the GNU Project as GNU Emacs, is an immensely complex and infinitely extendable text editor that can do basically anything you configure it to do, including web browsing or playing Tetris.
The good news is that Emacs is extremely well-documented, and there’s an enormous number of online tutorials, guides, and other learning resources created by its users. Just know that it takes a lot of time to learn Emacs shortcuts, and even more time to customize it to fit your needs. It’s easy to waste an entire day on Emacs customization and program nothing at all.
In case you haven’t yet noticed, Microsoft is now the open-source community’s greatest champion, and the Visual Studio Code is the best text editor the tech giant has ever developed. Visual Studio Code was ranked the most popular developer environment tool in the Stack Overflow 2019 Developer Survey, with 50.7% of respondents claiming to use it as their text editor of choice.
Because it’s based on Electron, an open-source framework for building desktop applications with web technologies, this multi-platform text editor runs on Linux, Windows, and macOS. It features smart code highlighting and autocomplete, includes support for debugging, and makes it easy to work with Git and other SCM providers.
You can add additional features via third-party extensions, which run as separate processes for better stability. All Visual Studio Code extensions can be conveniently installed from Visual Studio Code MarketPlace even if you don’t have a Microsoft account.
5. Sublime Text
If you’re looking for a straightforward text editor that you can use without any configuration right after you install it, Sublime Text is a great choice. The editor was first released in 2008 by Jon Skinner, and it quickly became popular among software developers, Linux users, and even prose writers.
Users like its native support for many programming and markup languages, powerful API and package ecosystem, support for split editing, and customizable key bindings, macros, and just about everything else.
You can download Sublime Text for free to evaluate it, but a license must be purchased for continued use. That said, there’s no time limit on how long you can use Sublime Text, so it’s really up to you to decide if you want to purchase a license and support its developers.
The official documentation for creating Atom plugins is comprehensive and easy to follow, which is one reason why there are around 9,000 third-party plugins for Atom at the time of writing this article. You can install any Atom plugin from the web or via apm in the terminal.
In the past, Atom used to report various data to external servers without the explicit consent of its users. The packages that were responsible for the reporting now display an opt-in dialogue at the initial launch.
Brackets is especially popular among web developers because it allows them to connect it to a web browser so they can see all changes made to CSS and HTML on screen in real-time. With a single keyboard shortcut, you can open an inline text editor and work on a CSS file that applies to a specific ID without opening a new tab. Brackets can use Quick Edit and Live Highlight with your LESS and SCSS files to make working with them easier than ever.