From: Brett Cannon Date: Sun, 8 Nov 2009 21:35:28 +0000 (+0000) Subject: Properly detect whether a C file is using tabs or spaces for Vim. X-Git-Tag: v2.7a1~134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=813c43ab2591f9a61c222cb62b00bb2555b690bf;p=python Properly detect whether a C file is using tabs or spaces for Vim. Closes issue #5611. Thanks Kirk McDonald and Johannes Hoff. --- diff --git a/Misc/NEWS b/Misc/NEWS index 011d320d7c..1507ebe052 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -1607,6 +1607,11 @@ Tests - Issue #2389: Array objects are now pickled in a portable manner. +Misc +---- + +- Issue #5611: Auto-detect whether a C file uses tabs or spaces in Vim. + What's New in Python 2.6 final ============================== diff --git a/Misc/Vim/vimrc b/Misc/Vim/vimrc index ae14e6ad67..fc00b9e5c8 100644 --- a/Misc/Vim/vimrc +++ b/Misc/Vim/vimrc @@ -15,31 +15,29 @@ " 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: 8 spaces (pre-existing files) or 4 spaces (new files) -au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 -au BufRead *.c,*.h set shiftwidth=8 -au BufNewFile *.c,*.h set shiftwidth=4 - " 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 -" Makefile: no +" What to use for an indent. +" This will affect Ctrl-T and 'autoindent'. +" Python: 4 spaces +" C: tabs (pre-existing files) or 4 spaces (new files) +au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 au BufRead,BufNewFile *.py,*.pyw set expandtab -au BufRead,BufNewFile *.c,*.h set noexpandtab +fu Select_c_style() + if search('^\t', 'n', 150) + set shiftwidth=8 + set noexpandtab + el + set shiftwidth=4 + set expandtab + en +endf +au BufRead,BufNewFile *.c,*.h call Select_c_style() au BufRead,BufNewFile Makefile* set noexpandtab -" Use the below highlight group when displaying bad whitespace is desired +" Use the below highlight group when displaying bad whitespace is desired. highlight BadWhitespace ctermbg=red guibg=red " Display tabs at the beginning of a line in Python mode as bad.