Home
Contact me
Directory Listing
WoMan
REDUCE IDE
Obsolete Packages
Emacs Lisp List
Emacs Wiki

Emacs Packages

Francis Wright, 11 May 2006

Beware that some of the code available here is now quite old and may contain an obsolete email address that will be bounced by my spam filtering.  If you want to email me then please use this address.

This web site provides details of, and access to, Emacs Lisp packages, most of which I have written, at least in part, and currently maintain.  They are intended for use with GNU Emacs only and most require GNU Emacs version 20 or 21 (preferably 21.3).  A few are fairly specific to Microsoft Windows and are primarily intended for use with NTEmacs.  Some of the facilities require that Emacs is running under a GUI such as Microsoft Windows or the X Window System under UNIX, Linux or Cygwin.  I currently develop, test and use this code mainly with NTEmacs under Microsoft Windows XP.  I do not explicitly support Windows 9x/ME, GNU Emacs version 20 or earlier, or XEmacs.

Files can be accessed either directly via the links below or via a directory listing, and are available both as plain text and compressed using gzip (with a .gz extension).  These packages are mostly under (sporadic) development, and feedback is welcome.  Some packages that I no longer maintain (because they are specific to Emacs 20 or Windows 9x / ME) are still available via the obsolete packages page.

Large packages that have their own web pages:

  • REDUCE IDE provides an Integrated Development Environment for the REDUCE computer algebra system.
  • WoMan allows UN*X manual pages to be browsed WithOut Man (or any other external programs); it is distributed with GNU Emacs since version 21.

ls-lisp and w32-symlinks updates by Lars Hansen from November 2005 are available here, although there may be later versions in the development version of Emacs.

