Emacs is a very powerful text editor that allows interfacing to many things including most programming languages, email, News, the WWW and MUDs. If you are unfamiliar with emacs try to talk to someone who uses it and see before you install it. Emacs extensions are written in emacs-lisp. When installing a Mud client you normally have to look at the README file in the distribution and reconfigure some of the *.el files.
The most popular emacs client seems to be mud.el. This client runs on GNU Emacs. Usable for TinyMUD-style muds, LPMUDs, and MOOs. Features include auto-login, macros, logging, cyberportals, screen mode, and it is programmable. Availability: at ftp://parcftp.xerox.com/pub/MOO/clients/ and at ftp://ftp.math.okstate.edu/pub/muds/clients/UnixClients/. See the Mud FAQ list for more emacs clients.
At Tecfa we use Ron Tapia's rmoo client. It is not mentioned in many places but gives best results under X with GNU Emacs.
Distribution: (a maybe old version) from TECFA's FTP server. The original version seems to have disappeared from the Net.
When using this client the first thing to do in the MOO is: '@edito +l'. That will ship all editing to emacs. No documentation is available, so to get some help, type 'c-h M' in a RMOO window.
The RMOO client features menus for a few commands (in the original districtuion they only worked for GNU Emacs, i.e. NOT Xemacs). In our slightly modified version the most important commands work from the menu.
(Note that we did not test everything in detail, there is no good help)
Here are the available commands in RMOO main mode (when just interacting
normally with the MOO). The most important thing to do when you work
with an emacs clients is to configure your MOO for local editing.
On most MOOs, type:
@edito +l
The most important commands you need to know are the following:
Input to the MOO:
RET rmoo-send
Retrieving previous commands and navigation:
ESC n rmoo-next-command
ESC p rmoo-previous-command
C-a rmoo-beginning-of-line
Pasting text:
C-c C-p rmoo-@paste-kill
(useful for pasting text in the emacs kill/copy buffer)
C-c C-y rmoo-send-kill
(useful for uploading code in the emacs kill/copy buffer)
Quick MOO Mail:
C-c RET rmoo-mail
Here is the full set of emacs bindings, you can ignore most of them (some won't work anythow on TECFAMOO):
RMOO mode:
Major mode for talking to inferior MOO processes.
Commands:
key binding
--- -------
menu-bar Prefix Command
mouse-1 jtext-select-link
ESC Prefix Command
C-c Prefix Command
TAB dabbrev-expand
C-a rmoo-beginning-of-line
RET rmoo-send
ESC n rmoo-next-command
ESC p rmoo-previous-command
C-c C-p rmoo-@paste-kill
C-c C-f rmoo-extras-get-prop
C-c C-v rmoo-extras-get-verb
C-c C-o Prefix Command
C-c RET rmoo-mail
C-c C-w Prefix Command
C-c C-y rmoo-send-kill
C-c C-q rmoo-quit
C-c C-o C-d rmoo-objects-delete-object-here
C-c C-o C-s rmoo-objects-write-objects-file
C-c C-o C-o rmoo-objects-download-object
C-c C-w C-s rmoo-worlds-save-worlds-to-file
C-c C-w C-a rmoo-worlds-add-new-moo
Below are the commands active when programming or editing:
The most important command
is ctrl-c ctrl-s
which ships back a command to the MOO from an editing
buffer. Note: be sure not to delete the ``MOO command lines'' that
pop up when you you start an editing session.
In the following example you edit the description of a room:
>@edit here.description
What you will get in the editing buffer is this:
@set-note-text #139.description
You see an modern office, quite standard in appearence.
You see a blackboard on which you can leave a note ('writeb ......').
'Out' will lead you back to the Atrium.
.
Don't delete the @set-note-text #139.description
line NOR the last
line (i,e, ``.'')
and insert all editing in between! The exactly same rule applies if
you edit a verb, e.g. if you type: @edit #xxx:my_verb
Major mode for mucking with MOO code.
Commands:
key binding
--- -------
menu-bar Prefix Command
C-c Prefix Command
TAB rmoo-code-indent-line
C-c C-s rmoo-upload-buffer-directly <--- MOST IMPORTANT !
C-c s rmoo-upload-buffer-directly
C-c ; rmoo-code-check-semi-colons
C-c " rmoo-code-insert-quoted-end
C-c C-a rmoo-code-extras-map
C-c C-a u rmoo-code-uncommentify
C-c C-a c rmoo-code-commentify
C-c C-a s rmoo-code-sin
C-c C-a r rmoo-code-return
C-c C-a k rmoo-code-fork
C-c C-a w rmoo-code-while
C-c C-a f rmoo-code-for
C-c C-a e rmoo-code-else
C-c C-a i rmoo-code-if