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).
If you are a teacher looking for an editor suitable for TEI instruction, have a look at the list of features that are seen as the minimal set needed for a "student version" of a commercial editor. This feature set is under discussion and you are welcome to take part in it.
Table of Editors
|Name||Operating Systems or Environments||FLOSS?||Explicit support for XML||Explicit support for TEI||URL||Projects Using|| Beginner-friendliness|
(scale 1-10, 1=hard)
|Ace||Web-based||Yes||Yes, but primitive and buggy||No||||ANGLES||2|
|ANGLES||Web-based||Yes||In-progress||?||||The white paper released as part of the NEH grant which funded ANGLES' development indicates that development has ceased. This editor is based on the Ace editor.|
|Atom||Win, Linux, MacOS||Yes||Yes||No||||ATOM||2||Needs the package  to validate with a declared schema. See more discussion on TEI-L.|
|CodeMirror||Web-based||Yes||Yes, but primitive and buggy||No||||XET||2||Cannot support namespaces without an architectural change due to the absence of lookahead for modes.|
|Emeditor||Win||No||No||No||||TCP||9||PRO: large-file support, utf-8 support, diff.|
|Editix||Win, Linux, MacOS||No||Yes||No||||A free Lite version exists.|
|EditPad Pro||Win||No||No||No||||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.|
|EditTEI||all (Java)||No||No||No||||Claiming many features, accessible after registration.|
|Emacs||Mac, Win, Linux, Solaris||Yes||Yes||No||||NZETC WWP||3||(See also TEIEmacs) Best mode for TEI XML is nXML, using RELAX NG compact schemas. For Mac look for Aquamacs package|
|epcEdit||Win, Linux, Solaris||No||Yes||No||||TCP||7||Free; also supports SGML; feels a bit like XMetaL|
|Essential XML Editor (formerly Open XML Editor)||Win||Yes||Yes||No||||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|
|Exchanger XML Editor||all (Java)||No||||Heavily obsolete (as of Feb'15), won't run on a new Java installation|
|FontoXML||Web-based||No||Yes||Yes||||9||2014||Web-based XML editor, including a TEI-edition. FontoXML integrates seamlessly into most web content management systems and workflow software.|
|Geany||all||Yes||Yes||No||||Geany is a cross-platform IDE suitable for XML and HTML, C, Java, PHP, HTML, Python, Perl and Pascal.|
|jEdit||all (Java)||Yes||Yes||Yes||||NZETC||7||XML use requires plugins, and only supports DTDs|
|Liquid XML Editor||Win||No||Yes||No||||Features of the XML Editor include Validation, XML Syntax Highlighting and Multi-step undo/redo.|
|Notepad++||Win||Yes||Yes||No||||TCP||9||Freeware. XML support via XMLTools plugin. Basic editor made more versatile by plugin system (eg. Base64 encode-decode, hex editor, etc)|
|Office suite + OxGarage||All||?||Yes||Yes||||9||Users edit using standard office suite and documents converted to TEI via webservice|
|oXygen||all (Java)||No||Yes||Yes||||WWP DHQ||8||in Editor, possibly in Author||Can validate using DTD, W3C schema, RELAX NG, and Schematron; can run XSL transformations on file; WYSIWYG mode using CSS; support for TEI ODD files (editing and schema generation)|
|Sacodeyl Annotator||all (Java)|||
|sed||Mac, Win, Linux, Solaris||Yes||No||No||||-1||Handles with ease files a order of magnitude larger than the system RAM|
|Serna||No||Yes||unknown||||yes||Part of Corena studio now.|
|Serna Free||Yes||Yes||Yes||||yes||Wikipedia reports that the free version of Serna is no longer "distributed." This probably means that the parent company no longer expends any resources on it. The source code of the free version is still available under a GPL license, hosted on Sourceforge.|
|TextMate||MacOS||No||No||||An extension is needed for XML editing|
|TextPad||Win||No||No||No||||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.|
|UltraEdit||Win, Linux||No||Yes||No||||9||customizable for TEI-support; can handle extremely large files; powerful regex/multi-file replace; macro recording|
|vi||Mac, Win, Linux, Solaris||Yes||No||No||||1||Ships on all POSIX systems (linux, solaris, BSD, etc) as standard, thus the lowest common denominator editor for server configuration|
|Wed||Web-based||Yes||Yes||Yes||||BTW||7||Not as of version 0.20.0||Provides validation and guided editing. Understands RNG. Can be customized for specific projects. Can show XML structures in a way that mirrors the XML (labels showing location of open and close tags) or stylistically (e.g. headings in bold) in a single view.|
|XML Copy Editor||Win, Ubuntu||Yes||Yes||Yes||||TCP||7||Free; validates to DTD, XSD, Relax.ng|
|XMLMax||Win||No||Yes||No||||8||Unlimited XML file size support with low memory requirement. XML parsing with error reporting and fixing. Collapsable treeview, DTD and XML schema validation. XPATH and XSLT.|
|XMLmind||all (Java)||No||Yes||No||||no||An evaluation version can be used for 30 days. The last free version is/was the 5.4.0 personal edition.|
|XPontus||all (Java)||Yes||Yes||No||||XPontus XML Editor is a simple XML Editor oriented towards text editing. It can perform validation(DTD, XML Schema, Relax NG, Batch XML validation), XSL transformations(HTML, XML, PDF, SVG), schema/DTD generation, XML/DTD/HTML/XSL code completion, code formatting and much more. Plugin based.|
|XMLSpy||all (Java)||No||Yes||No||||yes||Fully functional free 30-day trial versions are offered.|
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 are very powerful but obscure while their competitors make users do all the work.