nvi is a version of the vi editor which supports all the historic ex/vi features except for open mode and the lisp edit option (e.g., it has a fully implemented underlying ex mode). It contains a number of additional features, including an experimental GTK frontend in the development version.
| Tags | Text Editors |
|---|---|
| Licenses | BSD Original |
| Operating Systems | POSIX |
| Implementation | C |
Recent releases


Release Notes: This release mainly fixes compilation on recent systems.


Release Notes: The preserve command no longer overwrites the file being edited. This version should compile on most platforms again.


Release Notes: Wide character related changes, including the use of the latest ncurses. Gtk+ front end works with Gtk+ 1.2 again.


Release Notes: This release includes the use of "wide" curses if available, and some bug fixes.


Release Notes: Several small bugfixes.
Recent comments
08 Jun 2010 18:50
I tried to build and run the git snapshot of nvi on **Cygwin 1.7**. I just wanted a basic vi - not gtk, not motif version. Here are some problems.
1. The generated makefile cannot make properly. It has a target "all-am" which depends on "vi". However no rules exists for target "vi"; only one exists for target "vi$(EXEEXT)". On *NIX, these two target names are the same, but on Cygwin they are not (the later becomes "vi.exe"). So the make process will complain about "don't know how to make vi" and then stop. I hacked the makefile by changing the variable "bin_PROGRAMS" from "vi" to "vi$(EXEEXT)". The dependency problem went away.
2. The configure script has a problem detecting ncurses.h (which is actually in /usr/include/ncurses) if building "narrow" version of vi (i.e. wide char NOT enabled). The configure script will complete, but the make process will fail when it compiles cl_bsd.c because ncurses.h is not included properly. I hacked the header "cl.h" so it include .
3. The configure script does not check whether linking against libiconv is required when using iconv functions. On Cygwin it is required, and the make process will eventually fail because of unresolved externals (which are iconv function names). I hacked the makefile by adding "-liconv" to variable "LIBS".
4. I attempted to build a "wide" version of vi. After fixing problems 1 and 3 (2 doesn't show up), the build process is OK. Then I launched vi and tried to edit a new file. I pressed 'i' (to insert) and pressed Ctrl-G twice. Then I got "smap error" and after some delay, it said "aborted (core dumped)". "Narrow" version of vi does not have this problem.