1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307
|
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:
1. 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.
2. 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
|