HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
lichray
nvi2
C2022–2022
lichray / nvi2

nvi2

A multibyte fork of the nvi editor for BSD

2Distinct people
4Mentions
0Explicit recommenders
200GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A multibyte fork of the nvi editor for BSD

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by month4 dated mentions

Observed mentions: 2022-02-19 21:44:04 UTC to 2022-12-29 18:08:28 UTC.

01232022-02-01 00:00:00 UTC to 2022-03-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 commentsFeb 20222022-03-01 00:00:00 UTC to 2022-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-04-01 00:00:00 UTC to 2022-05-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-05-01 00:00:00 UTC to 2022-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-06-01 00:00:00 UTC to 2022-07-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-07-01 00:00:00 UTC to 2022-08-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 20222022-08-01 00:00:00 UTC to 2022-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-09-01 00:00:00 UTC to 2022-10-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-10-01 00:00:00 UTC to 2022-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-11-01 00:00:00 UTC to 2022-12-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-12-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsDec 2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 20222022-02-01 00:00:00 UTC2022-03-01 00:00:00 UTC303
Mar 20222022-03-01 00:00:00 UTC2022-04-01 00:00:00 UTC000
Apr 20222022-04-01 00:00:00 UTC2022-05-01 00:00:00 UTC000
May 20222022-05-01 00:00:00 UTC2022-06-01 00:00:00 UTC000
Jun 20222022-06-01 00:00:00 UTC2022-07-01 00:00:00 UTC000
Jul 20222022-07-01 00:00:00 UTC2022-08-01 00:00:00 UTC000
Aug 20222022-08-01 00:00:00 UTC2022-09-01 00:00:00 UTC000
Sep 20222022-09-01 00:00:00 UTC2022-10-01 00:00:00 UTC000
Oct 20222022-10-01 00:00:00 UTC2022-11-01 00:00:00 UTC000
Nov 20222022-11-01 00:00:00 UTC2022-12-01 00:00:00 UTC000
Dec 20222022-12-01 00:00:00 UTC2023-01-01 00:00:00 UTC101

What Hacker News says

