]> granicus.if.org Git - python/commitdiff
Properly detect whether a C file is using tabs or spaces for Vim.
authorBrett Cannon <bcannon@gmail.com>
Sun, 8 Nov 2009 21:35:28 +0000 (21:35 +0000)
committerBrett Cannon <bcannon@gmail.com>
Sun, 8 Nov 2009 21:35:28 +0000 (21:35 +0000)
Closes issue #5611. Thanks Kirk McDonald and Johannes Hoff.

Misc/NEWS
Misc/Vim/vimrc

index 011d320d7c2231ec47249a823aa0f2760c32c14d..1507ebe052c7a362871434c003b43526e88fc99c 100644 (file)
--- 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
 ==============================
index ae14e6ad6798dca77bb016c0c0d27524ab56effb..fc00b9e5c8aeb16800054b2073d8f427cdeb3981 100644 (file)
 " 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.