Contents:
The BUFDIRED subsystem defines the function buffer-dired. This function performs the same sort of editing operations as the DIRED package does for files.
When you execute the buffer-dired function, Emacs displays a buffer called Buffer list, which contains a list of all the buffers currently in Emacs. Each line in the list contains information about one buffer. The information includes:
You can use the following commands to perform various operations on the buffers in the buffer list:
? | Displays a help screen describing the available commands. |
n | Moves the cursor to the next line containing the next buffer. |
p | Moves the cursor to the previous line containing the previous buffer. |
d | Deletes the indicated buffer. |
c | Toggles the checkpointing setting for the indicated buffer. |
j | Toggles the journalling setting for the indicated buffer. |
m | Toggles the modified buffer flag for the indicated buffer. |
e | Edits the indicated buffer in a recursive editing level. |
g | Fetches the indicated buffer from the MLisp-library database search-list. |
p | Puts the indicated buffer into the MLisp-library database. |
w | Writes out the indicated buffer to disk. |
r | Re-reads the associated file into the indicated buffer, overwriting the buffer's existing contents. |
v | Visits a named file. |
b | Visits a named buffer. |
e | Examines the indicated buffer. |
q | Exits from the buffer editor. |
The DEBUG subsystem uses the Emacs tracing, breakpointing, error trapping and stack dumping facilities to provide a powerful source line Mock Lisp debugger.
To start DEBUG, load in the DEBUG subsystem. Each time you want to enter DEBUG mode, use the ESC-^D (or ESC-x debug) command.
The ESC-x debug command loads up the breakpoint, error and trace handlers, binds DEBUG functions to keys and pops up the Debug and show expression windows. Source code and other information displayed by DEBUG will appear in these windows.
The show expression window is used to display the type and value that the last expression returned or variable requested.
The Debug window is used to display source lines to be executed, and is where DEBUG commands are requested. The following commands are available in the Debug window:
b (set breakpoint)
Sets a breakpoint on the nominated function. When that function is executed after the breakpoint has been set, it will cause DEBUG to regain control, and DEBUG will display the decompiled source showing the call to the function.
B (remove breakpoint)
Clears the breakpoint flag for the specified function so that it will no longer cause a breakpoint.
c (show calls)
Displays the current call stack in the Debug window.
. or KP5 (display current source)
Displays the current source line, in context, in the Debug window.
e (interrupt on error)
Causes DEBUG to trap error reports, and displays the reports along with and the erring function. Errors are not trapped by default.
E (kill error trapping)
Disables error trapping.
g or KP, (go)
Continues the execution of a program without interference from DEBUG. The only way DEBUG will re-gain control is at a breakpoint. Use this function when you have finished examining execution at one point in your program, and you wish to continue the program.
h or ? or Help (help)
Displays help on DEBUG commands.
l (list breakpoints)
Displays a list in the Debug window of all of the functions which have their breakpoint flag set.
o or KP0 (step over)
Executes the next MLisp expression and stays in DEBUG mode. However, if the expression if a function call, DEBUG executes all of the expressions in the called function and any functions it calls.
p (print)
Prints the type and contents of a variable in the show expression window.
q (quit)
Exits DEBUG. The Debug window is removed and all variables controlled by DEBUG are reset. Breakpoints remain intact, but will not cause DEBUG to be run. To re-start debugging, use the ESC-^D (ESC-x debug) command.
s or PF1-KP0 (step)
Executes the next MLisp expression.
t (set trace mode)
Enables trace-mode. During trace-mode, every MLisp expression that is executed will be displayed in the Debug window for debug-sit-for tenths of a second. Execution will continue until all MLisp expression have been executed.
T (Unset trace mode)
Unsets trace-mode.
v (View last expression)
Prints the value of the last expression executed.
DEBUG never displays information about any of the DEBUG functions, nor about MLisp functions that are called while in the Debug window. This stops DEBUG from confusing you.
DIRED is a directory editing package. You can use it to perform housekeeping operations on a specified set of files.
DIRED makes it easy to delete many of the files in a single directory at once. It presents a copy of the directory listing which you can move around in, marking files for deletion. When you have marked all the files you want to delete, you can tell DIRED to go ahead and delete the marked files.
Invoke DIRED from DCL using the command:
$ EMACS/package=DIRED files
where files is any valid VMS file specification (which may include wildcards). If you invoke DIRED from DCL, when you exit DIRED, Emacs will also exit.
You can also invoke DIRED from Emacs by typing the ESC-x dired files command.
If you do not specify which files DIRED should edit, it will edit all the files in the current directory.
The DIRED commands are:
d | Marks the file in the current line for deletion. The deletion mark is visible as a D at the beginning of the line. Dot is moved to the beginning of the next line, so that several Ds mark several files for deletion. |
u | Removes the deletion mark for the file in the current line. |
n | Moves down a line (similar to ^N). |
p | Moves up a line (similar to ^P). |
e | If you are not sure whether you want to delete a file, you can examine it by typing E. This enters a recursive edit and switches to a buffer containing the file. You can exit with ESC-x exit-Emacs (^C). Modifications to the file are not permitted. When you exit the recursive editing level, you return to DIRED. |
q | When you have marked the files you wish to delete, you can exit DIRED with Q. If any files were marked for deletion, DIRED lists them in a concise forma. Then DIRED asks whether you really want to delete the files. You can type Y to go ahead and delete them, R to return to editing the directory or any other character to quit DIRED and delete nothing. No Return character is needed. |
? or Help | Displays a help screen listing the DIRED commands. |
INFO is a package that allows you to read (and possibly alter)documentation written in a tree-structured format.
There are three ways to start the INFO package:
$ EMACS/package=INFO
When INFO is started, it displays the available INFO databases. These are listed below
Database | Description |
DCL | How to use DCL on VMS |
Emacs | The Barry's Emacs editor |
Info | A tutorial on INFO |
Languages | Language processors |
Utilities | VMS utility programs |
INFO is a large package and has many commands for navigating the various INFO databases. Due to the complexity of the package, it contains its own tutorial which describes INFO concepts and the various INFO commands. To start the tutorial, start the INFO package, then press h (for Help).
The following keys are bound by INFO and are used for navigating the INFO databases:
Space, ^V | Display next screen |
Backspace, ^H, ESC-v | Display previous screen |
? | Visit this node (command-summary) |
@ | Menu path (enter menu items separated by spaces) |
a | Scroll one line down |
b | Beginning of node |
d | Go to directory node (the top of the INFO tree) |
e | Go to the end of the current node |
^E | Edit current node (^] exits the recursive edit) |
g | Go to a node |
h | Help---visit the INFO tutorial |
l | Return to last node (retrace your path through the tree) |
m | Go to a menu item |
n | Go to the next node in sequence |
o | Output current node to a file |
p | Go to the previous node in sequence |
q | Quit INFO |
r | Reverse search for a string |
s | Forward search for a string |
u | Go up to this node's father |
x | Execute an extended command |
z | Scroll one line up |
The SHELL package provides access to the command shell from inside Emacs. Invoke SHELL using the command:
$ EMACS/package=SHELL
Emacs will spawn a shell subprocess and will pop up a window called DCL Interaction Window n, where n is a sequence number.
When dot is in the DCL Interaction window, you can type any DCL command terminated by a Return, and this command will be executed in the shell subprocess with the command output appearing in the window.
If you enter a command that invokes an interactive program which prompts for input, you can send input to the running program by terminating lines of input with Linefeed rather than Return.
You can start as many shell subprocesses as your VMS PRCLM process quota will allow. Each subprocess will have its own DCL Interaction window.
The shell key bindings are summarised as follows:
^? | Prints a help screen describing the shell commands. |
^R | Recalls the last command executed. The last 20 commands are remembered. |
Return | Execute the command on the current line in the shellsubprocess. |
Linefeed | Send the current line as input to a program running in the shell subprocess. |
^] | Finish the current shell session. The subprocess is deleted, but the interaction window is kept. |
^C | Aborts the program running in the shell subprocess. |
Two variables are defined which allow you to customise the behaviour of the shell package:
shell-ctrlc | Contains the termination code to be sent when ^C is pressed. The default value is 44. |
shell-feeps | Contains the number of times the bell will ring when a process input request is made. By default, this variable is set to 0, so the bell does not ring when a program running in the shell subprocess asks for input. |
The TEACH package is the Emacs computer-based instruction package. You can use this package to learn about the basic editing features of Emacs.
Invoke the TEACH package using the command:
$ EMACS/package=TEACH
When you start the TEACH package, Emacs visits a file called EMACS.CBI. This file contains the text of the tutorial, and contains examples and directions for you to try out various Emacs commands.