/Misc/Vim/vimrc

http://unladen-swallow.googlecode.com/ · Vim Script · 89 lines · 13 code · 16 blank · 60 comment · 0 complexity · 9edf194e8c55f922b6c03c514815be7d MD5 · raw file

  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. " Number of spaces to use for an indent.
  18. " This will affect Ctrl-T and 'autoindent'.
  19. " Python: 4 spaces
  20. " C: 8 spaces (pre-existing files) or 4 spaces (new files)
  21. au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
  22. au BufRead *.c,*.h set shiftwidth=8
  23. au BufNewFile *.c,*.h set shiftwidth=4
  24. " Number of spaces that a pre-existing tab is equal to.
  25. " For the amount of space used for a new tab use shiftwidth.
  26. " Python: 8
  27. " C: 8
  28. au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8
  29. " Replace tabs with the equivalent number of spaces.
  30. " Also have an autocmd for Makefiles since they require hard tabs.
  31. " Python: yes
  32. " C: no
  33. " Makefile: no
  34. au BufRead,BufNewFile *.py,*.pyw set expandtab
  35. au BufRead,BufNewFile *.c,*.h set noexpandtab
  36. au BufRead,BufNewFile Makefile* set noexpandtab
  37. " Use the below highlight group when displaying bad whitespace is desired
  38. highlight BadWhitespace ctermbg=red guibg=red
  39. " Display tabs at the beginning of a line in Python mode as bad.
  40. au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
  41. " Make trailing whitespace be flagged as bad.
  42. au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
  43. " Wrap text after a certain number of characters
  44. " Python: 79
  45. " C: 79
  46. 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
  49. " 'textwidth'
  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
  52. " Python: not needed
  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
  55. " Use UNIX (\n) line endings.
  56. " Only used for new files so as to not force existing files to change their
  57. " line endings.
  58. " Python: yes
  59. " C: yes
  60. au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
  61. " ----------------------------------------------------------------------------
  62. " The following section contains suggested settings. While in no way required
  63. " to meet coding standards, they are helpful.
  64. " Set the default file encoding to UTF-8: ``set encoding=utf-8``
  65. " Puts a marker at the beginning of the file to differentiate between UTF and
  66. " UCS encoding (WARNING: can trick shells into thinking a text file is actually
  67. " a binary file when executing the text file): ``set bomb``
  68. " For full syntax highlighting:
  69. "``let python_highlight_all=1``
  70. "``syntax on``
  71. " Automatically indent based on file type: ``filetype indent on``
  72. " Keep indentation level from previous line: ``set autoindent``
  73. " Folding based on indentation: ``set foldmethod=indent``