On Mon, Sep 22, 2008 at 10:48 PM, Rolf wrote: > My personal beef with python..... > > I work in a unix environment. For better or worse, VIM is my preferred > editor. I can safely say that I have a fairly 'standard' work > environment for 'unix' type people. > vim works great with python! Perhaps you should incorporate some of the ideas below into your .vimrc should you find yourself working with python again. The tab key is set to insert 4 spaces and the existing tabs are displayed as bright red. To indent(dedent) a block, do a visual select and press greaterthan(lessthan) " vimrc file for following the coding standards specified in PEP 7 & 8. " " To use this file, source it in your own personal .vimrc file (``source " ``) or, if you don't have a .vimrc file, you can just symlink to it " (``ln -s ~/.vimrc``). All options are protected by autocmds " (read below for an explanation of the command) so blind sourcing of this file " is safe and will not affect your settings for non-Python or non-C files. " " " All setting are protected by 'au' ('autocmd') statements. Only files ending " in .py or .pyw will trigger the Python settings while files ending in *.c or " *.h will trigger the C settings. This makes the file "safe" in terms of only " adjusting settings for Python and C files. " " Only basic settings needed to enforce the style guidelines are set. " Some suggested options are listed but commented out at the end of this file. " Number of spaces to use for an indent. " This will affect Ctrl-T and 'autoindent'. " Python: 4 spaces " C: tab (8 spaces) au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 au BufRead,BufNewFile *.c,*.h set shiftwidth=4 " Number of spaces that a pre-existing tab is equal to. " For the amount of space used for a new tab use shiftwidth. " Python: 8 " C: 8 au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=4 " Replace tabs with the equivalent number of spaces. " Also have an autocmd for Makefiles since they require hard tabs. " Python: yes " C: no " Makefile: no au BufRead,BufNewFile *.py,*.pyw set expandtab au BufRead,BufNewFile *.c,*.h set noexpandtab au BufRead,BufNewFile Makefile* set noexpandtab " Use the below highlight group when displaying bad whitespace is desired highlight BadWhitespace ctermbg=red guibg=red " Display tabs at the beginning of a line in Python mode as bad au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/ " Wrap text after a certain number of characters " Python: 79 " C: 79 "au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79 " Turn off settings in 'formatoptions' relating to comment formatting. " - c : do not automatically insert the comment leader when wrapping based on " 'textwidth' " - o : do not insert the comment leader when using 'o' or 'O' from command mode " - r : do not insert the comment leader when hitting in insert mode " Python: not needed " C: prevents insertion of '*' at the beginning of every line in a comment au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r " Use UNIX (\n) line endings. " Only used for new files so as to not force existing files to change their " line endings. " Python: yes " C: yes au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix " ---------------------------------------------------------------------------- " The following section contains suggested settings. While in no way required " to meet coding standards, they are helpful. " Set the default file encoding to UTF-8: ``set encoding=utf-8`` " Puts a marker at the beginning of the file to differentiate between UTF and " UCS encoding (WARNING: can trick shells into thinking a text file is actually " a binary file when executing the text file): ``set bomb`` " For full syntax highlighting: let python_highlight_all=1 syntax on " Automatically indent based on file type: ``filetype indent on`` " Keep indentation level from previous line: ``set autoindent`` " Folding based on indentation: ``set foldmethod=indent`` " Make trailing whitespace explicit (left off since this will automatically " insert the highlight or characters *as you type*, which can get annoying): "``match BadWhitespace /\s\+$/`` " " or, for a non-colored, character-based solution: " "``set list listchars=trail:-`` filetype indent on set autoindent au filetypedetect BufNewFile,BufRead *.cpy set filetype=python au filetypedetect BufNewFile,BufRead *.cpt set filetype=html au filetypedetect BufNewFile,BufRead *.pt set filetype=html au filetypedetect BufNewFile,BufRead *.zcml set filetype=xml filetype plugin on au BufRead,BufNewFile *html,*xml,*pt set shiftwidth=1 au BufRead,BufNewFile *zcml set shiftwidth=4 au BufRead,BufNewFile *.zcml set expandtab -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist