Text editor
Definition
A text editor is a software used to edit plain text files, such as HTML or XML code or programming code.
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 alphetical 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).
A text editor is a type of program used for editing plain text files. There are important differences between plain text files created by a text editor, and document files created by word processors such as Microsoft Word, WordPerfect, or OpenOffice.org. Briefly:
- A plain text file is represented and edited by showing all the characters as they are present in the file. The only characters usable for 'mark-up' are the control characters of the used character set; in practice this is newline, tab and formfeed. The most commonly used character set is ASCII, especially recently, as plain text files are more used for programming and configuration and less frequently used for documentation than in the past.
- Documents created by a word processor generally contain fileformat-specific "control characters" beyond what is defined in the character set. These enable functions like bold, italic, fonts, columns, tables, etc. These and other common page formatting symbols were once associated only with desktop publishing but are now commonplace in the simplest word processor.
- Word processors can usually edit a plain text file and save in the plain text file format. However one must take care to tell the program that this is what is wanted. This is especially important in cases such as source code, HTML, and configuration and control files. Otherwise the file will contain those "special characters" unique to the word processor's file format and will not be handled correctly by the utility the files were intended for.
(Wikipedia, retrieved 10:41, 29 August 2008 (UTC)}}.
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/prettyfying, and help with inserting code elements at the right place.
Here a list of features that you absolutely must have in your editor:
- Syntax coloring for different data formats (such as XML, HTML, MediaWiki etc.) and the computer programming languages you use (such as JavaScript, PhP, etc.). Displays text in different colors and fonts according to the category of terms
- 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.
- Integration of 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.
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 !)
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, e.g.
- Notepad++ (Windows)
- Lightweight and easy to use, does good syntax highlightning but no indentation
- Has a rather large library of plugins.
- PSPad (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
Specialized
- HTML coding, see: web authoring systems
- XML coding, see XML editors
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 ...
Links
- Text editor (Wikipedia)
- Free text editors (Wikipedia)
- Comparison of text editors. (Wikipedia)