Projects / nvi


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.

Operating Systems

Recent releases

  •  18 Nov 2007 19:26

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

    •  21 Aug 2001 16:08

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

      •  19 Jun 2001 09:02

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

        •  14 May 2001 22:06

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

          •  28 Jan 2001 21:00

            Release Notes: Several small bugfixes.

            Recent comments

            08 Jun 2010 18:50 mai_fm

            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 <ncurses/ncurses.h>.

            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.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.