(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 the code 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 code editing, it's also an extensible framework in Python that can support editing and 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's never going to read mail). It is powerful, but that power is hidden behind a familiar GUI. It's easy to get started because most commands are available using the menu and tool bars. More advanced use is possible through key bindings, 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:

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!)

image of two top-level windows

Spring Tabs

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

image of two top-level windows

Python Regular Expression Search and Replace

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

python regular expression replace

Spell Check On The Fly

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

wavy-lines under spelling mistakes

Edit Files in Binary Mode

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

binary view of a png file

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 Player Daemon 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


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


Additionally, if you speak languages other than English, the i18n work is hosted at launchpad using their collaborative translation feature. I could definitely use the help getting peppy localized in your language, as my only language skills include a tiny bit to contribute to the Esperanto localization (mi havas eta vortprovizon de esperanto) and knowing the word for 'beer' in numerous languages.

Mailing List

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


The application as a whole is licensed under the GPLv3 due to the inclusion of itools. The bulk of the code in peppy was written by me and is also available under either the GPLv2 or wxWidgets depending on the individual source file. Consult the header of each file 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 from one of the files that I've written outside of itools, you get to choose the license from one of the following dual license pairs: either GPLv2/GPLv3 or wxWidgets/GPLv3.

sale levitra levitra free sample pack levitra cialis online