Home

Family

Mongolia

Programming
.    IC
.    Regexps
.    Elisp
.    Tetrii
.    sudoku
.    Subway
.    Pinyinglish
.    SchoolSite
.    freehostingweb

Harry Potter

Contrarian Ultimate

China Photos

Hip

Links

Call us

Site Map

Emacs Lisp Functions

emacs extensions

These are elisp functions I have written for my own use, which could be of interest or use to others. Because they are for my use, and usually written hurriedly to fill a need for myself only, they are not usually documented or written as nicely as my work code is.


  • lineno.el - Displays line numbers in an emacs buffer. It differs from other such packages because it only puts overlays on lines in the selected window, so it works fine no matter how large the file.
  • project.el - Interactively define "projects", groups of files that you can load with a single command.

  • java-class.el - A mode for viewing java .class files that displays the class definition in a buffer. It uses different faces to display different properties, and allows filtering by different types.

  • sudoku.el - Intended as a nice environment that allows you to concentrate on the logic to solve puzzles by keeping track of the details and presenting the current state nicely. Lets you view the current board and the possibilities for each cell, along with providing undo, checkmarking, saving and restoring puzzles, hints, the solution to any puzzle, and even present you with the reasoning used. A neat project that was more fun than the puzzles are. (and I am pretty good at solving the puzzles now)

  • javadoc.el - goes through a file adding proper javadoc comments to the front of method definitions. It fills in arguments and types, return value, and exceptions.

  • global-find.el - Makes a buffer that contains all occurences of a given string in buffers currently being edited. Useful for large multifile projects.

  • unhtml.el - Tries to remove html tags and leave the buffer formatted nicely enough to be readable. URLs can be removed, stored as text properties so they can be clicked on, or stored in-line, bracketed by "<<>>".

  • my-rmail.el - Expands mail aliases and manages sender email accounts. It takes a list of mail aliases and uses it to generate a Unix .mailrc alias file. Aliases are expanded in "To:" and "Cc:" lines in the emacs *mail* buffer. Also, each alias can associated with an email address which is used as the default sender of email to that recipient. This allows accounts to be used for different purposes, for instance a personal, spam-free account to be used only for family and friends and other accounts for business, bulletin boards, etc.

    It also handles replies to bulletin board digests, either to the sender or to the list, and gets the subject line right.

  • tracker.el - A time tracker that keeps track of work time by project and subproject, and generates time summaries and reports based on its records. It automatically logs off after a period of inactivity (no hardship for those of us that live in emacs), and touches its records every minute, so in case of machine crash it can restore the end time.

  • shell-enhancements.el - Tracks the current directory reliably in dos and unix environments, displays the current directory in the message area, fixes various shell commands that seem to have chcanged from what I am used to, implements shell CD expansion in the minibuffer for reading and writing files, puts VMSTAT in the mode line, and probably some other stuff too.

  • tetrii.el - Tetrii is my next level up from "hello world", I have written it in several different languages. It is tetris played on multiple boards at the same time. I started this as tetris a few years ago, and only recently went back to add multiple buffer support. It seems to work great now - try it out.

  • color-select - allows marking up a file with different faces by using windows selections, REs, or other ways if you care to write them. It can store the markups in file locals, and so restore them on reopening. It supports either its own internal tag format, or XML-style tagging.
Call or Send Us Mail!



or send email to
image of email address

(sorry, the email addresses
that used to be here have
been disabled due to spam
attacks.)