A text editor is an essential tool for both developers and sysadmin, especially when dealing with text based sessions. We use a text editor to create, edit, and update text. A text editor is used for many things. Some use them to write documents. Some people write code and others use it to edit Linux and Unix configuration files locally or remote servers running in the cloud. Let us see the top 6 text editors for Linux, macOS, and Unix command-line users/developers.
Top 6 awesome text editors for Linux, macOS and Unix CLI users
The curated list for text editors is in alphabetical order.
1. emacs – GNU Emacs is the extensible self-documenting text editor
GNU Emacs is an acronym for Macros Macros. One of the most common text editors on Linux and Unix-like systems. Developers and programmers primarily use it. Emacs’ key selling points are its powerful Emacs Lisp, a built-in programming language that lets the user extend the editor’s capabilities. Emacs fans are often involved in an Internet turf war with vim/vi fans.
2. kakoune – Modal editor inspired by vim, especially keystrokes
Kakoune is a modal text editor. Vim is a significant inspiration for Kakoune existence, and it tries to improve the text editing workflow and fit better to the Unix philosophy. From the project home page:
Kakoune is a code editor that implements Vi’s “keystrokes as a text editing language” model. As it’s also a modal editor, it is somewhat similar to the Vim editor. Kakoune can operate in two modes, normal and insertion. In insertion mode, keys are directly inserted into the current buffer. In normal mode, keys are used to manipulate the current selection and to enter insertion mode. Kakoune has a strong focus on interactivity, most commands provide immediate and incremental results, while still being competitive (as in keystroke count) with Vim.
3. micro – A simple and easy to use text editor
Micro is a terminal-based text editor that aims to be easy to use and intuitive while also taking advantage of modern terminals’ full capabilities. From the project page:
micro aims to be somewhat of a successor to the nano editor by being easy to install and use in a pinch, but micro also aims to be enjoyable to use full time, whether you work in the terminal because you prefer it (like me), or because you need to (over ssh).
Features are as follows:
- Standard keybindings (Ctrl-s to save, Ctrl-z to undo, Ctrl-q to quit, etc.)
- Syntax highlighting for over 140 programming languages supported
- Full support for the mouse. It means you can click and drag to select the text, double click select by word, and triple-click to select by line
- Multiple cursors
- Configurable keybindings and settings (tab width, tabs vs. spaces, diff gutter, etc.)
- Built-in terminal emulator
- Splits and tabs
- Automatic linting and commenting via Lua plugins
- Plugin manager to download additional Lua plugins other users have made
- Terminal emulator
- And much more
4. nano – Nano’s ANOther text editor, inspired by Pico for new users/developers
GNU nano is a tiny text editor with a reputation for newbie-friendly. Nano was initially gain popularity due to Ubuntu and now default on many Linux distros. It mimics the look and feel of Pico text editor, although is free software, and implements several features that Pico lacks. For instance:
- Opening multiple files
- Scrolling per line
- Syntax coloring
- Line numbering
- Soft-wrapping overlong lines and much more.
5. neovim – Vim fork focused on extensibility, usability, and backward comparability
Neovim is a fork of vim with additional features. The authors of Neovim wanted text editor features to improve Vim’s extensibility and maintainability. It is fully compatible with Vim’s editing model and the Vimscript language. With 30% less source-code than Vim, the vision of Neovim is to enable new applications without compromising Vim’s traditional roles. Since Neovim is a drop-in replacement for vim, the learning curve is easier for existing vim users. Feature includes:
- Strong defaults
- Modern terminal features such as cursor styling, focus events, bracketed paste
- Built-in terminal emulator
- The plugin API
- LUA based scripting apart from Vimscript
6. vim – The most loved and memed text editor
Vim is an acronym for Vi IMproved. It is a clone, with an additional set of features to the original Bill Joy’s vi text editor for Unix. Vim’s author, Bram Moolenaar, based Vim on the source code for a port of the Stevie editor to the Amiga. At the time of its first release, the name “Vim” was an acronym for “Vi IMitation”, but this changed to “‘Vi IMproved” late in 1993.
I prefer vim as I started with vi on Unix. Many like to use a simple text editor such as nano or micro to edit files over ssh-based sessions. There is ed too, which is regularly advertised as the standard text editor for Unix. VIM/Neovim, Emacs, and kakoune also work as IDE with various tweaks and plugins. Here is a quick table summarizing text editors I talked about in this post:
|Name||Creator||Written in||Cost||License||Opensource||Install size on Ubuntu||Linux||macOS||BSD||Mostly used by|
|GNU/emacs||Richard Stallman||C, Emacs Lisp||Free||GPL||✅||42.3 MB||✅||✅||✅||Developers and hackers|
|micro||Zachary Yedidia||Go, Lua||Free||MIT||✅||3MB||✅||✅||✅||New sysadmins and developers|
|nano||Chris Allegretta||C||Free||GPL||✅||269 kB||✅||✅||✅||New sysadmins and programmers|
|neovim||Thiago de Arruda Padilha||C, Vimscript, Lua||Free||Apache and Vim||✅||10.6MB||✅||✅||✅||Sysadmins and developers|
|vim||Bram Moolenaar||C, Vimscript||Free||Vim||✅||2.2MB||✅||✅||✅||Sysadmins and developers|
Did I miss your favorite CLI text editor? Let me know in the comment section below.
🐧 10 comments so far... add one ↓
|Category||List of Unix and Linux commands|
|Disk space analyzers||ncdu • pydf|
|Firewall||Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04|
|Network Utilities||NetHogs • dig • host • ip • nmap|
|OpenVPN||CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04|
|Package Manager||apk • apt|
|Processes Management||bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time|
|Searching||grep • whereis • which|
|User Information||groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w|
|WireGuard VPN||Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04|