summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2004-09-19 05:43:13 (GMT)
committerBrett Cannon <bcannon@gmail.com>2004-09-19 05:43:13 (GMT)
commit8b4e886ed9274c77d1895f1b1d61f8e60a2b3463 (patch)
treee50eb4a2db831a7727b0b883125094a2b4e67b59 /Misc
parent636a6b100fe6083388bc5315758326078abe65b4 (diff)
downloadcpython-8b4e886ed9274c77d1895f1b1d61f8e60a2b3463.zip
cpython-8b4e886ed9274c77d1895f1b1d61f8e60a2b3463.tar.gz
cpython-8b4e886ed9274c77d1895f1b1d61f8e60a2b3463.tar.bz2
When this file is sourced in, or used as, one's vimrc file it will set the proper settings to follow the style guidelines laid out in PEPs 7 & 8 as best it can without forcing extraneous settings.
Suggested settings are commented out and included at the end of the file. The goal is to have this file prevent as much as possible from deviating from the style guidelines. It is not meant to collect every cool macro possible for Python. Any useful settings for features included with Vim can be included and commented out, but anything overly extraneous should be left out.
Diffstat (limited to 'Misc')
-rw-r--r--Misc/vimrc78
1 files changed, 78 insertions, 0 deletions
diff --git a/Misc/vimrc b/Misc/vimrc
new file mode 100644
index 0000000..93abef6
--- /dev/null
+++ b/Misc/vimrc
@@ -0,0 +1,78 @@
+" vimrc file for following the coding style specified in PEP 7 & 8.
+"
+" To use this file, source it in your own personal .vimrc file (``source
+" <filename>``) or, if you don't have a .vimrc file, you can just symlink to it
+" (``ln -s <filename> ~/.vimrc``). All options are protected by 'autocmd's
+" (read below for an explanation) so blind sourcing of this file is safe and
+" will not affect your settings for non-Python or non-C files.
+"
+" All setting are protected by 'au' ('autocmd') statements. Only files ending
+" in .py or .pyw will trigger the Python settings while files ending in *.c or
+" *.h will trigger the C settings. This make the file "safe" in terms of only
+" adjusting settings for Python and C files.
+"
+" Only basic settings needed to enforce the style guidelines are set.
+" Some suggested options are listed but commented out at the end of this file.
+"
+
+
+
+" Number of spaces to use for an indent.
+" This will affect Ctrl-T and 'autoindent'.
+" Python: 4 spaces
+" C: tab (8 spaces)
+au BufRead,BufNewFile *.py,*pyw set shiftwidth=4
+au BufRead,BufNewFile *.c,*.h set shiftwidth=8
+
+" Number of spaces that a pre-existing tab is equal to.
+" For the amount of space used for a new tab, use shiftwidth.
+" Python: 8
+" C: 8
+au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8
+
+" Replace tabs with the equivalent number of spaces.
+" Also have an autocmd for Makefiles since they require hard tabs.
+" Python: yes
+" C: no
+au BufRead,BufNewFile *.py,*.pyw set expandtab
+au BufRead,BufNewFile *.c,*.h set noexpandtab
+au BufRead,BufNewFile Makefile* set noexpandtab
+
+" Wrap text after a certain number of characters
+" Python: 79
+" C: 79
+au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79
+
+" Turn off settings in 'formatoptions' relating to comment formatting.
+" - c : do not automatically insert the comment leader when wrapping based on
+" 'textwidth'
+" - o : do not insert the comment leader when using 'o' or 'O' from command mode
+" - r : do not insert the comment leader when hitting <Enter> in insert mode
+" Python: not needed
+" C: prevents insertion of '*' at the beginning of every line in a comment
+au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r
+
+" Use UNIX (\n) line endings.
+" Only used for new files so as to not force existing files to change their
+" line endings.
+" Python: yes
+" C: yes
+au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
+
+
+
+" The following section contains suggested settings. While in no way required
+" to meet coding standards, they are helpful.
+
+" Set the default file encoding to UTF-8: ``set encoding=utf-8``
+
+" Put a marker at the beginning of the file to differentiate between UTF and
+" UCS encoding: ``set bomb``
+
+" For full syntax highlighting:
+"``let python_highlight_all=1``
+"``syntax on``
+
+" Automatically indent: ``filetype indent on``
+
+" Fold based on indentation: ``set foldmethod=indent``