4 ms·
>Why would somebody want to use this over nvi This basically is nvi, unless I'm very wrong.
by rnd0 5y ago
>Why would somebody want to use this over nvi
This basically is nvi, unless I'm very wrong.
- mrweasel 5y agoIt's nvi plus some OpenBSD patches. Nvi it self has a series of different patches. The question remains valid. Why would you specifically want the nvi from OpenBSD, when you already have nvi? The assumption has to be that OpenBSD added something to their version of nvi, which would "justify" porting it back to non-OpenBSD systems. What those feature are I don't know. It might just be a fun exercise adding the portability back.
- trn 5y agoI have some comments here that address this, but, there are in fact many significant differences. The OpenBSD version forked at Nvi 1.79 around 1996-1997 and has been developed in the OpenBSD base system for 25 years now, and has diverged greatly from Nvi. Nvi2 has also diverged significantly from both "upstream" Nvi and OpenBSD vi. The OpenBSD release has significantly trimmed features and maintains a different structure than the others as the philosophy completely different. There is no Perl / Tcl / pluggable scripting engine support or alternate graphical user interfaces or similar. There are significant differences in the lower level code for signal handling, options, etc. While the core functionality of these editors are all largely the same, and they all share common heritage from Bostic's Nvi, there are trivial and non-trivial differences between all of these editors that are almost too numerous to summarize. Reviewing the ChangeLog (https://raw.githubusercontent.com/johnsonjh/OpenVi/master/ChangeLog https://raw.githubusercontent.com/johnsonjh/OpenVi/master/Ch...) since Nvi 1.79 to present should give you an idea of what's going on with this particular version.
- trn 5y agoDon'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 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 https://github.com/lichray/nvi2 and also includes multibyte support. (IIRC) the multibyte support in both Nvi1 and Nvi2 derives from nvi-m17n, developed as part of the KAME project by the late itojun - http://www.itojun.org/itojun.html 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 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 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.