Mined: An Editor with Extensive Unicode and
CJK Support for the Text-based Terminal Environment
Thomas Wolff - Siemens

Intended Audience: Software Engineers, Site Coordinators, Systems Analysts, Technical Writers, Testers, Web Administrators, Software Developers

Session Level: Beginner, Intermediate, Advanced

Many Unicode editors are GUI applications that use a graphical or font-related API to display Unicode text. But much work is done in traditional text-based terminal environments, like xterm. Mined was the first editor that supported UTF-8 in this environment.

As a problem with the text terminal environment, there is no well-defined uniform interface for character properties to make their handling compliant with that of the terminal. Most editors cannot handle display of wide and single-width characters, and combining characters consistently for a range of differently behaving terminals. The locale mechanism is not sufficient here for a number of reasons.

The approach of mined is to detect terminal properties automatically and adjusts its handling of character cell width and characters that are combined or joined (Arabic ligatures), to ensure maximal display consistency for the users.

There are some other unique features of mined;

  • Unlike other editors that support plain text mode, mined is affirmative toward the conveniences of modern user interface paradigms, like menus for major use cases, mouse control, scrollbar.
  • CJK input support with built-in input methods; in contrast to system-supplied input support this approach of "having everything on board" means that mined can be installed on any system, including legacy systems, and provide input methods out-of-the-box.
  • An optional "separated display mode" for distinct display of combining characters.
  • International smart quotes styles for automatic usage of typographical quote marks.
  • Han character information display based on the Unihan database.

Mined brings this together with a range of text and program editing features, an intuitive user interface, and a robust text and file handling engine.