その後、自動的に再インデントするには?ある端末画面から別の端末画面にコードをコピーしようとしましたが、表がすべてめちゃくちゃになりました。
私はこの機能を何と呼ぶべきかわからなかったので、グーグルで見つけるのが難しかった(これは一般的にタブサイズの設定方法に関連するものを返しましたが、残念ながら私が探していたものではありませんでした)。
その後、自動的に再インデントするには?ある端末画面から別の端末画面にコードをコピーしようとしましたが、表がすべてめちゃくちゃになりました。
私はこの機能を何と呼ぶべきかわからなかったので、グーグルで見つけるのが難しかった(これは一般的にタブサイズの設定方法に関連するものを返しましたが、残念ながら私が探していたものではありませんでした)。
回答:
Vimには、retab
ドキュメントをタブ化またはタブ化解除できるコマンドがあります。tabstop
やなどの設定を使用しますexpandtab
。したがって、タブをスペースに置き換えたい場合は、次のようにします。
:%retab
詳細については、retab
ドキュメントを参照してください。
警告エンプター:これは、行の先頭にないタブも置き換えます。したがって、文字列の途中でハードタブを使用すると、それらも同様に置き換えられます。
\t
ありますが、この種の問題を回避するためだけに推奨されます。
@Kalebの回答(まだコメントする担当者がいない)を拡張するには、retabコマンドを実行する前に、を実行する必要があります:set expandtab (set et)
。それ以外の場合、retabはタブをスペースに置き換えません。
さらに、タブストップを指定することもできます。多くの場合、他の人が作成したソースコードでは、タブストップを4または2に設定してコードを記述し:%retab
ます。コマンドを実行する前に、さまざまなタブストップを試してください。やってみる
:set ts=8 (the default)
:set ts=4
:set ts=2
どの設定が最も意味があるかを確認します。
後方に移動するには(スペースを適切なTAB文字に置き換えるには、
:set noet
:%retab!
タブを解除するとは、タブをスペースに変更することですか?その場合は、次のようにバッファ全体のタブをスペースに置き換えます。
:%s/^I/ /g
これは置換の右側にある4つのスペースですが、好きな数にすることができます。リテラルの^I
タブ文字を取得するには、^V
次にTabキーを押します。
=
コマンドを使用して、インデントを再設定できます。バッファの内容全体をインデントするには、次のコマンドを使用します。
gg
=G
これにより、上に移動し、すべてを下にインデントします。