| 1 | " vimrc file for following the coding standards specified in PEP 7 & 8. | 
|---|
| 2 | " | 
|---|
| 3 | " To use this file, source it in your own personal .vimrc file (``source | 
|---|
| 4 | " <filename>``) or, if you don't have a .vimrc file, you can just symlink to it | 
|---|
| 5 | " (``ln -s <this file> ~/.vimrc``).  All options are protected by autocmds | 
|---|
| 6 | " (read below for an explanation of the command) so blind sourcing of this file | 
|---|
| 7 | " is safe and will not affect your settings for non-Python or non-C files. | 
|---|
| 8 | " | 
|---|
| 9 | " | 
|---|
| 10 | " All setting are protected by 'au' ('autocmd') statements.  Only files ending | 
|---|
| 11 | " in .py or .pyw will trigger the Python settings while files ending in *.c or | 
|---|
| 12 | " *.h will trigger the C settings.  This makes the file "safe" in terms of only | 
|---|
| 13 | " adjusting settings for Python and C files. | 
|---|
| 14 | " | 
|---|
| 15 | " Only basic settings needed to enforce the style guidelines are set. | 
|---|
| 16 | " Some suggested options are listed but commented out at the end of this file. | 
|---|
| 17 |  | 
|---|
| 18 |  | 
|---|
| 19 | " Number of spaces to use for an indent. | 
|---|
| 20 | " This will affect Ctrl-T and 'autoindent'. | 
|---|
| 21 | " Python: 4 spaces | 
|---|
| 22 | " C: 8 spaces (pre-existing files) or 4 spaces (new files) | 
|---|
| 23 | au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 | 
|---|
| 24 | au BufRead *.c,*.h set shiftwidth=8 | 
|---|
| 25 | au BufNewFile *.c,*.h set shiftwidth=4 | 
|---|
| 26 |  | 
|---|
| 27 | " Number of spaces that a pre-existing tab is equal to. | 
|---|
| 28 | " For the amount of space used for a new tab use shiftwidth. | 
|---|
| 29 | " Python: 8 | 
|---|
| 30 | " C: 8 | 
|---|
| 31 | au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8 | 
|---|
| 32 |  | 
|---|
| 33 | " Replace tabs with the equivalent number of spaces. | 
|---|
| 34 | " Also have an autocmd for Makefiles since they require hard tabs. | 
|---|
| 35 | " Python: yes | 
|---|
| 36 | " C: no | 
|---|
| 37 | " Makefile: no | 
|---|
| 38 | au BufRead,BufNewFile *.py,*.pyw set expandtab | 
|---|
| 39 | au BufRead,BufNewFile *.c,*.h set noexpandtab | 
|---|
| 40 | au BufRead,BufNewFile Makefile* set noexpandtab | 
|---|
| 41 |  | 
|---|
| 42 | " Use the below highlight group when displaying bad whitespace is desired | 
|---|
| 43 | highlight BadWhitespace ctermbg=red guibg=red | 
|---|
| 44 |  | 
|---|
| 45 | " Display tabs at the beginning of a line in Python mode as bad. | 
|---|
| 46 | au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/ | 
|---|
| 47 | " Make trailing whitespace be flagged as bad. | 
|---|
| 48 | au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ | 
|---|
| 49 |  | 
|---|
| 50 | " Wrap text after a certain number of characters | 
|---|
| 51 | " Python: 79 | 
|---|
| 52 | " C: 79 | 
|---|
| 53 | au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79 | 
|---|
| 54 |  | 
|---|
| 55 | " Turn off settings in 'formatoptions' relating to comment formatting. | 
|---|
| 56 | " - c : do not automatically insert the comment leader when wrapping based on | 
|---|
| 57 | "    'textwidth' | 
|---|
| 58 | " - o : do not insert the comment leader when using 'o' or 'O' from command mode | 
|---|
| 59 | " - r : do not insert the comment leader when hitting <Enter> in insert mode | 
|---|
| 60 | " Python: not needed | 
|---|
| 61 | " C: prevents insertion of '*' at the beginning of every line in a comment | 
|---|
| 62 | au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r | 
|---|
| 63 |  | 
|---|
| 64 | " Use UNIX (\n) line endings. | 
|---|
| 65 | " Only used for new files so as to not force existing files to change their | 
|---|
| 66 | " line endings. | 
|---|
| 67 | " Python: yes | 
|---|
| 68 | " C: yes | 
|---|
| 69 | au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix | 
|---|
| 70 |  | 
|---|
| 71 |  | 
|---|
| 72 | " ---------------------------------------------------------------------------- | 
|---|
| 73 | " The following section contains suggested settings.  While in no way required | 
|---|
| 74 | " to meet coding standards, they are helpful. | 
|---|
| 75 |  | 
|---|
| 76 | " Set the default file encoding to UTF-8: ``set encoding=utf-8`` | 
|---|
| 77 |  | 
|---|
| 78 | " Puts a marker at the beginning of the file to differentiate between UTF and | 
|---|
| 79 | " UCS encoding (WARNING: can trick shells into thinking a text file is actually | 
|---|
| 80 | " a binary file when executing the text file): ``set bomb`` | 
|---|
| 81 |  | 
|---|
| 82 | " For full syntax highlighting: | 
|---|
| 83 | "``let python_highlight_all=1`` | 
|---|
| 84 | "``syntax on`` | 
|---|
| 85 |  | 
|---|
| 86 | " Automatically indent based on file type: ``filetype indent on`` | 
|---|
| 87 | " Keep indentation level from previous line: ``set autoindent`` | 
|---|
| 88 |  | 
|---|
| 89 | " Folding based on indentation: ``set foldmethod=indent`` | 
|---|