I used to be a heavy vim user for python, but now I use Wing IDE. I've
tried out a number of free IDEs - SPE, Eric3, Scite, Pydev and plain old
vim - and Wing is just way better. Its not free, but its worth it,
especially if you do a lot of python programming involving multiple
files - http://www.wingide.com/wingide/index
--
Siddharta Govindaraj
Anand Balachandran Pillai wrote:
All right. Since vimmers are on a roll, Emacs-ians cannot be left behind ;)
Here are the customizations for emacs.
First you need "python-mode" for editing Python code. Get it from
http://sourceforge.net/projects/python-mode/ and put the python-mode.el
file in some directory which is part of your Emacs "load-path" variable.
Now, in your .emacs file, add the following lines
;; These make sure that when you open a Python file
;; the python-mode is loaded automatically
(add-to-list 'auto-mode-alist '("\\.py$" . python-mode))
(add-to-list 'auto-mode-alist '("\\.pyw$" . python-mode))
;; A set of prog-modes which require tabs, example, Makefiles.
(setq tabify-modes '(makefile-gmake-mode))
;; Convert tabs to spaces and saves the buffer
(defun untabify-save-buffer()
(interactive)
(if (not (member major-mode tabify-modes))
(untabify (point-min) (point-max)))
(save-buffer))
Bind the function "untabify-save-buffer" to some convenient key.
I have bound it to F2. Then press the short-cut key everytime to
save an edited buffer to disk.
(global-set-key [f2] 'untabify-save-buffer)
That's it. Keep using tabs to format your Python source code
and at the end hit F2 to save the buffer and emacs takes care
of the rest.
As an added customization, you could make sure you remove
any additional Ctrl-Ms which are seen when you open a file edited
in DOS/Windows in Unix.
;; Remove all Ctrl-Ms from a region
(defun ^m-region (min max)
"Remove all ^M's from the region."
(interactive "r")
(save-excursion
(goto-char max)
(while (re-search-backward "\C-m$" min t)
(delete-char 1))))
;; Remove all Ctrl-Ms from a buffer
(defun ^m-buffer ()
"Remove all ^M's from the buffer."
(interactive)
(^m-region (point-min) (point-max)))
Then you could define an umbrella function which performs both
Ctrl-M removal and untabification in one, something like,
(defun ^m-untabify-save-buffer()
(interactive)
(^m-buffer)
(untabify-save-buffer))
And bind it to a global key.
(global-set-key [f2] '^m-untabify-save-buffer)
Ah, the beauties of Elisp...
Regards
--Anand
On Mon, May 5, 2008 at 4:27 PM, Kiran Jonnalagadda <[EMAIL PROTECTED]> wrote:
On 02-May-08, at 11:46 AM, Biju Chacko wrote:
If you are a vim user you can add:
set expandtabs
to your .vimrc to ensure that vim indents with only spaces.
I'd recommend being more elaborate:
set et " Expand tabs
set ai " Auto-indent
set sw=4 " Indent to 4 spaces
set ts=8 " Treat tabs as 8 columns
set si " Smart indent
set sta " Smart tab key handling
syn on " Make syntax visible
" Make tabs visible if you're running gvim
if has("gui_running")
set lcs=tab:»·,trail:·,extends:»,precedes:«
endif
_______________________________________________
BangPypers mailing list
BangPypers@python.org
http://mail.python.org/mailman/listinfo/bangpypers
_______________________________________________
BangPypers mailing list
BangPypers@python.org
http://mail.python.org/mailman/listinfo/bangpypers