Wednesday, 1 April 2009

14 Most Popular Text Editors for Linux

Update: I made a couple additions and now the review includes no fewer than 16 text editors.


Kate is the default text editor in KDE, and also one of the most powerful and feature-rich text editors available for Linux. It can also be used successfully as an IDE (integrated development environment) and supports, among many others, spell-checking, highlighting for a huge amount of programming languages, it has an integrated terminal (which inherits Konsole's settings), encoding support. It supports sessions, plugins, encodings, bookmarks and even the possibility to split the current document horizontally or vertically. Kate is the complete text editor for any KDE user. A couple of months ago I wrote a full Kate review which you can read here.

Geany is a text editor with basic IDE capabilities which provides a good alternative to Gedit, the GNOME editor. It supports highlighting for various scripting and programming languages, indentation, and it provides enough options to configure it the way you want. I liked that Geany is well documented (via the Help menu).

This is the well-known text editor included by default in the GNOME desktop environment. In the spirit of all default GNOME applications, Gedit comes with a clean interface, basic configuration options available in the Edit -> Preferences menu and, the most important one, support for plugins. Plugins really make Gedit powerful and extend its functionality up to an programming environment. Some of the default plugins included are indentation support, spell-checker, document statistics and the sorting function.

To put it simple, KWrite is practically Kate with less features and a lighter interface. To be honest, I never found KWrite a viable alternative as a text editor since there is Kate. However it comes with features like highlighting, spell-checking and encoding support. The scope of KWrite is probably to be only a light text editor, not a powerful one like Kate, and to load faster. Of course, on newer machines the loading difference between Kate and KWrite is insignificant. Nevertheless, KWrite can be useful for those users who simply want a minimal text editor.

Together with Vim, Emacs is definitely one of the most popular and well-known IDEs out there. Emacs is a lot of things, not only an IDE (like email or IRC client, file browser etc), and can be expanded even further with the help of Lisp scripts. This project was started and maintained by Richard Stallman back in the 80s, and it became one of the most powerful and respected editors in the Linux world. Emacs provides modules for many programming, scripting and markup languages, and it also has specific keyboard shortcuts which, once one gets used to them, will make working in it productive and fast.

Vim stands for Vi IMproved, a popular and powerful text editor available since the 70s on the UNIX platform. There are continuous debates over which one is better, Emacs and Vim, because they both have a huge number of fans and users. Vim is renowned for the fact that is not beginner-friendly, especially due to its way of handling navigation in a document, inserting text and accepting commands. Vim provides highlighting and indentation support, it is highly configurable, flexible and has plug-ins support.

Most distributions also provide the packages vim-gtk and vim-gnome, which are GUI (graphical user interface) interfaces to Vim. To run Vim with a graphical interface you can use the vim -g or gvim commands.

Nano is the popular, lightweight and user-friendly text editor for Linux which, if configured correctly, provides features like highlighting or indentation. Nano is a Pico clone, an older text editor for Linux.

Also called 'the multi-purpose X Window System editor', NEdit is written using the Motif toolkit and it is a powerful IDE and text editor, providing features like indentation and highlighting for various languages, a Shell menu for fast access to usual commands like sort or wc, tabs. Although it may not integrate very well in environments like KDE or GNOME (due to its Motif-based interface), NEdit may be just the right alternative for those who are unhappy with editors like Kate, Gedit or Emacs.

Scribes is a simple text editor for GNOME with a simple and minimal interface, which provides syntax highlighting and detection and auto-completion of pair brackets in languages like C/C++, and it also provides various shortcuts for operating on a file. It is as simple and lightweight as a text editor with minimum programming features can get.

Yet another text editor with a pretty icon theme and the usual functions for basic programming, SciTE also supports scripting in Lua. The default font is not a monospaced one, so you will have to use the Options -> Use Monospaced Font menu option.

Medit is a simple text editor which offers basic features for programming in it, including syntax highlighting, tabs, and plugins. Medit is a basic alternative to more consacrated text editors.

Or 'the programmer's text editor', as its description says, jEdit is an IDE written in Java with a good-looking interface and a whole bunch of plugins and macros available. Among its features are auto-indentation, highlighting in a lot of programming languages, various character encodings and bracket matching.

This is a minimal text editor written in GTK+ 1.2 which resembles Notepad from Windows, so it will fit well users who just switched and are used to Notepad. However, it misses the printing facility. You will have to change the default font if you want a monospace type.

Leafpad is yet another text editor built in GTK which resembles Notepad, just like Gtkedit. The advantage Leafpad has over Gtkedit is that it allows printing.

Addition: JOE
JOE (Joe's Own Editor) is a powerful, terminal-based editor which uses the Emacs-like keyboard shortcuts. It has many features, like syntax highlighting, mouse support, multiple buffers, spell-checking, auto-indentation and much more.

Addition: Komodo Edit
Komodo Edit is a powerful text editor based on the commercial application Komodo IDE, and it provides, among many other features, support for projects, highlighting, auto-indentation and auto-completion of brackets, Emacs key bindings. It has an interface designed professionally and it's highly configurable. The only minus I could catch was that it has very slow loading times, but other than that, it's a very good editor.

I know I didn't include all of them, but this article should give the reader an overview of the available text editors for Linux. There are tens of other editors and clones for both CLI and GUI, including the mammoth, complete IDEs like KDevelop, Code::Blocks, Netbeans etc. but these don't belong to this list since they are not 'text editors', they are way more.

Updated: April 2, 2009


Anonymous said...

Kedit... you forgot kedit. Simple direct works.

Vi said...

These are all loser editors in comparison to UltraEdit, PSPad, notepad++ or Komodo Edit (the only one of the above that runs natively on Linux ((but much slower than on windows)) ).
Give me a superior text editor, make Firefox faster than on windows, fix application installation and I will switch back to Linux in a second.
Geany + Regexxer + Tidy + few other essential text editing tools + performance superior to other platforms all put in one in an intelligent way could make a good text editor on Linux, but it will never happen. It simply can't happen in the next 10 years.

Craciun Dan said...

linuxrebel: Yes... That was supposed to be the 15th, I know that now :) I'll probably make an addition, however I think KEdit does not ship with KDE4 any more, it's available in KDE3 though.

Vi: Well I never used any of those you mention there (I heard about Notepad++ though and that it is supposed to be good) but I think this is a matter of preferences. I honestly find at least 5-6 of the editors I reviewed easy to use and very powerful. Besides, we're talking Linux, not Windows. I'm sure Windows has its own share of good editors.

Anonymous said...

:) why need so many?? why not people reserve their energy in developing something new and different way? yeah.. i know you are going to say " Spirit and Freedom of OSS" Linux is full of half-baked or forked from others software.
Don't get angry when people say that linux is for hobbyist.

