Можно ли открыть файлы с отступом в 2 пробела, но показать мне отступ в 4 пробела, и когда я делаю 4 пробела, он сохраняется в формате 2 пробела?
Изменить
Оказывается, мне также нужно убедиться, что он работает, если в файле есть табуляция, 2 пробела и 4 пробела.
Изменить 2
Итак, вот мое текущее решение. Мне нужно переназначить свой (первоначально отображенный на: w), чтобы я мог вернуть свой курсор туда, где он был (и вернуть мне одну "историю назад" до позиций курсора, когда я выполняю сохранение. Есть ли способ сделать это, не влияя на позицию курсора (и не добавляя замену в историю)?
function! s:ShimSpaces()
nunmap <C-S>
nmap <C-S> ms``mt:w<Cr>`t`s
augroup SeoTabs
autocmd!
autocmd BufReadPost,BufWritePost * set tabstop=4
autocmd BufReadPost,BufWritePost * %substitute/^ \+/&&/e
autocmd BufReadPost * %substitute/ \+$//e
autocmd BufWritePre * %substitute/^\( \+\)\1/\1/e
autocmd BufWritePre * set tabstop=2
autocmd BufWritePre * retab
augroup END
endfunction
command! -n=0 -bar ShimSpaces :call s:ShimSpaces()