2つのスペースでインデントされているファイルを開くことはできますが、4つのスペースのインデントが表示され、4つのスペースを作成すると、2つのスペース形式で保存されますか?
編集
また、ファイルにタブ、2つのスペース、および4つのスペースが混在している場合でも、確実に機能するようにする必要があります。
編集2
だから、これが私の現在の解決策です。カーソルを元の場所に戻すことができるように(元々:wにマップされていた)再マップする必要があります(保存時にカーソル位置まで1つの「履歴」を戻します。方法はありますか?カーソル位置に影響を与えずに(そして履歴に置換を追加せずに)これを行いますか?
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()