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.