天天看点

(ap)Proximated (x)Emacs Powered by Python

(ap)Proximated (x)Emacs Powered by Python.

-- an XEmacs-like editor in Python. Eventually.

Latest version: 0.16.0 "Big Smile". Download here

Development Moved to GitHub

Not that I'm doing much development any more, but for what it's worth thecode is now hosted at github.The old Trac site and corresponding subversion repository have been removed.

Why Another Editor?

Peppy is not just another editor. While it does emphasize source codeediting, it's also an extensible framework in Python that can support editingand viewing many different types of files, not just text files.

It's not a minimalist editor, nor is it quite the kitchen sink of Emacs (it'snever going to read mail). It is powerful, but that power is hidden behinda familiar GUI. It's easy to get started because most commands are availableusing the menu and tool bars. More advanced use is possible through keybindings, but it's not necessary to memorize keystrokes to start using peppy.

Here are some features you won't find in your typical Python based editor:

(ap)Proximated (x)Emacs Powered by Python
Multiple Top-Level Windows

Multiple views of the same file are kept in sync (edit in one view and changes are reflected in realtime in the others, even if the others are different major modes!)

(ap)Proximated (x)Emacs Powered by Python

(ap)Proximated (x)Emacs Powered by Python
Spring Tabs

Why should IDE-like features take up all that real-estate? Wouldn't it beconvenient to be looking at more code on the screen? With peppy, the filebrowser and code browser are resting behind spring-loaded popups that appearwhen you need them and don't take up valuable screen space when you don't:

(ap)Proximated (x)Emacs Powered by Python

(ap)Proximated (x)Emacs Powered by Python
Python Regular Expression Search and Replace

Including extended replace functionality to alter the case of matchedstrings. Convenient keyboard control -- you've just typed something in to besearched for, why do other editors make you move back to the mouse to performthe search and replace?

(ap)Proximated (x)Emacs Powered by Python

(ap)Proximated (x)Emacs Powered by Python
Spell Check On The Fly

When using the optional module pyenchant, spelling mistakes arehighlighted as you type.

(ap)Proximated (x)Emacs Powered by Python

(ap)Proximated (x)Emacs Powered by Python
Edit Files in Binary Mode

Your edits in binary mode are reflected in other views of the same file.

(ap)Proximated (x)Emacs Powered by Python

(ap)Proximated (x)Emacs Powered by Python
Other Features

  • Same interface on Unix, Windows, and OSX thanks to wxPython
  • Multiple language support: Python mode is very well supported, baseline implementations of C/C++/Java, Makefile, and Shell major modes
  • Syntax highlighting using the Scintilla styling code from Editra
  • Autoindenting of source code, including a regex-based autoindenter based on KDE's Kate
  • Built-in class browser to display list of functions and methods in code
  • Open new files in an already-running peppy process
  • File Cabinet to store pointers to interesting files (analogous to Bookmarks in a web browser)
  • Customizable key bindings
  • GUI adapts itself to the editing mode
  • Virtual file system abstraction layer based on itools.vfs, allowing transparent file loads from the local file system, http URLs, and from within tar archives without uncompressing the archive beforehand.
  • Minibuffer ala XEmacs, including tab completion
  • Extensible through plugins
  • Internationalized, and can even switch languages on the fly
  • Other interesting major modes:
    • Control a Music PlayerDaemon server.
    • View hyperspectral images (built-in ENVI image loader, optional GDAL support).
    • Dired mode for viewing directories
    • Document List mode, analogous to Emacs's Buffer List mode
    • Eliza and other psychotherapists
    • Mandelbrot set explorer using Ned Batchelder's Aptus engine
    • Hangman word guessing game

Help Wanted

Mac OSX

I'm especially interested in help with the Mac OSX testing. I regularlytest on Windows and Linux, but only have limited access to a Mac. I'dappreciate any help in debugging on the Mac, as I believe there's still aproblem in the keyboard handling on OSX.

Localization

Additionally, if you speak languages other than English, the i18n work ishosted atlaunchpadusing their collaborative translation feature. I could definitely use the helpgetting peppy localized in your language, as my only language skills include atiny bit to contribute to theEsperantolocalization (mi havas eta vortprovizon de esperanto) and knowing the word for'beer' in numerous languages.

Mailing List

There's now a mailinglist for peppy development. All people interested in the developmentof peppy are welcome to join. You can also sign up by sending an email topeppy-dev-subscribe [at] googlegroups [dot] com from the account youwish to use (useful for signing up with a non-gmail account).

License

The application as a whole is licensed under the GPLv3 due to the inclusionof itools. The bulk of the codein peppy was written by me and is also available under either the GPLv2 orwxWidgets depending on the individual source file. Consult the header of eachfile for the specific license.

So, if you're going to borrow the whole application, it's under the GPLv3.However, if you're just going to borrow an individual source file fromone of the files that I've written outside of itools, you get to choose thelicense from one of the following dual license pairs: either GPLv2/GPLv3 orwxWidgets/GPLv3.