Now you can harness the power of del.icio.us-style tagging to organize your notes/programs/whatever directly from EMACS using my nifty new EMACS mode!

_______________________________________________

If you're not familiar with the new tagging craze, your missing out on one of the most fundamental new inventions in the last couple of years!

The idea is simple: Often, it can be difficult to decide how to store a certain snippet of data that one has collected. In most computer systems for organizing data, the user is forced to organize all data into some kind of directory tree or store it based on an appropriate category for every chunk of data.

A tagging system uses a far simpler, more intuitive and, surprisingly, a far more powerful method for organizing your data: After you have entered the data, just free-associate a bunch of categories that remind you of the data- You can use as many categories as you like. (Note- This implementation of tagging requires all data reside in a single data file- An implementation that works with data in multiple files would be difficult to develop- I'd love to hear from you if you know of a simple way of handling such a design in EMACS...)

Because of the way the human mind works, it is uncannily easy for humans to remember a majority of the tags that were chosen for the data, even after months or years. In a tagging system, you can slice and dice your data based on tags and can organize your data in a way that accomplishes the impossible: Once your data goes into the system, it almost _never_ gets lost.

Well, that's the basic theory behind tags, and it really works out in practice for many of us tag junkies!

INSTALLATION

(These instructions assume some basic proficiency in EMACS- If you are new to this funky text editor, try reading a tutorial first!)

First, download the file tagging.el to your computer and place it somewhere where EMACS can "see" it. Next, add the following line to your .emacs file:

(load "tagging.el")

Restart EMACS and... Congratulations! You now have Tagging-Mode installed into your EMACS editor!

BASIC USAGE

To use tagging mode, Create a new buffer in EMACS and type M-x tagging-mode [ENTER]. (FYI- EMACSers like to say "M" for the [ALT] key and "C" for the [Control] key...) This will place the current buffer into Tagging Major Mode. (If you create a file with the extension ".tagged", the file will automatically start in Tagging Mode.)

Note that every tagged chunk of data has a line on top of it that begins with an asterisk (*) that has a list of space-delimited tags in it. Tags are allowed to contain lower/uppercase letters, numbers and the underline (_) character. No other characters are permitted.

Now... suppose you want to see a list of all entries involving "pets"- Simply type:

To filter the data even more, move your buffer point somewhere over the word "groceries". Next, type the following:

C-c, C-s [Enter]

This command is the command for adding the word at the buffer point as an additional filter (you can also simply type in an additional filter before hitting the [Enter] key, instead). You should now see only the notes that are tagged with both "todo" AND with "groceries":

Similarly, you can remove a tag from the filter by moving the buffer point over a word and typing:

C-c, C-d [Enter]

If you wish to stop the filtering and see ALL notes again, simply type:

C-c, C-a [Enter]

You have now learned how to use Tagging-Mode!

-ADVANCED USAGE-ORGANIZING PROGRAMMING LIBRARIES WITH TAGS

Often, programmers have large libraries of functions that they commonly need to re-use throughout several projects. It can sometimes become difficult to know if a library routine already exists to perform a certain task. Because of this, I have also created a Minor Mode for tagging that you can use to organize your source code in most programming languages- Heres How:

First you'll want to override the indicator for a tagging line in your language. If you use JAVA, C++, or C#, add the following line to the bottom of your .emacs file:

(setq tagging-tagline-indicator "^//\\*")

Next, type M-x tagging-minor-mode. This will allow you to write tag lines that begin with "//*", so you can write things like: