2 A word of clarification for beginners
It is important to understand that by plain text files we do not refer to text as in a letter or a book. "Plain text file" refers to the explicit contents of a computer file that use alphabetical characters, numbers and various punctuation signs and other special characters. Such a file may just contain words and end of line characters but it also may include programming code, markup code or control codes. A text editor is always supposed to show everything that is part of file. However:
- Most simple text editors can not show so called binary files, e.g. the encoding of a binary MS Word file.
- Many editors have problems with certain character encoding systems. We suggest that you make sure that your text editor can handle both ISO-8859-1 (or whatever older coding system is used for your native language) and UTF-8 (a system that can handle most characters of most languages).
3 How to choose an editor
If you just want to type a few lines any notetab-like editor can do. Otherwise, it is important that a text editor assists with code writing in various ways. In our opinion, the most important features are related to writing correct code, i.e. features like syntax highlighting, indentation/prettifying, and help with inserting code elements at the right place.
Here a list of features that you absolutely must have in your editor:
- Automatic indentation of code and prettifying. This should be format/language dependant.
- Parenthesis / bracket matching that takes into account nesting.
- Multiplatform (if you work on several types of OS, like Windows ,MacOs , Unixes,..
- Be able to work on several documents and in two or more places of the same document.
- Support for several types of character encoding, at least UTF-8 and the appropriate ISO-XXXX scheme for your working language.
- Multiple undo/redo
Things you probably should have too:
- Advanced find / replace (e.g. regular expressions)
- Spell checking
- Syntax checking (at least some)
- Support for code insertion and auto completion, e.g.
- HTML/XML tags (DTD/Schema aware if possible, i.e. only legal tags will be shown.
- Programming constructs and built-in unctions for programming languages
- Integration with other tools, e.g. be able to compile ActionScript code (via the SDK).
- Support for macros. E.g. it should be easy to define a button that will execute a series of action or even simple insertion of a string.
- Support for remote file access, e.g. FTP or WebDAV
- A database of user-defined symbols, e.g. you should be able to find a function definition you made.
4 List of text editors
(Note: There are many more, the list below only includes software that Daniel K. Schneider is using for himself or with educational technology or computer applications students !)
4.1 Light-weight editors
The most well know very light-weight editor is Window's Notepad. We do not recommend it's use unless for really small tasks. Also, it has trouble displaying files produce with Unix systems (that contain only a single end of line character, i.e. ^J). The Linux equivalents (e.g. GEdit on Ubuntu) are more reliable and useful.
There are lots of nice text editors with support for common formats and scripting languages used to create educational web contents and programs. However they all(?) share the problem that syntax support is based on templates and not really on formal schemas (e.g. these editor will happily let you insert code in wrong locations, unlike a good XML editors or good IDEs for programmers.
Here is a short list of recommended free editors (Daniel K. Schneider 13:36, 10 August 2009 (UTC)):
- Notepad++ (at sourceforge)
- Operating System: Windows
- Lightweight and easy to use, does good syntax highlighting, but no indentation support
- Has a rather large library of plugins.
- Notepad++ (Wikipedia entry)
- System: Windows
- Lightweight and easy to use, does syntax highlighting, but no indentation (too bad !)
- Only thing you need to know is: "CTRL-space" will open a popup for contextual code completion
- NoteTab light
- System: Windows
- Syntax support, e.g. highlighting and XML/HTML support could be better
- NoteTab (Wikipedia entry)
- System: Linux, Win, Max
- Syntax support
- This is a light-weight version of the popular commercial BBEdit editor.
- Operating System: Mac OSX
- TextWrangler (Wikipedia entry)
- I don't know any good easy editor for Linux, see the "heavier systems" below)
- See also the comparison of text editors (Wikipedia).
- HTML coding, see: web authoring systems
- XML coding, see XML editors
4.3 Heavier systems
- JEdit (Most systems)
- This is a more complex editor than PSPad or similar, ok for programmers.
- (X)Emacs (Most systems)
- The favorite editor of Daniel K. Schneider, but young people have trouble with this.
Many programmers choose to work with so-called Integrated Development Environments (IDE). These include a text editor, but offer additional functionalities (e.g. code compilation) and they usually include a sophisticated plugin architecture. It is not always easier to distinguish a sophisticated editor like Emacs from an IDE. Emacs with the right extensions/plugins can be an IDE for some languages ...