Vi said...

Craciun Dan, you earned my respect by not calling me a paid microsoft agent, you know, I was pushing for it.
Try Komodo Edit, it is open source and it is cross-platform (cross-platform still relates to Linux, no?) they have a deb file installation.
Komodo has the best search/replace (including in files) feature I've seen; notepad++ doesn't. I use Komodo and PSPad combination. PSPad is free but not open source and it is getting old/morally outdated (it somewhat runs on Wine).
Even if you are dead-Linux-committed you should include Komodo into your text editor research.

Craciun Dan said...

Vi: It's OK, that's not a problem everyone is entitled to their opinion.

Regarding Komodo, I just downloaded now both Komodo IDE (it looks like it is trial) and Komodo Edit. I didn't heard of them before, but I'll have a look as soon as I get the time and eventually add the open-source edition too in the review. I'm just wondering why Komodo Edit is not included in Ubuntu's repositories since it's open-source? Anybody knows?

Anonymous said...

I've been using Emacs for more than 10 years and don't see myself ever switching. I just checked out Komodo and it does look pretty nice. I agree that since it's open source, maybe it should be included in the repositories?

My wife loves Gedit. There is so much you can do with it. If I wasn't such an Emacs zealot, Gedit is the one I would choose.

Anonymous said...

The latest Nedit release is from 2004 and the latest news on the web page from 2005. The developer mailing list has some traffic, some maybe the project is not quite dead yet. Then again, a Motif app probably should be dead in 2009.

