Please consider reading the Texinfo version of this manual.

This is the *Zile* manual.  This manual is
under development and is far than complete.

   Zile is another Emacs-clone.  Zile is an extensible, customizable,
self-documenting real-time display editor.  Zile was written with
"Emacs-cloning" in mind: every Emacs user should feel at home with Zile.

Overview
********

   The *Zile* editor is written entirely in "C" with the help of the
*ncurses* library.  Zile can't be compiled with a library different
than ncurses.  It has been tested under *Linux* and *FreeBSD* only, but
it should be fairly simple to port it under other operating systems,
since it is written in *ANSI C*.

   Zile should really appear like Emacs, but a lot of ideas were also
taken from from other editors:
   - Emacs: General look-n-feel, function names, function behaviors,
     key bindings.

   - XEmacs: Some minor hints for look-n-feel.

   - Jed: Mini help window, mode line.

   - ce: Structure names, function names.

Features
********

   - Looks like *Emacs*.  Most Zile key sequences and function names
     are identical to Emacs ones.

   - Multi buffer editing w/multi level undo.  Zile can open an
     infinite number of files and can record an infinite sequence of
     undo operations.

   - Multi window.  Zile can display multiple windows on the screen.

   - 8-bit clean.  Zile can operate with binary files.

   - Killing, yanking and registers.  The typical killing, yanking and
     register features of Emacs are available under Zile.

   - Minibuffer completion.  Zile can complete the user written text.
     This is very useful for `M-x' commands and for selecting files.

   - Colors.  Zile makes use of the color capatibilities of the
     terminal if available.

   - Source highlighting ("C" only for now).  Zile can highlight the
     "C" source files for better reading.

Differences
***********

Differences from Emacs
======================

   - `M-h' replaces `C-h' (for resolving the backspace/delete problem).

   - `M-h d' replaces `C-h C-d'.

   - `HOME' is bound to `beginning-of-line', not `beginning-of-buffer'.

   - `END' is bound to `end-of-line', not `end-of-buffer'.

   - `PGUP' and `PGDN' will move the cursor to the beginning or end of
     buffer if the beginning or the end buffer page is already
     displayed.

Invoking Zile
*************

   The options are as follows:

`file'
     Edit file `file'.

`+number'
     Go to the line specified by `number' (do not insert a space
     between the `+' sign and the number).

`-h'
     Display the minihelp window at startup.  This may be useful for
     novice users.

`-q'
     Do not load the user's initialization file.

`-V'
     Print version information on standard output then exit.

Initialization file
*******************

   When Zile is started, it normally loads the `.zilerc' file in your
home directory.  We call this file your "initialization file" because
it specifies how to initialize Zile for you.  You can use the command
line switch `-q' to tell Zile whether to load the init file.

File syntax
===========

   The initialization file is composed by a sequence of variable
