1. ホーム
  2. vim

[解決済み] vim で 2 スペースインデントを 4 スペースに変更する

2023-01-01 09:28:19

質問

インターネットからコピーしたいくつかのコードは2スペースインデントで、それを4スペースインデントに変更したいのです。私はvimスクリプトを書くことなく、タスクを達成するための短いvimルーチンがあるのだろうか?以下は、私が現在HTMLファイルでそれを行っている方法です。

  • マクロを記録する
  • 行頭に移動する
  • 最初の "<" の出現までのすべての空白を視覚的に選択します。
  • すべての空白文字をヤンクして貼り付ける (基本的に 2 倍にする)
  • ファイルの終わりまでマクロを再生する

要するに qa0vt<yp<esc>jq

落とし穴

空白行または "<" で始まらない行では、マクロは失敗します。また、この解決策を非 HTML ファイルに拡張する方法はわかりません。

どのように解決するのですか?

インデントを変更する一般的な方法として、タブストップを変更する方法があります。

ファイルを空のバッファに貼り付けてから

:set ts=2 sts=2 noet
:retab!

これは、2スペースごとにTAB文字に変更し、その後。

:set ts=4 sts=4 et
:retab

これは、すべてのTABを4つのスペースに変更します。

この方法の利点は、例えば4スペースから2スペースに変換するために、その逆を使うこともできることです。