Please note: This wiki is currently running in test mode after an attack on January 5 2013. All passwords were reset, so you will have to use the password recovery function to get a new password. To edit wiki pages, please log in first. See the wiki attack description page for more details. If you find problems, please report them to the pydotorg-www mailing list.

Emacs

Emacs (the major flavors being GnuEmacs and XEmacs) is a text editor which come with good support for writing Python code. Each has its strengths and weaknesses, but in general either provide very nice environments for the Python programmer.

Tools for Python coders

For stupid historical reasons, GnuEmacs and XEmacs come with different major mode for editing Python code, though both do a fine job of it. Please get involved if you want to help.

Some tools have been written for using Python from Emacs:

Support for C Python core developers

Both Emacs and XEmacs have support for developers hacking on the Python C code itself. If you're developing Python 2.x, just use the standard python style that comes with c-mode. If you're hacking on Python 3.x, you'll want to add the following code to your .emacs file (given by Georg Brandl):

(c-add-style
  "python-new"
  '((indent-tabs-mode . nil)
    (fill-column      . 78)
    (c-basic-offset   . 4)
    (c-offsets-alist  . ((substatement-open . 0)
                         (inextern-lang . 0)
                         (arglist-intro . +)
                         (knr-argdecl-intro . +)))
    (c-hanging-braces-alist . ((brace-list-open)
                               (brace-list-intro)
                               (brace-list-close)
                               (brace-entry-open)
                               (substatement-open after)
                               (block-close . c-snug-do-while)))
    (c-block-comment-prefix . "* "))
  )

;; This is a very crude hook that auto-selects the C style depending on
;; whether it finds a line starting with tab in the first 3000 characters
;; in the file
(defun c-select-style ()
   (save-excursion
     (if (re-search-forward "^\t" 3000 t)
         (c-set-style "python")
       (c-set-style "python-new"))))
(add-hook 'c-mode-hook 'c-select-style)

Note: We should try to get the style into upstream c-mode.

Other resources


CategoryEditors

EmacsEditor (last edited 2013-04-17 13:45:32 by caisah)