For the record, it must be said that Emacs is The One True Editor.

Jennahan said...

Geany isn`t stable. I worked on it and it was nice untill it crashed :)

Grant said...

One thing that I often do is edit large (larger than my ram) text files, and I've had a lot of difficulty with editors that can't load files that large.

As far as I know, UltraEdit in windows is the only one which can work on a file in pages. Notepad++ and Scite both attempt to load the whole file into ram, and about 2x the file size in metadata. How do these all work with very large files? Any suggestion on a truely cross platform tool for that?

Grant said...

You know what? Scratch that previous comment. After going through the very good Wikipedia text editor comparison page, I found only three text editors that did all that I want: Large file support, regex find and replace, syntax highlighting, spell checking, folding, auto complete and completely cross platform. Emacs and Vim are two of them. The third is called Slick Edit, which is commercial and goes for $300 USD. I guess its time I finally got around to learning how to use one of the classics.

Anonymous said...

joe having an emacs-like keyboard layout? In your dreams! Joe Allen used Wordstar as the base of the default keyboard layout of his Own Editor but modified to suit better the needs of a computer programmer. Why? Because that's what everyone used at the time he wrote it ('87-'88). Eventually in the times of version 2.4 (or was it 2.3?) J. Allen added the ability to define the keyboard layout in static configuration tables compiled into the editor and there was jstar (doing a key-by-key emulation of Wrodstar 7 key layout), jmacs (doing emacs emulation), and there was even a Borland Edit emulation because that's what everyone was using at *that* time ('92); Ctrl-Q anyone?

Jeez, people born yesterday have no sense of historical perspective. :-)

jklowden said...

NEdit's website isn't very active because it's a mature project. How much can you discuss about a program that Just Works? Far from dead, I've been using daily it for eight years. It works great! It never crashes; it's got every function anyone could reasonably want, and it's very configurable.

One thing it's not: an IDE. There's no Compile button, no emacs-like gdb front end. It's just an editor. But a very, very good one, easy to learn and hard to exhaust.

phayes said...

“...but these don't belong to this list since they are not 'text editors', they are way more.”

Why on earth did you include Emacs then? Emacs often attracts (misguided) criticism precisely because it is the way-morest way-more-than-a-text-editor program ever written. That said, even if some form of text editing is all you'll ever want to do with it, Neal Stephenson's evaluation still stands and probably always will:

“Emacs outshines all other editing software in approximately the same way that the noonday sun does the stars. It is not just bigger and brighter; it simply makes everything else vanish.”

...with the - snobbish ;-) - caveat that Emacs perhaps isn't suitable for the impatient or the intellectually mediocre. Pearls before swine. :P

Kevin (aka Padma) said...

I have used many of these, at one time or another. (I have also used UltraEdit, PSPad, and notepad++ on Windows.) Any one of them is certainly acceptable, depending on the job at hand. Yet I keep coming back to the best, most complete, easy to use editor I ever found: vi/vim.

My job involves writing programs that run on *nix servers. Years ago, corporate decided that our desktop machines would be Windows. The Windows fans all use UltraEdit to do their work, since it can easily handle remote files. I installed Vim on my system (it also handles remote editing easily), and am much happier. (Actually, I usually ssh to the server in question, and edit the file there. ;-) )

And Anonymous: for the record, "ed is the One True Text Editor."

Aaron J. Seigo said...

> but it lacks highlighting support

KWrite uses the exact same text editor part that Kate does (called, imaginatively, "katepart" ;). KWrite just doesn't have all the IDE-ish features like an embedded konsole or file tree.

It does, however, have all the text editing features including, yes, highlighting. :)

Craciun Dan said...

Vorbote: Jeez, people born yesterday have no sense of historical perspective. :-)
:) Yeah you're right, I was not around (at least not using Linux, nor a PC) at that time. Do you actually use Linux for so long?

Ok, Aaron Seigo, my bad. I guess I rushed to conclusions without double-checking some stuff. I'll modify the article accordingly, and thank you for pointing that out for me.

p4bl0 said...

I've understood this post is an april fool joke when I read "written in Java with a good-looking interface".

Emacs rules.

Anonymous said...

I never was impressed enough with UltraEdit enough to switch from Notepad++, and PSPad didn't really compete for me. Perhaps I'll look into Komodo Edit later. As for some of the choices here, it's a thin line between text editor and IDE, and I think I wouldn't have included the IDE-ish ones. Oh, and what's wrong with Swing (jEdit)? Looks better than any native Win text editor I can think of. IMHO. Of course.

One that I'd add - ne (Nice Editor). Not a programmer's text editor, just a text editor. Doesn't make you jump through hoops (hi, vi) or learn (since you can always reconfigure them) senseless keyshortcuts (hi, nano).

Anonymous said...

You know I was surprised no one in the whole comment thread said: 'It's not 'no less than' but 'no fewer than'." You've got nice polite readers who stay on topic (apart from me, I guess).

Interesting round-up. Thanks. I was surprised to learn there were quite so many editors around.

Craciun Dan said...

Are you sure about that? I'm not a native English speaker so there may be mistakes, but if that's wrong I'll correct it.

Anonymous said...

Vi: Notepad++ works fine in wine 1.1.18.

Picker said...

Thank you for the article! I have just installed some plugins to gedit. It's a wonderful application.

Craciun Dan said...

You're welcome Picker :-) I think it has a huge number of plugins there at GNOME Live!.

Chris said...

When I first switched over to Ubuntu Linux fully, I soon made nice with Gedit, which I would still recommend. I certainly made good use of its plugins, especially the Snippets one. However, I got introduced to vim in my first Linux class last fall, and--though I disliked it at first--I found myself coming back to it. One of the first things I really liked was actually what I initially hated--its keybindings. However, I came 'round and found them truly agreeable, as I can now type and edit without ever having to use the mouse or Ctrl-[insert_key_here] Ctrl-[insert_'nother_key_here] combinations. Someday, I may look into emacs to see how it compares, but as it is, vim does have quite a breadth of its own combinations to memorize, so we'll see.

NotZed said...

your vim entry makes it sound like it's an upgraded vi that has been around since the 70s on unix.

This is wrong, vi is part of Unix, but vim is a completely different programme which only shares most of its name and some of its user interface with vi.

Otherwise they are not related in any way, and vi itself is quite rudimentary and featureless.

vi to vim is as microemacs is to emacs. They share some key bindings but are completely unrelated products.

dunz0r said...

O, come on. Give vim more credit. I like to point out the idea behind vim. Reduce keystrokes. There's always a shorter/faster/better way to do it :)

Pistos said...

Just wanted to mention Diakonos as a good choice for terminal/console/ssh editor. Easy to use, and extremely configurable. Especially good for folks who can't be bothered to learn emacs or vim.

Anonymous said...

It just has to be vi. The compound statements make it super powerfull. And you can get it for windows too, so it is cross platform (just not the very same binary).

I do like notepad++ (use it at work) however my files are allways littered with :wq ( why would that be???)

Anonymous said...

I am bit late to this review, but I thought I would put in my $.02 anyway. My background: I have spent many years using various text editors, beginning with DEC SED on a TOPS-20 system and then many years using Univac EDT. Yes, those were the days....

I have a set of requirements today, some hard that have to be met, and some soft that can be bent.

1. Cross-platform: Windows and Linux. I spend too much time jumping back and forth on different machines. This knocked out Kate, which is probably what I would have settled on originally after moving to Linux. It also eliminated notepad++, I tried running it under Wine but I found that unsatisfactory.

2. Open Source: otherwise I might be inclined to UltraEdit, which is very good, inexpensive for a commercial product, and will shortly be cross-platform. I used it for about ten years on Windows platforms, before making the switch to Linux.

3. Features: this is tough to enumerate, but it basically eliminated editors like Geany, Gedit and even Komodo. Komodo is a great editor, and is nearly there in my view. The problem is that the free version is missing features that I use every day, and my Open Source requirement knocks out the IDE version. Geany is missing too many things to date but it may pull ahead of Gedit overall in the future. I like Gedit today for fast startup and light editing and I plan to try the Windows build. I use Geany for one activity however: it has a good parser and symbol browser for FreeBasic! OK - an explanation is in order: Basic can be found running in factory settings that are still controlled by legacy DOS & GPIB equipment setups.

4. Ease of use: this eliminated editors like Emacs, Vim. I am interested in a modern GUI'd editor now, driven by a mouse - my preference. I tried Cream, and that paradigm made no sense at all. One should use vi, or something else entirely. I chose to leave vi behind even though I have years of experience using it (on UNICOS and SunOS platforms.)

5. Weight: I have tried Eclipse repeatedly over the years, and I just can't get used to it. Eclipse is evolving, so I continue to watch it.

In the end I keep going back to jEdit for working on projects and Gedit for light text editing. Komodo comes in close however. jEdit is very slow to start up, quite ugly in my opinion, and the last stable release was a long time ago - it has clear points against it. I use it because of the built-in feature set and the plugins available: Hyper-Search, Ctags, Cscope, a fantastic Diff utility, project viewer, subversion & ftp clients, task list, text auto-complete, code browsers for C, HTML, CSS, javascript, PHP, Perl, Ruby, XML, etc.

I think something will eventually replace jEdit for me, but not quite yet.

-Ron F.

Marl said...

I prefer Kate.

I use Notepad++ when I'm using Windows, but Kate is far, far better.

The Copywriter Underground said...

No love for Bluefish?

Anonymous said...

@anonymous: > I am interested in a modern GUI'd editor now, driven by a mouse

Using a mouse when typing makes you slow. I can use my mouse when working in emacs but I seldom do so: using key combos is much faster.

surya said...

for more C,C++,VB source codes visit

Carl said...

I love Notepad++ on Windows, but have switched to Ubuntu and am now loving Geany, perhaps even more.

Have heard good things about JEdit, and briefly tried it, but the interface didn't seem to suit me (as I recall, it didn't have enough keyboard shortcuts). Plus Geany is very light and fast.

I've learned vim enough to get things done when needed, but I always get stuck on the fact that to make efficient use of its wonderful shortcuts, I have to count the number of characters/words/lines that I want to traverse. In the time it takes me to do that, I could just go straight to where I want to go using the mouse. And I haven't seen block selection in vim, either, which is a feature I use daily.

Can anyone persuade me to use Emacs? I've glanced at it, but didn't get far before giving up on it. Does it have block selection? Navigation by whole words (eg Ctrl+cursor left & right), and by word parts? Volatile search (ie search for next instance of current word, with one keypress)? Quick deletion/cloning/transposing/commenting of current line? Recognition and conversion of all three line ending styles? Binary/hex editing? Search and replace in current document, all open documents, or files on disk? Substantial 'recent files' list (Geany supports up to 50 entries)? Configurable autocompletion of brackets, braces, quotes, words, functions, and XML tags? Recognition of error line numbers in build output? Recognition of symbols (variables, functions) in current file? Integration with version control systems?

I'm willing to tackle a learning curve for one of the two big players, but thus far, vi(m) hasn't convinced me of the payoff. Any Emacs fans willing to go into detail?

gaudadasa said...

I love GEANY. It's light weight and no less than an IDE. Interface is simple, powerful and all essential features i used to add to gedit using plugins are already available.

Pax Dei said...

I can't believe that you didn't include ed, the standard text editor.

Pax Dei said...

Craciun Dan, thou son of darkness, I suspect thine ill conversion. Say thee me: art thou at present in communion with any church of renown? Art thou a member of the Church of Emacs, that worshippeth in St IGNUcius' meeting-house?

If thou art not, then I must do my duty by thee; I am a deacon of the Church, and feel concerned for the souls of all lost; if thou still cling'st to thy Pagan ways, which I sadly fear, I beseech thee, remain not for aye a vi bondsman; turn thou from thy heathen ways ere the Day of Judgement!

Ken thou that the One True Path leadeth not to ed, nor the way to nano, neither yet to XEDIT, nor yet to TECO of old, nor yet still to Acme; in deed, it leadeth singly to the One True Editor.

Hearken me: spurn the idol Vim, and the hideous Sam; turn from the wrath to come; mind thine eye, I say; oh! goodness gracious! steer clear of the Editor of the Beast!

(kill-buffer "*vi-vi-vi*")