4 sources
nvi2 [0]: I got to like the simplicity of nvi when installing Void Linux on my laptop, but it had some annoying bugs that made me switch to nvi2. In general, it feels like `good' software; powerful enough by virtue of being a 1:1 vi clone with a few crucial improvements (multibyte, multi-undo, etc.), but simple enough to hack on if I miss some feature. Though no autocomplete means it's not suitable for more verbose languages, like Java. QuickJS [1]: qjscalc is my go-to scientific calculator, and qjs my go-to JavaScript implementation for simple programs. The C interface is very nice to use, too. All in all, it feels very much like a "complete" engine, even if not quite as fast as one with JIT. w3m [2]: Somewhat lacking as a web browser, but a very good pager. Would take it over less any day. Also has the best table display of any text-mod
Read the rest
e browser, supports inline images, and is rather extensible. Wine [3]: It's gotten so good that I no longer have to dual boot Windows. Still not perfect, but definitely on my list of "good software". [0]: https://github.com/lichray/nvi2 [1]: https://bellard.org/quickjs/ [2]: https://github.com/tats/w3m [3]: https://www.winehq.org/
In Ask HN: What was the best software that you used during 2022?
Don't confuse OpenVi/OpenBSD-vi, nvi1, and nvi2. These are all different programs that share the same heritage. OpenVi is derived from OpenBSD vi, which derives from nvi version 1.79, released in 1996. There has been 25+ years of independent development as part of the OpenBSD base system and has diverged greatly in that time, with the development going in a different direction. Nvi1, currently on version 1.8x, is maintained at https://repo.or.cz/nvi.git - I believe the latest version of this editor does have multibyte support, but this is not the OpenVi/OpenBSD version of the editor. Nvi2 shares heritage as well but also, quite far removed from the original code, is actively maintained at https://github.com/lichray/nvi2 and also includes multibyte support. (IIRC) the multibyte support in both Nvi1 and Nvi2 derives from nvi-m17n, develop
Read the rest
ed as part of the KAME project by the late itojun - http://www.itojun.org/itojun.html ... the last update to nvi-m17n was about 3 years ago, and is available at https://cgit.freebsd.org/ports/tree/editors/nvi-m17n/files Currently, optimizing for size using link-time garbage collection with GCC 11.2 on an x86_64 glibc Linux system gives a good idea of the changes over time and the different direction these editors have taken. OpenVi is also simplified in structure and does not have the three levels of abstraction of Nvi 1.8x - there is no library interface layer. For OpenVi, the compiled binary is 280K, and for Nvi1 (nvi-1.81.6-45-g864873d3) the compiled binary is 528K (36K for vi, 528K for libvi). OpenVi has a single configuration standard with no dependencies beyond curses. Nvi1 has many options beyond trace/debug ("widechar" "gtk" "motif" "threads" "perl" "tcl" "db3/4" "internal-re") - so at least 255 different build variations are possible. (I've not yet built Nvi2 myself on Linux so I can't provide an really fair comparison yet, but I will, and I'll summarize the data in an FAQ section of the README) Nvi1 (https://repo.or.cz/nvi.git) looks like: 36K vi 24K vi-ipc 108K vi-motif 492K libvi.so.0.0.0 660K total OpenVi does not - it's a single monolithic binary: 280K bin/vi (Note that I was using the defaults here, I'm sure that it's possible to trim down Nvi 1.8x further, but I'm comparing the default compilations, optimized for size (GCC, -Os, -fdata-sections, -ffunction-sections, link-time GC enabled), but Nvi 1.8x is a much more complicated program, and has a different feature set, and different supported options. But, these are all different editors at this point. A lot happens in 25 years.
In OpenVi: Portable OpenBSD vi for Unix systems
I have updated the documentation/README to provide background and rationale, and elaborated a bit on other comments. OpenBSD's vi (and OpenVi) differ distinctly from both Nvi (https://repo.or.cz/nvi.git) and Nvi2 (https://github.com/lichray/nvi2) in terms of features and support, having diverged 25 years previously, where the OpenBSD/OpenVi branch has embraced minimalism and simplicity. For a quick and non-scientific comparison, C source lines of code (as counted by tokei) for the various distributions of the Nvi-derived editors: Nvi - 62,315 SLOC Nvi2 - 32,408 SLOC OpenVi - 40,065 SLOC And looking ONLY at the core editor functionality and bundled regular expression engines: Nvi - 35,874 SLOC Nvi2 - 32,019 SLOC OpenVi - 31,678 SLOC
In OpenVi: Portable OpenBSD vi for Unix systems
The behavior of the traditional vi is much different than vim and other clones. Nvi was a actually a re-implementation of the traditional vi for 4BSD (to be clean of AT&T code) and thus was originally intended to be bug-for-bug compatible, but breaking away where the original vi behavior was nonsensical or terrible. For vim, `set compatible` or `set cp` is close, but still not traditional vi by any means. A multibyte variant of the traditional vi is maintained at https://github.com/n-t-roff/heirloom-ex-vi/. Nvi (now on version 1.8x) is also maintained - https://repo.or.cz/nvi.git Nvi2 is yet another fork of Nvi, https://github.com/lichray/nvi2 Despite the very similar names, all of these editors have a variety of different features, and are structured very differently. Nvi has a concept of a front-end and a back-end (which uses the BDB d
Read the rest
atabase). OpenVi uses the OpenBSD version of Berkeley DB which derives from 1.85. Nvi (1.8x) provides a minimal version of code also derived from that release intended from use with Nvi, and (IIRC) also provides support for using Db3/4/5. Similar situation for Nvi2. Nvi 1.8 has been structured where a third library layer has been added, which doesn't exist in OpenBSD's vi or OpenVi. There is scripting support (Tcl, Perl, etc.) and GUI code in the other various forks ... all of these support various different options as well. I should probably make a matrix of these, but you can get an idea by looking at the settable options implemented in each of the variants (as they historically include a comment to document from where the option originated): OpenVi: https://github.com/johnsonjh/OpenVi/blob/22c2a7022e31d91e09e... OpenBSD vi: https://github.com/openbsd/src/blob/master/usr.bin/vi/common... Nvi2: https://github.com/lichray/nvi2/blob/5fcdc13656500a8c5b4c073... Nvi1: https://repo.or.cz/nvi.git/blob/HEAD:/common/options.c#l52
In OpenVi: Portable OpenBSD vi for Unix systems

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.