Introduction
The number of Linux text editors has been steadily rising over the past two decades. All Linux distributions come with a built-in text editor. But some editors add extra features or an easy-to-use interface.
The question remains: Which is the best text editor for Linux?
This article provides a review of the most popular, feature-rich, and useful source-code Linux text editors. The list is ranked by how widely editors are used, and how many applications they can be used for.
What is a Text Editor in Linux?
A text editor, also known as a code editor, is an application designed for coding and editing in HTML, CSS, JavaScript, PHP and many other programming languages. Most editors come with features such as syntax highlighting, easy navigation, customizable interfaces, search and replace options, and so on.
In Linux, there are two types of text editors:
- Command-line text editors. A good example is Vim, which gives you the option of jumping into the editor from the command line. System admins will find this very useful when editing configuration files.
- Graphical user interface (GUI) text editors. This type of text editor features a GUI but cannot be used from the command line.
Best Text Editor Options for Programmers
Sublime Text
What makes Sublime Text stand out is its ability to make use of each OS’ native functionalities. That makes Sublime Text one of the more resource-efficient options.
Pros: Sublime Text is highly customizable, both in appearance and in functionality (using plugins). In addition to having many of the basic editor features (like colored syntax and searchability), Sublime adds a Goto Anything feature. You can search inside or outside the application or open and manipulate files with a quick keystroke. It also allows multiple selections, so you can highlight multiple lines and edit them all at once.
Cons: Sublime Text has a steep learning curve even though it’s designed to simplify workflows. You can use it free of charge, but it has a very intrusive popup system asking users to buy a license.
How to Install
Sublime Text is not a default application on most Linux installations. Install it with the following command:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt update
sudo apt install sublime-text
Vim
Almost all Linux distributions, even older versions, come with the Vim editor installed. Vim stands for Vi Improved, meaning that Vim is a modified and improved version of the old Vi text editor.
Pros: Vim supports automatic commands, digraph inputs (useful in programming), split and session screens, tabs, colored schemes (color-coded by function), and tagging. It can be configured with plugins and comes with a tutorial (invoked with the vimtutor
command). When you master the commands, Vim is very efficient.
Cons: It does not have a GUI. The only way you can initiate Vim is from the command line. The interface is user-unfriendly, while some commands are not intuitive. Coding a file from scratch would be too complicated. The learning curve can be steep, but Vim is very popular in the Linux community.
Note: Learn how to edit lines in a text file without a text editor using the Linux sed command.
Nano Editor
Nano is a revision of an older editor called Pico and comes pre-loaded on most Linux installations. Nano is an ideal lightweight editor for beginners. It’s a lot easier to use than Vim, so it’s worth learning Nano for quick configuration edits.
Pros: It supports GNU Autoconf, interactive search-and-replace, auto-indent, and spellcheck. Nano is intuitive and easy to use. It lists the keystroke commands at the bottom of the editor, so you don’t have to memorize or look them up.
Cons: The list of commands is short and some may be unintuitive.
Atom
Atom is a popular open-source code/text editor that works across several platforms such as Windows, Mac, or Linux. Atom is also considered to be one of the best Python code editors.
Pros: Atom has color-coded syntax, a smart autocomplete feature, multiple panes, and a search-and-replace feature. It also has its own package manager for plugins, so you can easily expand its functionality. You can also customize the appearance manually by using themes. A new plugin – called teletype – allows you to share workspaces with other Atom users.
Cons: Most users will have to tweak the default configuration. Low-spec computers will struggle to run Atom, especially if you load multiple projects.
How to Install
Atom is not typically included in a default Linux installation. Install it with the following commands:
sudo add-apt-repository ppa:webupd8team/atom
sudo apt-get update
sudo apt-get install atom
For RedHat or CentOS systems, use the yum install
command instead of apt-get install.
Gedit
Gedit is a text editor that comes with the GNOME desktop environment. The design emphasizes simplicity so gedit is a great editor for beginners. Even though simple in design, gedit is a powerful tool.
Pros: The uncomplicated interface includes clipboard support, multilanguage spellchecking, undo/redo, syntax highlighting for various languages (C, C++, Java, Python, etc,), color-coded syntax, and has a flexible plugin system.
Cons: This editor works well if you do not need too many features, or if you simply prefer a clean interface. Gedit works great with GNOME, but there are better options for other desktop environments.
How to Install
On older versions of Linux, or versions without GNOME, it may not come pre-installed. Install gedit with the following command:
sudo apt-get install gedit
Note: Can’t decide between CentOS and Ubuntu? Read our CentOS vs Ubuntu comparison article.
Visual Studio Code
If you’ve installed Anaconda on Linux, you may be familiar with the option to install Microsoft Visual Studio Code. Even though it’s from Microsoft, VSCode is cross-platform, meaning it works on Windows, Linux, and Mac.
Pros: Visual Studio Code is lightweight but powerful, and it offers an extensive library of add-ons. These include additional programming language support, debuggers, and commands. This text editor is an excellent choice for developing JavaScript applications and working in cross-platform environments.
Cons: Compared to other text editors on this list, VSCode might not always run properly on Linux, especially Ubuntu. It is also known to use a lot of memory and CPU resources. Furthermore, it may run slower compared to other text editors.
How to Install
Install VSCode with the following command:
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make
GNU Emacs
GNU Emacs is a text/code editor for Linux professionals created by Richard Stallman, the founder of the GNU project. Emacs allows you to write code, display a manual, or draft an email from the same interface.
Pros: It has content-aware editing modes, extensive documentation and a tutorial, incredible language support, and a package manager for extensions. It also offers cross-compatibility with other GNU apps, including an organizer, mail app, calendar, and debugger.
Cons: It’s not for everyone. You might choose Emacs if you have multiple different tasks and want a standard interface. It’s designed for the Linux power user, so if that’s you, it’s worth a try.
How to Install
Install GNU Emacs with the following command:
sudo add-apt-repository ppa:kelleyk/emacs
sudo apt update
sudo apt install emacs26
Notepadqq
Notepadqq is a Linux editor inspired by the Notepad++ application for Windows. Even though different developers manage the projects, Notepadqq is a fair replica of Notepad++.
Pros: Notepadqq supports tabbed projects, color-coded syntax, syntax highlighting, auto-tabbing, and a good search-and-replace feature. It has a smart-indent feature that remembers the indentation settings of the last line typed. Another strong point is how efficiently it converts files between various types of character encoding.
Cons: Notepadqq supports over 100 languages but if you compare it to other text editors, Notepadqq’s set of features might seems lacking. It opens any text file though it doesn’t do tag matching or auto-completion.
How to Install
Install Notepadqq with the following command:
sudo snap install --classic notepadqq
Note: Most modern Linux distributions support Snap. If you’re running CentOS (or another Linux distribution without Snap), you’ll need to install the Snap app first.
Brackets
Brackets is a Linux editor designed around HTML and web design. It’s a cross-platform editor so that you can run it on Windows, Mac, or Linux for a seamless editing experience.
Pros: Brackets is a great choice for web developers. It includes live-preview for testing the appearance of your HTML code, plus inline editors. Like many other editors, it supports many extensions to add functionalities.
Cons: Brackets may stutter on older computer systems. Natively, it only supports HTML, CSS, and JavaScript. You can add more with extensions, though.
How to Install
Install Brackets with the following command:
sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets
Bluefish Text Editor
The bluefish text editor is aimed at making coding more accessible. It works on most platforms so that you can use it on Linux, Mac, or Windows.
Pros: Bluefish can be enhanced with plugins and supports standard features like color-coded syntax, auto-indent, and auto-complete for tags and classes. It also features an auto-recover option, in case of a power outage or system crash. It organizes data and code in a way that’s intuitive and easy to read.
Cons: Bluefish is not updated regularly and is already getting a bit outdated. It is useful if you are new to writing code or editing configuration files. However, some advanced features are tough to find, and the UI is not optimized for advanced users.
How to Install
Install Bluefish by executing the following command:
sudo add-apt-repository ppa:klaus-vormweg/bluefish
sudo apt-get update
sudo apt-get install bluefish
Geany
Geany works as a text editor, but its primary function is as an Integrated Desktop Environment (IDE). It is a lightweight GUI text editor with basic IDE features. Its primary purpose is to be tight and compact with short load times and limited dependencies on separate packages or external libraries on Linux.
Pros: It is a compact cross-platform, flexible and powerful editor that supports most programming languages. It is customizable with plugins, and features a split window, colored syntax, line numbering, and autocomplete.
Cons: Not everyone will need IDE features, meaning that Geany is focused on coding from scratch and debugging issues. Use Geany if you need full programming functionality, including the editor, build automation, and debugging all accessible from a single interface.
How to Install
Install Geany with the following command:
sudo apt-get update
sudo apt-get install geany
gVim
The gVim text editor is an enhanced version of Vi and Vim.
Pros: If you’re already familiar with Vi and Vim, you’ll appreciate the added functionality of gVim. The options include encryption, pop-out menus, and cross-platform compatibility. gVim handles huge files better than other text editors. Another handy feature is that gVim uses a different cursor for insert and command modes.
Cons: The gVim editor requires a graphical interface, making it unavailable on systems that run without a GUI. Like Vi and Vim, gVim has a steep learning curve, so if you’re not familiar with the Vi/Vim editor, gVim might not be the best choice.
Neovim
As the name suggests, Neovim is another editor based on Vi/Vim. Neovim aims to update the Vim-style editor with modern features, such as compatibility with other applications.
Pros: Like other Vi/Vim-based editors, Neovim uses the same basic commands. It adds robust support for plugins and integration with other applications. It was designed to be faster and use less memory, making it an excellent choice for resource-conscious users. Neovim also includes a terminal emulator, which allows you to run terminal commands from the interface.
Cons: Some users report that, despite the improvements, switching between insert and command mode slows their input. It’s also not available on many older systems. Although Neovim is much more customizable, personalization can be time-consuming. Finally, like other Vi/Vim-based editors, there is a steep learning curve to use Neovim effectively.
Pico
Pico stands for Pine Composer. It’s a text editor that comes with the Pine email application. Pico is the precursor to the Nano text editor.
Pros: Pico displays commands on the screen, making it easier to use without memorizing key combinations. It includes most basic text-editor functions, including find/replace (in a single document). Users like Pico because it’s simple to use. Many plugins are available to add functionality and customization.
Cons: There is no support for working with multiple files, copying/pasting between files, or searching/replacing them on multiple files.
Lime Text
The Lime text editor was a project designed as an alternative to the Sublime editor. Some prefer it because the Sublime text editor isn’t open-source.
Pros: Lime aims to duplicate all the features of Sublime, in an open-source format.
Cons: Support and development for the Lime Text project are spotty. You can install it with instructions from the Github page, but it appears to still be under development.
Kate / Kwrite
Kate stands for KDE Advanced Text Editor. KDE is a desktop environment (graphical interface) for Linux. The KDE desktop isn’t required to use Kate – you can install it on Windows, Linux, and Mac.
Pros: Kate allows you to edit multiple documents at the same time. It supports color-coded syntax, customization, and plugins. Kwrite is a lighter utility, used to open and edit a single file quickly. If you use the KDE desktop environment, Kate / Kwrite is a solid editor to use.
Cons: Not many users have complaints about the Kate editor.
JED Editor
JED is a command-line text editor that acts as a graphical interface. It is available on most platforms.
Pros: JED uses drop-down menus, making it more intuitive for people familiar with word processors. It supports color-coded syntax for many different programming languages and has broad support for plugins. JED is also light on system resources, making it an excellent choice for older systems.
Cons: Very few users have complaints about the JED editor.
Leafpad
Leafpad is a Linux-based text editor designed to be simple and lightweight.
Pros: Leafpad uses minimal system resources, making it a great choice for older systems. It provides a decent feature set sufficient for simple editing. Leafpad would make an excellent secondary editor for quick, simple jobs.
Cons: Leafpad is not intended to be a full-featured text editor. It contains some of the more advanced features, such as multiple documents, for speed and efficiency.
Light Table
Light Table is an integrated desktop environment for evaluating software. It works as a text editor, but its main feature is live feedback on code. Light Table is available on most operating systems.
Pros: Light Table’s features include in-line code evaluation, which lets you test code without compiling. It also runs the code as you’re entering it, allowing you to debug on the fly. Many plugins are available to expand Light Table’s functionality. It is also reasonably fast, even without a high-end system.
Cons: Light Table is still in the early stages of development, meaning it doesn’t support all programming languages. It also has a moderate learning curve – the commands are not displayed on the screen. Also, Light Table is based on a web browser, which limits its usability on text-only systems.
Medit
Medit is another open-source, cross-platform text editor designed for Windows and Linux systems.
Pros: Medit includes common text-editor commands, such as find/replace, color-coded syntax, and plugin support. It also adds a split view for working on multiple files at once. It’s a good editor with plenty of features, but nothing unique that sets it apart.
Cons: Medit is designed for graphical interfaces. It has a standard menu bar for commands, but it seems to lack robust documentation.
Kakoune Code Editor
Kakoune is a different kind of text editor for Linux. Instead of focusing on inserting/composing text, it doubles down on navigating around the existing text. In this way, it’s similar to the Vi/Vim editor, in that it uses different modes, like insertion mode and command mode.
Pros: Kakoune includes most modern features, such as color-coding, autocomplete, and on-screen help. One key benefit is the ability to create multiple selections. Kakoune makes the workflow of creating and managing files more straightforward and intuitive.
Cons: Kakoune is only available on Linux-based systems. Even with its enhancements, it’s still based on the Vi/Vim structure, which may be a turn off for users more accustomed to word processors.
Micro Text Editor
The Micro text editor is designed as an enhancement to the Nano text editor. It’s available for Windows, Linux, and Mac.
Pros: Micro is a terminal-based text editor, which means it can run without a GUI. It also includes modern improvements, such as color-coded syntax, plugins, copy/paste, and undo/redo. When it runs in a graphical interface, it has a terminal emulator to execute commands directly.
Cons: Micro still uses hotkeys to execute functions, which some users don’t find appealing. Also, Micro lacks some of the next-generation features that set graphical text editors apart.
Note: You should also check out our comprehensive list of the Best Java IDEs.
Conclusion
This guide should give you a good idea of which Linux editor is going to work best for your needs. Each code editor we reviewed has its strengths and weaknesses.