You can read more about it on my my LiveJournal entry about it (which is also the right place to post questions or comments about it), and download it from the userscripts.org repository.
There are a couple of ways to make it work on Mac OS X.
Install Firefox and the development version of Mozex. Then go to the Tools menu, click Extensions, click on the entry for Mozex and then click the Preferences button. To get it going with the Vim editor, enter the temporary directory as /tmp/ and the textarea edit command as /Applications/Vim.app/Contents/MacOS/Vim -g %t. You can now command-click on comment boxes and go to Mozex and then Edit textarea. This brings up a Vim window in which you can edit the text. When you're done, save your text and exit Vim, and then click on the comment box. Mozex will insert the text there.
Unfortunately there are complications with getting Mozex going on Firefox 1.0 or earlier for MacOS X, which result in the following fairly disgusting hack. If you want to use it, you'll need to be comfortable with working with the shell prompt (Terminal) and with changing some obvious bits in code files. You will also need the Developer Tools installed. If you just want to know how to get the thing working, skip to the Installation section. If you're curious about what's going on, then read the rest first.
about:config (type mozex into the filter bar to cut down on the amount of stuff this shows you) as the dialog which popped up from the Options button would truncate the settings.(You could also try the updated version of Mozex as that's reputed to work with Firefox 1.0: I discovered it after writing these instructions for the first time).
/Applications/Vim.app/Contents/MacOS/Vim -g %t (see the Mozex arguments
page: %t is the name of the file to be edited).Alas, this throws an exception. After much hunting around with Google, I conclude that the Mac implementation of nsIProcess is buggy. nsIProcess is the interface Mozilla provides for programmers to start external processes, so Mozex uses it, not unreasonably. The bug appears to be that it doesn't allow you to pass arguments to the process. I confirmed this by just having it start Vim alone, with no arguments. Unfortunately, this makes it tricky to tell it which file you want to edit.
This blog posting inspired me to get around it: I wrote a Python script which finds the most recent file in a given directory and invokes the gvim script on it. This works because even if you've got another Mozex edited file on the go, at the point where you invoke Mozex a second or third time, the file it creates just before invoking the mozex-helper will always be the most recent one.
Alas, Firefox/Mozilla won't run mozex-helper.py directly (because the #!/usr/bin/python syntax is actually interpreted by the shell, I believe), so I wrote a C stub to call it. With this in place, it all works. You may ask why I didn't just write the whole thing in C: the answer is that I can't find a means of comparing struct timespecs returned by the stat function. It seems there should be a macro or function to do this without having to break the abstraction by reading the system header file to find out what's in the bloody thing. If you know how, why not let me know?
mozex-helper.py (I couldn't name it that on the webserver as the server insists that it wants to execute anything ending in .py). Place it somewhere sensible (I keep it in /Users/paul/bin/). Make it executable with chmod u+x mozex-helper.py.
mozex-helper.c. Edit this file and change the path to mozex-helper.py to wherever you put that, and compile with gcc mozex-helper.c -o mozex-helper (you'll need the Developer Tools installed for this). This generates an executable file called mozex-helper. Put that somewhere, too.
/Users/paul/mozex-temp/. Now, edit mozex-helper.py so that the mozex_temp_dir variable has the very same value.
mozex-helper.py, change the editor_command to suit. The %s escape represents the place where the name of the file to be edited will go.
about:config into the address bar (where you'd usually type a URL). To make life easier, enter mozex into the filter bar. Change the mozex.general.tmpdir value to the full path to the temporary directory you created above (/Users/paul/mozex-temp/ in my case). Change the mozex.command.textarea value to the full path to the mozex-helper executable (not the Python script), for example, /Users/paul/bin/mozex-helper.