Smaller packages, listed alphabetically by file name:

  • csv-mode.el, csv-mode.el.gz: [last updated 23 August 2004] A major mode for editing files of CSV type, which provides commands, key bindings and a menu to sort records by field, kill and yank columns, align and unalign fields, and transpose rows and columns.  Standard sexpr commands apply to fields.  Blank and comment lines are ignored, but delimit "paragraphs", and standard comment facilities are supported.  Font-locking highlights separators, quoted fields and comments.  The current field index can be displayed in the mode line.  Separators can be hidden within aligned fields.  CSV stands for comma-separated values and is the default plain-text format for tabular data such as that processed by spreadsheets and databases.  (It has nothing to do with CVS, the Concurrent Version System!)  However, in CSV mode the separators and (optional) field quotes can be customized to any disjoint sets of characters.  Hence CSV mode could be used to edit Unix password files, (La)TEX tables, etc.  This package has been developed and tested with GNU Emacs 21 only and will probably not work with other versions.  (It supersedes a package I originally released as csv.el, the name of which clashed with the existing package csv.el by Ulf Jasper that converts CSV data with a header record to "list of alist" form, which would facilitate more sophisticated processing of CSV data.)  I understand from Peter Galbraith that it will be included in version 25.1-1 of the Debian GNU/Linux package emacs-goodies-el.
  • dired-explore.el, dired-explore.el.gz:  Provides Windows-like file exploration within a dired buffer, bound, by default, to meta-return and meta-mouse-2.  A file is opened in a full window and a directory (folder) replaces the current directory.  [This functionality was previously (inappropriately) at the end of dired-sort-menu; if you want to use dired-explore with dired-sort-menu then please also update dired-sort-menu.  Note that the details of dired-explore are different from the version that used to be in dired-sort-menu.]
  • dired-sort-menu.el, dired-sort-menu.el.gz:
    • Adds a sort sub-menu to the dired-mode Immediate menu that supports the relevant GNU ls sort options, namely name, time modified, size, extension, unsorted, time created/changed, time accessed (not under Windows), reverse and recursive.
    • It is also available as a pop-up menu on shift-mouse-2 and a static dialogue window or frame bound to C-d, which is useful for changing several dired sort options at once.
    • Adds key bindings to toggle some options.
    • Provides a sub-menu to save and restore dired sort configurations.
    • Attempts to disable menu/dialogue options that are invalid for the ls program or ftp server being used to generate the dired buffer.
    • The dialogue does not require a GUI (whereas the menus do).
  • eol-conversion.el, eol-conversion.el.gz:  Adds an end-of-line conversion sub-menu to the Edit menu.
  • font-menus.el, font-menus.el.gz:  Adds sub-menus to the Edit menu to control font-lock and display all fonts.
  • latex-paren.el, latex-paren.el.gz:  Highlights matching LATEX parens including \(, \[, \{ and $.
  • ls-lisp.el, ls-lisp.el.gz: [last updated 16 February 2004; see also Lars Hansen's updates]
    Enhances the standard Emacs 21 ls-lisp library as follows.
    • Fixes a bug in the handling of filenames containing wildcard characters.
    • Provides better emulation of GNU ls, in particular the various ways of displaying and sorting by time stamps (t, c, u switches) and supports the human-readable (k, M, G, T) size format (h switch).
    • Supports the -L switch to dereference symbolic links within dired (which does not work with external ls programs).
    • Adds optional bash-style brace-expansion of filenames and improves escaping by `\'.
    • Doc string for (redefined) insert-directory function includes a full list of options supported, which is referenced from the ls-lisp customization group doc string.
    • Should be a bit faster when `.' files are hidden, since they are no longer listed and then deleted.
    • Follows Cygwin GNU ls more closely on Windows.
    • Optionally hides the final .lnk extension on shorcuts that are recognised as symlinks (which needs w32-symlinks, see below).
    • Cutoffs for time/date display are customizable.
    • Uses floating point more extensively and uniformly to avoid potential integer overflow.
    • Control of group display is more rational.
    • Ignore compilation warnings about `ls-lisp-format-time'; its arguments have changed.  Also, beware that loading this package on top of the preloaded version (which is unavoidable) upsets customization's view of the state of options.  Also, it may no longer be entirely compatible with dired-sort-menu, which is obsolescent and will be replaced (one day).
    • Re-implements the -F switch handling to avoid breaking symlink support; with w32-symlinks it should now be compatible with Cygwin ls.
    • Provides an option to skip files whose attributes cannot be accessed (which caused me problems in C:\WINNT\ on Windows NT 4.0).
  • msdos-tex-shell.el, msdos-tex-shell.el.gz:  Improves NTEmacs support for TEX shell under Windows.
  • rcs2log, rcs2log.bat (rcs2log.gz, rcs2log.bat.gz):  If you have a fairly complete UNIX-like environment such as Cygwin available then putting these two files in the NTEmacs bin directory makes the Emacs command `vc-update-change-log' work.  Please read rcs2log.bat for further details.  (Note that for this to work the Emacs executable search path needs to such that Emacs can find a UNIX sh command.  I have offered this code to the Emacs developers and I hope the problem will be fixed in some future version.)
  • w32-symlinks.el, w32-symlinks.el.gz: [see also Lars Hansen's updates]
    • Provides support for Windows symbolic links, including Windows shortcut files and Cygwin shortcut and (obsolete) symlink files.
    • Works with the GNU Emacs 21 ls-lisp emulation (both the standard version and my current enhanced version, see above) and with the Cygwin GNU ls program, to allow dired to follow and create symbolic links.
    • The degree to which symlink targets are canonicalized in dired is customizable.
    • Absolute Cygwin target filenames are converted by calling the cygpath program, if possible.
    • Customization is via the w32-symlinks group, which appears in both the dired and ls-lisp groups.
    • General shortcut support (outside of dired) is preliminary and currently turned off by default.  Please carefully follow the installation instructions near the top of the file if you want to turn it on.

The original 1997 zip archive of the gnuserv package is mirrored here, purely as a service to Windows users.  (I have played no part in its development.)  This is the version that I still use and which works well for me on Windows NT and XP.  Originally by Andy Norman et al., this Windows NT/95 implementation by Nico François (I think) uses mailslots, and under NT relies on NT's built-in security for access control.