assignments.  Every variable assignment is terminated by a newline and
is composed by a variable name, an equality sign (`=') and a value.  If
the value contains non alpha-numerical characters (like spaces or
punctuation characters) it should be enclosed within the double quote
(`"') characters.

   The comments begin with a `#' character and terminate with the end
of the line.  The comments can be placed anywhere in the initialization
file (obviously not within an assignment).

   Some examples:

     # This is a comment.
     expand-tabs = no
     colors = yes
     tab-width = 8    # This is another comment.
     display-time-format = "%I:%M%p"

A sample file
=============

   This is the initialization file that comes with the Zile sources.

     # .zilerc sample configuration
     
     # The tabulation width [default: 8]
     tab-width = 8
     
     # Display time in status line [default: yes]
     display-time = yes
     # Display time format (see strftime(3) man page) [default: %I:%M%p]
     display-time-format = "%I:%M%p"
     
     # Enable display of End Of Buffer marker [default: yes]
     # If enabled, a marker will be displayed at the end of the buffer.
     show-eob-marker = yes
     
     # Enable backup files [default: yes]
     # If enabled, Zile will create a backup file before saving the
     # modified file (e.g.: on saving `foo.c' it will create `foo.c~').
     backup-files = yes
     
     # Enable revisions for backup files [default: no]
     # If enabled (you must also enable `backup-files' to use this), Zile
     # will create a new backup file preserving the old versions of the
     # original file (e.g.: on saving `foo.c' it will create `foo.c~1~', then
     # on next save `foo.c~2~', etc.).
     backup-files-with-revisions = no
     
     # Expand tabs [default: no]
     # If disabled, Zile will insert hard tabs (the character \t),
     # otherwise it will insert spaces.
     expand-tabs = no
     
     # Enable `*Messages*' buffer [default: yes]
     # If enabled, echo area informative messages are saved in an editor
     # buffer named `*Messages*'.  If you miss a message that appears briefly
     # on the screen, you can switch to the `*Messages*' buffer to see it again.
     messages-buffer = yes
     
     # Display colors [default: yes]
     # If your terminal supports colors, you should leave this enabled.
     colors = yes
     
     status-line-color = cyan        # [default: cyan]
     
     # Font lock fonts for C source files
     font-character = yellow         # [default: yellow]
     font-comment = green            # [default: green]
     font-directive = red            # [default: red]
     font-identifier = white         # [default: white]
     font-keyword = magenta          # [default: magenta]
     font-number = cyan              # [default: cyan]
     font-other = white              # [default: white]
     font-string = yellow            # [default: yellow]
     
     # Enable automatic font lock mode for *.[ch] files [default: yes]
     # Font lock can also be toggled using the `M-x font-lock-mode' command.
     # Font lock currently recognizes only the C language.
     auto-font-lock = yes
     
     # Enable automatic font lock refresh [default: yes]
     # If enabled, the file will be reparsed by font lock on every C-l press.
     # This may be disabled on slow machines.
     auto-font-lock-refresh = yes
     
     # Enable beep [default: yes]
     # If enabled, a sound will be emitted on any error.
     beep = yes

Getting help
************

   This table contains the commands that can be used during an editing
session to get help.

`M-h h'
     Show this manual.

`M-h t'
     Show a tutorial on using Zile.

`M-h F'
     Show the Frequently Asked Questions about Zile.

`M-h f'
     Get help about a function.

`M-h v'
     Get help about a variable.

`M-h l b'
     Show all the key bindings.

`M-h l f'
     Show all the functions names.

`M-h l r'
     Show the registers.

`M-h l s'
     Show memory statistics.

`M-h l v'
     Show the defined variables.

Key names
*********

   This table contains the names of the keys that are used in this
manual and under Zile.

<SPC>
     Space

<RET>
     Return

<LFD>
     Linefeed

<TAB>
     Tab

<BS>
     Backspace

<ESC>
     Escape

<DEL>
     Delete

<SFT>
     Shift

<CTL>
     Control

<META>
     Meta (also known as <EDIT> or <ALT> on some keyboards)

Key bindings
************

   This table contains the full list of commands associated with key
sequences.

`BS'
     backspace

`C-a, HOME'
     go to the beginning of line

`C-b, LEFT'
     move cursor to the previous char

`C-e, END'
     go to the end of line

`C-f, RIGHT'
     move cursor to the next char

`C-g'
     cancel current command

`C-k'
     kill line

`C-l'
     redraw display

`C-n, DOWN'
     move cursor to the next line

`C-p, UP'
     move cursor to the previous line

`C-q'
     read next input character and insert it

`C-@'
     set mark

`C-u'
     begin a numeric argument for the following command

`C-w'
     kill region

`C-x C-b'
     list buffers

`C-x C-c'
     save modified buffers and quit zile

`C-x C-f'
     find a file for editing

`C-x C-q'
     toggle read only mode

`C-x C-s'
     save the current buffer

`C-x C-v'
     kill the current buffer and find a file for editing

`C-x C-w'
     write buffer to a file

`C-x C-x'
     exchange point and mark

`C-x b'
     switch to a buffer

`C-x h'
     mark whole buffer

