home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-08 | 68.1 KB | 1,769 lines |
- Info file ilisp.info, produced by Makeinfo, -*- Text -*- from input
- file ilisp.texi.
-
- This file documents ILISP.
-
- This is edition 0.9 of the ILISP manual for ILISP Version 4.11.
-
- Copyright (C) 1991 Todd Kaufmann
-
- Permission is granted to make and distribute verbatim copies of
- this manual provided the copyright notice and this permission notice
- are preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
- this manual under the conditions for verbatim copying, provided that
- the entire resulting derived work is distributed under the terms of
- a permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
- manual into another language, under the above conditions for
- modified versions, except that this permission notice may be stated
- in a translation approved by the Foundation.
-
- File: ilisp.info, Node: Top, Next: Distribution, Prev: (dir), Up: (dir)
-
- This Info file documents ILISP, a GNU Emacs interface for a lisp
- running in a buffer.
-
- * Menu:
-
- * Distribution:: How to get the latest ILISP distribution.
-
- * Acknowledgements:: Acknowledgements
- * Introduction:: An introduction to ILISP and its features.
- * Installation:: How to install ILISP.
- * Starting up:: How to run a Lisp process using ILISP.
-
- * Buffers of ILISP:: Buffers used by ILISP, and their commands.
- * ILISP Commands::
- * Customization:: Description of ILISP variables and hooks.
- * Dialects:: How ILISP knows how to communicate with Lisp,
- and how to define new dialects.
-
- Indices:
- * Concept index:: General concepts.
- * Key index:: ILISP key sequences.
- * Command index:: Commands by name.
- * Variable index:: Variables and hooks that influence ILISP's
- behavior.
-
- * Function index:: Internal Emacs Lisp functions.
-
- File: ilisp.info, Node: Distribution, Next: Acknowledgements, Prev: Top, Up: Top
-
- How to get the latest ILISP distribution.
- *****************************************
-
- ILISP is "free"; this means that everyone is free to use it and
- free to redistribute it on a free basis. ILISP is not in the public
- domain; it is copyrighted and there are restrictions on its
- distribution, but these restrictions are designed to permit
- everything
- that a good cooperating citizen would want to do. What is not
- allowed is to try to prevent others from further sharing any version
- of ILISP that they might get from you. The precise conditions
- appears following this section.
-
- The easiest way to get a copy of ILISP is from someone else who
- has it. You need not ask for permission to do so, or tell any one
- else; just copy it.
-
- If you do start using the package, please send mail to
- `ccm@cs.cmu.edu' so that I can keep a mailing list of users. Any
- comments or code are also welcome.
-
- * Menu:
-
- * FTP directions:: FTP directions
-
- File: ilisp.info, Node: FTP directions, Prev: Distribution, Up: Distribution
-
- FTP directions
- ==============
-
- You can anonymously ftp the source files from CMU:
-
- * Ftp to katmandu.mt.cs.cmu.edu (128.2.250.68)
-
- * login as anonymous, with user@host as password
-
- * `cd pub/ilisp'
-
- Get the files you need:
-
- * `get ilisp.tar.Z' or
-
- * `mget README HISTORY *.el *.lisp *.texi *.info *.ps *.dvi *.lcd'
-
- * If Franz gives permission for the Franz online CL manual: `get
- fi.tar.Z'
-
- Unpack and install:
-
- 1. `uncompress ilisp.tar.Z; tar xf ilisp.tar'
-
- 2. `uncompress fi.tar.Z; tar xf fi.tar'
-
- 3. *Note Installation::.
-
- File: ilisp.info, Node: Acknowledgements, Next: Introduction, Prev: Distribution, Up: Top
-
- Acknowledgements
- ****************
-
- ILISP is based on comint mode and derived from a number of
- different interfaces including Symbolics, cmulisp, and Thinking
- Machines. There are many people that have taken the time to report
- bugs, make suggestions and even better send code to fix bugs or
- implement new features. Special thanks to Todd Kaufmann for the
- texinfo file, work on bridge, epoch-pop and for really exercising
- everything. Thanks to Neil Smithline, David Braunegg, Fred White,
- Jim Healy, Larry Stead, Hans Chalupsky, Michael Ernst, Frank Ritter,
- Tom Emerson, David Duff, Dan Pierson, Michael Kashket, Jamie
- Zawinski, Bjorn Victor and Brian Dennis for bug reports, suggestions
- and code. Please send bug reports, fixes and extensions to
- `ccm@cs.cmu.edu' so I can merge them into the master source.
-
- --Chris McConnell 18-Mar-91
-
- File: ilisp.info, Node: Introduction, Next: Installation, Prev: Acknowledgements, Up: Top
-
- Introduction
- ************
-
- ILISP is an interface from GNU Emacs to an inferior LISP. It has the
- following features:
-
- * Support for multiple LISP dialects including Lucid, Allegro and
- CMU on multiple machines even at the same time.
-
- * Dynamically sized pop-up windows that can be buried and scrolled
- from any window.
-
- * Packages are properly handled including the distinction between
- exported and internal symbols.
-
- * Synchronous, asynchronous or batch eval and compile of files,
- regions, definitions and sexps with optional switching and
- automatic calling.
-
- * Arglist, documentation, describe, inspect and macroexpand.
-
- * Completion of filename components and LISP symbols including
- partial matches.
-
- * Find source both with and without help from the inferior LISP,
- including CLOS methods, multiple definitions and multiple
- files. Also works for automatically generated functions like
- defstruct.
-
- * Edit the callers of a function with and without help from the
- inferior LISP.
-
- * Trace/untrace a function.
-
- * `M-q' ("Fill-paragraph") works properly on paragraphs in
- comments, strings and code.
-
- * Find unbalanced parentheses.
-
- * Super brackets.
-
- * Handles editing, entering and indenting full LISP expressions.
-
- * Next, previous, and similar history mechanism compatible with
- comint.
-
- * Handles LISP errors.
-
- * Result histories are maintained in the inferior LISP.
-
- * Does not create spurious symbols and handles case issues.
-
- * Online manuals for ILISP and Common LISP.
-
- File: ilisp.info, Node: Installation, Next: Starting up, Prev: Introduction, Up: Top
-
- How to install ILISP
- ********************
-
- Installation of ILISP and some initialization of your computing
- environment are described in this chapter. Please read the
- following sections carefully before getting started with ILISP.
-
- If ILISP has already been installed at your location, you can
- probably skip ahead to "Autoloading."
-
- * Menu:
-
- * Files of ILISP::
- * Autoloading:: How to define autoload entries.
-
- File: ilisp.info, Node: Files of ILISP, Next: Autoloading, Prev: Installation, Up: Installation
-
- Files of ILISP
- ==============
-
- The files you need to use ilisp are:
-
- `ilisp.emacs'
- File with sample `.emacs' code for ILISP.
-
- `symlink.el'
- Expand pathnames resolving links.
-
- `completer.el'
- Partial completion code.
-
- `completion.el'
- Completion package from TMC.
-
- `popper.el'
- Shrink-wrapped temporary windows.
-
- `epoch-pop.el'
- Popper for epoch.
-
- `bridge.el'
- Process to process communication.
-
- `comint.el'
- The basic comint abstraction.
-
- `comint-ipc.el'
- Extensions for sending commands and getting results.
-
- `ilisp-ext.el'
- Standalone lisp-mode extensions.
-
- `ilisp-src.el'
- ILISP source code module.
-
- `ilisp-bat.el'
- ILISP batch code module.
-
- `ilisp.el'
- Actual ILISP definitions.
-
- `*.lisp'
- ILISP support code. Each dialect will have one of these files.
-
- `*.lcd'
- Package descriptors for the Lisp Code Directory.
-
- `fi/*'
- Online Franz Common LISP manual.
-
- `ilisp.texi'
- Texinfo file for ILISP.
-
- All of the `.el' files in the ilisp directory and the `fi'
- subdirectory should be byte-compiled by typing `C-u M-x
- byte-recompile-directory'. Before compiling, make sure that
- load-path has the location of the files on it. If you plan to use
- epoch, you must make sure that the epoch EMACS code is loaded before
- compiling `epoch-pop'. If you do not plan to use epoch, you should
- rename the `epoch-pop.el' file to `epoch-pop' so that it will not
- get compiled. The first time a dialect is started, the interface
- files will complain about not being compiled, just hit `i' to ignore
- the
- message. Once a lisp dialect is started up, you should execute the
- command `ilisp-compile-inits' which will compile the `*.lisp' files
- and write them to the same directory as the ilisp files.
-
- The binary files should have a unique extension for each different
- combination of architecture and LISP dialect. You will need to
- change `ilisp-init-binary-extension' and `ilisp-init-binary-command'
- to get additional extensions. The binary for each different
- architecture should be different. If you want to build the
- interface files into a LISP world, you will also need to set
- `ilisp-load-inits' to `nil' in the same place that you change
- `ilisp-program' to load the LISP world.
-
- There is an `ilisp-site-hook' for initializing site specific stuff
- like program locations when ILISP is first loaded. You may want to
- define appropriate autoloads in your system Emacs start up file.
-
- Example site init:
-
- ;;; CMU site
- (setq ilisp-site-hook
- '(lambda ()
- (setq ilisp-motd "CMU ILISP V%s")
- (setq expand-symlinks-rfs-exists t)
- (setq allegro-program "/usr/misc/.allegro/bin/cl")
- (setq lucid-program "/usr/misc/.lucid/bin/lisp")))
-
- File: ilisp.info, Node: Autoloading, Prev: Files of ILISP, Up: Installation
-
- How to define autoload entries
- ==============================
-
- These are sample forms for your `.emacs' file. They can be found
- in the file `ilisp.emacs' in the `ilisp-directory'.
-
- ;;;
- ;;; This file shows examples of some of the things you might want to
- ;;; do to install or customize ILISP. You may not want to include all
- ;;; of them in your .emacs. For example, the default key binding
- ;;; prefix for ILISP is C-z and this file changes the default prefix to
- ;;; C-c. For more information on things that can be changed, see the
- ;;; file ilisp.el.
- ;;;
-
- ;;; If ilisp lives in some non-standard directory, you must tell emacs
- ;;; where to get it. This may or may not be necessary.
- (setq load-path (cons (expand-file-name "~jones/emacs/ilisp/") load-path))
-
- ;;; If you always want partial minibuffer completion
- (require 'completer)
-
- ;;; If want always want TMC completion
- (load "completion")
- (initialize-completions)
-
- ;;; If you want to redefine popper keys
- (setq popper-load-hook
- '(lambda ()
- (define-key global-map "\C-c1" 'popper-bury-output)
- (define-key global-map "\C-cv" 'popper-scroll-output)
- (define-key global-map "\C-cg" 'popper-grow-output)))
-
- ;;; If you always want popper windows
- (require 'popper)
-
- ;;; Autoload based on your LISP. You only really need the one you use.
- ;;; If called with a prefix, you will be prompted for a buffer and program.
- (autoload 'run-ilisp "ilisp" "Select a new inferior LISP." t)
- (autoload 'clisp "ilisp" "Inferior generic Common LISP." t)
- (autoload 'allegro "ilisp" "Inferior Allegro Common LISP." t)
- (autoload 'lucid "ilisp" "Inferior Lucid Common LISP." t)
- (autoload 'cmulisp "ilisp" "Inferior CMU Common LISP." t)
- (autoload 'kcl "ilisp" "Inferior Kyoto Common LISP." t)
- (autoload 'akcl "ilisp" "Inferior Austin Kyoto Common LISP." t)
- (autoload 'ibcl "ilisp" "Ibuki Common LISP." t)
- (autoload 'scheme "ilisp" "Inferior generic Scheme." t)
- (autoload 'oaklisp "ilisp" "Inferior Oaklisp Scheme." t)
-
- ;;; Define where LISP programs are found. (This may already be done
- ;;; at your site.)
- (setq allegro-program "/usr/misc/.allegro/bin/cl")
- (setq lucid-program "/usr/misc/.lucid/bin/lisp")
- (setq cmulisp-program "/usr/misc/.cmucl/bin/lisp")
-
- ;;; This makes reading a lisp file load in ilisp.
- (set-default 'auto-mode-alist
- (append '(("\\.lisp$" . lisp-mode)) auto-mode-alist))
- (setq lisp-mode-hook '(lambda () (require 'ilisp)))
-
- ;;; Sample load hook
- (setq ilisp-load-hook
- '(lambda ()
- ;; Change default key prefix to C-c
- (setq ilisp-prefix "\C-c")
- ;; Sample initialization hook. Set the inferior LISP directory to
- ;; the directory of the buffer that spawned it on the first prompt.
- (add-hook 'ilisp-init-hook
- (function (lambda ()
- (default-directory-lisp ilisp-last-buffer))))))
-
- ;;; Setup to always show output in the Inferior LISP buffer.
- ;(setq lisp-no-popper t
- ; comint-always-scroll t)
-
- File: ilisp.info, Node: Starting up, Next: Buffers of ILISP, Prev: Installation, Up: Top
-
- How to run a Lisp process using ILISP
- *************************************
-
- To start a Lisp use `M-x run-ilisp', or a specific dialect like
- `M-x allegro'. If called with a prefix you will be prompted for a
- buffer name and a program to run. The default buffer name is the
- name of the dialect. The default program for a dialect will be the
- value of DIALECT-program or the value of ilisp-program inherited
- from a less specific dialect. If there are multiple LISP's, use the
- dialect name or `M-x select-ilisp' (`C-z S') to select the current
- ILISP buffer.
-
- These are the currently supported dialects. The dialects are
- listed so that the indentation correponds to the hierarchical
- relationship between dialects.
-
- clisp
- allegro
- lucid
- kcl
- akcl
- ibcl
- cmulisp
- scheme
- oaklisp
-
- If anyone figures out support for other dialects I would be happy
- to include it in future releases. *Note Dialects::.
-
- Entry into ILISP mode runs the hooks on `comint-mode-hook' and
- `ilisp-mode-hook' and then DIALECT-hooks specific to LISP dialects
- in the nesting order above.
-
- File: ilisp.info, Node: Buffers of ILISP, Next: ILISP Commands, Prev: Starting up, Up: Top
-
- Buffers used by ILISP, and their commands
- *****************************************
-
- `*DIALECT*'
- The Lisp listener buffer. Forms can be entered in this buffer
- in, and they will be sent to lisp when you hit return if the
- form is complete. This buffer is in ilisp-mode, which is built
- on top of comint-mode, and all comint commands such as history
- mechanism and job control are available.
-
- `LISP-MODE-BUFFERS'
- A buffer is assumed to contain Lisp source code if its major
- mode is in the list `lisp-source-modes'. If it's loaded into a
- buffer that is in one of these major modes, it's considered a
- lisp source file by `find-file-lisp', `load-file-lisp' and
- `compile-file-lisp'. Used by these commands to determine
- defaults.
-
- ``*Completions*''
- Used for listing completions of symbols or files by the
- completion commands. *Note Completion::.
-
- `*Aborted Commands*'
- *Note Interrupts::.
-
- `*Errors*'
- `*Output*'
- `*Error Output*'
- used to pop-up results and errors from the inferior LISP.
-
- `*ilisp-send*'
- Buffer containing the last form sent to the inferior LISP.
-
- `*Edit-Definitions*'
- `*All-Callers*'
- *Note Source code commands::.
-
- `*Last-Changes*'
- `*Changed-Definitions*'
- *Note Batch commands::.
-
- * Menu:
-
- * Popper buffers:: temporary buffers used for display.
- * Switching buffers:: Switching buffers
-
- File: ilisp.info, Node: Popper buffers, Next: Switching buffers, Prev: Buffers of ILISP, Up: Buffers of ILISP
-
- Popper buffers
- ==============
-
- ILISP uses a dynamically sized pop-up window that can be buried
- and scrolled from any window for displaying output. By default the
- smallest window will have just one line. If you like bigger
- windows, set `window-min-height' to the number of lines desired plus
- one.
-
- The variable `popper-pop-buffers' has a list of temporary buffer
- names that will be displayed in the pop-up window. By default only
- `*Typeout-window*' and `*Completions*' will be displayed in the
- pop-up window (remember to include the leading space in a buffer
- name
- if it has it). If you want all temporary windows to use the pop-up
- window, set `popper-pop-buffers' to `t'.
-
- The variable `popper-buffers-to-skip' has a list of the buffer
- names `C-x o' (`popper-other-window') skips or `t' to skip all
- popper buffers. If `popper-other-window' is called with a `C-u'
- prefix,
- the popper window will be selected.
-
- `C-z 1 (popper-bury-output)'
- buries the output window.
-
- `C-z v (popper-scroll-output)'
- scrolls the output window if it is already showing, otherwise it
- pops it up. If it is called with a negative prefix, it will
- scroll backwards.
-
- `C-z G (popper-grow-output)'
- will grow the output window if showing by the prefix number of
- lines. Otherwise, it will pop the window up.
-
- If you are running `epoch', the popper window will be in a
- separate X window that is not automatically grown or shrunk. The
- variable `popper-screen-properties' can be used to set window
- properties for that window.
-
- An alternative to popper windows is to always have the inferior
- LISP buffer visible and have all output go there. Setting
- `lisp-no-popper' to `t' will cause all output to go to the inferior
- LISP buffer. Setting `comint-always-scroll' to `t' will cause
- process
- output to always be visible. If a command gets an error, you will
- be left in the break loop.
-
- File: ilisp.info, Node: Switching buffers, Prev: Popper buffers, Up: Buffers of ILISP
-
- Switching buffers
- =================
-
- Commands to make switching between buffers easier.
-
- `C-z b (switch-to-lisp)'
- will pop to the current ILISP buffer or if already in an ILISP
- buffer, it will return to the buffer that last switched to an
- ILISP buffer. With a prefix, it will also go to the end of the
- buffer. If you do not want it to pop, set `pop-up-windows' to
- nil.
-
- `M-C-l (previous-buffer-lisp)'
- will switch to the last visited buffer in the current window or
- the Nth previous buffer with a prefix.
-
- File: ilisp.info, Node: ILISP Commands, Next: Customization, Prev: Buffers of ILISP, Up: Top
-
- ILISP Commands
- **************
-
- Most of these key bindings work in both Lisp Mode and ILISP mode.
- There are a few additional and-go bindings found in Lisp Mode.
-
- * Menu:
-
- * Eval and compile functions::
- * Documentation functions::
- * Macroexpansion::
- * Tracing functions::
- * Package Commands::
- * Source code commands:: Working on several files
- * Batch commands:: Grouping changes for eval/compile
- * Files and directories::
- * Keyboard modes:: Interactive and raw keyboard modes
- * Interrupts:: Interrupts, aborts, and errors
- * Command history::
- * Completion::
- * Miscellany:: Indentation, parenthesis balancing,
- and comment commands.
-
- File: ilisp.info, Node: Eval and compile functions, Next: Documentation functions, Prev: ILISP Commands, Up: ILISP Commands
-
- Eval and compile functions
- ==========================
-
- In LISP, the major unit of interest is a form, which is anything
- between two matching parentheses. Some of the commands here also
- refer to "defun," which is a list that starts at the left margin in
- a LISP buffer, or after a prompt in the ILISP buffer. These
- commands refer to the "defun" that contains the point.
-
- "A call" refers to a reference to a function call for a function
- or macro, or a reference to a variable. Commands which "insert a
- call" in the ILISP buffer will bring up the last command which
- matches it or else will insert a template for a call.
-
- When an eval is done of a single form matching
- `ilisp-defvar-regexp' the corresponding symbol will be unbound and
- the value assigned again.
-
- When you send a form to LISP, the status light will reflect the
- progress of the command. In a lisp mode buffer the light will
- reflect the status of the currently selected inferior LISP unless
- `lisp-show-status' is nil. If you want to find out what command is
- currently running, use the command `C-z s' (status-lisp). If you
- call it with a prefix, the pending commands will be displayed as well.
-
- Note that in this table as elsewhere, the key C-z (ilisp-prefix)
- is used as a prefix character for ILISP commands, though this may be
- changed. For a full list of key-bindings, use `M-x describe-mode'
- or `M-x describe-bindings' while in an ILISP-mode buffer.
-
- The eval/compile commands verify that their expressions are
- balanced and then send the form to the inferior LISP. If called
- with a positive prefix, the result of the operation will be inserted
- into the buffer after the form that was just sent.
-
- For commands which operate on a region, the result of the compile
- or eval is the last form in the region.
-
- The `and-go' versions will perform the operation and then
- immediately switch to the ILISP buffer where you will see the
- results of executing your form. If `eval-defun-and-go-lisp' or
- `compile-defun-and-go-lisp' is called with a prefix, a call for the
- form will be inserted as well.
-
- `C-z'
- The prefix-key for most ILISP commands. This can be changed by
- setting the variable `ilisp-prefix'.
-
- `RET (return-ilisp)'
- In ILISP-mode buffer, sends the current form to lisp if
- complete, otherwise creates a new line and indents. If you
- edit old input, the input will be copied to the end of the
- buffer first and then sent.
-
- `C-] (close-and-send-lisp)'
- Closes the current sexp, indents it, and then sends it to the
- current inferior LISP.
-
- `LFD (newline-and-indent-lisp)'
- Insert a new line and then indent to the appropriate level. If
- called at the end of the inferior LISP buffer and an sexp, the
- sexp will be sent to the inferior LISP without a trailing
- newline.
-
- `C-z e (eval-defun-lisp)'
- `M-C-x (eval-defun-lisp)'
- `C-z C-e (eval-defun-and-go-lisp)'
- Send the defun to lisp.
-
- `C-z r (eval-region-lisp)'
- `C-z C-r (eval-region-and-go-lisp)'
- `C-z n (eval-next-sexp-lisp)'
- `C-z C-n (eval-next-sexp-and-go-lisp)'
- `C-z c (compile-defun-lisp)'
- `C-z C-c (compile-defun-lisp-and-go)'
- When `compile-defun-lisp' is called in an inferior LISP buffer
- with no current form, the last form typed to the top-level will
- be compiled.
-
- `C-z w (compile-region-lisp)'
- `C-z C-w (compile-region-and-go-lisp)'
- If any of the forms contain an interactive command, then the
- command will never return. To get out of this state, you need to
- use `abort-commands-lisp' (`C-z g'). If `lisp-wait-p' is t, then
- EMACS will display the result of the command in the minibuffer or a
- pop-up window. If `lisp-wait-p' is `nil', (the default) the send is
- done asynchronously and the results will be brought up only if there
- is more than one line or there is an error. In this case, you will
- be given the option of ignoring the error, keeping it in another
- buffer or keeping it and aborting all pending sends. If there is
- not a command already running in the inferior LISP, you can preserve
- the break loop. If called with a negative prefix, the sense of
- `lisp-wait-p' will be inverted for the next command.
-
- File: ilisp.info, Node: Documentation functions, Next: Macroexpansion, Prev: Eval and compile functions, Up: ILISP Commands
-
- Documentation functions
- =======================
-
- `describe-lisp', `inspect-lisp', `arglist-lisp', and
- `documentation-lisp' switch whether they prompt for a response or
- use a default when called with a negative prefix. If they are
- prompting, there is completion through the inferior LISP by using
- `TAB' or `M-TAB'. When entering an expression in the minibuffer,
- all of the normal ilisp commands like `arglist-lisp' also work.
-
- Commands that work on a function will use the nearest previous
- function symbol. This is either a symbol after a `#'' or the symbol
- at the start of the current list.
-
- `C-z a (arglist-lisp)'
- Return the arglist of the current function. With a numeric
- prefix, the leading paren will be removed and the arglist will
- be inserted into the buffer.
-
- `C-z d (documentation-lisp)'
- Infers whether function or variable documentation is desired.
- With a negative prefix, you can specify the type of
- documentation as well. With a positive prefix the
- documentation of the current function call is inserted into the
- buffer.
-
- `C-z i (describe-lisp)'
- Describe the previous sexp (it is evaluated). If there is no
- previous sexp and if called from inside an ILISP buffer, the
- previous result will be described.
-
- `C-z i (describe-lisp)'
- Describe the previous sexp (it is evaluated). If there is no
- previous sexp and if called from inside an ILISP buffer, the
- previous result will be described.
-
- `C-z I (inspect-lisp)'
- Switch to the current inferor LISP and inspect the previous sexp
- (it is evaluated). If there is no previous sexp and if called
- from inside an ILISP buffer, the previous result will be
- inspected.
-
- `C-z D (fi:clman)'
- `C-z A (fi:clman-apropos)'
- If the Franz online Common LISP manual is available, get
- information on a specific symbol. `fi:clman-apropos' will get
-
- information apropos a specific string. Some of the
- documentation is specific to the allegro dialect, but most of
- it is for standard Common LISP.
-
- File: ilisp.info, Node: Macroexpansion, Next: Tracing functions, Prev: Documentation functions, Up: ILISP Commands
-
- Macroexpansion
- ==============
-
- `C-z M (macroexpand-lisp)'
- `C-z m (macroexpand-1-lisp)'
- These commands apply to the next sexp. If called with a
- positive numeric prefix, the result of the macroexpansion will
- be inserted into the buffer. With a negative prefix, prompts
- for expression to expand.
-
- File: ilisp.info, Node: Tracing functions, Next: Package Commands, Prev: Macroexpansion, Up: ILISP Commands
-
- Tracing functions
- =================
-
- `C-z t (trace-defun-lisp)'
- traces the current defun. When called with a numeric prefix
- the function will be untraced. When called with negative
- prefix, prompts for function to be traced.
-
- File: ilisp.info, Node: Package Commands, Next: Source code commands, Prev: Tracing functions, Up: ILISP Commands
-
- Package Commands
- ================
-
- The first time an inferior LISP mode command is executed in a Lisp
- Mode buffer, the package will be determined by using the regular
- expression `ilisp-package-regexp' to find a package sexp and then
- passing that sexp to the inferior LISP through
- `ilisp-package-command'. For the `clisp' dialect, this will find
- the first `(in-package PACKAGE)' form in the file. A buffer's
- package will be displayed in the mode line. If a buffer has no
- specification, forms will be evaluated in the current inferior LISP
- package.
-
- `C-z p (package-lisp)'
- Show the current package of the inferior LISP.
-
- `C-z P (set-package-lisp)'
- Set the inferior LISP package to the current buffer's package or
- with a prefix to a manually entered package.
-
- `M-x set-buffer-package-lisp'
- Set the buffer's package from the buffer. If it is called with
- a prefix, the package can be set manually.
-
- File: ilisp.info, Node: Source code commands, Next: Batch commands, Prev: Package Commands, Up: ILISP Commands
-
- Source Code Commands
- ====================
-
- The following commands all deal with finding things in source code.
- The first time that one of these commands is used, there may be some
- delay while the source module is loaded. When searching files, the
- first applicable rule is used:
-
- * try the inferior LISP,
-
- * try a tags file if defined,
-
- * try all buffers in one of `lisp-source-modes' or all files
- defined using `lisp-directory'.
-
- `M-x lisp-directory' defines a set of files to be searched by the
- source code commands. It prompts for a directory and sets the
- source
- files to be those in the directory that match entries in
- `auto-mode-alist' for modes in `lisp-source-modes'. With a positive
- prefix, the files are appended. With a negative prefix, all current
- buffers that are in one of `lisp-source-modes' will be searched.
- This is also what happens by default. Using this command stops
- using a tags file.
-
- `edit-definitions-lisp', `who-calls-lisp', and `edit-callers-lisp'
- will switch whether they prompt for a response or use a default when
- called with a negative prefix. If they are prompting, there is
- completion through the inferior LISP by using `TAB' or `M-TAB'.
- When entering an expression in the minibuffer, all of the normal
- ILISP commands like `arglist-lisp' also work.
-
- `edit-definitions-lisp' (`M-.') will find a particular type of
- definition for a symbol. It tries to use the rules described above.
- The files to be searched are listed in the buffer
- `*Edit-Definitions*'. If `lisp-edit-files' is nil, no search will
- be done if not found through the inferior LISP. The variable
- `ilisp-locator' contains a function that when given the name and
- type should be able to find the appropriate definition in the file.
- There is often a flag to cause your LISP to record source files that
- you
- will need to set in the initialization file for your LISP. The
- variable is `*record-source-files*' in both allegro and lucid. Once
- a definition has been found, `next-definition-lisp' (`M-,') will
- find the next definition (or the previous definition with a prefix).
-
- `edit-callers-lisp' (`C-z ^') will generate a list of all of the
- callers of a function in the current inferior LISP and edit the
- first caller using `edit-definitions-lisp'. Each successive call to
- `next-caller-lisp' (`M-`') will edit the next caller (or the
- previous caller with a prefix). The list is stored in the buffer
- `*All-Callers*'. You can also look at the callers by doing `M-x
- who-calls-lisp'.
-
- `search-lisp' (`M-?') will search the current tags files,
- `lisp-directory' files or buffers in one of `lisp-source-modes' for
- a
- string or a regular expression when called with a prefix.
- `next-definition-lisp' (`M-,') will find the next definition (or the
- previous definition with a prefix).
-
- `replace-lisp' (`M-"') will replace a string (or a regexp with a
- prefix) in the current tags files, `lisp-directory' files or buffers
- in one of `lisp-source-modes'.
-
- Here is a summary of the above commands (behavior when given
- prefix argument is given in parentheses):
-
- `M-x lisp-directory'
- Define a set of files to be used by the source code commands.
-
- `M-. (edit-definitions-lisp)'
- Find definition of a symbol.
-
- `M-, (next-definition-lisp)'
- Find next (previous) definition.
-
- `C-z ^ (edit-callers-lisp)'
- Find all callers of a function, and edit the first.
-
- `M-` (next-caller-lisp)'
- Edit next (previous) caller of function set by
- `edit-callers-lisp'.
-
- `M-x who-calls-lisp'
- List all the callers of a function.
-
- `M-? (search-lisp)'
- Search for string (regular expression) in current tags,
- `lisp-directory' files or buffers. Use `next-definition-lisp'
-
- to find next occurence.
-
- `M-" (replace-lisp)'
- Replace a string (regular expression) in files.
-
- File: ilisp.info, Node: Batch commands, Next: Files and directories, Prev: Source code commands, Up: ILISP Commands
-
- Batch commands
- ==============
-
- The following commands all deal with making a number of changes
- all at once. The first time one of these commands is used, there
- may be some delay as the module is loaded. The eval/compile
- versions of these commands are always executed asynchronously.
-
- `mark-change-lisp' (`C-z SPC') marks the current defun as being
- changed. A prefix causes it to be unmarked. `clear-changes-lisp'
- (`C-z * 0') will clear all of the changes. `list-changes-lisp'
- (`C-z * l') will show the forms currently marked.
-
- `eval-changes-lisp' (`C-z * e'), or `compile-changes-lisp' (`C-z *
- c') will evaluate or compile these changes as appropriate. If
- called with a positive prefix, the changes will be kept. If there
- is an error, the process will stop and show the error and all
- remaining changes will remain in the list. All of the results will
- be kept in the buffer `*Last-Changes*'.
-
- Summary:
-
- `C-z SPC (mark-change-lisp)'
- Mark (unmark) current defun as changed.
-
- `C-z * e (eval-changes-lisp)'
- `C-z * c (compile-changes-lisp)'
- Call with a positive prefix to keep changes.
-
- `C-z * 0 (clear-changes-lisp)'
- `C-z * l (list-changes-lisp)'
- File: ilisp.info, Node: Files and directories, Next: Keyboard modes, Prev: Batch commands, Up: ILISP Commands
-
- Files and directories
- =====================
-
- File commands in lisp-source-mode buffers keep track of the last
- used directory and file. If the point is on a string, that will be
- the default if the file exists. If the buffer is one of
- `lisp-source-modes', the buffer file will be the default.
- Otherwise, the last file used in a lisp-source-mode will be used.
-
- `C-x C-f (find-file-lisp)'
- will find a file. If it is in a string, that will be used as
- the default if it matches an existing file. Symbolic links are
- expanded so that different references to the same file will end
- up with the same buffer.
-
- `C-z l (load-file-lisp)'
- will load a file into the inferior LISP. You will be given the
- opportunity to save the buffer if it has changed and to compile
- the file if the compiled version is older than the current
- version.
-
- `C-z k (compile-file-lisp)'
- will compile a file in the current inferior LISP.
-
- `C-z ! (default-directory-lisp)'
- sets the default inferior LISP directory to the directory of the
- current buffer. If called in an inferior LISP buffer, it sets
- the Emacs `default-directory' to the LISP default directory.
-
- File: ilisp.info, Node: Keyboard modes, Next: Interrupts, Prev: Files and directories, Up: ILISP Commands
-
- Switching between interactive and raw keyboard modes
- ====================================================
-
- There are two keyboard modes for interacting with the inferior
- LISP, \"interactive\" and \"raw\". Normally you are in interactive
- mode where keys are interpreted as commands to EMACS and nothing is
- sent
- to the inferior LISP unless a specific command does so. In raw
- mode, all characters are passed directly to the inferior LISP
- without any interpretation as EMACS commands. Keys will not be
- echoed unless ilisp-raw-echo is T.
-
- Raw mode can be turned on interactively by the command
- `raw-keys-ilisp' (`C-z #') and will continue until you type C-g.
- Raw mode can also be turned on/off by inferior LISP functions if the
- command `io-bridge-ilisp' (M-x io-bridge-ilisp) has been executed in
- the inferior LISP either interactively or on a hook. To turn on raw
- mode,
- a function should print ^[1^] and to turn it off should print ^[0^].
- An example in Common LISP would be:
-
- `(progn (format t "") (print (read-char)) (format t ""))'
-
- File: ilisp.info, Node: Interrupts, Next: Command history, Prev: Keyboard modes, Up: ILISP Commands
-
- Interrupts, aborts, and errors
- ==============================
-
- If you want to abort the last command you can use `C-g'.
-
- If you want to abort all commands, you should use the command
- `abort-commands-lisp' (`C-z g'). Commands that are aborted will be
- put in the buffer `*Aborted Commands*' so that you can see what was
- aborted. If you want to abort the currently running top-level
- command, use `interrupt-subjob-ilisp' (`C-c C-c'). As a last
- resort, `M-x panic-lisp' will reset the ILISP state without
- affecting the inferior LISP so that you can see what is happening.
-
- `delete-char-or-pop-ilisp' (`C-d') will delete prefix characters
- unless you are at the end of an ILISP buffer in which case it will
- pop one level in the break loop.
-
- `reset-ilisp', (`C-z z') will reset the current inferior LISP's
- top-level so that it will no longer be in a break loop.
-
- Summary:
-
- `C-c C-c (interrupt-subjob-ilisp)'
- Send a keyboard interrupt signal to lisp.
-
- `C-z g (abort-commands-lisp)'
- Abort all running or unsent commands.
-
- `M-x panic-lisp (panic-lisp)'
- Reset the ILISP process state.
-
- `C-z z (reset-ilisp)'
- Reset lisp to top-level.
-
- `C-d (delete-char-or-pop-ilisp)'
- If at end of buffer, pop a level in break loop.
-
- If `lisp-wait-p' is `nil' (the default), all sends are done
- asynchronously and the results will be brought up only if there is
- more
- than one line or there is an error. In case, you will be given the
- option of ignoring the error, keeping it in another buffer or
- keeping it and aborting all pending sends. If there is not a
- command already running in the inferior LISP, you can preserve the
- break loop. If called with a negative prefix, the sense of
- `lisp-wait-p' will be inverted for the next command.
-
- File: ilisp.info, Node: Command history, Next: Completion, Prev: Interrupts, Up: ILISP Commands
-
- Command history
- ===============
-
- ILISP mode is built on top of `comint-mode', the general
- command-interpreter-in-a-buffer mode. As such, it inherits many
- commands
- and
- features from this, including a command history mechanism.
-
- Each ILISP buffer has a command history associated with it.
- Commands that do not match `ilisp-filter-regexp' and that are longer
- than `ilisp-filter-length' and that do not match the immediately
- prior command will be added to this history.
-
- `M-n (comint-next-input)'
- `M-p (comint-previous-input)'
- Cycle through the input history.
-
- `M-s (comint-previous-similar-input)'
- Cycle through input that has the string typed so far as a prefix.
-
- `M-N (comint-psearch-input)'
- Search forwards for prompt.
-
- `M-P (comint-msearch-input)'
- Search backwards for prompt.
-
- `C-c R (comint-msearch-input-matching)'
- Search backwards for occurrence of prompt followed by string
- which is prompted for (*not* a regular expression).
-
- See `comint-mode' documentation for more information on `comint'
- commands.
-
- File: ilisp.info, Node: Completion, Next: Miscellany, Prev: Command history, Up: ILISP Commands
-
- Completion
- ==========
-
- Commands to reduce number of keystrokes.
-
- `M-TAB (complete-lisp)'
- will try to complete the previous symbol in the current inferior
- LISP. Partial completion is supported unless
- `ilisp-prefix-match' is set to `t'. (If you set it to `t',
- inferior LISP completions will be faster.) With partial
- completion, `p--n' would complete to `position-if-not' in
- Common LISP. If the symbol follows a left paren or a `#'',
- only symbols with function cells will be considered. If the
- symbol starts with a `*' or you call with a positive prefix all
-
- possible completions will be considered. Only external symbols
- are considered if there is a package qualification with only
- one colon. The first time you try to complete a string the
- longest common substring will be inserted and the cursor will
- be left on the point of ambiguity. If you try to complete
- again, you can see the possible completions. If you are in a
- string, then filename completion will be done instead. And if
- you try to complete a filename twice, you will see a list of
- possible completions. Filename components are completed
- individually, so `/u/mi/' could expand to `/usr/misc/'. If you
-
-
- complete with a negative prefix, the most recent completion
- (symbol or filename) will be undone.
-
- `M-RET (complete)'
- will complete the current symbol to the most recently seen
- symbol in Emacs that matches what you have typed so far.
- Executing it repeatedly will cycle through potential matches.
- This is from the TMC completion package and there may be some
- delay as it is initially loaded.
-
- File: ilisp.info, Node: Miscellany, Prev: Completion, Up: ILISP Commands
-
- Miscellany
- ==========
-
- Indentation, parenthesis balancing, and comment commands.
-
- ``TAB' (indent-line-ilisp)'
- indents for LISP. With prefix, shifts rest of expression
- rigidly with the current line.
-
- `M-C-q (indent-sexp-ilisp)'
- will indent each line in the next sexp.
-
- `M-q (reindent-lisp)'
- will reindent the current paragraph if in a comment or string.
- Otherwise it will close the containing defun and reindent it.
-
- `C-z ; (comment-region-lisp)'
- will put prefix copies of `comment-start' before and
- `comment-end''s after the lines in region. To uncomment a
- region, use a minus prefix.
-
- `C-z ) (find-unbalanced-lisp)'
- will find unbalanced parens in the current buffer. When called
- with a prefix it will look in the current region.
-
- `] (close-all-lisp)'
- will close all outstanding parens back to the containing form,
- or a previous left bracket which will be converted to a left
- parens. If there are too many parens, they will be deleted
- unless there is text between the last paren and the end of the
- defun. If called with a prefix, all open left brackets will be
- closed.
-
- File: ilisp.info, Node: Customization, Next: Dialects, Prev: ILISP Commands, Up: Top
-
- ILISP Customization
- *******************
-
- Starting a dialect runs the hooks on `comint-mode-hook' and
- `ilisp-mode-hook' and then DIALECT`-hooks' specific to dialects in
- the
- nesting order below.
-
- clisp
- allegro
- lucid
- kcl
- akcl
- ibcl
- cmulisp
- scheme
- oaklisp
-
- On the very first prompt in the inferior LISP, the hooks on
- `ilisp-init-hook' are run. For more information on creating a new
- dialect
- or variables to set in hooks, see `ilisp.el'.
-
- ILISP Mode Hooks:
-
- `ilisp-site-hook'
- Executed when file is loaded
-
- `ilisp-load-hook'
- Executed when file is loaded
-
- `ilisp-mode-hook'
- Executed when an ilisp buffer is created
-
- `ilisp-init-hook'
- Executed after inferior LISP is initialized and the first prompt
- is seen.
-
- `DIALECT-hook'
- Executed when dialect is set
-
- Variables you might want to set in a hook or dialect:
-
- `ilisp-prefix'
- Keys to prefix ilisp key bindings
-
- `ilisp-program'
- Program to start for inferior LISP
-
- `ilisp-motd'
- String printed on startup with version
-
- `lisp-wait-p'
- Set to T for synchronous sends
-
- `lisp-no-popper'
- Set to T to have all output in inferior LISP
-
- `lisp-show-status'
- Set to nil to stop showing process status
-
- `ilisp-prefix-match'
- Set to T if you do not want partial completion
-
- `ilisp-filter-regexp'
- Input history filter
-
- `ilisp-filter-length'
- Input history minimum length
-
- `ilisp-other-prompt'
- Prompt for non- top-level read-eval print loops
-
- File: ilisp.info, Node: Dialects, Next: Concept index, Prev: Customization, Up: Top
-
- Dialects
- ********
-
- A "dialect" of lisp is a specific implementation. For the parts
- of Common Lisp which are well specified, they are usually the same.
- For the parts that are not (debugger, top-level loop, etc.), there
- is usually the same functionality but different commands.
-
- ILISP provides the means to specify these differences so that the
- ILISP commands will use the specific command peculiar to an
- implementation, but still offer the same behavior with the same
- interface.
-
- * Menu:
-
- * Defining new dialects::
- * Writing new commands::
-
- File: ilisp.info, Node: Defining new dialects, Next: Writing new commands, Prev: Dialects, Up: Dialects
-
- Defining new dialects
- =====================
-
- To define a new dialect use the macro `defdialect'. For examples,
- look at the dialect definitions in `ilisp.el'. There are hooks and
- variables for almost anything that you are likely to need to change.
- The relationship between dialects is hierarchical with the root
- values being defined in `setup-ilisp'. For a new dialect, you only
- need to change the variables that are different than in the parent
- dialect.
-
- File: ilisp.info, Node: Writing new commands, Prev: Defining new dialects, Up: Dialects
-
- Writing new commands
- ====================
-
- Basic tools for creating new commands:
-
- `deflocal'
- Define a new buffer local variable.
-
- `ilisp-dialect'
- List of dialect types. For specific dialect clauses.
-
- `lisp-symbol'
- Create a symbol.
-
- `lisp-symbol-name'
- Return a symbol's name
-
- `lisp-symbol-delimiter'
- Return a symbol's qualification
-
- `lisp-symbol-package'
- Return a symbol's package
-
- `lisp-string-to-symbol'
- Convert string to symbol
-
- `lisp-symbol-to-string'
- Convert symbol to string
-
- `lisp-buffer-symbol'
- Convert symbol to string qualified for buffer
-
- `lisp-previous-symbol'
- Return previous symbol
-
- `lisp-previous-sexp'
- Return previous sexp
-
- `lisp-def-name'
- Return name of current definition
-
- `lisp-function-name'
- Return previous function symbol
-
- `ilisp-read'
- Read an sexp with completion, arglist, etc
-
- `ilisp-read-symbol'
- Read a symbol or list with completion
-
- `ilisp-completing-read'
- Read from choices or list with completion
-
- Notes:
-
- * Special commands like arglist should use `ilisp-send' to send a
- message to the inferior LISP.
-
- * Eval/compile commands should use `eval-region-lisp' or
- `compile-region-lisp'.
-
- File: ilisp.info, Node: Concept index, Next: Key index, Prev: Dialects, Up: Top
-
- Concept Index
- *************
-
- * Menu:
-
- * *Aborted Commands* buffer: Buffers of ILISP.
- * *Aborted Commands* buffer: Interrupts.
- * *All-Callers* buffer: Source code commands.
- * *All-Callers* buffer: Buffers of ILISP.
- * *Changed-Definitions* buffer: Buffers of ILISP.
- * *Completions* buffer: Buffers of ILISP.
- * *Edit-Definitions* buffer: Source code commands.
- * *Edit-Definitions* buffer: Buffers of ILISP.
- * *Error Output* buffer: Buffers of ILISP.
- * *Errors* buffer: Buffers of ILISP.
- * *Last-Changes* buffer: Buffers of ILISP.
- * *Last-Changes* buffer: Batch commands.
- * *Output* buffer: Buffers of ILISP.
- * *ilisp-send* buffer: Buffers of ILISP.
- * comint-mode: Command history.
- * .el files: Files of ILISP.
- * .emacs forms: Autoloading.
- * bridge.el: Files of ILISP.
- * comint-ipc.el: Files of ILISP.
- * comint.el: Files of ILISP.
- * completer.el: Files of ILISP.
- * completion.el: Files of ILISP.
- * epoch-pop.el: Files of ILISP.
- * ilisp-bat.el: Files of ILISP.
- * ilisp-ext.el: Files of ILISP.
- * ilisp-src.el: Files of ILISP.
- * ilisp.el: Files of ILISP.
- * ilisp.emacs: Files of ILISP.
- * ilisp.texi: Files of ILISP.
- * popper.el: Files of ILISP.
- * symlink.el: Files of ILISP.
- * and-go functions: Eval and compile functions.
- * Aborting commands: Interrupts.
- * Anonymous FTP: FTP directions.
- * Apropos help: Documentation functions.
- * Arglist lisp: Documentation functions.
- * Break loop: Interrupts.
- * Buffer package: Package Commands.
- * Byte-compiling ILISP files: Files of ILISP.
- * Call: Eval and compile functions.
- * Change commands: Batch commands.
- * Clearing changes: Batch commands.
- * Close all parens: Miscellany.
- * Close brackets: Miscellany.
- * Command history: Command history.
- * Comment region: Miscellany.
- * Common Lisp manual: Documentation functions.
- * Compile last form: Eval and compile functions.
- * Compile region: Eval and compile functions.
- * Compile/eval commands: Eval and compile functions.
- * Compiling ILISP files: Files of ILISP.
- * Compiling changes: Batch commands.
- * Compiling files: Files and directories.
- * Completion: Completion.
- * Current directory: Files and directories.
- * Currently running command: Eval and compile functions.
- * Customization: Customization.
- * Default directory: Files and directories.
- * Defining new dialects: Defining new dialects.
- * Defun: Eval and compile functions.
- * Describing bindings: Eval and compile functions.
- * Describing lisp objects: Documentation functions.
- * Dialect startup: Customization.
- * Dialects: Dialects.
- * Dialects supported: Starting up.
- * Directories and files: Files and directories.
- * Displaying commands: Eval and compile functions.
- * Documentation Functions: Documentation functions.
- * Errors: Interrupts.
- * Eval region: Eval and compile functions.
- * Eval'ing changes: Batch commands.
- * Eval/compile commands: Eval and compile functions.
- * Expanding macro forms: Macroexpansion.
- * FTP site: FTP directions.
- * File changes: Batch commands.
- * Filename completion: Completion.
- * Files and directories: Files and directories.
- * Files of ILISP: Files of ILISP.
- * Find callers: Source code commands.
- * Find file: Files and directories.
- * Find unbalanced parens: Miscellany.
- * Finding source: Source code commands.
- * First prompt: Customization.
- * Franz manual: Documentation functions.
- * Getting ILISP: FTP directions.
- * Group changes: Batch commands.
- * Hooks: Customization.
- * How to get: FTP directions.
- * ILISP Mode Hooks: Customization.
- * ILISP buffers: Buffers of ILISP.
- * In-package form: Package Commands.
- * Indentation: Miscellany.
- * Input search: Command history.
- * Inserting calls: Eval and compile functions.
- * Inserting results: Eval and compile functions.
- * Installation: Installation.
- * Interactive keyboard mode: Keyboard modes.
- * Internal ILISP functions: Writing new commands.
- * Interrupting commands: Interrupts.
- * Last command: Command history.
- * Lisp find file: Files and directories.
- * List callers: Source code commands.
- * Listing bindings: Eval and compile functions.
- * Listing changes: Batch commands.
- * Loading files: Files and directories.
- * Macroexpansion: Macroexpansion.
- * Marking changes: Batch commands.
- * Minibuffer completion: Documentation functions.
- * Modeline status: Eval and compile functions.
- * Negative prefix: Documentation functions.
- * Next definition: Source code commands.
- * Next input: Command history.
- * Package commands: Package Commands.
- * Parenthesis balancing: Miscellany.
- * Partial completion: Completion.
- * Pop in break loop: Interrupts.
- * Popper buffers: Popper buffers.
- * Previous commands: Command history.
- * Previous definition: Source code commands.
- * Previous lisp buffer: Switching buffers.
- * Raw keyboard mode: Keyboard modes.
- * Region commands: Eval and compile functions.
- * Reindent lisp: Miscellany.
- * Replace lisp: Source code commands.
- * Resetting lisp: Interrupts.
- * Rigid indentation: Miscellany.
- * Running lisp: Starting up.
- * Search input: Command history.
- * Sending input to lisp: Eval and compile functions.
- * Set buffer package: Package Commands.
- * Set default directory: Files and directories.
- * Show current package: Package Commands.
- * Similar input: Command history.
- * Source Code Commands: Source code commands.
- * Source modes: Source code commands.
- * Starting up lisp: Starting up.
- * Status light: Eval and compile functions.
- * Supported dialects: Starting up.
- * Switching buffers: Switching buffers.
- * Symbolic link expansion: Files and directories.
- * TMC completion: Completion.
- * Top-level, return to: Interrupts.
- * Tracing defuns: Tracing functions.
- * Turning popper off: Popper buffers.
- * Uncomment region: Miscellany.
- * Untracing defuns: Tracing functions.
- * autoload definitions: Autoloading.
- * buffers of ILISP: Buffers of ILISP.
- * bury output window: Popper buffers.
- * defining autoloads: Autoloading.
- * epoch popper: Popper buffers.
- * features: Introduction.
- * grow output window: Popper buffers.
- * scrolling output: Popper buffers.
-
- File: ilisp.info, Node: Key index, Next: Command index, Prev: Concept index, Up: Top
-
- Key Index
- *********
-
- * Menu:
-
- * TAB: Miscellany.
- * C-z !: Files and directories.
- * C-z #: Keyboard modes.
- * C-z ): Miscellany.
- * C-z * 0: Batch commands.
- * C-z * c: Batch commands.
- * C-z * e: Batch commands.
- * C-z * l: Batch commands.
- * C-z ;: Miscellany.
- * C-z A: Documentation functions.
- * C-z C-c: Eval and compile functions.
- * C-z C-e: Eval and compile functions.
- * C-z C-n: Eval and compile functions.
- * C-z C-r: Eval and compile functions.
- * C-z C-w: Eval and compile functions.
- * C-z D: Documentation functions.
- * C-z I: Documentation functions.
- * C-z M: Macroexpansion.
- * C-z P: Package Commands.
- * C-z SPC: Batch commands.
- * C-z ^: Source code commands.
- * C-z a: Documentation functions.
- * C-z b: Switching buffers.
- * C-z c: Eval and compile functions.
- * C-z d: Documentation functions.
- * C-z e: Eval and compile functions.
- * C-z g: Eval and compile functions.
- * C-z g: Interrupts.
- * C-z i: Documentation functions.
- * C-z i: Documentation functions.
- * C-z k: Files and directories.
- * C-z l: Files and directories.
- * C-z m: Macroexpansion.
- * C-z n: Eval and compile functions.
- * C-z p: Package Commands.
- * C-z prefix: Eval and compile functions.
- * C-z r: Eval and compile functions.
- * C-z s: Eval and compile functions.
- * C-z t: Tracing functions.
- * C-z w: Eval and compile functions.
- * C-z z: Interrupts.
- * M-TAB: Documentation functions.
- * TAB: Documentation functions.
- * C-]: Eval and compile functions.
- * C-c R: Command history.
- * C-d: Interrupts.
- * C-g: Interrupts.
- * C-x C-f: Files and directories.
- * C-x o: Popper buffers.
- * C-z 1: Popper buffers.
- * C-z G: Popper buffers.
- * C-z v: Popper buffers.
- * LFD: Eval and compile functions.
- * M-": Source code commands.
- * M-,: Source code commands.
- * M-.: Source code commands.
- * M-?: Source code commands.
- * M-C-l: Switching buffers.
- * M-C-q: Miscellany.
- * M-C-x: Eval and compile functions.
- * M-N: Command history.
- * M-P: Command history.
- * M-RET: Completion.
- * M-TAB: Completion.
- * M-`: Source code commands.
- * M-n: Command history.
- * M-p: Command history.
- * M-q: Miscellany.
- * M-s: Command history.
- * M-x io-bridge-ilisp: Keyboard modes.
- * M-x lisp-directory: Source code commands.
- * M-x set-buffer-package-lisp: Package Commands.
- * M-x who-calls-lisp: Source code commands.
- * RET: Eval and compile functions.
- * ]: Miscellany.
-
- File: ilisp.info, Node: Command index, Next: Variable index, Prev: Key index, Up: Top
-
- Command Index
- *************
-
- Commands available via `M-x' prefix.
-
- * Menu:
-
- * abort-commands-lisp: Interrupts.
- * abort-commands-lisp: Eval and compile functions.
- * akcl: Starting up.
- * allegro: Starting up.
- * arglist-lisp: Documentation functions.
- * clear-changes-lisp: Batch commands.
- * clisp: Starting up.
- * close-all-lisp: Miscellany.
- * close-and-send-lisp: Eval and compile functions.
- * cmulisp: Starting up.
- * comint-msearch-input: Command history.
- * comint-msearch-input-matching: Command history.
- * comint-next-input: Command history.
- * comint-previous-input: Command history.
- * comint-previous-similar-input: Command history.
- * comint-psearch-input: Command history.
- * comment-region-lisp: Miscellany.
- * compile-changes-lisp: Batch commands.
- * compile-defun-and-go-lisp: Eval and compile functions.
- * compile-defun-lisp: Eval and compile functions.
- * compile-defun-lisp-and-go: Eval and compile functions.
- * compile-file-lisp: Files and directories.
- * compile-region-and-go-lisp: Eval and compile functions.
- * compile-region-lisp: Eval and compile functions.
- * complete: Completion.
- * complete-lisp: Completion.
- * default-directory-lisp: Files and directories.
- * defdialect: Defining new dialects.
- * delete-char-or-pop-ilisp: Interrupts.
- * describe-lisp: Documentation functions.
- * documentation-lisp: Documentation functions.
- * edit-callers-lisp: Source code commands.
- * edit-callers-lisp: Source code commands.
- * edit-definitions-lisp: Source code commands.
- * eval-changes-lisp: Batch commands.
- * eval-defun-and-go-lisp: Eval and compile functions.
- * eval-defun-and-go-lisp: Eval and compile functions.
- * eval-defun-lisp: Eval and compile functions.
- * eval-next-sexp-and-go-lisp: Eval and compile functions.
- * eval-next-sexp-lisp: Eval and compile functions.
- * eval-region-and-go-lisp: Eval and compile functions.
- * eval-region-lisp: Eval and compile functions.
- * fi:clman: Documentation functions.
- * fi:clman-apropos: Documentation functions.
- * find-file-lisp: Files and directories.
- * find-unbalanced-lisp: Miscellany.
- * ibcl: Starting up.
- * indent-line-ilisp: Miscellany.
- * indent-sexp-ilisp: Miscellany.
- * inspect-lisp: Documentation functions.
- * interrupt-subjob-ilisp: Interrupts.
- * io-bridge-ilisp: Keyboard modes.
- * kcl: Starting up.
- * lisp-directory: Source code commands.
- * list-changes-lisp: Batch commands.
- * load-file-lisp: Files and directories.
- * lucid: Starting up.
- * macroexpand-1-lisp: Macroexpansion.
- * macroexpand-lisp: Macroexpansion.
- * mark-change-lisp: Batch commands.
- * newline-and-indent-lisp: Eval and compile functions.
- * next-caller-lisp: Source code commands.
- * next-definition-lisp: Source code commands.
- * next-definition-lisp: Source code commands.
- * oaklisp: Starting up.
- * package-lisp: Package Commands.
- * panic-lisp: Interrupts.
- * popper-bury-output: Popper buffers.
- * popper-grow-output: Popper buffers.
- * popper-other-window: Popper buffers.
- * popper-scroll-output: Popper buffers.
- * previous-buffer-lisp: Switching buffers.
- * raw-keys-ilisp: Keyboard modes.
- * reindent-lisp: Miscellany.
- * replace-lisp: Source code commands.
- * reset-ilisp: Interrupts.
- * return-ilisp: Eval and compile functions.
- * run-ilisp: Starting up.
- * scheme: Starting up.
- * search-lisp: Source code commands.
- * set-buffer-package-lisp: Package Commands.
- * set-package-lisp: Package Commands.
- * setup-ilisp: Defining new dialects.
- * status-lisp: Eval and compile functions.
- * switch-to-lisp: Switching buffers.
- * trace-defun-lisp: Tracing functions.
- * who-calls-lisp: Source code commands.
-
- File: ilisp.info, Node: Variable index, Next: Function index, Prev: Command index, Up: Top
-
- Variable Index
- **************
-
- Variables and hooks of ILISP.
-
- * Menu:
-
- * *record-source-files*: Source code commands.
- * DIALECT-hook: Customization.
- * auto-mode-alist: Source code commands.
- * comint-always-scroll: Popper buffers.
- * comint-mode-hook: Customization.
- * default-directory: Files and directories.
- * ilisp-defvar-regexp: Eval and compile functions.
- * ilisp-filter-length: Command history.
- * ilisp-filter-length: Customization.
- * ilisp-filter-regexp: Customization.
- * ilisp-filter-regexp: Command history.
- * ilisp-init-binary-command: Files of ILISP.
- * ilisp-init-binary-extension: Files of ILISP.
- * ilisp-init-hook: Customization.
- * ilisp-init-hook: Customization.
- * ilisp-load-hook: Customization.
- * ilisp-load-inits: Files of ILISP.
- * ilisp-locator: Source code commands.
- * ilisp-mode-hook: Customization.
- * ilisp-mode-hook: Customization.
- * ilisp-motd: Customization.
- * ilisp-other-prompt: Customization.
- * ilisp-package-regexp: Package Commands.
- * ilisp-prefix: Customization.
- * ilisp-prefix: Eval and compile functions.
- * ilisp-prefix-match: Completion.
- * ilisp-prefix-match: Customization.
- * ilisp-program: Customization.
- * ilisp-program: Files of ILISP.
- * ilisp-raw-echo: Keyboard modes.
- * ilisp-site-hook: Files of ILISP.
- * ilisp-site-hook: Customization.
- * lisp-edit-files: Source code commands.
- * lisp-no-popper: Popper buffers.
- * lisp-no-popper: Customization.
- * lisp-show-status: Eval and compile functions.
- * lisp-show-status: Customization.
- * lisp-source-modes: Source code commands.
- * lisp-wait-p: Customization.
- * lisp-wait-p: Interrupts.
- * lisp-wait-p: Eval and compile functions.
- * pop-up-windows: Switching buffers.
- * popper-buffers-to-skip: Popper buffers.
- * popper-pop-buffers: Popper buffers.
- * popper-pop-buffers: Popper buffers.
- * popper-screen-properties: Popper buffers.
-
- File: ilisp.info, Node: Function index, Prev: Variable index, Up: Top
-
- Function Index
- **************
-
- Internal functions of ILISP which can be used to write new commands.
-
- * Menu:
-
- * compile-region-lisp: Writing new commands.
- * deflocal: Writing new commands.
- * eval-region-lisp: Writing new commands.
- * ilisp-compile-inits: Files of ILISP.
- * ilisp-completing-read: Writing new commands.
- * ilisp-dialect: Writing new commands.
- * ilisp-package-command: Package Commands.
- * ilisp-read: Writing new commands.
- * ilisp-read-symbol: Writing new commands.
- * ilisp-send: Writing new commands.
- * lisp-buffer-symbol: Writing new commands.
- * lisp-def-name: Writing new commands.
- * lisp-function-name: Writing new commands.
- * lisp-previous-sexp: Writing new commands.
- * lisp-previous-symbol: Writing new commands.
- * lisp-string-to-symbol: Writing new commands.
- * lisp-symbol: Writing new commands.
- * lisp-symbol-delimiter: Writing new commands.
- * lisp-symbol-name: Writing new commands.
- * lisp-symbol-package: Writing new commands.
- * lisp-symbol-to-string: Writing new commands.
-
-
- Tag Table:
- Node: Top883
- Node: Distribution1854
- Node: FTP directions2882
- Node: Acknowledgements3523
- Node: Introduction4467
- Node: Installation6151
- Node: Files of ILISP6663
- Node: Autoloading9527
- Node: Starting up12856
- Node: Buffers of ILISP14087
- Node: Popper buffers15573
- Node: Switching buffers17597
- Node: ILISP Commands18238
- Node: Eval and compile functions18997
- Node: Documentation functions23300
- Node: Macroexpansion25509
- Node: Tracing functions25951
- Node: Package Commands26311
- Node: Source code commands27362
- Node: Batch commands31310
- Node: Files and directories32612
- Node: Keyboard modes33928
- Node: Interrupts35092
- Node: Command history36965
- Node: Completion38133
- Node: Miscellany39948
- Node: Customization41198
- Node: Dialects42817
- Node: Defining new dialects43458
- Node: Writing new commands44030
- Node: Concept index45338
- Node: Key index54453
- Node: Command index59110
- Node: Variable index64451
- Node: Function index67263
- End Tag Table
-