====== Multibyte Encoding Support in Nvi ====== //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. - Fix DB1 code with iconv support. {{zhihaosoc2011/exf_1.png?linkonly|old file structure}} {{zhihaosoc2011/exf_2.png?linkonly|new file structure}} - Drop Perl, Tcl, gtags support. - Merge/update manpage, catalog. - File encoding detection (based on file(1%%))%% and RFC docs. - Support UTF-16 with hacks on DB/iconv, and the file write procedure. - Restore Xterm title with xprop ('windowname' option). - Port nvi-1.81.6's modified regex to support wide char. - make buildworld WARNS=1 clear. ===== TODO ===== * Wait and see if we can use TRE's wide regex support in %%FreeBSD%% libc. * Display wide characters in path names. ===== Links ===== Homepage: https://github.com/lichray/nvi2 Testing: http://lists.freebsd.org/pipermail/freebsd-hackers/2011-August/036096.html