LEMMY Version 0.5

(ELVIS for Windows)

LEMMY is a port of Steve Kirkendall's ELVIS (a VI clone) for MS-Windows.  If you are a vi user, LEMMY will be familiar.  If you've only heard of vi, and use MS-Windows, LEMMY may be the first vi you've ever found to be usable!

For those of you who have never heard of ELVIS, it is the VI clone that comes with LINUX distributions.  If you haven't heard of LINUX, it is freely-distributable implementation of Unix for PC Compatibles with an 80386 or higher CPU.

LEMMY comes in 16-Bit and 32-Bit versions.  The latest builds are always available via anonymous FTP at ftp.pacificrim.net in the /Pub/Annexia directory.

Menu of sections:

What's New	What's new in version 0.5.

Feedback	 I am interested in hearing what people think of this and/or to hear about ways that it can be broken.   Also where is the WWW site?

Features	LEMMY takes advantage of GUI capabilities in a variety of ways.

Elvis man page	A copy of the man page from elvis.  Contains important information on ELVIS initialization parameters and startup command line flags.  These apply to LEMMY as well.

How it Works	When you use the GUI interface of LEMMY, what is happening behind the scenes.


LEMMY Features
LEMMY Features - Version 0.5

Search and Replace from the menu

The dialog box parses your regular expressions before issuing them to the VI session so you don't have to keep re-keying mistakes.

Supports for Large Files

LEMMY breaks the depressingly small notepad file size limit.  This is actually a function of ELVIS that is carried forward into LEMMY.

Clipboard Integration

Have you ever wanted to be able to cut and paste between vi windows?  With LEMMY you can!!  The default buffer for LEMMY is the Windows clipboard.

MS-Windows menu support

LEMMY adds pull-down menus, allowing you to select the file to edit (for example) using the standard Windows dialog interface.  Support for more vi functions will be added over time.  The "File" menu allows you to start another copy of LEMMY, or, open a file in a new LEMMY window.

Scrollbar support

LEMMY has a vertical scrollbar that tells you approximately where you are in the file.  It also can be used to move up and down through the file.

Status bar

A status bar along the bottom of the window tells you what vi mode you are in, and gives your line number and column number in the file.

Graphical access to VI settings and SETENV environment values.

Settings can now be made from a windows dialog, and saved automatically, eliminating the need to edit system-level startup files such as AUTOEXEC.BAT, or ELVIS.RC.


How it Works
How LEMMY Works

Most of the menu functions in LEMMY are executed by issuing the equivalent VI commands (there are some exceptions such as set options).

Whenever the menu causes VI commands to be issued, your vi session is returned to VI Command mode from whatever mode it might be in.

Ultimately, the goal is to maintain 100% of the character-based look and feel of ELVIS (or VI), and add all of the GUI conveniences to make it a Windows-friendly editor.


Where to Send Comments
Send your Comments - Version 0.5

Credit for ELVIS itself goes to Steve Kirkendall.  This is a port of ELVIS to Windows and Windows NT, with substantial modifications and enhancements.

Thanks goes to all who have provided feedback, and have helped to make this a better product.  You know who you are - the responses received have had a direct impact on the evolution and improvement of this editor.

Send comments or suggestions to my Internet E-Mail address below:

james@pacificrim.net

My Web page is still relatively new - here is the URL:

http://www.pacificrim.net/~james


What's new in version 0.5
What's New - Version 0.5

*	Bugs found in 0.4-A fixed:

  - Close from system menu causing GPF's.

  - Pasting from a 0-length clipboard causing GPF.

*	Printer Support

Finally!  You can print directly from LEMMY.

*	Resizable Windows

No more 80x25 limit, Do you need to see more rows or columns?  Just make the window bigger.

*	Mouse/Cursor tracking

Hold the mouse down, and watch LEMMY's text cursor follow it all over the place (within reason, of course).  With cursor tracking really speedy forward and reverse scrolling are possible!!

*	Support for drag and drop.

It is now possible to drop a file from file manager into the LEMMY window, and have it open automatically


