Nvi is a BSD-licensed re-implementation of the original vi editor, and it is frozen at version 1.79. This project creates a nvi fork with sufficient multibyte encoding support.
Requirements
We consider the following multibyte encodings:
Single byte character sets, either ASCII (7-bit) or 8-bit extended encodings, e.g., ISO8859-1, KOI8-R;
Non-Unicode two bytes character sets, mainly CJK families, e.g., GBK, SJIS;
Unicode families. UTF-8 and UTF-16.
Some other requirements:
The encoding settings can be changed through ex commands at the runtime. By default, the input encoding obeys the locale.
It features some form of file encoding detection.
It behaviors in the original nvi-1.79 (the version presents in the FreeBSD base system and mostly confirms with the POSIX standard) way.
The whole software is clearly BSD licensed.
Progress
Merge with nvi-devel-1.81.6, gain iconv/ncursesw related code, broken DB1 code, 'fileencoding' and 'inputencoding' options, :vsplit. Nvi-1.79's screen structure, file/DB structure, event model, and editing/search/subst behaviors are kept.