Go to file
moculus bd73a8dbfb --HG--
branch : pmacs2
2007-08-03 16:56:46 +00:00
code_examples some java fixes, etc 2007-08-03 13:43:57 +00:00
mode some C mode improvements, and some tabbing fixes 2007-08-03 16:33:25 +00:00
BUGS some java fixes, etc 2007-08-03 13:43:57 +00:00
IDEAS undo/redo fix, some other features, open file improvements 2007-07-19 16:38:17 +00:00
MODES --HG-- 2007-07-29 04:20:47 +00:00
README --HG-- 2007-07-28 05:10:13 +00:00
aes.py try this again 2007-03-06 15:05:38 +00:00
application.py --HG-- 2007-08-02 21:43:04 +00:00
buffer2.py --HG-- 2007-07-24 04:29:26 +00:00
bufferlist.py sort of for real 2007-06-14 12:41:55 +00:00
cache.py try this again 2007-03-06 15:05:38 +00:00
color.py --HG-- 2007-07-18 11:22:12 +00:00
completer.py try this again 2007-03-06 15:05:38 +00:00
ctag_python.py some updates/bugfixes/etc 2007-06-27 22:53:02 +00:00
ctags.py some updates/bugfixes/etc 2007-06-27 22:53:02 +00:00
default.py try this again 2007-03-06 15:05:38 +00:00
dirutil.py --HG-- 2007-07-23 14:50:07 +00:00
highlight2.py lex3 ftw!!! BIG efficiency speed-up 2007-07-15 13:44:20 +00:00
ispell.py try this again 2007-03-06 15:05:38 +00:00
keyinput.py regex searching is complete 2007-07-09 22:31:59 +00:00
lex3.py fix bug affecting almost empty files 2007-07-24 21:22:35 +00:00
method.py --HG-- 2007-07-30 15:06:35 +00:00
minibuffer.py i am awesome 2007-07-19 18:37:39 +00:00
miniparse.py search is better, other stuff is worse 2007-07-05 20:18:09 +00:00
mode2.py --HG-- 2007-07-23 22:27:19 +00:00
point2.py --HG-- 2007-07-16 22:43:11 +00:00
regex.py major awesomeness for lex3 2007-07-15 19:07:36 +00:00
searchutil.py --HG-- 2007-07-21 22:58:17 +00:00
tab2.py --HG-- 2007-08-03 16:56:46 +00:00
util.py --HG-- 2007-07-14 14:21:22 +00:00
window2.py fixed annoying split window issue 2007-07-30 15:19:17 +00:00

README

Pmacs version 0.1

Released June 27, 2007 by Erik Osheim <erik@osheim.org>

Pmacs is an Emacs-like editor written entirely in Python. It is designed to have
maximally correct and powerful support for syntax highlighting, to support
various methods of automatically indenting lines, and to be extensible in
python.

Pmacs is available to you under the GPL version 2.

While the general interface of pmacs is related to emacs, there was explicitly
no attempt to support all emacs' functions, emacs' underlying data structures,
or even high-level. There is not currently a formalized "public API" for pmacs,
although some parts are "more public" than others. The code is somewhat
commented, although currently there is only one author. Buyer beware!

Requirements:
    1. python 2.3 or higher
    2. ncurses
    3. bash

Optional Dependencies:
    * aespipe [for aes-encrypted buffers]
    * ctags   [for ctags support]
    * cvs     [for cvs-based commands]
    * grep    [for grep-based commands]
    * ispell  [for spell-as-you-type]
    * perl    [for perl syntax-checking]
    * svn     [for svn-based commands]

Quick Start Guide:
    1. Download and unpack the pmacs tarball file. After this, there should be
        a directory called "pmacs2" somewhere in your filesystem. It doesn't
        matter where you put this. We'll call the full path to this directory
        PMACSDIR; in future steps substitute the actual path for this symbol.

    2. Create a symlink to PMACSDIR/application.py and put it in a directory
        listed in your $PATH (~/bin, /usr/local/bin, and /usr/bin are all good
        candidates). You can name this symlink whatever you want; I use "pmc".

    3. Try editing a file, by typing "pmc FILE" where FILE is the path to the
        file you want to edit.

    4. Edit the file!

        You can type Control-c and then Meta-h to get a list of all the
        available actions and which key(s) perform them. Type Control-x k to get
        out of the "help buffer". If you have used emacs, many (but not all) of
        these key bindings should seem familiar.

    5. Some basic key bindings:

        C-v (or PG_DN)    move down a page
        M-v (or PG_UP)    move up a page
        C-a (or HOME)     move to the beginning of the line
        C-e (or END)      move to the end of the line
        M-<               move to the beginning of the buffer
        M->               move to the end of the buffer
        M-g               goto line number

        C-s               interactive forward search
        C-r               interactive backward search
        M-%               interactive search-and-replace

        C-]               cancel

        C-/ (or C-x u)    undo last change
        M-/ (or C-x r)    redo last undone change

        C-x C-f           open file in a new buffer
        C-x k             close the current buffer

        C-c M-h           open a buffer listing all available commands/bindings
        M-h               get a help with a command by name
        M-?               get information about a key sequence

        C-x C-s           save your changes
        C-x C-c           quit

        NOTE: the notation used corresponds to the following:
            C-x     hold Control then press x.
            M-x     hold Meta then press x.
            C-c j   hold Control then press c, and then press j
            C-x C-s hold Control then press x, then hold Control then press s

    6. Other documentation:

        a. MODES: this file describes in more detail how modes function, and
            how to write your own.

        b. comments in the source code

Good luck!