1 " vimrc file for following the coding standards specified in PEP 7 & 8.
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.
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 make the file "safe" in terms of only
13 " adjusting settings for Python and C files.
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.
20 " Number of spaces to use for an indent.
21 " This will affect Ctrl-T and 'autoindent'.
24 au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
25 au BufRead,BufNewFile *.c,*.h set shiftwidth=8
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.
31 au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8
33 " Replace tabs with the equivalent number of spaces.
34 " Also have an autocmd for Makefiles since they require hard tabs.
38 au BufRead,BufNewFile *.py,*.pyw set expandtab
39 au BufRead,BufNewFile *.c,*.h set noexpandtab
40 au BufRead,BufNewFile Makefile* set noexpandtab
42 " Wrap text after a certain number of characters
45 au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79
47 " Turn off settings in 'formatoptions' relating to comment formatting.
48 " - c : do not automatically insert the comment leader when wrapping based on
50 " - o : do not insert the comment leader when using 'o' or 'O' from command mode
51 " - r : do not insert the comment leader when hitting <Enter> in insert mode
53 " C: prevents insertion of '*' at the beginning of every line in a comment
54 au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r
56 " Use UNIX (\n) line endings.
57 " Only used for new files so as to not force existing files to change their
61 au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
64 " ----------------------------------------------------------------------------
65 " The following section contains suggested settings. While in no way required
66 " to meet coding standards, they are helpful.
68 " Set the default file encoding to UTF-8: ``set encoding=utf-8``
70 " Put a marker at the beginning of the file to differentiate between UTF and
71 " UCS encoding (WARNING: can trick shells into thinking a text file is actually
72 " a binary file when executing the text file): ``set bomb``
74 " For full syntax highlighting:
75 "``let python_highlight_all=1``
78 " Automatically indent: ``filetype indent on``
80 " Folding based on indentation: ``set foldmethod=indent``
82 " Make trailing whitespace explicit:
83 "highlight WhitespaceEOL ctermbg=red guibg=red
84 "match WhitespaceEOL /\s\+$/
86 "set list listchars=trail:-