2

すべての既存の (!) Python ファイルのインデントを 2 スペースから 4 スペースのシフト幅に変更したいと考えています。Vimでこれを行う方法について何か提案はありますか?

4

4 に答える 4

6

:set ts=4 sw=4ハードタブ (つまり ) を使用する場合は、それだけで十分ですが、そうでnoexpandtabはないと思います。ただし、一時的に次のように設定することで、この機能を引き続き利用できますnoet

:set noet | retab! | set ts=4 sw=4 et | retab

これにより、既存のスペースがタブに変換され、タブごとのスペースの数が変更され、スペースに戻ります。retabファイル内の他の場所の一連のスペースに影響を与える可能性があることに注意してください。

先頭のスペースの各ペアを手動で 2 倍のスペースに置き換えることもできます。

:%s/^\(\(\s\{2}\)\+\)/\1\1/g

ただし、このアプローチは一般的ではありません。

于 2013-01-23T13:04:01.560 に答える
2

これは問題の最適な解決策ではありませんが、1 つのファイルに対してファイル全体を再インデントできます (好みに合わせてインデント ルールを構成した場合)。

Shift+ V Shift+G =

于 2013-01-23T12:12:13.387 に答える
0

インデント レベルを 2 倍にするには、次のコマンドを使用できます。

:%s/^\s*/&&/
于 2013-01-24T19:20:19.780 に答える
0

ハードタブのみを使用した場合 (スペースと混合していない場合)、vimrc ファイルで tabstop と shiftwidth の両方を 4 に変更してみてください

また、インデントに関するヘルプについては、http: //vim.wikia.com/wiki/Indenting_source_codeを参照してください。

于 2013-01-23T11:37:26.967 に答える