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``
|
---|