Sage in Emacs

There is support for using SAGE interactively from within emacs, and editing Python code in emacs:

editing Python code without a special mode.

(NOTE: Recent versions of Emacs have their own major mode for Python called href="http://cvs.savannah.gnu.org/viewvc/emacs/lisp/progmodes/python.el?root=emacs&view=log python.el. So those with GNU Emacs 22 or 23 shouldn't need python-mode.el. The modifications to your .emacs file suggested below will be the same, except you can remove or comment out (load "python-mode").)

(add-to-list 'load-path (expand-file-name "/home/was/.emacs-scripts/"))

(load "pyrex-mode")
(load "python-mode")
(setq ipython-command "~/bin/sage")  ;; depends on where your sage is.
(load "sage") 
(require 'ipython)

(fset 'py-shell-fullscreen
   [?\M-x ?p ?y ?- ?s ?h ?e ?l ?l return ?\C-x ?1])
(define-key esc-map "i" 'py-shell-fullscreen)

(setq auto-mode-alist (cons '("\\.pyx\\'" . pyrex-mode) auto-mode-alist)) 
(setq auto-mode-alist (cons '("\\.pxd\\'" . pyrex-mode) auto-mode-alist)) 
(setq auto-mode-alist (cons '("\\.pxi\\'" . python-mode) auto-mode-alist)) 
(setq auto-mode-alist (cons '("\\.sage\\'" . python-mode) auto-mode-alist))

Hints

If when running SAGE, the screen gets cluttered up, e.g., by the output of help, just type Ctrl-[_], i.e., Ctrl-Shift-[- key] to undo, which will remove the last chunk of output completely.