Home | History | Annotate | Download | only in Vim
      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 " Number of spaces that a pre-existing tab is equal to.
     19 " For the amount of space used for a new tab use shiftwidth.
     20 au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8
     21 
     22 " What to use for an indent.
     23 " This will affect Ctrl-T and 'autoindent'.
     24 " Python: 4 spaces
     25 " C: tabs (pre-existing files) or 4 spaces (new files)
     26 au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
     27 au BufRead,BufNewFile *.py,*.pyw set expandtab
     28 fu Select_c_style()
     29     if search('^\t', 'n', 150)
     30         set shiftwidth=8
     31         set noexpandtab
     32     el 
     33         set shiftwidth=4
     34         set expandtab
     35     en
     36 endf
     37 au BufRead,BufNewFile *.c,*.h call Select_c_style()
     38 au BufRead,BufNewFile Makefile* set noexpandtab
     39 
     40 " Use the below highlight group when displaying bad whitespace is desired.
     41 highlight BadWhitespace ctermbg=red guibg=red
     42 
     43 " Display tabs at the beginning of a line in Python mode as bad.
     44 au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
     45 " Make trailing whitespace be flagged as bad.
     46 au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
     47 
     48 " Wrap text after a certain number of characters
     49 " Python: 79 
     50 " C: 79
     51 au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79
     52 
     53 " Turn off settings in 'formatoptions' relating to comment formatting.
     54 " - c : do not automatically insert the comment leader when wrapping based on
     55 "    'textwidth'
     56 " - o : do not insert the comment leader when using 'o' or 'O' from command mode
     57 " - r : do not insert the comment leader when hitting <Enter> in insert mode
     58 " Python: not needed
     59 " C: prevents insertion of '*' at the beginning of every line in a comment
     60 au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r
     61 
     62 " Use UNIX (\n) line endings.
     63 " Only used for new files so as to not force existing files to change their
     64 " line endings.
     65 " Python: yes
     66 " C: yes
     67 au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
     68 
     69 
     70 " ----------------------------------------------------------------------------
     71 " The following section contains suggested settings.  While in no way required
     72 " to meet coding standards, they are helpful.
     73 
     74 " Set the default file encoding to UTF-8: ``set encoding=utf-8``
     75 
     76 " Puts a marker at the beginning of the file to differentiate between UTF and
     77 " UCS encoding (WARNING: can trick shells into thinking a text file is actually
     78 " a binary file when executing the text file): ``set bomb``
     79 
     80 " For full syntax highlighting:
     81 "``let python_highlight_all=1``
     82 "``syntax on``
     83 
     84 " Automatically indent based on file type: ``filetype indent on``
     85 " Keep indentation level from previous line: ``set autoindent``
     86 
     87 " Folding based on indentation: ``set foldmethod=indent``
     88