ELVIS man page
ELVIS "man" page excerpts...

  NAME

       elvis, ex, vi, view, input - The editor

  SYNOPSIS

       elvis [flags] [+cmd] [files...]

  DESCRIPTION

       Elvis is a text editor which emulates vi/ex.

       On systems which pass  the program name as an argument, such

       as  Unix and  Minix, you  may also  install elvis  under the

       names "ex",  "vi", "view",  and "input".  These  extra names

       would  normally  be  links  to  elvis;  see the  "ln"  shell

       command.

       When elvis is invoked  as "vi", it behaves exactly as though

       it was invoked as  "elvis".  However, if you invoke elvis as

       "view", then  the readonly option  is set as  though you had

       given it  the "-R" flag.  If you invoke  elvis as "ex", then

       elvis will start up in the colon command mode instead of the

       visual command  mode, as  though you  had given it  the "-e"

       flag.  If you invoke  elvis as "input" or "edit", then elvis

       will start  up in  input mode, as  though the "-i"  flag was

       given.

  OPTIONS

       -r   To the  real vi, this  flag means that  a previous edit

    should  be recovered.   Elvis, though,  has  a separate

    program, called elvrec(1),  for recovering files.  When

    you invoke  elvis with -r,  elvis will tell  you to run

    elvrec.

       -R   This   sets  the  "readonly"   option,  so   you  won't

    accidentally overwrite a file.

       -t tag

    This causes elvis to start editing at the given tag.

       -m [file]

    Elvis will search through file for something that looks

    like an  error message from  a compiler.  It  will then

    begin editing  the source  file that caused  the error,

    with the cursor sitting on the line where the error was

    detected.  If  you don't  explicitly name a  file, then

    "errlist" is assumed.

       -e   Elvis will start up in colon command mode.

       -v   Elvis will start up in visual command mode.

       -i   Elvis will start up in input mode.

       -w winsize

    Sets the "window" option's value to winsize.

       +command or -c command

    If you use the +command parameter, then after the first

    file is loaded command is executed as an EX command.  A

    typical example would  be "elvis +237 foo", which would

    cause elvis to start editing foo and then move directly

    to line  237.  The "-c  command" variant was  added for

    UNIX SysV compatibility.

  FILES

       /tmp/elv*

    During editing, elvis  stores text in a temporary file.

    For UNIX, this file  will usually be stored in the /tmp

    directory,  and  the  first  three characters  will  be

    "elv".  For  other systems, the temporary  files may be

    stored someplace else; see the version-specific section

    of the documentation.

       tags This is the database  used by the :tags command and the

    -t  option.   It is  usually  created  by the  ctags(1)

    program.

       .exrc or elvis.rc

    On  UNIX-like systems,  a file  called ".exrc"  in your

    home directory is  executed as a series of ex commands.

    A file by the same  name may be executed in the current

    directory,  too.   On   non-UNIX  systems,  ".exrc"  is

    usually an invalid file name; there, the initialization

    file is called "elvis.rc" instead.

  ENVIRONMENT

       TERM This  is  the  name of  your  terminal's  entry in  the

    termcap or terminfo database.  The list of legal values

    varies from one system to another.

       TERMCAP

    Optional.  If your system uses termcap, and the TERMCAP

    variable is unset, then

     will    read   your    terminal's   definition    from

    /etc/termcap.  If  TERMCAP is set to  the full pathname

    of a file (starting with  a '/') then  will look in the

    named file instead  of /etc/termcap.  If TERMCAP is set

    to a  value which  doesn't start  with a '/',  then its

    value is assumed to  be the full termcap entry for your

    terminal.

       TERMINFO

    Optional.   If  your  system  uses  terminfo,  and  the

    TERMINFO variable is unset, then

     will read your terminal's definition from the database

    in the /usr/lib/terminfo database.  If TERMINFO is set,

    then  its value  is used  as the  database name  to use

    instead of /usr/lib/terminfo.

       LINES, COLUMNS

    Optional.  These  variables, if set,  will override the

    screen  size values given  in the  termcap/terminfo for

    your terminal.   On windowing  systems such as  X,  has

    other  ways  of determining  the  screen  size, so  you

    should probably leave these variables unset.

       EXINIT

    Optional.   This variable  can hold  EX  commands which

    will be executed before any .exrc files.

       SHELL

    Optional.   The SHELL variable  sets the  default value

    for  the "shell" option,  which determines  which shell

    program is  used to perform wildcard  expansion in file

    names,  and also  which is used  to execute  filters or

    external programs.   The default value  on UNIX systems

    is "/bin/sh".

    Note:  Under  MS-DOS,   this  variable  is  called

    COMSPEC instead of SHELL.

       HOME This variable  should be set  to the name  of your home

    directory.

     looks for  its initialization  file there; if  HOME is

    unset  then   the  initialization  file   will  not  be

    executed.

       TAGPATH

    Optional.  This variable  is used by the "ref" program,

    which is  invoked by  the shift-K, control-],  and :tag

    commands.  See "ref" for more information.

       TMP, TEMP

    These optional  environment variables are  only used in

    non-UNIX  versions of  .  They  allow  you to  supply a

    directory name to be used for storing temporary files.

  SEE ALSO

       ctags(1), ref(1), virec(1)

       Elvis - A Clone of Vi/Ex, the complete elvis documentation.

  BUGS

       There  is  no  LISP  support.   Certain other  features  are

       missing, too.

       Auto-indent mode  is not quite compatible  with the real vi.

       Among  other things,  0^D and  ^^D don't  do what  you might

       expect.

       Long  lines are  displayed differently.   The real  vi wraps

       long  lines onto  multiple  rows of  the  screen, but  elvis

       scrolls sideways.

  AUTHOR

       Steve Kirkendall

       kirkenda@cs.pdx.edu

       Many  other people  have  worked to  port  elvis to  various

       operating  systems.  To  see  who deserves  credit, run  the

       :version command  from within elvis, or  look in the system-

       specific section of the complete documentation.