95 lines · 3.6 KB · Text
RawDownload
" 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" <filename>``) or, if you don't have a .vimrc file, you can just symlink to it" (``ln -s <this file> ~/.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=4au 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: 8au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8 " Replace tabs with the equivalent number of spaces." Also have an autocmd for Makefiles since they require hard tabs." Python: yes" C: no" Makefile: noau BufRead,BufNewFile *.py,*.pyw set expandtabau BufRead,BufNewFile *.c,*.h set noexpandtabau BufRead,BufNewFile Makefile* set noexpandtab " Use the below highlight group when displaying bad whitespace is desiredhighlight BadWhitespace ctermbg=red guibg=red " Display tabs at the beginning of a line in Python mode as badau BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/ " Wrap text after a certain number of characters" Python: 79 " C: 79au 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 <Enter> in insert mode" Python: not needed" C: prevents insertion of '*' at the beginning of every line in a commentau 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: yesau 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:-``