A remark on fix()
Suppose you have no object called fred. If you type fix(fred) Splus will fire up an editor with the makings of a function displayed. After you save and exit from the editor, you will have an object (a function) called fred.

If you wish to work on fred some more, and if you haven't done any fix()ing in the meantime, you have only to type fix() to get fred back into the editor. You could also type fix(fred) if you were not sure about what you last fix()ed.

If Splus warns you about errors after you exit from the editor, don't type fix(fred), because that will take you back to the last clean version of fred, and not back to the version of fred still lying on the operating table. You can lose a lot of editing if you type fix(fred) after an unsuccessful edit.

The moral: when in doubt, just fix(). Also make only a small number of changes between fix()es.

I like to keep an edit trail of my work. If I have a version of a function fred that does part of what I want to do, I then type

fred2 <- fix(fred)
From then on I work with fred2, and leave fred as my backup copy. Eventually I have fred3, fred4, ..., with the highest numbered fred being the latest version.