したがって、ファイル内のすべてのタブをスペースに置き換えることは難しくありません。
たとえばvimでは、%s/\t/ /gc
を実行できます
そして、各行の途中ではなく、最初の行を置き換えたい場合は、%s/^\t/ /gc
を実行できます。
しかし、最初に1つの行とより多くのタブがある行があり、中央にタブがある行があり、ファイルのインデント構造を維持するために、行の最初の各タブをスペースに置き換えたい場合、つまりどうしたらいいかわからない。
Vimまたはsedで、または一般的に正規表現を使用します。
評価レジスタを使用して、任意の数のタブを適切な数のスペースに置き換えることができます。例えば:
:s/^\t\+/\=repeat(' ',len(submatch(0)))
説明:
:s/ " Replace
^ " At the start of a line
\t\+ " One or more tabs
/\= " With the following evaluated as vimscript:
repeat(' ',len(submatch(0))) " 4 spaces times the length of the previously matched string