Editors
Periodically the question of which editor to use for TEI tasks arises on the TEI mailing list. There is no single answer to this question, but this page attempts to help you frame the question correctly.
Before thinking about an editor, you should think about who is going to be using it, how often, for what and where.
Those from a technical background are already likely to have a preferred programmable editor. Those from a non-technical background are likely to be more interested in ease of use. Occasional or temporary users are going to what a program that works as similarly as possible to the other applications they use, whereas full-time permanent users are more likely to get a benefit from more powerful editor, even if it has a learning curve. Projects which use large XML files need to be aware that some editors struggle with large XML files. The sed editor (see below) is a special case, allowing for truly arbitrary sizes. Users who need to edit files directly on remote servers may need vt100-capable editors (emacs, vi, sed, etc).
Name | Operating Systems | FLOSS? | Explicit support for XML | Explicit support for TEI | URL | Projects Using | Beginner-friendliness (scale 1-10, 1=hard) |
Notes |
---|---|---|---|---|---|---|---|---|
UltraEdit | Win, Linux | No | Yes | No | [1] | 9 | customizable for TEI-support; can handle extremely large files; powerful regex/multi-file replace; macro recording | |
TextPad (4.73) | Win | No | No | No | [2] | TCP | 9 | PRO: simple interface, powerful regex/multi-file replace, search-in-files, primary and secondary sort, uniq, diff, hotlinked search results, syntax coloring. CON: no utf-8 support. |
Emeditor | Win | No | No | No | [3] | TCP | 9 | PRO: large-file support, utf-8 support, diff. |
EditPad Pro | Win | No | No | No | [4] | TCP | 8 | PRO: UTF-8 support, excellent character-encoding conversions, syntax coloring, regex search/replace, XML 'content folding', handles large files well. CON: no search-in-files, sort, uniq, or diff. |
Essential XML Editor (formerly Open XML Editor) | Win | Yes | Yes | No | [5] | 8 | Text-based editing, DTD validation, various input encodings but output only in UTF-8, plugin of Saxon XSLT processor and hex editor possible; plugin of Jing, Libxml2 and MSV (W3C-schema, RelaxNG validation) possible only in purchased version | |
oXygen | all (Java) | No | Yes | Yes | [6] | WWP DHQ | 8 | Can validate using DTD, W3C schema, RELAX NG, and Schematron; can run XSL transformations on file; WYSIWYG mode using CSS |
XMLcopyEditor | Win, Ubuntu | Yes | Yes | Yes | [7] | TCP | 7 | Free; validates to DTD, XSD, Relax.ng |
epcEdit | Win, Linux, Solaris | No | Yes | No | [8] | TCP | 7 | Free; also supports SGML; feels a bit like XMetaL |
jEdit | all (Java) | Yes | Yes | Yes | [9] | NZETC | 7 | XML use requires plugins, and only supports DTDs |
Emacs | Mac, Win, Linux, Solaris | Yes | Yes | No | [10] | NZETC WWP | 3 | (See also TEIEmacs) Best mode for TEI XML is nXML, using RELAX NG compact schemas. For Mac look for Aquamacs package |
vi | Mac, Win, Linux, Solaris | Yes | No | No | [11] | 1 | Ships on all POSIX systems (linux, solaris, BSD, etc) as standard, thus the lowest common denominator editor for server configuration | |
sed | Mac, Win, Linux, Solaris | Yes | No | No | [12] | -1 | Handles with ease files a order of magnitude larger than the system RAM | |
Notepad++ | Win | Yes | [13] | |||||
Sacodeyl Annotator | all (Java) | [14] | ||||||
Serna Free | Yes | Yes | Yes | [15] | ||||
TextMate | MacOS | No | No | [16] | An extension is needed for XML editing | |||
XmlBlueprint | Win | [17] | ||||||
XMLmind | all (Java) | No | Yes | No | [18] | A free version exists. | ||
XMLSpy | all (Java) | No | Yes | No | [19] | |||
XmlWriter | Win | [20] | ||||||
Editix | Win, Linux, MacOS | No | Yes | No | [21] | A free Lite version exists. | ||
Exchanger XML Editor | all (Java) | [22] | ||||||
EditTEI | all (Java) | No | No | No | [23] | Simple interface, UTF-8, powerful search and replace text and tags, syntax coloring, character-encoding conversions, Word documents importation, tags indexation and displaying, source document displaying, interactive tags management (adding, removing, edit attributes, etc.), document statistics, spell check with your dictionary, documents normalizing, untilding, dissimilation and much more ... |
Humour
Tension between emacs and vi users is longstanding and well summarised on the Editor war Wikipedia page. vi was included in the POSIX standard, whereas emacs was not, perhaps because vi was historically available in multiple implementations from multiple vendors. The following cartoon illustrates the commonly-held assumptions that emacs and vi and very powerful but obscure while their competitors make users do all the work.