README for lpe, version 1.2.6
Copyright (c) 1999 Chris Smith
Lpe stands for "lightweight programmer's editor", and is exactly that. It is designed to provide at the same time all the features that might be required in a decent code editor and a light, intuitive feel that makes it a pleasure to work with, making all necessary commands accessible as easily as possible.
Lpe is licensed under the GPL, version 2 or at your option any later version and yada yada yada.
NOTES ON VERSIONING
As of version 1.2, lpe has adopted a versioning system like that of the Linux kernel. The entire 1.2 series of releases will be stable releases. All of 1.3 will be development releases, and will happen at the same time as the 1.2 series. This allows me to fix bugs in a stable release without the need to direct people to use a development release -- which may introduce quite a few new bugs.
BUILDING
Lpe uses the GNU autoconf system to automate installation on a variety of UNIX or UNIX-like platforms. See the file INSTALL for details on installing lpe. Several options accepted by lpe's configure script in addition to those that are normally accepted by configure. These additional options are:
--with-modes=<list>
install all modes in <list>, where <list> is a comma-separated list of
modes. For example: --with-modes=c,cpp,html
--enable-flash-brace=x
Flash braces for x tenths of a second.
--disable-flash-brace
Don't flash braces at all.
--disable-syntax-highlighting
Don't do any syntax highlighting in any modes.
--disable-auto-indent
Don't automatically indent buffers (or even provide the option)
--enable-ext-indent
Do mode-specific "intelligent" automatic indents (only in cmode now)
--disable-macro-recorder
Don't include the macro recorder
--disable-stream-manip
Don't include stream manipulation commands to integrate will shell
scripts, sed, or awk.
--disable-help
Don't offer a help screen, which enlarges the binary by about 4K.
Lpe's configure script will also accept standard GNU autoconf options. Most of the interesting ones are described in the accompanying INSTALL file, which documents using the autoconf build system in greater detail.
BUILDING WITHOUT ROOT
It is possible to build lpe without root access to a system, as a replacement for the editors provided by the system administrator. To do this, you should install and build both S-Lang (if it is not already installed on the system) and lpe in your home directory. Follow the following steps:
- If your system administrator has not installed the S-Lang library, build and install the S-Lang library in your home directory as per the documentation that comes with the library.
- Set up a proper development environment in your home directory by editing your shell's startup script to set the following environment variables:
CPPFLAGS = -I${HOME}/include
LDFLAGS = -L${HOME}/lib
PATH = ${HOME}/bin:${PATH}
LD_LIBRARY_PATH = ${HOME}/lib:${LD_LIBRARY_PATH}
Please change the name of the last environment variable to fit the conventions on the op[erating system in use. The variable name used should be documented by your system's dynamic linker.
3. Configure lpe with the --prefix=${HOME} flag to prevent it from installing in the default location.
With these steps taken, lpe should be installable from a non-root environment.
RUNNING
To run lpe, type:
% lpe <fname>
Where <fname> is the name of the file you want to edit. Lpe will not start without a file name. If the file doesn't exist, it will be created. Now, you can just type, just like you can in every other text editor. Here's the supported commands and special keys:
Ctrl-R -- Scroll one screen up (alternative to PgUp) Ctrl-T -- Scroll one screen down (alternative to PgDn) Ctrl-O -- Move to the next word Ctrl-P -- Move to the previous word Ctrl-K -- Kill the current line Ctrl-Y or Ctrl-U -- Insert the most recent block of killed lines Ctrl-S -- Search for a specified string in the file Ctrl-A -- Search again for the last search query
Ctrl-F Ctrl-O -- Open a new file to replace the current buffer Ctrl-F Ctrl-S -- Save the buffer to disk Ctrl-F Ctrl-A -- Save to disk with an alternate file name Ctrl-F Ctrl-R -- Read a file and insert it at the current cursor position Ctrl-F Ctrl-E -- Pretend that a buffer hasn't been modified
Ctrl-B Ctrl-S -- Set the mode of the current buffer Ctrl-B Ctrl-T -- Toggle between hard and soft tabs for this buffer Ctrl-B Ctrl-A -- Toggle automatic indentation of this buffer
Ctrl-G Ctrl-Q -- Move cursor to beginning of line (alternative to Home) Ctrl-G Ctrl-W -- Move cursor to end of line (alternative to End) Ctrl-G Ctrl-A -- Go to the first line of the buffer Ctrl-G Ctrl-S -- Go to the last line of the buffer Ctrl-G Ctrl-G -- Go to a specific line number of the buffer
Ctrl-N Ctrl-R -- Enter a value for the command repeater Ctrl-N Ctrl-T -- Multiply the command repeater value by four Ctrl-N Ctrl-O -- Start or stop recording a macro Ctrl-N Ctrl-P -- Play back the last recorded macro
Ctrl-V Ctrl-V -- Pass the entire buffer through a shell command Ctrl-V Ctrl-A -- Pass the entire buffer through an awk script Ctrl-V Ctrl-S -- Pass the entire buffer through a sed script Ctrl-V Ctrl-B -- Pass several lines of the buffer through a shell command Ctrl-V Ctrl-D -- Pass several lines of the buffer through an awk script Ctrl-V Ctrl-F -- Pass several lines of the buffer through a sed script
Ctrl-D -- Perform an internal debug command
Ctrl-E -- Get a help screen to list these key bindings Ctrl-X -- Write the buffer to disk and exit <interrupt> -- Exit without writing to disk Ctrl-Z -- Suspend the editor and escape to a prompt Ctrl-L -- Erase and redraw the entire screen
- Notes
- 1. <interrupt> means your default terminal interrupt key, which is normally
set to Ctrl-C. 2. Ctrl-Z is used to abort and suspend the editor. This is completely
independent of the suspend key defined for your terminal. Sorry about this, but it appears to be a limitation of the screen management library (S-Lang) that I use, which provides no option to preserve the suspend key, so I have to emulate it with kill(getpid(), SIGSTOP).
MODES
Lpe supports several languages through its support of modes. Modes are used to provide certain editor extensions, such as brace flashing or syntax highlighting, that are appropriate to the file being edited. Modes are named, and you can specify a mode using the '--mode' command line option. If you do not, then a mode will be auto-detected at the startup of the editor. The currently supported modes are as follows:
genmode: a generic, nothing-in-particular mode
cmode: a C source file
cppmode: a C++ source file
perlmode: a Perl source file
javamode: a Java source file
htmlmode: an HTML document
sgmlmode: an SGML document
mailmode: a classical UNIX-style mailbox file
lispmode: a lisp/scheme/rep source file
PLATFORM NOTES
- Debian GNU/Linux 1.3, 2.0, 2.1, 2.2, woody, sid
Lpe should build and install well on Debian, as Debian is used as a test platform. DEB format binaries are available
- RedHat Linux 5.2
Although I don't test lpe on RedHat, it is commonly used there and I expect it to work fine. The RPM binaries work on RedHat (of course).
- FreeBSD 2.2.7, 4.3
Lpe is now in the ports collection for FreeBSD. The FreeBSD people have been extremely good about picking up quickly on new versions as well, so the ports collection should be up to date and is the preferred way to use lpe on FreeBSD.
- SUSE Linux versions unknown
The RPM binaries are reported to work fine on SUSE. I have no reports yet on the ability to build lpe from source using SUSE.
- OpenBSD 2.4
I believe that lpe works fine on OpenBSD with no known issues.
- NetBSD 1.5
Lpe works perfectly well on NetBSD.
- Digital UNIX/OSF V4.0 564 alpha
Lpe will build and run on Digital UNIX (all tested versions), but does need the GNU development tools rather than the native versions. The compiler should not cause problems, but the native make tool will fail in odd ways because of bugs in automake.
- Linux/Sparc (RedHat and Debian, unknown versions)
These have been reported to work. No details yet, though.
- Solaris/Sparc 2.5, 2.5.1, 2.6, 2.7
You must configure lpe using the --with-included-gettext option or the --disable-nls option, due to problems in the Solaris internationalization suite. See ABOUT-NLS for more information on what these options do.
I have reports that make will fail the first time that it is run, with an error about libintl.a. The work-around is to then invoke make a second time, and it should build completely. I suspect that disabling NLS support will also work around this issue, but I cannot be certain.
- Windows NT 4.0 Cygwin b20.1
Lpe builds and runs on Cygwin with S-Lang installed, but shared library problems prevent the modules from working properly. As a result, lpe will remain in genmode and provide no syntax highlighting or brace flashing.
CREDITS
Eckehard Berns <eb@berns.i-s-o.net>
- Auto-indentation feature
- German translation
- Perl and SGML language modules
- Various assorted suggestions
- Autoconf feature
Gergely Nagy <algernon@debian.org>
- Config file
- LISP language module
- Hungarian translation
- Makefile.am and configure.in hacks
- various patches here and there
Brandon Stepler <stepler@naples.net>
- Multiple buffer support
Vladimir Popov <mashgrad@elist.ru>
- version option on start
- various bug reports, lots of other help and suggestions
- Russian translation
Danial Koepke <dkoepke@california.com>
- Home goes to non-whitespace char
- cmode extended mode_indent
Boris Wedl <boris.wedl@kfunigraz.ac.at>
- Minibuf tab completion
Stanislav Grozev <tacho@orbitel.bg>
- OpenBSD port and bug reports
- Bulgarian translation
Jim Foltz <aa204@acorn.net>
- Find next command
- Bug reports
Graeme Cross <gcross@netspace.net.au>
- FreeBSD port, fix for RedHat 5.2 build
Ron S. <phaeton@clubi.net>
- Solaris port
Eric Crampton <crames@aur.alcatel.com>
- WinNT port
Manuel Cornes <manuel.cornes@lipha.fr>
- French translation
Piotr Klaban <makler@man.torun.pl>
- Polish translation
Michal Safranek <wayne@linuxfreak.com>
- Czech translation
Paco Brufal <pbrufal@phucksys.dhis.org>
- Spanish translation
Dzogchen Community <b@scil.npi.msu.su>
- bug fix for Makefile
Kevin Miller <sar@403forbidden.net>
- Suggestions on syntax highlighting for C
CONTACT
Author: Chris Smith E-mail: cd_smith@ou.edu UNIX talk: cdsmith@walker1-46.reshall.ou.edu ICQ: 20495216
Phone (in US): (405) 325-5296
