:set noet|retab!
を使用してcurrentlingが、私はに実行している問題は、それがファイル全体を通じてタブに4つのスペースのすべてのインスタンスを置き換えていますです。 私は、行の先頭にある4つのスペースのインスタンスだけを置き換えるためにvimが必要です。
!リタブの終わりに、スペースはどこにも置き換えられません。
私は誰かが作成したカスタム関数を使用して試してみた:
" Retab spaced file, but only indentation
command! RetabIndents call RetabIndents()
" Retab spaced file, but only indentation
func! RetabIndents()
let saved_view = winsaveview()
execute '%[email protected]^\(\{'.&ts.'}\)\[email protected]\=repeat("\t", len(submatch(0))/'.&ts.')@'
call winrestview(saved_view)
endfunc
が、私は実行したときに、私はちょっといいエラーメッセージが表示されます:関数RetabIndentsの処理中に
:RetabIndents
エラーが検出されました:
2行目:
E486:パターンが見つかりません:^({4})+
は、あなたはすでに、タブで始まるスペースのすべてを交換していない特定のか?元のファイル、またはすでに ':set noet | retab!'を実行した修正されたファイル(またはバッファ)を使用していますか? – gotgenes
これは問題なので、置き換えるスペースがありません。一致するものが見つからない場合は、無視する修飾語はありませんか? –
も参照してください。http://stackoverflow.com/questions/5144284/force-vi-vim-to-use-leading-tabs-only-on-retab – wimh