Text editors can be used for writing code, editing text files such as configuration files, creating user instruction files, and many more.
In Linux operating systems, text editors are of two kinds that is the graphical user interface (GUI) and command-line text editors (console or terminal).
In this article, I am examining the best open-source text editors commonly used in Linux on both servers and desktops.
1. Vi/Vim Editor
Vim is a powerful command-line-based text editor that has enhanced the functionalities of the old Unix Vi text editor.
It is one of the most popular and widely used text editors among System Administrators and Programmers which is why many users often refer to it as a programmer’s editor. It enables syntax highlighting when writing code or editing configuration files.
Install Vim in Linux
You can install Vim editor in Linux systems using your default package manager as shown.
$ sudo apt install vim [On Debian, Ubuntu and Mint] $ sudo yum install vim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/vim [On Gentoo Linux] $ sudo apk add vim [On Alpine Linux] $ sudo pacman -S vim [On Arch Linux] $ sudo zypper install vim [On OpenSUSE]
If you want to see our complete series on Vim editor, please refer to the links below:
2. Gedit
Gedit is a default text editor on the Gnome desktop environment, that is a general-purpose GUI-based text editor known for its simplicity, high extensibility, and powerful features.
Some of its notable features include:
- Support for UTF-8.
- Use of configurable font size and colors.
- Highly customizable syntax highlighting.
- Undo and redo functionalities.
- Reverting of files.
- Remote editing of files.
- Search and replace text.
- Clipboard support functionalities and many more.
Install Gedit in Linux
You can install Gedit editor in Linux systems using your default package manager as shown.
$ sudo apt install gedit [On Debian, Ubuntu and Mint] $ sudo yum install gedit [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/gedit [On Gentoo Linux] $ sudo apk add gedit [On Alpine Linux] $ sudo pacman -S gedit [On Arch Linux] $ sudo zypper install gedit [On OpenSUSE]
3. Nano Editor
Nano is an easy-to-use and user-friendly command-line text editor that offers essential text editing functions and keyboard shortcuts, making it a convenient choice for quick and efficient file editing tasks.
Nano has the following features:
- Highly customizable key bindings.
- Syntax highlighting.
- Undo and redo options.
- Full line display on the standard output.
- Pager support to read from standard input.
Install Nano in Linux
You can install Nano editor in Linux systems using your default package manager as shown.
$ sudo apt install nano [On Debian, Ubuntu and Mint] $ sudo yum install nano [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/nano [On Gentoo Linux] $ sudo apk add nano [On Alpine Linux] $ sudo pacman -S nano [On Arch Linux] $ sudo zypper install nano [On OpenSUSE]
4. GNU Emacs
Emacs is a highly extensible and customizable text editor that also offers an interpretation of the Lisp programming language at its core. Different extensions can be added to support text editing functionalities.
Emacs has the following features:
- User documentation and tutorials.
- Syntax highlighting using colors even for plain text.
- Unicode supports many natural languages.
- Various extensions including mail and news, debugger interface, calendar, and many more.
Install Emacs in Linux
You can install Emacs editor in Linux systems using your default package manager as shown.
$ sudo apt install emacs [On Debian, Ubuntu and Mint] $ sudo yum install emacs [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/emacs [On Gentoo Linux] $ sudo apk add emacs [On Alpine Linux] $ sudo pacman -S emacs [On Arch Linux] $ sudo zypper install emacs [On OpenSUSE]
5. Kate/Kwrite
Kate is a feature-rich and highly pluggable text editor that comes with KDesktop Environment (KDE). The Kate project aims at the development of two main products that are: KatePart and Kate.
KatePart is an advanced text editor component included in many KDE applications that may require users to edit text whereas Kate is a multiple document interface (MDI) text, editor.
The following are some of its general features:
- Extensible through scripting.
- Encoding support such as Unicode mode.
- Text rendering in bi-directional mode.
- Line-ending support with auto-detection functionalities.
Additionally, it offers remote file editing, along with a wide range of features, including advanced text editing, application capabilities, programming support, text highlighting, backup functionality, and search and replace options
Install Kate on Linux
You can install Kate editor in Linux systems using your default package manager as shown.
$ sudo apt install kate [On Debian, Ubuntu and Mint] $ sudo yum install kate [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/kate [On Gentoo Linux] $ sudo apk add kate [On Alpine Linux] $ sudo pacman -S kate [On Arch Linux] $ sudo zypper install kate [On OpenSUSE]
6. Sublime Text Editor
Sublime Text is a powerful cross-platform source code editor with a Python programming interface. It supports many programming languages and markup languages, and features can be added by users with plugins, mostly community-built and supported under free software licenses.
Install Sublime in Linux
You can install Sublime Text editor in Linux systems using your default package manager as shown.
$ sudo apt install sublime-text [On Debian, Ubuntu and Mint] $ sudo yum install sublime-text [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/sublime-text [On Gentoo Linux] $ sudo apk add sublime-text [On Alpine Linux] $ sudo pacman -S sublime-text [On Arch Linux] $ sudo zypper install sublime-text [On OpenSUSE]
7. Jed Editor
Jed is also another command-line editor with support for GUI-like features such as dropdown menus, color syntax highlighting, a variety of programming modes, regular expressions, and more.
It is developed purposely for software development and one of its important features is the support of Unicode mode.
Install Jed in Linux
You can install Jed editor in Linux systems using your default package manager as shown.
$ sudo apt install jed [On Debian, Ubuntu and Mint] $ sudo yum install jed [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/jed [On Gentoo Linux] $ sudo apk add jed [On Alpine Linux] $ sudo pacman -S jed [On Arch Linux] $ sudo zypper install jed [On OpenSUSE]
8. gVim Editor
gVim, short for “GNU Vim” is a powerful, highly configurable text editor popular among programmers and developers. It combines the capabilities of Vim with a graphical interface and offers similar functionalities like syntax highlighting, extensive plugin support, and a modal editing system, making it a versatile choice for text editing and coding tasks.
Install gVim in Linux
You can install the gVim editor in Linux systems using your default package manager as shown.
$ sudo apt install gvim [On Debian, Ubuntu and Mint] $ sudo yum install gvim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/gvim [On Gentoo Linux] $ sudo apk add gvim [On Alpine Linux] $ sudo pacman -S gvim [On Arch Linux] $ sudo zypper install gvim [On OpenSUSE]
9. Geany Editor
Geany is a tiny and lightweight integrated development environment that offers basic IDE-like features with a focus on software development using the GTK+ toolkit.
It has some basic features as listed below:
- Syntax highlighting.
- Pluggable interface.
- Supports many file types.
- Enables code folding and code navigation.
- Symbol name and construct auto-completion.
- Supports auto-closing of HTML and XML tags.
- Elementary project management functionality plus many more.
Install Geany in Linux
You can install Geany editor in Linux systems using your default package manager as shown.
$ sudo apt install geany [On Debian, Ubuntu and Mint] $ sudo yum install geany [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/geany [On Gentoo Linux] $ sudo apk add geany [On Alpine Linux] $ sudo pacman -S geany [On Arch Linux] $ sudo zypper install geany [On OpenSUSE]
10. Leafpad
Leafpad is a GTK+-based text editor that prioritizes simplicity by minimizing its weight and incorporating only essential features that offer a user-friendly, lightweight solution for efficient text editing tasks.
It has the following features:
- Codeset option.
- Allows auto-detection of codeset.
- Options of undo and redo.
- Display file line numbers.
- Supports Drag and Drop options.
- Printing support.
Install Leafpad in Linux
You can install Leafpad editor in Linux systems using your default package manager or snap package manager as shown.
$ sudo snap install leafpad
11. Bluefish
Bluefish is a robust editor designed for programmers and web developers and offers extensive capabilities for website development, scripting, and coding. With support for numerous programming and markup languages, it empowers developers to work efficiently and effectively on a wide range of projects.
It offers a wide set of features as listed below:
- Lightweight and fast.
- Integrates external Linux programs such as lint, weblint, make, and many others and filters, piping such as sed, sort, awk, and many more.
- Spelling check feature.
- Supports working on multiple projects.
- Remote file editing.
- Search and replace support.
- Undo and redo option.
- Auto-recovery of modified files.
Install Bluefish on Linux
You can install Bluefish editor in Linux systems using your default package manager as shown.
$ sudo apt install bluefish [On Debian, Ubuntu and Mint] $ sudo yum install bluefish [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/bluefish [On Gentoo Linux] $ sudo apk add bluefish [On Alpine Linux] $ sudo pacman -S bluefish [On Arch Linux] $ sudo zypper install bluefish [On OpenSUSE]
12. GNOME Text Editor
GNOME Text Editor, also known as Gedit, is a default text editor for the GNOME desktop environment that provides essential features for text editing, code writing, markup languages, and plugin support which make it a popular choice among Linux users.
Install GNOME Text Editor on Linux
You can install the GNOME editor in Linux systems using your default package manager as shown.
$ sudo apt install gnome-text-editor [On Debian, Ubuntu and Mint] $ sudo yum install gnome-text-editor [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/gnome-text-editor [On Gentoo Linux] $ sudo apk add gnome-text-editor [On Alpine Linux] $ sudo pacman -S gnome-text-editor [On Arch Linux] $ sudo zypper install gnome-text-editor [On OpenSUSE]
13. Visual Studio Code
Visual Studio Code, commonly referred to as VS Code is a robust, free, and open-source modern code editor built by Microsoft for Linux, Mac, and Windows computers.
It offers tons of powerful features including:
- Full debugging capability with an interactive console, breakpoints, call stacks, etc.
- Built-in Git support with Git commands.
- IntelliSense
- 100% customizability
- Support for tons of languages straight out of the box.
- Toggable layouts.
- Built-in terminal.
Install Visual Studio Code in Linux
You can install VS Code editor in Linux systems using your default package manager as shown.
$ sudo apt install code [On Debian, Ubuntu and Mint] $ sudo yum install code [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/code [On Gentoo Linux] $ sudo apk add code [On Alpine Linux] $ sudo pacman -S code [On Arch Linux] $ sudo zypper install code [On OpenSUSE]
14. Neovim – Vim-based Text Editor
Neovim is a hyperextensible vim-based text editor with a focus on usability and function extensibility. It was forked from the popular Vim editor in order to aggressively refactor its functionality and usability with modern GUIs, asynchronous job control, etc.
Neovim’s feature highlights include:
- Free and open-source license.
- Support for XDG base directories.
- Compatibility with most Vim plugins.
- An embedded, configurable terminal emulator.
Install Neovim in Linux
You can install Neovim editor in Linux systems using your default package manager as shown.
$ sudo apt install neovim [On Debian, Ubuntu and Mint] $ sudo yum install neovim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/neovim [On Gentoo Linux] $ sudo apk add neovim [On Alpine Linux] $ sudo pacman -S neovim [On Arch Linux] $ sudo zypper install neovim [On OpenSUSE]
15. Notepad++
Notepad++ is a customizable text editor built with a focus on speed and minimal program size for Windows platforms. It is developed based on the Scintilla text editor and can have its functionality extended with tons of plugins.
Its features include:
- Tabbed editing
- Code folding
- Bookmark support
- Document map
- Perl Compatible Regular Expression
Install Notepad++ in Linux
You can install the Notepad++ editor in Linux systems using the snap package manager as shown.
$ sudo snap install notepad-plus-plus
16. Kakoune Code Editor
Kakoune is a free and open-source Vim-based modal text editor with an editing model that implements Vi’s keystrokes as a text editing language.
It has several features among which are:
- Auto-indentation.
- Case manipulation.
- Piping each selection to an external filter.
- Hooks
- Syntax highlighting.
- Customization.
- Multiple selections.
Install Kakoune on Linux
You can install the Kakoune editor in Linux systems using your default package manager as shown.
$ sudo apt install kakoune [On Debian, Ubuntu and Mint] $ sudo yum install kakoune [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/kakoune [On Gentoo Linux] $ sudo apk add kakoune [On Alpine Linux] $ sudo pacman -S kakoune [On Arch Linux] $ sudo zypper install kakoune [On OpenSUSE]
17. Micro – Terminal-based Text Editor
Micro is a command line-based text editor built to be easy and intuitive enough for users to take advantage of the features in other terminal-based text editors without the steep learning curve.
Micro’s feature highlights include:
- Mouse support
- Multiple cursors
- Terminal emulation
- High customizability
- Plugin system
- Static library with no dependencies
Install Micro in Linux
You can easily install a micro text editor in your Linux distribution by running the following installation script using the curl command as shown.
$ curl https://getmic.ro | bash
18. Brackets Text Editor
Brackets is a modern free and open-source code editor created by Adobe with a focus on web development. It is written in HTML, CSS, and JavaScript to offer web developers a rich code editing experience with the ability to extend its native features using several free extensions.
Brackets features include:
- A beautiful User Interface
- Preprocessor support for SCSS and LESS
- Inline editors
- Live preview
- Multiple tabbed editing
- PHP support
- Supports Language Server Protocol
- Support for plugin extensions
Install Brackets in Linux
You can install the Brackets editor in Linux systems using your default package manager as shown.
$ sudo apt install brackets [On Debian, Ubuntu and Mint] $ sudo yum install brackets [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/brackets [On Gentoo Linux] $ sudo apk add brackets [On Alpine Linux] $ sudo pacman -S brackets [On Arch Linux] $ sudo zypper install brackets [On OpenSUSE]
Alternatively, you can use the snap package manager to install Brackets in Linux.
$ sudo snap install brackets
19. Mousepad Text Editor
Mousepad is a lightweight and user-friendly text editor primarily designed for the Xfce desktop environment and offers essential features for basic text editing, making it suitable for quick tasks without overwhelming users.
Install Mousepad in Linux
You can install the Mousepad editor in Linux systems using your default package manager as shown.
$ sudo apt install mousepad [On Debian, Ubuntu and Mint] $ sudo yum install mousepad [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a sys-apps/mousepad [On Gentoo Linux] $ sudo apk add mousepad [On Alpine Linux] $ sudo pacman -S mousepad [On Arch Linux] $ sudo zypper install mousepad [On OpenSUSE]
20. Lite Editor
Lite is a new text editor mostly developed in the Lua language, that aims to offer something practical, pleasing, tiny, and fast, created as simply as possible; easy to alter and expand, or to use without doing either.
21. Ash Editor
ash is a plain and clean command line-based text editor, that is designed to be easy to use with modern key bindings and it is efficient enough to manage a large number of files simultaneously and has a broad array of modern features.
22. CudaText
CudaText is a new clean open-source and cross-platform text editor that comes with tons of features which include:
- Syntax highlights a lot of languages.
- Find/Replace with regular expressions.
- Command palette, with fuzzy matching.
- Binary/Hex viewer for files of unlimited size.
- Support for many encodings.
23. Medit Text Editor
medit is a lightweight open-source text editor for Mac, Linux, and Windows. It originally started as a simple built-in component of the GGAP editor and is now its own stand-alone text editor.
medit’s features include
- Customizable syntax highlighting.
- Support for plugins written in Python, C, or Lua.
- Support for regular expressions.
- Configurable keyboard accelerators.
Concluding
I believe the list is more than what we have looked at, therefore if you have used other free and open-source text editors, let us know by posting a comment. Thanks for reading and always stay connected to Tecmint.
Light Table project is archived since 2022
@Amgadelsaiegh,
Indeed, the Light Table project has been archived since 2022. While it’s unfortunate to see it no longer actively developed, there are still many other open-source text editors for Linux that continue to grow.
Sublime is not open source. You should not label it as such.
I use led, a line-oriented text editor:
http://pasqualefrega.antiblog.com/led.htm
It is simple and easy to use but has a lot of features.
I love the mousepad, it’s lightweight and customizable.
Please try to look at my project – Multitextor a simple cross-platform command line text editor.
I’m computer illiterate, but before switching to Lubuntu, I used to edit web pages on Microsoft FrontPage. There I could edit pages without playing with codes. The page to be edited looked more or less like it was going to look on the web.
I’ve tried to find something like that Front on BlueFish and Gedit but failed. Is there a way to do this? If not, is there a program that allows you to edit without playing with html codes? Thank you!
I recommend a static website generator like Hugo. Then all you have to learn is Markdown, which is easy.
I am using Codelobster editor – http://www.codelobster.com
Missing SciTE editor
Atom comes before VSCode? Atom is basically abandoned and everyone is using VSCode now. This list is way out of date.
LightTable which used to be my favourite has not been updated for years. Should defunct software be included without a warning?
There’s also mcedit, the editor that comes with midnight commander.
@Pierre,
Thanks for informing us about the Mcedit – text editor, which will definitely be included in the list…
Mousepad, a minimalist text editor, comes pre-installed with some Xfce desktop environments, particularly Xubuntu.
According to Mousepad’s Github page, it is opensource (GPL-2.0 License).
Github page: https://github.com/codebrainz/mousepad
@Liz,
Thanks for informing us about the mousepad text editor, will definitely include in the list…
Ne – the nice editor – http://ne.di.unimi.it/
@Gianni,
Thanks for informing us about the Ne text editor, will definitely include in the list…
vim and neovim are in champion league, specially now that they support V.Studio extensions thanks to CoC (Completion of code), Visual Studio follows them (Without CoC V.Sutdio could even be considered better in many circumstances).
All the others play in “minor-leagues”.
Check out Texosaurus: https://github.com/martinrotter/textosaurus
They provide a nice Appimage, ready to run.
@Mark,
Thanks for informing us about the Textosaurus text editor, will definitely include in the list…
Since when is Sublime Free and Open Source? In another dimension?
@ThumbOne,
Sorry actually it was Lime Text editor, I will correct in the article…
What about ‘nedit‘ the original tabbed editor?
Loved nedit, but cannot use it on my HiDPI screen anymore. It had (column) block select, copy and paste, not sure if any of these modern editors have that.
I used to love it (especially the macro feature), but its lack of UTF-8 support eventually made me leave it.
I use notepad++ in the Windows world (work) and really like it there. I’ve run it under Wine in Linux, but almost unusable on a 4K monitor. I’ll try the ‘snap‘ version and see if there is an improvement. Thanks for that hint.
Linux (home, Windows free for years). Currently, I use nano for console work. Most of my projects run headless, and I find nano is just a bit easier to use than vi(m) when in ssh sessions. I currently use geany when working on a GUI, but it isn’t quite as ‘comfortable’ (feel at home with) to use as notepad++ but it does get the job done.
Thanks for the article.
If any of these editors are the “best” in the opinion of the author, he should have named the features that make them stand out from the not-so-good editors. As it is, this only a list of 23 random open-source text editors.
“BEST” usually indicates some kind of superiority. Saying “Best 23 editors” is as meaningful as saying “Best 23 computer languages” or “Best 23 cars”, IOW, not very.
JEdit is a very good text editor. It’s made in Java but can be used for many languages.
Check out another good CLI editor Ash:
https://github.com/akashnag/ash
.Very helpful article, a useful text editor for daily use.
@anthony
Thanks for the feedback.
TEA is a very lightweight and highly usable text editor – I use it for all my writing projects; supports Tamil too (UTF-8)
@Balaji
Many thanks for sharing, we will check it out.
Thanks for this it helped a lot.
How about a post on the best command line only editors and the plugin/extensions to get the best experience?
I am glad you do not include two trashes – Atom and VSCode, editors of Micro$oft and of Githrash.
Min is ncurses best editor
@rrrr
We will check out Min, thanks for the suggestion.
Thank you very much for Geany text editor tip. I do find it ultra functional:D
@PiotrLenarczyk
Welcome, thanks for the feedback.
Wily are a Unix/Linux version of Plan 9 editor Acme. And like vi is based on ed, Acme (and Wily) are based on a line editor Sam commands. Fully UTF-8 based and a small memory footprint.
A handful built in commands and buffers arranged in columns, and columns in rows. And with mouse chords, you can expand with pushing text through Linux filters/shell scripts and inspired by Oberon.
https://en.wikipedia.org/wiki/Wily
https://en.wikipedia.org/wiki/Acme_(text_editor)
https://en.wikipedia.org/wiki/Oberon_(operating_system)
@Anders
Cool, we’ll check them out, many thanks for sharing with us.
Please consider adding these editors as well : Atom, Brackets, LightTable and Visual Studio Code. All are free and open source. I particularly like VS Code.
No, they are Atom-built apps. I do not want to use any app of Githtrash and Micro$oft.
You missed atom!! https://atom.io/
@Jimmy,
Oops, adding to the list as per your tip, thanks man..
Lime Text?! Gotta try that out. I currently use Sublime Text 3, WebStorm and PHPStorm.
WebStorm and PHPStorm. Try replacing both with IntelliJ
Good option there, but is it open source? I have not used it before will have to find more.
@Kaqqoa
The list is always endless, it is good to mention to us any other text editors you have used.
I was really hoping to see some editors that I haven’t known about forever…
I have used JED a lot in the past as a Emacs clone with a small footprint, good to see it in your article.
I now use jEdit http://jedit.org/ most of the time, cross platform and Open Source.
I’ve been favouring the Qt based Eric for the last few months though it’s primarily focused on python there is alot of languages it handles well. You also missed the big new open source editor of the year atom
Sublime Text, Light Table, Medit, Atom, etc…
I use Sublime Text, which is very similar to Lime Text. Site : https://www.sublimetext.com/
Best regards