Daniel Shahaf wrote on Wed, Jun 15, 2011 at 02:07:00 +0300: > > Bonus points for a tool which keeps real indentation changes, and only > > discards tab<->space conversions which do not change the indentation > > level. :-) > > vim -c 'source /dev/mind-reader' -c 'wq' > > Not all OS's provide the necessary device file, though.
Okay, more seriously, here's a Vim script... The first two lines are the configuration, you shouldn't have to change anything below them. :set tabstop=8 shiftwidth=8 :set expandtab :g/^/call MaybeRetab() func! MaybeRetab() normal! ^ let before = virtcol('.') .retab let after = virtcol('.') if before != after undo endif endfunction