2007-10-15 14:32:29 -04:00
|
|
|
Pmacs
|
2007-06-27 00:40:15 -04:00
|
|
|
|
2007-10-15 14:32:29 -04:00
|
|
|
by Erik Osheim <erik@osheim.org>
|
2007-06-27 00:40:15 -04:00
|
|
|
|
2008-02-29 09:39:32 -05:00
|
|
|
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
|
2007-07-17 07:40:04 -04:00
|
|
|
various methods of automatically indenting lines, and to be extensible in
|
|
|
|
python.
|
|
|
|
|
2007-08-11 11:59:44 -04:00
|
|
|
Pmacs is available to you under the GNU GPL version 2.
|
2007-07-17 07:40:04 -04:00
|
|
|
|
2007-08-14 09:43:23 -04:00
|
|
|
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 all high-level functionality of Emacs. 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!
|
2007-06-27 00:40:15 -04:00
|
|
|
|
2007-06-27 01:11:48 -04:00
|
|
|
Requirements:
|
2009-05-17 23:52:14 -04:00
|
|
|
1. python 2.4 or higher (this may become 2.5 or higher)
|
2010-03-01 01:21:22 -05:00
|
|
|
2. chardet module (for detecting character encodings)
|
|
|
|
3. ncurses
|
|
|
|
4. bash
|
2007-06-27 01:11:48 -04:00
|
|
|
|
2007-06-27 18:53:02 -04:00
|
|
|
Optional Dependencies:
|
2009-04-22 14:30:25 -04:00
|
|
|
* aespipe [for aes-encrypted buffers]
|
|
|
|
* ispell [for spell-checking]
|
|
|
|
* cvs [for cvs-based commands]
|
|
|
|
* svn [for svn-based commands]
|
|
|
|
* mercurial [for hg-based commands]
|
2008-04-16 00:50:25 -04:00
|
|
|
|
|
|
|
* perl [for perl syntax-checking]
|
|
|
|
* gcc [for c compilation/syntax-checking]
|
|
|
|
* make [for c compilation]
|
|
|
|
* latex [for LaTeX compilation]
|
|
|
|
* pdflatex [for LaTeX PDF rendering]
|
|
|
|
* disinst [for x86 instruction parsing]
|
2007-07-17 07:40:04 -04:00
|
|
|
|
|
|
|
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.
|
2007-07-18 10:59:22 -04:00
|
|
|
|
2007-07-17 07:40:04 -04:00
|
|
|
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".
|
2007-07-18 10:59:22 -04:00
|
|
|
|
2007-07-17 07:40:04 -04:00
|
|
|
3. Try editing a file, by typing "pmc FILE" where FILE is the path to the
|
|
|
|
file you want to edit.
|
2007-07-18 10:59:22 -04:00
|
|
|
|
2007-07-17 07:40:04 -04:00
|
|
|
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
|
2007-07-18 10:59:22 -04:00
|
|
|
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
|
|
|
|
|
2007-07-21 11:28:41 -04:00
|
|
|
C-x C-f open file in a new buffer
|
2007-07-18 21:35:36 -04:00
|
|
|
C-x k close the current buffer
|
|
|
|
|
2008-03-17 03:46:20 -04:00
|
|
|
C-c M-h open a buffer listing all available key bindings
|
|
|
|
C-c M-? open a buffer listing all available functions
|
|
|
|
M-? get a help with a command by name
|
|
|
|
M-h get information about a key sequence
|
2007-07-21 11:28:41 -04:00
|
|
|
|
2007-07-18 10:59:22 -04:00
|
|
|
C-x C-s save your changes
|
|
|
|
C-x C-c quit
|
2007-07-17 07:40:04 -04:00
|
|
|
|
2007-07-18 10:59:22 -04:00
|
|
|
NOTE: the notation used corresponds to the following:
|
2008-03-16 02:16:41 -04:00
|
|
|
C-x hold Control and press x.
|
|
|
|
M-x hold Meta and press x.
|
|
|
|
C-c j hold Control and press c, then press j
|
|
|
|
C-x C-s hold Control and press x, then hold Control and press s
|
2007-07-17 07:40:04 -04:00
|
|
|
|
2007-07-28 01:10:13 -04:00
|
|
|
6. Other documentation:
|
|
|
|
|
|
|
|
a. MODES: this file describes in more detail how modes function, and
|
2007-08-11 11:59:44 -04:00
|
|
|
how to write your own.
|
2007-07-28 01:10:13 -04:00
|
|
|
|
2008-04-16 01:07:41 -04:00
|
|
|
b. other help commands
|
|
|
|
|
|
|
|
c. comments in the source code
|
2007-07-28 01:10:13 -04:00
|
|
|
|
2008-03-17 03:46:20 -04:00
|
|
|
Good luck!
|