One can always enter an editor by teleporting to it, or you can use one of the commands provided
<TT>?@edit? <object>:<verb></TT> invokes the Verb Editor (edits verb code)
<TT>?@notedit? <note_object></TT> invokes the Note Editor (edits note text)
<TT>?@notedit? <object>.<prop></TT> invokes the Note Editor (edits text property)
<TT>?@send? <list of recipients></TT> invokes the Mailer (edits a mail msg)
<TT>?@answer? [<msg_number>] [<flags>...]</TT> invokes the Mailer (edits a reply)
This will transport you to one of several special rooms that have editing commands available. These editors are admittedly not as good as EMACS, but for those with no other editing capability on their host systems, they are better than nothing.
There is a generic editor that provides basic editing commands that are applicable to all editors. Documentation for these commands can be obtained by typing `help <topic>' within the editor:
?abort? ?emote? / : ?pause? ?send? (M)
?also-to? (M) ?fill? ?prev? ?showlists? (M)
?compile? (V) ?insert? ?print? (M) ?subject? (M)
?copy? ?join? ?quit? ?subst?
?delete? ?list? ?ranges? ?to? (M)
?done? ?move? ?save? (N) ?what?
?edit? (V,N) ?next? ?say? / " ?who? (M)
In addition, individual editors provide their own additional commands for loading text from places, saving text to places, and various other specialized functions which are denoted in the above list with (M),(N),(V) according as they apply to the mail editor, the note editor, or the verb editor, respectively.
Note that a given editor only allows you one session at a time (ie. one verb, one note, or one mail message). If you leave an editor without either aborting or compiling/saving/sending the item you're working on, that editor remembers what you are doing next time you enter it, whether you enter it by teleporting or by using the appropriate command. Note that editors are periodically flushed so anything left there for sufficiently long will eventually go away.
A player may have his own .edit_options property which is a list containing one or more (string) flags from the following list:
quiet_insert -- suppresses those annoying "Line n added." or "Appended..." messages that one gets in response to 'say' or 'emote'. This is useful if you're entering a long list of lines, perhaps via some macro on your client, and you don't want to see an equally long list of "Line n added..." messages. What you do want, however is some indication that this all got through, which is why the "." command is an abbreviation for insert.
eval_subs -- Enables the verb editor to process your eval_subs property when compiling your verb. Look up ?eval? for more information about the eval_subs property.
There will be more options, some day.