Vigor: Putting new limits on productivity

Vigor

Current version: 0.010

Vigor is based on the open-source nvi program. I apologize to the nvi authors for taking their program and doing this to it.

I'm improving(?) Vigor based on suggestions from the user community. Send ideas, bug reports, and patches to joelh@gnu.org, and watch this page for updates. (Lately, I've been comitting several each evening.)

I've gotten a few bug reports, but by and large things seem to be okay. It's still good to hear how much success/failure people are having. Let me know how things work for you!

Version 0.010
Modified EULA, changed fractional cm screen specs to pixel counts, use libtcl82 if found, look for uint8_t etc
Version 0.009
Improved Tcl/Tk detection, added EULA, detect -ldl
Version 0.008
Added new comments, touched up comment probabilities, made sure that comments don't overlap with animations, modified configure.in to look for libtcl80.a
Version 0.007
Fixed make install to install vigor instead of vi
Version 0.006
Further touch-up of "confirm" dialog's probabilities; rename executable to vigor
Version 0.005
Fixed make install; write Tk error messages to stderr before vi initializes the screen
Version 0.004
Updated configure to match configure.in (oops!)
Version 0.003
Added random quotes and animations; compiled vigor.tcl into executable
Version 0.002
Updated graphics; touched-up "confirm" dialog
Version 0.001
Initial release
Vigor assistant in a separate window

Screenshots

The most frequent request I've had since releasing Vigor recently is for screenshots. I've made a separate page with a few for those who don't have the time or tools to compile Vigor; enjoy!

Downloading Vigor

Source tarball (0.009)

Get the source at http://www.red-bean.com:8080/vigor-0.009.tar.gz and have fun with it! You may want to read over the section "Installing Vigor" below, though. I release by source tarball, so this is usually the most up-to-date version. It's also the only one that I can help with install problems on, since I am not generally familiar with the other formats.

RPMs (0.009)

RPMs are available in source, Redhat 6/i386 binary, Redhat 5/i386 binary, and Redhat 6/Sparc64 binary formats. Thanks to Ganesh Sittampalam for making these available!

FreeBSD (0.007 at last check)

There is now a Vigor port in the 4.0-current port tree. I use FreeBSD myself, but I'm not the one responsible for the port, so it may fall out-of-date without my knowing it. Thanks to Bill Fumerola for committing this! (And I had been told that Vigor should be committed...)

Windows

I'm investigating building a Cygwin+native Tk port for Windows, but I'm not yet sure if that will happen. Watch this space for details!

Installing Vigor

At present, some parts of Vigor are in a somewhat primitive state, particularly as far as the build is concerned. Suggestions for how to make things build on various OS's are gratefully accepted. For the most part, compiling vigor usually goes something like this:

gunzip vigor-0.005.tar.gz
tar -xvf vigor-0.005.tar
cd vigor-0.005/build
export ADDCPPFLAGS="-I/usr/local/include/tcl8.0 -I/usr/local/include/tk8.0"
export ADDLDFLAGS="-L/usr/local/lib"
./configure
make install
vigor
Substitute your locations for tcl.h, tk.h, and libtcl.a on the ADDCPPFLAGS and ADDLDFLAGS lines. If you still have problems building Vigor, read the suggestions below, look in the build/README file, and if all else fails, drop me an email describing the problem.

Vigor does not support nvi's Tk interface (and configure doesn't give you that option), and may have trouble compiling in the Perl interpreter (which is not included by default). [Update: I think that I fixed the problem with the Perl interpreter.] You will want to read build/README to get the skinny on building nvi. Vigor will always build in nvi's TCL interpreter.

Vigor is written in C and Tcl/Tk. You must have Tcl/Tk installed to use Vigor. I'm not sure what version is needed. I wrote from Ousterhout's book, so I think anything after 7.3 is fine.

OS notes

You may want to look over whatever systems are similar to yours.

Redhat GNU/Linux 5.2

You may need to set the environment variable ADDLIBS to "-ldl" before running configure. (I've heard a report that "-lm -ltermcap" are also needed, but the reporter now believes that to be incorrect. Adding them won't hurt anything, though.) UPDATE: As of Vigor 0.009, this should no longer be necessary; configure will look for and use -ldl on its own.

Even so you may still get this warning:

ex_script.o: In function `sscr_pty':
ex_script.o(.text+0xf63): warning: revoke is not implemented and will always fail
This warning (and many others) are completely ignorable.

Sven Winnecke, who reported this, also notes that the program builds fine on Redhat 6.1 systems.

HP-UX 10.20

On HP-UX 10.20, using the binary installs of Tcl and Tk from the University of Utah's HP-UX software site, I had to create a symlink from /opt/tcl8.3/tk8.0 to /opt/tk8.0/lib/X11. (I may have the version numbers wrong; I'm typing this from memory.) Also, after making running configure, I had to change "-ltcl" in the Makefile to /opt/tcl8.3/lib/libtcl.a or the compile would fail. I don't yet know why.

FreeBSD (and possibly others)

tcl.h, tk.h, and friends must be in the cpp include path. If they are in some directory like /usr/local/include/tcl8.0, I suggest setting ADDCPPFLAGS to "-I/usr/local/include/tcl8.0" before running configure. (Note that configure does not check for tcl.h, although it does look for -ltcl.) The same goes for Tk. Again, see build/README for details, and bear in mind that I haven't edited it for Vigor's differences from nvi.

A few OS's (notably FreeBSD) install Tcl with the version number appended to the library. On such an OS, you must make a symlink to libtcl.a or libtcl.so (with the appropriate extention for shared libraries on your OS); same goes for libtk.

Help needed! Solaris 2.5.1

One user, using Solaris 2.5.1 with gcc 2.8.1 got errors during 'configure' relating to u_int8_t. Has anybody else seen this problem? Has anybody else gotten any information on how to fix it?

Cygwin

When configuring for Cygwin, create a directory /var/preserve/vi.recover and make it world-writable. (See the comments in configure.in for alternative directories.) (I haven't yet received confirmation that it works after that, though.)

Vigor scooped?

Yes, it's true, the open-source vi clone VIM already has its own smiling face.

Apparently, there is an option to VIM called VimBuddy, which will display an ASCII smiley (eg, ":-)") on your status line for different status reports. The Windows version of VIM will also update the icon with a face as well!

I still won't say what my motives for writing Vigor were, but I think you can be sure they weren't the same as the ones that prompted the creation of VimBuddy.

Acknowledgments

Vigor would never have been had it not been for these people's efforts.

(Note: If I put your name on this page, I'm not presently including email addresses to keep address harvesters away. If you like, I'll gladly add it in.)

Release Announcement

FOR IMMEDIATE RELEASE
Mountain View, CA. In a recent fit of madness, hacker Joel Holveck has released Vigor, a version of the popular Unix editor vi featuring the Vigor Assistant. Holveck declined to comment on his true motives for creating the program, although it has been confirmed that he was inspired by Pitr of User Friendly the Comic Strip. A supporter of the Free Software Foundation, Holveck denies rumors that he created the program as part of a plot to encourage the use of Emacs based on Greg's 10 Jan comment. Vigor is currently available online at http://www.red-bean.com/~joelh/vigor/ and is expected to undergo daily improvements based on user input for the next several days.