`C-x k'
     kill current buffer

`C-x r i'
     insert register

`C-x r s'
     copy region to register

`C-x s'
     save modified buffers

`C-x u'
     undo some previous changes

`C-y'
     yank killed text

`C-z, C-x C-z'
     stop Zile and return to superior process

`DEL'
     delete current char

`INSERT'
     toggle overwrite mode

`M-<'
     go to the beginning of buffer

`M->'
     go to the end of buffer

`M-h F'
     show the FAQ

`M-h d'
     show informations about getting the latest version

`M-h f'
     show the function description

`M-h h'
     show an help window

`M-h k'
     describe a key sequence

`M-h l b'
     list key bindings

`M-h l f'
     list functions

`M-h l r'
     list saved registers

`M-h l s'
     show memory usage statistics

`M-h l v'
     list defined variables

`M-h t'
     show a tutorial window

`M-h v'
     show the variable description

`M-x'
     execute extended command

`PGDN'
     scroll up one screen page

`PGUP'
     scroll down one screen page

`RET'
     insert a new line

`TAB'
     insert a tab character

Functions
*********

   This table contains the full list of available functions, that can be
called with the `M-x' key.

`backward-char'
     move cursor to the previous char

`beginning-of-buffer'
     go to the beginning of buffer

`beginning-of-line'
     go to the beginning of line

`column-number-mode'
     toggle column number mode

`copy-to-register'
     copy region to register

`delete-backward-char'
     backspace

`delete-char'
     delete current char

`describe-function'
     show the function description

`describe-key'
     describe a key sequence

`describe-variable'
     show the variable description

`end-of-buffer'
     go to the end of buffer

`end-of-line'
     go to the end of line

`exchange-point-and-mark'
     exchange point and mark

`execute-extended-command'
     execute extended command

`find-alternate-file'
     kill the current buffer and find a file for editing

`find-file'
     find a file for editing

`font-lock-mode'
     toggle font lock mode

`font-lock-refresh'
     refresh font lock mode

`forward-char'
     move cursor to the next char

`garbage-collect'
     recollect memory garbage

`help-faq'
     show the FAQ

`help'
     show an help window

`help-latest-version'
     show informations about getting the latest version

`help-tutorial'
     show a tutorial window

`insert-register'
     insert register

`keyboard-quit'
     cancel current command

`kill-buffer'
     kill current buffer

`kill-line'
     kill line

`kill-region'
     kill region

`line-number-mode'
     toggle line number mode

`list-bindings'
     list key bindings

`list-buffers'
     list buffers

`list-functions'
     list functions

`list-registers'
     list saved registers

`list-variables'
     list defined variables

`mark-whole-buffer'
     mark whole buffer

`newline'
     insert a new line

`next-line'
     move cursor to the next line

`overwrite-mode'
     toggle overwrite mode

`previous-line'
     move cursor to the previous line

`quoted-insert'
     read next input character and insert it

`redraw-display'
     redraw display

`save-buffer'
     save the current buffer

`save-buffers-kill-zile'
     save modified buffers and quit zile

`save-some-buffers'
     save modified buffers

`scroll-down'
     scroll down one screen page

`scroll-up'
     scroll up one screen page

`self-insert-command'
     insert a character

`set-mark-command'
     set mark

`set-variable'
     set variable value

`show-statistics'
     show memory usage statistics

`suspend-zile'
     stop Zile and return to superior process

`switch-to-buffer'
     switch to a buffer

`tab-to-tab-stop'
     insert a tab character

`toggle-messages-buffer'
     toggle messages buffer

`toggle-read-only'
     toggle read only mode

`undo'
     undo some previous changes

`universal-argument'
     begin a numeric argument for the following command

`write-file'
     write buffer to a file

`yank'
     yank killed text

`zile-version'
     show zile version

Bug reports
***********

   Any questions, comments, or bug reports, should be sent to the
author at the Internet email address *<ssigala@globalnet.it>*.  Please
take a look at the `KNOWNBUGS' file in the source package before
posting a bug report.

