blob: 85ce3483220d5a647aea84fd397552620cef2564 [file] [log] [blame]
Brett Cannon8b4e8862004-09-19 05:43:13 +00001" vimrc file for following the coding style 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 <filename> ~/.vimrc``). All options are protected by 'autocmd's
6" (read below for an explanation) so blind sourcing of this file is safe and
7" will not affect your settings for non-Python or non-C files.
8"
9" All setting are protected by 'au' ('autocmd') statements. Only files ending
10" in .py or .pyw will trigger the Python settings while files ending in *.c or
11" *.h will trigger the C settings. This make the file "safe" in terms of only
12" adjusting settings for Python and C files.
13"
14" Only basic settings needed to enforce the style guidelines are set.
15" Some suggested options are listed but commented out at the end of this file.
16"
17
18
19
20" Number of spaces to use for an indent.
21" This will affect Ctrl-T and 'autoindent'.
22" Python: 4 spaces
23" C: tab (8 spaces)
24au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
25au BufRead,BufNewFile *.c,*.h set shiftwidth=8
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
31au 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
37au BufRead,BufNewFile *.py,*.pyw set expandtab
38au BufRead,BufNewFile *.c,*.h set noexpandtab
39au BufRead,BufNewFile Makefile* set noexpandtab
40
41" Wrap text after a certain number of characters
42" Python: 79
43" C: 79
44au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79
45
46" Turn off settings in 'formatoptions' relating to comment formatting.
47" - c : do not automatically insert the comment leader when wrapping based on
48" 'textwidth'
49" - o : do not insert the comment leader when using 'o' or 'O' from command mode
50" - r : do not insert the comment leader when hitting <Enter> in insert mode
51" Python: not needed
52" C: prevents insertion of '*' at the beginning of every line in a comment
53au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r
54
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
60au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
61
62
63
64" The following section contains suggested settings. While in no way required
65" to meet coding standards, they are helpful.
66
67" Set the default file encoding to UTF-8: ``set encoding=utf-8``
68
69" Put a marker at the beginning of the file to differentiate between UTF and
70" UCS encoding: ``set bomb``
71
72" For full syntax highlighting:
73"``let python_highlight_all=1``
74"``syntax on``
75
76" Automatically indent: ``filetype indent on``
77
78" Fold based on indentation: ``set foldmethod=indent``
Brett Cannon24a00452004-09-20 22:33:21 +000079
80" Make trailing whitespace explicit:
81"highlight WhitespaceEOL ctermbg=red guibg=red
82"match WhitespaceEOL /\s\+$/
83" or
84"set list listchars=trail:-
85