Tabs vs. Spaces, VIM vs. EMACS (Was Re: Larry Wall's comment on python...)

Mark McEahern marklists at
Thu Sep 26 10:10:56 EDT 2002

[Chris Gonnerman]
> Surely emacs can do as well as VIM...  (and I expect a rabid
> emacs user to fill me in posthaste).

Yup.  Here are the relevant portions of my .emacs file:

;; Turn tabs off by default.
(setq-default intend-tabs-mode nil)

;; Set tab width to 4 by default.
(setq-default tab-width 4)

;; Use Python mode for .py files.
(setq auto-mode-alist
      (cons '("\\.py$" . python-mode)

(setq interpreter-mode-alist
      (cons '("python" . python-mode)

;; Load Python mode.
(autoload 'python-mode "python-mode" "Python editing mode." t)

;; Set up initialization parameters for python mode:
(setq python-mode-hook
      '(lambda () (progn
                    (set-variable 'py-indent-offset 4)
                    (set-variable 'py-smart-indentation nil)
                    (set-variable 'indent-tabs-mode nil) )))

;; Define untabify-buffer.
(defun untabify-buffer()
  "Untabify the current buffer.  Return nil.

  Must return nil, if added to write-file-hooks."
    (goto-char (point-min))
    (while (re-search-forward "[ \t]+$" nil t)
      (delete-region (match-beginning 0) (match-end 0)))
    (goto-char (point-min))
    (if (search-forward "\t" nil t)
        (untabify (1- (point)) (point-max))))

;; Untabify buffers on write file.
(defun do-on-write-file()

;; Add the hook.
(add-hook 'write-file-hooks 'do-on-write-file)

// m

More information about the Python-list mailing list